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