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;
 }
Exemple #2
0
        /// <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>();
        }