Пример #1
0
        public void CalculateCombatStats()
        {
            //Get defaults from class
            armourClass    = ArmourClass();
            damageBase     = DamageBase();
            damageModifier = DamageModifier();
            hitModifier    = HitModifier();
            speed          = BaseSpeed();

            //Check equipped items - unlikely to be implemented

            foreach (Item item in Inventory.Items)
            {
                if (!item.IsEquipped)
                {
                    continue;
                }

                IEquippableItem equipItem = item as IEquippableItem;

                //Error if non-equippable item is equipped
                if (equipItem == null)
                {
                    LogFile.Log.LogEntry("Item " + item.SingleItemDescription + " is non-equippable but is equipped!");
                    //Just skip
                    continue;
                }

                armourClass    += equipItem.ArmourClassModifier();
                damageModifier += equipItem.DamageModifier();
                hitModifier    += equipItem.HitModifier();

                if (equipItem.DamageBase() > damageBase)
                {
                    damageBase = equipItem.DamageBase();
                }
            }

            //Check effects

            ApplyEffects();
        }