public static UnitPower AttackPower(Army attackingArmy)
        {
            UnitPower result = new UnitPower();

            foreach (var kvp in attackingArmy)
            {
                switch (ArmyStats.UnitType[kvp.Key])
                {
                case UnitType.Infantry: result.Infantry += ArmyStats.AttackPower[kvp.Key] * kvp.Value; break;

                case UnitType.Cavalry: result.Cavalry += ArmyStats.AttackPower[kvp.Key] * kvp.Value; break;

                case UnitType.Archer: result.Archer += ArmyStats.AttackPower[kvp.Key] * kvp.Value; break;
                }
            }
            return(result);
        }
        public static UnitPower DefensePower(Army defendingArmy)
        {
            UnitPower result = new UnitPower();

            if (defendingArmy == null)
            {
                return(result);
            }

            foreach (var kvp in defendingArmy)
            {
                result.Infantry += ArmyStats.DefensePower[kvp.Key].Infantry * kvp.Value;
                result.Cavalry  += ArmyStats.DefensePower[kvp.Key].Cavalry * kvp.Value;
                result.Archer   += ArmyStats.DefensePower[kvp.Key].Archer * kvp.Value;
            }

            return(result);
        }