From ef73fb171b3b458382d3eb5462d33456bb346af2 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 4 Mar 2021 20:39:05 -0500 Subject: [PATCH] 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) --- Source/Game/Spells/SpellInfo.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Source/Game/Spells/SpellInfo.cs b/Source/Game/Spells/SpellInfo.cs index 63d4dad52..79e1e4505 100644 --- a/Source/Game/Spells/SpellInfo.cs +++ b/Source/Game/Spells/SpellInfo.cs @@ -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;