aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp7
-rw-r--r--src/server/scripts/Spells/spell_item.cpp6
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp6
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp6
4 files changed, 8 insertions, 17 deletions
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index 4ab6aa87cc8..25d1039f162 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -1846,12 +1846,11 @@ class spell_dru_t3_8p_bonus : public AuraScript
return;
Unit* caster = eventInfo.GetActor();
- std::vector<SpellPowerCost> const& costs = spell->GetPowerCost();
- auto m = std::find_if(costs.begin(), costs.end(), [](SpellPowerCost const& cost) { return cost.Power == POWER_MANA; });
- if (m == costs.end())
+ Optional<int32> manaCost = spell->GetPowerTypeCostAmount(POWER_MANA);
+ if (!manaCost)
return;
- int32 amount = CalculatePct(m->Amount, aurEff->GetAmount());
+ int32 amount = CalculatePct(*manaCost, aurEff->GetAmount());
CastSpellExtraArgs args(aurEff);
args.AddSpellBP0(amount);
caster->CastSpell(nullptr, SPELL_DRUID_EXHILARATE, args);
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 347d8936474..5c627e283a5 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -1658,12 +1658,8 @@ class spell_item_pendant_of_the_violet_eye : public AuraScript
bool CheckProc(ProcEventInfo& eventInfo)
{
if (Spell const* spell = eventInfo.GetProcSpell())
- {
- std::vector<SpellPowerCost> const& costs = spell->GetPowerCost();
- auto m = std::find_if(costs.begin(), costs.end(), [](SpellPowerCost const& cost) { return cost.Power == POWER_MANA && cost.Amount > 0; });
- if (m != costs.end())
+ if (spell->GetPowerTypeCostAmount(POWER_MANA) > 0)
return true;
- }
return false;
}
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index be3a481cf76..961cde8864d 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -1031,10 +1031,8 @@ class spell_rog_sinister_strike : public SpellScript
damagePerCombo += t5->GetAmount();
int32 finalDamage = damagePerCombo;
- std::vector<SpellPowerCost> const& costs = GetSpell()->GetPowerCost();
- auto c = std::find_if(costs.begin(), costs.end(), [](SpellPowerCost const& cost) { return cost.Power == POWER_COMBO_POINTS; });
- if (c != costs.end())
- finalDamage *= c->Amount;
+ if (Optional<int32> comboPointCost = GetSpell()->GetPowerTypeCostAmount(POWER_COMBO_POINTS))
+ finalDamage *= *comboPointCost;
SetHitDamage(finalDamage);
}
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index 6293afaefee..da89bd4c197 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -1012,11 +1012,9 @@ class spell_sha_item_mana_surge : public AuraScript
{
PreventDefaultAction();
- std::vector<SpellPowerCost> const& costs = eventInfo.GetProcSpell()->GetPowerCost();
- auto m = std::find_if(costs.begin(), costs.end(), [](SpellPowerCost const& cost) { return cost.Power == POWER_MANA; });
- if (m != costs.end())
+ if (Optional<int32> manaCost = eventInfo.GetProcSpell()->GetPowerTypeCostAmount(POWER_MANA))
{
- int32 mana = CalculatePct(m->Amount, 35);
+ int32 mana = CalculatePct(*manaCost, 35);
if (mana > 0)
{
CastSpellExtraArgs args(aurEff);