public static Dictionary<string, EntityClass> GetClasses() { // TODO: This should be loaded from an xml file in the future Dictionary<string, EntityClass> classes = new Dictionary<string, EntityClass>(); classes["Warrior"] = new EntityClass { Name = "Warrior", Attributes = new Attributes { Strength = 14, Dexterity = 12, Cunning = 10, WillPower = 12, Intelligence = 10, Constitution = 12 }, HealthFormula = "20|CON|12", StaminaFormula = "12|WIL|12", SpeedFormula = "0|DEX|0", ManaFormula = "0|0|0", AttackFormula = "12|DEX|12", DefenseFormula = "12|DEX|12", DamageFormula = "20|STR|12" }; classes["Wizard"] = new EntityClass { Name = "Wizard", Attributes = new Attributes { Strength = 10, Dexterity = 10, Cunning = 12, WillPower = 14, Intelligence = 14, Constitution = 10 }, HealthFormula = "10|CON|10", StaminaFormula = "0|0|0", ManaFormula = "20|INT|12", SpeedFormula = "0|DEX|0", AttackFormula = "10|DEX|10", DefenseFormula = "10|DEX|10", DamageFormula = "10|STR|10" }; return classes; }
/// <summary> /// Return an instance of an entity. The base attributes of an entity /// are based on the entity's class (warrior, barbarian, rogue, mage...) /// The attribute modifiers are based on the race. /// </summary> /// <param name="name"> </param> /// <param name="class"></param> /// <param name="race"></param> /// <param name="gender"></param> /// <param name="type"> </param> public Entity(Game game, string name, Gender gender, EntityType type, EntityClass @class, EntityRace race) : base(game) { this.Name = name; Attributes = @class.Attributes; AttributeModifiers = race.AttributeModifiers; Gender = gender; this.Type = type; Inventory = new Inventory(); Health = CalculateVariableAttributeFromFormula(@class.HealthFormula); Mana = CalculateVariableAttributeFromFormula(@class.ManaFormula); Stamina = CalculateVariableAttributeFromFormula(@class.StaminaFormula); Speed = MathHelper.Clamp(CalculateFromFormula(@class.SpeedFormula), 1f, 6f); BaseAttack = CalculateFromFormula(@class.AttackFormula); BaseDamage = CalculateFromFormula(@class.DamageFormula); BaseDefense = CalculateFromFormula(@class.DefenseFormula); SpellModifiers = new List<Modifier>(); }