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