Core/Spells: Moved power cost RequiredAuraSpellID condition checking to make sure all overloads of SpellInfo.CalcPowerCost take it into account

Port From (https://github.com/TrinityCore/TrinityCore/commit/ea63cd882c9f1438ab75036420a2bd3c18a3ecb5)
This commit is contained in:
hondacrx
2021-03-04 20:39:05 -05:00
parent f0bbedddee
commit ef73fb171b
+4 -8
View File
@@ -2677,11 +2677,7 @@ namespace Game.Spells
SpellPowerCost CalcPowerCost(PowerType powerType, bool optionalCost, Unit caster, SpellSchoolMask schoolMask, Spell spell = null)
{
var spellPowerRecord = PowerCosts.First(spellPowerEntry =>
{
return spellPowerEntry.PowerType == powerType;
});
var spellPowerRecord = PowerCosts.First(spellPowerEntry => spellPowerEntry?.PowerType == powerType);
if (spellPowerRecord == null)
return null;
@@ -2690,6 +2686,9 @@ namespace Game.Spells
SpellPowerCost CalcPowerCost(SpellPowerRecord power, bool optionalCost, Unit caster, SpellSchoolMask schoolMask, Spell spell = null)
{
if (power.RequiredAuraSpellID != 0 && !caster.HasAura(power.RequiredAuraSpellID))
return null;
SpellPowerCost cost = new();
// Spell drain all exist power on cast (Only paladin lay of Hands)
@@ -2895,9 +2894,6 @@ namespace Game.Spells
if (power == null)
continue;
if (power.RequiredAuraSpellID != 0 && !caster.HasAura(power.RequiredAuraSpellID))
continue;
SpellPowerCost cost = CalcPowerCost(power, false, caster, schoolMask, spell);
if (cost != null)
getOrCreatePowerCost(cost.Power).Amount += cost.Amount;