aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorMatan Shukry <matanshukry@gmail.com>2021-12-25 22:25:54 +0200
committerGitHub <noreply@github.com>2021-12-25 21:25:54 +0100
commita3d06f2f329a6d21b9a79aed8b39f1d56fa933e6 (patch)
treec45cb5cb06c1ced9e6a425b999da30ffe106e8b8 /src/server/game/Spells/Spell.cpp
parentb221f4b37251db2206dd14d46c00f1b6f1f16480 (diff)
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
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()