Core/Spells: Update effect value calculations

Port From (https://github.com/TrinityCore/TrinityCore/commit/0b882b2fa4305c8554d675d6c5ba46457c5188e4)
This commit is contained in:
hondacrx
2021-09-21 18:50:51 -04:00
parent 4aabb695d5
commit d450d62adb
+7 -17
View File
@@ -4119,30 +4119,20 @@ namespace Game.Spells
} }
} }
if (IsAura(AuraType.ModRating) && (MiscValue & ((1 << (int)CombatRating.Corruption) | 1 << ((int)CombatRating.CorruptionResistance))) == 0) if (Scaling.Class == -6)
{ {
GtGenericMultByILvlRecord ratingMult = CliDB.CombatRatingsMultByILvlGameTable.GetRow(effectiveItemLevel); GtGenericMultByILvlRecord staminaMult = CliDB.StaminaMultByILvlGameTable.GetRow(effectiveItemLevel);
if (ratingMult != null) if (staminaMult != null)
{ {
ItemSparseRecord itemSparse = CliDB.ItemSparseStorage.LookupByKey(itemId); ItemSparseRecord itemSparse = CliDB.ItemSparseStorage.LookupByKey(itemId);
if (itemSparse != null) if (itemSparse != null)
tempValue *= CliDB.GetIlvlStatMultiplier(ratingMult, itemSparse.inventoryType); tempValue *= CliDB.GetIlvlStatMultiplier(staminaMult, itemSparse.inventoryType);
}
else if (IsAura(AuraType.ModStat) && MiscValue == (int)Stats.Stamina)
{
GtGenericMultByILvlRecord staminaMult = CliDB.StaminaMultByILvlGameTable.GetRow(effectiveItemLevel);
if (staminaMult != null)
{
ItemSparseRecord itemSparse = CliDB.ItemSparseStorage.LookupByKey(itemId);
if (itemSparse != null)
tempValue *= CliDB.GetIlvlStatMultiplier(staminaMult, itemSparse.inventoryType);
}
} }
} }
} }
tempValue *= Scaling.Coefficient; tempValue *= Scaling.Coefficient;
if (tempValue != 0.0f && tempValue < 1.0f) if (tempValue > 0.0f && tempValue < 1.0f)
tempValue = 1.0f; tempValue = 1.0f;
return (int)Math.Round(tempValue); return (int)Math.Round(tempValue);
@@ -4283,7 +4273,7 @@ namespace Game.Spells
return ExpectedStatType.PlayerHealth; return ExpectedStatType.PlayerHealth;
case SpellEffectName.Energize: case SpellEffectName.Energize:
case SpellEffectName.PowerBurn: case SpellEffectName.PowerBurn:
if (MiscValue == 0) if (MiscValue == (int)PowerType.Mana)
return ExpectedStatType.PlayerMana; return ExpectedStatType.PlayerMana;
return ExpectedStatType.None; return ExpectedStatType.None;
case SpellEffectName.PowerDrain: case SpellEffectName.PowerDrain:
@@ -4344,7 +4334,7 @@ namespace Game.Spells
case AuraType.ModPowerRegen: case AuraType.ModPowerRegen:
case AuraType.PowerBurn: case AuraType.PowerBurn:
case AuraType.ModMaxPower: case AuraType.ModMaxPower:
if (MiscValue == 0) if (MiscValue == (int)PowerType.Mana)
return ExpectedStatType.PlayerMana; return ExpectedStatType.PlayerMana;
return ExpectedStatType.None; return ExpectedStatType.None;
default: default: