You cant.
In a case like this, youd be better off making a single "player" type, and having sub "roles" instead.
Its almost the same as a "character type" as you call it, but at least you can extend the "roles" all you want.
edit: about the name part, you could use an abstract method returning a string, or even Reflection.
In a case like this, youd be better off making a single "player" type, and having sub "roles" instead.
Its almost the same as a "character type" as you call it, but at least you can extend the "roles" all you want.
edit: about the name part, you could use an abstract method returning a string, or even Reflection.