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