namespace IgniteEngine.Content.GameObjects { /// /// Class that represents a character's appearance. /// public class CharacterShape { /// /// The character's class type. /// public CharacterClass Class { get; set; } /// /// The character's base class type. /// public CharacterClass BaseClass => GetBaseClass(Class); /// /// The character's face shape. /// public byte Face { get; set; } /// /// The character's gender. /// public Gender Gender { get; set; } /// /// The character's hair shape. /// public byte Hair { get; set; } /// /// The character's hair color. /// public byte HairColor { get; set; } /// /// The character's race. /// public byte Race { get; set; } /// /// Retrieves the class's base class (or the first 'step' of the class). /// /// The current class. /// The class's base class. public static CharacterClass GetBaseClass(CharacterClass characterClass) { switch (characterClass) { case CharacterClass.CC_FIGHTER: case CharacterClass.CC_CLEVERFIGHTER: case CharacterClass.CC_WARRIOR: case CharacterClass.CC_GLADIATOR: case CharacterClass.CC_KNIGHT: return CharacterClass.CC_FIGHTER; case CharacterClass.CC_CLERIC: case CharacterClass.CC_HIGHCLERIC: case CharacterClass.CC_PALADIN: case CharacterClass.CC_HOLYKNIGHT: case CharacterClass.CC_GUARDIAN: return CharacterClass.CC_CLERIC; case CharacterClass.CC_ARCHER: case CharacterClass.CC_HAWKARCHER: case CharacterClass.CC_SCOUT: case CharacterClass.CC_SHARPSHOOTER: case CharacterClass.CC_RANGER: return CharacterClass.CC_ARCHER; case CharacterClass.CC_MAGE: case CharacterClass.CC_WIZMAGE: case CharacterClass.CC_ENCHANTER: case CharacterClass.CC_WARLOCK: case CharacterClass.CC_WIZARD: return CharacterClass.CC_MAGE; case CharacterClass.CC_TRICKSTER: case CharacterClass.CC_GAMBIT: case CharacterClass.CC_RENEGADE: case CharacterClass.CC_SPECTRE: case CharacterClass.CC_REAPER: return CharacterClass.CC_TRICKSTER; case CharacterClass.CC_CRUSADER: case CharacterClass.CC_TEMPLAR: return CharacterClass.CC_CRUSADER; default: return CharacterClass.CC_NONE; } } } }