Codebreak.Service.World.Game.Stats.GenericStats.GetTotalEffect C# (CSharp) Method

GetTotalEffect() public method

public GetTotalEffect ( EffectEnum effectType ) : GenericEffect
effectType EffectEnum
return GenericEffect
        public GenericEffect GetTotalEffect(EffectEnum effectType)
        {
            var totalBase = 0;
            var totalItems = 0;
            var totalDons = 0;
            var totalBoosts = 0;
            var effect = GetEffect(effectType);

            totalBase = effect.Base;
            totalItems = effect.Items;
            totalDons = effect.Dons;
            totalBoosts = effect.Boosts;

            switch (effectType)
            {
                case EffectEnum.AddAPDodge:
                case EffectEnum.AddMPDodge:
                    totalBase += GetTotal(EffectEnum.AddWisdom) / 4;
                    break;
                case EffectEnum.AddAP:
                    totalItems += GetTotal(EffectEnum.AddAPBis);
                    break;
                case EffectEnum.AddMP:
                    totalItems += GetTotal(EffectEnum.MPBonus);
                    break;
                case EffectEnum.AddReflectDamage:
                    totalItems += GetTotal(EffectEnum.AddReflectDamageItem);
                    break;
            }

            if (OppositeStats.ContainsKey(effectType))
            {
                foreach (EffectEnum OppositeEffect in OppositeStats[effectType])
                {
                    if (m_effects.ContainsKey(OppositeEffect))
                    {
                        totalBase -= m_effects[OppositeEffect].Base;
                        totalBoosts -= m_effects[OppositeEffect].Boosts;
                        totalDons -= m_effects[OppositeEffect].Dons;
                        totalItems -= m_effects[OppositeEffect].Items;
                    }
                }
            }

            return new GenericEffect(effectType, totalBase, totalItems, totalDons, totalBoosts);
        }