aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp14
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()