diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-01-20 22:49:52 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-01-20 22:49:52 +0100 |
| commit | 26376d89e165aece42e58213632ef43ecb0d81b3 (patch) | |
| tree | e04d20cee99d5f441a4cda7aed315bdb0bc2ca5b /src/server/scripts | |
| parent | 0e36fd93601f10949c848c1fc30ee3b70f2cecfa (diff) | |
Scripts/Spells: Use Spell::GetPowerTypeCostAmount where possible instead of iterating Spell::GetPowerCost
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Spells/spell_druid.cpp | 7 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 6 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_rogue.cpp | 6 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_shaman.cpp | 6 |
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); |
