예제 #1
0
        private int GetTotalIncreasedDefense(ArmorDefenseMods.DefenseStat stat)
        {
            IsDefenseModifier IsValid = null;

            switch (stat)
            {
            case ArmorDefenseMods.DefenseStat.Armour: IsValid = ArmorDefenseMods.ArmourModifiers.Contains; break;

            case ArmorDefenseMods.DefenseStat.Evasion: IsValid = ArmorDefenseMods.EvasionModifiers.Contains; break;

            case ArmorDefenseMods.DefenseStat.EnergyShield: IsValid = ArmorDefenseMods.EnergyShieldModifiers.Contains; break;
            }

            return(GetIncreasedValueFromModGroup(ExplicitMods, IsValid) +
                   GetIncreasedValueFromModGroup(ImplicitMods, IsValid));
        }
예제 #2
0
        private int GetIncreasedValueFromModGroup(Mod[] modGroup, IsDefenseModifier validMods)
        {
            if (modGroup == null)
            {
                return(0);
            }

            int totalIncreased = 0;

            foreach (Mod mod in modGroup)
            {
                if (validMods(mod.Affix))
                {
                    totalIncreased += (int)mod.AffixValues[0];
                }
            }

            return(totalIncreased);
        }