diff options
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 6e7dc569cc1..5953cab5b56 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -7338,10 +7338,20 @@ void Spell::DelayedChannel() bool Spell::HasPowerTypeCost(Powers power) const { - return std::find_if(m_powerCost.cbegin(), m_powerCost.cend(), [power](SpellPowerCost const& cost) + return GetPowerTypeCostAmount(power).has_value(); +} + +Optional<int32> Spell::GetPowerTypeCostAmount(Powers power) const +{ + auto itr = std::find_if(m_powerCost.cbegin(), m_powerCost.cend(), [power](SpellPowerCost const& cost) { return cost.Power == power; - }) != m_powerCost.cend(); + }); + + if (itr == m_powerCost.cend()) + return { }; + + return itr->Amount; } bool Spell::UpdatePointers() |
