From a3d06f2f329a6d21b9a79aed8b39f1d56fa933e6 Mon Sep 17 00:00:00 2001 From: Matan Shukry Date: Sat, 25 Dec 2021 22:25:54 +0200 Subject: Scripts/Spells: Implemented various rogue spells (#26319) * Ruthlessness * Mastery: Main Gauche * Venomous Wounds * Symbols of Death * Backstab * Premeditation * Grand Melee * True Bearing * Slice and Dice * Roll the Bones --- src/server/game/Spells/Spell.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/server/game/Spells/Spell.cpp') 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 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() -- cgit v1.2.3