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;
}
}
}
}