diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2017-06-19 23:20:06 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2017-06-19 23:20:06 -0300 |
| commit | 85a7d5ce9ac68b30da2277cc91d4b70358f1880d (patch) | |
| tree | df3d2084ee2e35008903c03178039b9c986e2d08 /src/server/scripts/Spells | |
| parent | 052fc24315ace866ea1cf610e85df119b68100c9 (diff) | |
Core: ported headers cleanup from master branch
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 352 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_druid.cpp | 223 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 365 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_holiday.cpp | 182 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_hunter.cpp | 147 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 491 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 152 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 308 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_pet.cpp | 20 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 133 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 155 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_rogue.cpp | 138 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_shaman.cpp | 193 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_warlock.cpp | 152 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_warrior.cpp | 135 |
15 files changed, 1328 insertions, 1818 deletions
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index a55dbd765a0..bd2e36bc30f 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -21,12 +21,20 @@ * Scriptnames of files in this file should be prefixed with "spell_dk_". */ +#include "ScriptMgr.h" +#include "Containers.h" +#include "DBCStores.h" +#include "Map.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" #include "Player.h" #include "PlayerAI.h" -#include "ScriptMgr.h" -#include "SpellScript.h" +#include "Spell.h" #include "SpellAuraEffects.h" -#include "Containers.h" +#include "SpellHistory.h" +#include "SpellMgr.h" +#include "SpellScript.h" +#include "TemporarySummon.h" enum DeathKnightSpells { @@ -117,14 +125,15 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_ACCLIMATION_HOLY) || - !sSpellMgr->GetSpellInfo(SPELL_DK_ACCLIMATION_FIRE) || - !sSpellMgr->GetSpellInfo(SPELL_DK_ACCLIMATION_FROST) || - !sSpellMgr->GetSpellInfo(SPELL_DK_ACCLIMATION_NATURE) || - !sSpellMgr->GetSpellInfo(SPELL_DK_ACCLIMATION_SHADOW) || - !sSpellMgr->GetSpellInfo(SPELL_DK_ACCLIMATION_ARCANE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_ACCLIMATION_HOLY, + SPELL_DK_ACCLIMATION_FIRE, + SPELL_DK_ACCLIMATION_NATURE, + SPELL_DK_ACCLIMATION_FROST, + SPELL_DK_ACCLIMATION_SHADOW, + SPELL_DK_ACCLIMATION_ARCANE + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -206,9 +215,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_ADVANTAGE_T10_4P_MELEE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_ADVANTAGE_T10_4P_MELEE }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -317,9 +324,7 @@ class spell_dk_anti_magic_shell_self : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_RUNIC_POWER_ENERGIZE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_RUNIC_POWER_ENERGIZE }); } void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/) @@ -337,7 +342,7 @@ class spell_dk_anti_magic_shell_self : public SpellScriptLoader // damage absorbed by Anti-Magic Shell energizes the DK with additional runic power. // This, if I'm not mistaken, shows that we get back ~20% of the absorbed damage as runic power. int32 bp = CalculatePct(absorbAmount, 20); - GetTarget()->CastCustomSpell(SPELL_DK_RUNIC_POWER_ENERGIZE, SPELLVALUE_BASE_POINT0, bp, GetTarget(), true, NULL, aurEff); + GetTarget()->CastCustomSpell(SPELL_DK_RUNIC_POWER_ENERGIZE, SPELLVALUE_BASE_POINT0, bp, GetTarget(), true, nullptr, aurEff); } void Register() override @@ -381,9 +386,7 @@ class spell_dk_anti_magic_zone : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_ANTI_MAGIC_SHELL_TALENT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_ANTI_MAGIC_SHELL_TALENT }); } void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/) @@ -463,9 +466,7 @@ class spell_dk_blood_boil : public SpellScriptLoader private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_BOIL_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_BLOOD_BOIL_TRIGGERED }); } bool Load() override @@ -506,18 +507,9 @@ class spell_dk_blood_gorged : public SpellScriptLoader { PrepareAuraScript(spell_dk_blood_gorged_AuraScript); - public: - spell_dk_blood_gorged_AuraScript() - { - _procTarget = nullptr; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_GORGED_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_BLOOD_GORGED_HEAL }); } bool CheckProc(ProcEventInfo& /*eventInfo*/) @@ -544,7 +536,7 @@ class spell_dk_blood_gorged : public SpellScriptLoader } private: - Unit* _procTarget; + Unit* _procTarget = nullptr; }; AuraScript* GetAuraScript() const override @@ -592,9 +584,7 @@ class spell_dk_butchery : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_BUTCHERY_RUNIC_POWER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_BUTCHERY_RUNIC_POWER }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -649,27 +639,21 @@ class spell_dk_corpse_explosion : public SpellScriptLoader { PrepareSpellScript(spell_dk_corpse_explosion_SpellScript); - public: - spell_dk_corpse_explosion_SpellScript() - { - _target = nullptr; - } - - private: bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_CORPSE_EXPLOSION_TRIGGERED) - || !sSpellMgr->GetSpellInfo(SPELL_DK_GHOUL_EXPLODE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_CORPSE_EXPLOSION_VISUAL) - || !sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_1].CalcValue())) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_CORPSE_EXPLOSION_TRIGGERED, + SPELL_DK_GHOUL_EXPLODE, + SPELL_DK_CORPSE_EXPLOSION_VISUAL, + static_cast<uint32>(spellInfo->Effects[EFFECT_1].CalcValue()) + }); } void CheckTarget(WorldObject*& target) { if (CorpseExplosionCheck(GetCaster()->GetGUID(), true)(target)) - target = NULL; + target = nullptr; _target = target; } @@ -698,7 +682,7 @@ class spell_dk_corpse_explosion : public SpellScriptLoader if (effIndex == EFFECT_0) GetCaster()->CastCustomSpell(GetSpellInfo()->Effects[EFFECT_1].CalcValue(), SPELLVALUE_BASE_POINT0, GetEffectValue(), target, true); else if (effIndex == EFFECT_1) - GetCaster()->CastCustomSpell(GetEffectValue(), SPELLVALUE_BASE_POINT0, GetSpell()->CalculateDamage(EFFECT_0, NULL), target, true); + GetCaster()->CastCustomSpell(GetEffectValue(), SPELLVALUE_BASE_POINT0, GetSpell()->CalculateDamage(EFFECT_0, nullptr), target, true); } void HandleCorpseExplosion(SpellEffIndex effIndex) @@ -729,8 +713,7 @@ class spell_dk_corpse_explosion : public SpellScriptLoader OnEffectHitTarget += SpellEffectFn(spell_dk_corpse_explosion_SpellScript::HandleCorpseExplosion, EFFECT_1, SPELL_EFFECT_DUMMY); } - private: - WorldObject* _target; + WorldObject* _target = nullptr; }; SpellScript* GetSpellScript() const override @@ -814,7 +797,7 @@ class spell_dk_death_and_decay : public SpellScriptLoader void HandleDummyTick(AuraEffect const* aurEff) { if (Unit* caster = GetCaster()) - caster->CastCustomSpell(SPELL_DK_DEATH_AND_DECAY_DAMAGE, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, NULL, aurEff); + caster->CastCustomSpell(SPELL_DK_DEATH_AND_DECAY_DAMAGE, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, nullptr, aurEff); } void Register() override @@ -841,9 +824,7 @@ class spell_dk_death_coil : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_COIL_DAMAGE) || !sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_COIL_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_DEATH_COIL_DAMAGE, SPELL_DK_DEATH_COIL_HEAL }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -855,13 +836,13 @@ class spell_dk_death_coil : public SpellScriptLoader if (caster->IsFriendlyTo(target)) { int32 bp = int32(damage * 1.5f); - caster->CastCustomSpell(target, SPELL_DK_DEATH_COIL_HEAL, &bp, NULL, NULL, true); + caster->CastCustomSpell(target, SPELL_DK_DEATH_COIL_HEAL, &bp, nullptr, nullptr, true); } else { if (AuraEffect const* auraEffect = caster->GetAuraEffect(SPELL_DK_ITEM_SIGIL_VENGEFUL_HEART, EFFECT_1)) damage += auraEffect->GetBaseAmount(); - caster->CastCustomSpell(target, SPELL_DK_DEATH_COIL_DAMAGE, &damage, NULL, NULL, true); + caster->CastCustomSpell(target, SPELL_DK_DEATH_COIL_DAMAGE, &damage, nullptr, nullptr, true); } } } @@ -998,7 +979,7 @@ class spell_dk_death_pact : public SpellScriptLoader void FilterTargets(std::list<WorldObject*>& targetList) { - Unit* target = NULL; + Unit* target = nullptr; for (std::list<WorldObject*>::iterator itr = targetList.begin(); itr != targetList.end(); ++itr) { if (Unit* unit = (*itr)->ToUnit()) @@ -1117,9 +1098,7 @@ class spell_dk_death_strike : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_DEATH_STRIKE_HEAL }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1132,7 +1111,7 @@ class spell_dk_death_strike : public SpellScriptLoader // Improved Death Strike if (AuraEffect const* aurEff = caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_DEATHKNIGHT, DK_ICON_ID_IMPROVED_DEATH_STRIKE, 0)) AddPct(bp, caster->CalculateSpellDamage(caster, aurEff->GetSpellInfo(), 2)); - caster->CastCustomSpell(caster, SPELL_DK_DEATH_STRIKE_HEAL, &bp, NULL, NULL, false); + caster->CastCustomSpell(caster, SPELL_DK_DEATH_STRIKE_HEAL, &bp, nullptr, nullptr, false); } } @@ -1161,10 +1140,8 @@ class spell_dk_ghoul_explode : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_CORPSE_EXPLOSION_TRIGGERED) - || spellInfo->Effects[EFFECT_2].CalcValue() <= 0) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_CORPSE_EXPLOSION_TRIGGERED }) && + spellInfo->Effects[EFFECT_2].CalcValue() > 0; } void HandleDamage(SpellEffIndex /*effIndex*/) @@ -1209,9 +1186,7 @@ class spell_dk_glyph_of_death_grip : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_GRIP_INITIAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_DEATH_GRIP_INITIAL }); } void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) @@ -1244,9 +1219,7 @@ class spell_dk_glyph_of_scourge_strike : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_GLYPH_OF_SCOURGE_STRIKE_SCRIPT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_GLYPH_OF_SCOURGE_STRIKE_SCRIPT }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1359,19 +1332,20 @@ class spell_dk_improved_blood_presence : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_BLOOD_PRESENCE, + SPELL_DK_FROST_PRESENCE, + SPELL_DK_UNHOLY_PRESENCE, + SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED + }); } void HandleEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); if ((target->HasAura(SPELL_DK_FROST_PRESENCE) || target->HasAura(SPELL_DK_UNHOLY_PRESENCE)) && !target->HasAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED)) - target->CastCustomSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT1, aurEff->GetAmount(), target, true, NULL, aurEff); + target->CastCustomSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT1, aurEff->GetAmount(), target, true, nullptr, aurEff); } void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1406,9 +1380,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_IMPROVED_BLOOD_PRESENCE_HEAL }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1452,19 +1424,20 @@ class spell_dk_improved_frost_presence : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_BLOOD_PRESENCE, + SPELL_DK_FROST_PRESENCE, + SPELL_DK_UNHOLY_PRESENCE, + SPELL_DK_FROST_PRESENCE_TRIGGERED + }); } void HandleEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); if ((target->HasAura(SPELL_DK_BLOOD_PRESENCE) || target->HasAura(SPELL_DK_UNHOLY_PRESENCE)) && !target->HasAura(SPELL_DK_FROST_PRESENCE_TRIGGERED)) - target->CastCustomSpell(SPELL_DK_FROST_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), target, true, NULL, aurEff); + target->CastCustomSpell(SPELL_DK_FROST_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), target, true, nullptr, aurEff); } void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1499,13 +1472,14 @@ class spell_dk_improved_unholy_presence : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED) - || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_BLOOD_PRESENCE, + SPELL_DK_FROST_PRESENCE, + SPELL_DK_UNHOLY_PRESENCE, + SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, + SPELL_DK_UNHOLY_PRESENCE_TRIGGERED + }); } void HandleEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1515,11 +1489,11 @@ class spell_dk_improved_unholy_presence : public SpellScriptLoader { // Not listed as any effect, only base points set in dbc int32 basePoints = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); - target->CastCustomSpell(target, SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, &basePoints, &basePoints, &basePoints, true, NULL, aurEff); + target->CastCustomSpell(target, SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, &basePoints, &basePoints, &basePoints, true, nullptr, aurEff); } if ((target->HasAura(SPELL_DK_BLOOD_PRESENCE) || target->HasAura(SPELL_DK_FROST_PRESENCE)) && !target->HasAura(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED)) - target->CastCustomSpell(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), target, true, NULL, aurEff); + target->CastCustomSpell(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), target, true, nullptr, aurEff); } void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1557,9 +1531,7 @@ class spell_dk_pvp_4p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_RUNIC_RETURN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_RUNIC_RETURN }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1602,9 +1574,7 @@ class spell_dk_mark_of_blood : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_MARK_OF_BLOOD_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_MARK_OF_BLOOD_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1637,9 +1607,7 @@ class spell_dk_necrosis : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_NECROSIS_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_NECROSIS_DAMAGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1678,11 +1646,12 @@ class spell_dk_pestilence : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_GLYPH_OF_DISEASE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PLAGUE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_FEVER)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_GLYPH_OF_DISEASE, + SPELL_DK_BLOOD_PLAGUE, + SPELL_DK_FROST_FEVER + }); } void OnHit(SpellEffIndex /*effIndex*/) @@ -1765,19 +1734,19 @@ class spell_dk_presence : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE) - || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1) - || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_FROST_PRESENCE_R1) - || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1) - || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED) - || !sSpellMgr->GetSpellInfo(SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED) - || !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_PRESENCE_TRIGGERED) - || !sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED)) - return false; - - return true; + return ValidateSpellInfo( + { + SPELL_DK_BLOOD_PRESENCE, + SPELL_DK_FROST_PRESENCE, + SPELL_DK_UNHOLY_PRESENCE, + SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1, + SPELL_DK_IMPROVED_FROST_PRESENCE_R1, + SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1, + SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, + SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, + SPELL_DK_FROST_PRESENCE_TRIGGERED, + SPELL_DK_UNHOLY_PRESENCE_TRIGGERED + }); } void HandleImprovedBloodPresence(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1788,7 +1757,7 @@ class spell_dk_presence : public SpellScriptLoader target->CastSpell(target, SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, true); else if (AuraEffect const* impAurEff = target->GetAuraEffectOfRankedSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1, EFFECT_0)) if (!target->HasAura(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED)) - target->CastCustomSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT1, impAurEff->GetAmount(), target, true, NULL, aurEff); + target->CastCustomSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT1, impAurEff->GetAmount(), target, true, nullptr, aurEff); } void HandleImprovedFrostPresence(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1799,7 +1768,7 @@ class spell_dk_presence : public SpellScriptLoader target->CastSpell(target, SPELL_DK_FROST_PRESENCE_TRIGGERED, true); else if (AuraEffect const* impAurEff = target->GetAuraEffectOfRankedSpell(SPELL_DK_IMPROVED_FROST_PRESENCE_R1, EFFECT_0)) if (!target->HasAura(SPELL_DK_FROST_PRESENCE_TRIGGERED)) - target->CastCustomSpell(SPELL_DK_FROST_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, impAurEff->GetAmount(), target, true, NULL, aurEff); + target->CastCustomSpell(SPELL_DK_FROST_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, impAurEff->GetAmount(), target, true, nullptr, aurEff); } void HandleImprovedUnholyPresence(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1815,10 +1784,10 @@ class spell_dk_presence : public SpellScriptLoader { // Not listed as any effect, only base points set int32 bp = impAurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue(); - target->CastCustomSpell(target, SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, &bp, &bp, &bp, true, NULL, aurEff); + target->CastCustomSpell(target, SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED, &bp, &bp, &bp, true, nullptr, aurEff); } else if (!target->HasAura(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED)) - target->CastCustomSpell(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, impAurEff->GetAmount(), target, true, NULL, aurEff); + target->CastCustomSpell(SPELL_DK_UNHOLY_PRESENCE_TRIGGERED, SPELLVALUE_BASE_POINT0, impAurEff->GetAmount(), target, true, nullptr, aurEff); } } @@ -1879,22 +1848,15 @@ class spell_dk_raise_dead : public SpellScriptLoader { PrepareSpellScript(spell_dk_raise_dead_SpellScript); - public: - spell_dk_raise_dead_SpellScript() - { - _result = SPELL_CAST_OK; - _corpse = false; - } - - private: bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_1].CalcValue()) - || !sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_2].CalcValue()) - || !sSpellMgr->GetSpellInfo(SPELL_DK_RAISE_DEAD_USE_REAGENT) - || !sSpellMgr->GetSpellInfo(SPELL_DK_MASTER_OF_GHOULS)) - return false; - return true; + return ValidateSpellInfo( + { + static_cast<uint32>(spellInfo->Effects[EFFECT_1].CalcValue()), + static_cast<uint32>(spellInfo->Effects[EFFECT_2].CalcValue()), + SPELL_DK_RAISE_DEAD_USE_REAGENT, + SPELL_DK_MASTER_OF_GHOULS + }); } bool Load() override @@ -1957,7 +1919,7 @@ class spell_dk_raise_dead : public SpellScriptLoader { // Don't add caster to target map, if we found a corpse to raise dead if (_corpse) - target = NULL; + target = nullptr; } void ConsumeReagents() @@ -1984,7 +1946,7 @@ class spell_dk_raise_dead : public SpellScriptLoader SpellCastTargets targets; targets.SetDst(*GetHitUnit()); - GetCaster()->CastSpell(targets, spellInfo, NULL, TRIGGERED_FULL_MASK); + GetCaster()->CastSpell(targets, spellInfo, nullptr, TRIGGERED_FULL_MASK); } void OverrideCooldown() @@ -2007,9 +1969,8 @@ class spell_dk_raise_dead : public SpellScriptLoader AfterCast += SpellCastFn(spell_dk_raise_dead_SpellScript::OverrideCooldown); } - private: - SpellCastResult _result; - bool _corpse; + SpellCastResult _result = SPELL_CAST_OK; + bool _corpse = false; }; SpellScript* GetSpellScript() const override @@ -2094,15 +2055,13 @@ class spell_dk_scent_of_blood : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_SCENT_OF_BLOOD)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_SCENT_OF_BLOOD }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_DK_SCENT_OF_BLOOD, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_DK_SCENT_OF_BLOOD, true, nullptr, aurEff); ModStackAmount(-1); } @@ -2170,9 +2129,7 @@ class spell_dk_scourge_strike : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_SCOURGE_STRIKE_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_SCOURGE_STRIKE_TRIGGERED }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -2197,7 +2154,7 @@ class spell_dk_scourge_strike : public SpellScriptLoader if (AuraEffect* aurEff = caster->GetAuraEffectOfRankedSpell(SPELL_DK_BLACK_ICE_R1, EFFECT_0)) AddPct(bp, aurEff->GetAmount()); - caster->CastCustomSpell(unitTarget, SPELL_DK_SCOURGE_STRIKE_TRIGGERED, &bp, NULL, NULL, true); + caster->CastCustomSpell(unitTarget, SPELL_DK_SCOURGE_STRIKE_TRIGGERED, &bp, nullptr, nullptr, true); } } @@ -2277,9 +2234,7 @@ class spell_dk_sudden_doom : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_COIL_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_DEATH_COIL_R1 }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2329,14 +2284,15 @@ class spell_dk_threat_of_thassarian : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_OBLITERATE_OFF_HAND_R1) || - !sSpellMgr->GetSpellInfo(SPELL_DK_FROST_STRIKE_OFF_HAND_R1) || - !sSpellMgr->GetSpellInfo(SPELL_DK_PLAGUE_STRIKE_OFF_HAND_R1) || - !sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_OFF_HAND_R1) || - !sSpellMgr->GetSpellInfo(SPELL_DK_RUNE_STRIKE_OFF_HAND_R1) || - !sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_STRIKE_OFF_HAND_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_OBLITERATE_OFF_HAND_R1, + SPELL_DK_FROST_STRIKE_OFF_HAND_R1, + SPELL_DK_PLAGUE_STRIKE_OFF_HAND_R1, + SPELL_DK_DEATH_STRIKE_OFF_HAND_R1, + SPELL_DK_RUNE_STRIKE_OFF_HAND_R1, + SPELL_DK_BLOOD_STRIKE_OFF_HAND_R1 + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2406,10 +2362,11 @@ class spell_dk_unholy_blight : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_UNHOLY_BLIGHT_DAMAGE) || - !sSpellMgr->GetSpellInfo(SPELL_DK_GLYPH_OF_UNHOLY_BLIGHT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DK_UNHOLY_BLIGHT_DAMAGE, + SPELL_DK_GLYPH_OF_UNHOLY_BLIGHT + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2486,9 +2443,7 @@ class spell_dk_vendetta : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_VENDETTA_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_VENDETTA_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2523,9 +2478,7 @@ class spell_dk_wandering_plague : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_WANDERING_PLAGUE_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DK_WANDERING_PLAGUE_DAMAGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2566,13 +2519,6 @@ class spell_dk_will_of_the_necropolis : public SpellScriptLoader { PrepareAuraScript(spell_dk_will_of_the_necropolis_AuraScript); - public: - spell_dk_will_of_the_necropolis_AuraScript() - { - absorbPct = 0; - } - - private: bool Validate(SpellInfo const* spellInfo) override { SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1); @@ -2590,7 +2536,7 @@ class spell_dk_will_of_the_necropolis : public SpellScriptLoader return true; } - uint32 absorbPct; + uint32 absorbPct = 0; bool Load() override { @@ -2707,9 +2653,7 @@ public: bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(uint32(spellInfo->Effects[EFFECT_0].CalcValue()))) - return false; - return true; + return ValidateSpellInfo({ static_cast<uint32>(spellInfo->Effects[EFFECT_0].CalcValue()) }); } bool Load() override @@ -2778,11 +2722,12 @@ class player_ghoulAI : public PlayerAI }; // 46619 - Raise Ally -#define DkRaiseAllyScriptName "spell_dk_raise_ally" class spell_dk_raise_ally : public SpellScriptLoader { public: - spell_dk_raise_ally() : SpellScriptLoader(DkRaiseAllyScriptName) { } + static char constexpr const ScriptName[] = "spell_dk_raise_ally"; + + spell_dk_raise_ally() : SpellScriptLoader(ScriptName) { } class spell_dk_raise_ally_SpellScript : public SpellScript { @@ -2825,7 +2770,7 @@ public: Default SUMMON_CATEGORY_PUPPET behaviour sets possesor as originalCaster, in this case we need caster as possesor and originalCaster as owner */ - //summon->RemoveCharmedBy(NULL); + //summon->RemoveCharmedBy(nullptr); summon->SetCharmedBy(caster, CHARM_TYPE_POSSESS); @@ -2849,7 +2794,7 @@ public: void SetGhoul(SpellEffIndex /*effIndex*/) { if (Aura* aura = GetHitAura()) - if (spell_dk_raise_ally_AuraScript* script = dynamic_cast<spell_dk_raise_ally_AuraScript*>(aura->GetScriptByName(DkRaiseAllyScriptName))) + if (spell_dk_raise_ally_AuraScript* script = aura->GetScript<spell_dk_raise_ally_AuraScript>(ScriptName)) script->SetGhoulGuid(_ghoulGuid); } @@ -2874,12 +2819,6 @@ public: PrepareAuraScript(spell_dk_raise_ally_AuraScript); public: - spell_dk_raise_ally_AuraScript() - { - oldAI = nullptr; - oldAIState = false; - } - void SetGhoulGuid(ObjectGuid guid) { ghoulGuid = guid; @@ -2929,8 +2868,8 @@ public: } ObjectGuid ghoulGuid; - PlayerAI* oldAI; - bool oldAIState; + PlayerAI* oldAI = nullptr; + bool oldAIState = false; }; AuraScript* GetAuraScript() const override @@ -2938,6 +2877,7 @@ public: return new spell_dk_raise_ally_AuraScript(); } }; +char constexpr const spell_dk_raise_ally::ScriptName[]; // 47480 - Thrash class spell_dk_ghoul_thrash : public SpellScriptLoader @@ -2951,9 +2891,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_GHOUL_FRENZY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_GHOUL_FRENZY }); } void CalcDamage() diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 11a47b025d8..d57bd1e3008 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -21,12 +21,14 @@ * Scriptnames of files in this file should be prefixed with "spell_dru_". */ -#include "Player.h" -#include "GameTime.h" #include "ScriptMgr.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" #include "Containers.h" +#include "GameTime.h" +#include "Player.h" +#include "SpellAuraEffects.h" +#include "SpellHistory.h" +#include "SpellMgr.h" +#include "SpellScript.h" enum DruidSpells { @@ -101,9 +103,7 @@ class spell_dru_barkskin : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_BARKSKIN_01)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_BARKSKIN_01 }); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -136,10 +136,11 @@ class spell_dru_bear_form_passive : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_ENRAGE) - || !sSpellMgr->GetSpellInfo(SPELL_DRUID_ITEM_T10_FERAL_4P_BONUS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_ENRAGE, + SPELL_DRUID_ITEM_T10_FERAL_4P_BONUS + }); } void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) @@ -215,11 +216,11 @@ class spell_dru_eclipse : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_ECLIPSE_LUNAR_PROC)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_ECLIPSE_SOLAR_PROC)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_ECLIPSE_LUNAR_PROC, + SPELL_DRUID_ECLIPSE_SOLAR_PROC + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -301,12 +302,13 @@ class spell_dru_enrage : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_KING_OF_THE_JUNGLE) - || !sSpellMgr->GetSpellInfo(SPELL_DRUID_ENRAGE_MOD_DAMAGE) - || !sSpellMgr->GetSpellInfo(SPELL_DRUID_ENRAGED_DEFENSE) - || !sSpellMgr->GetSpellInfo(SPELL_DRUID_ITEM_T10_FERAL_4P_BONUS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_KING_OF_THE_JUNGLE, + SPELL_DRUID_ENRAGE_MOD_DAMAGE, + SPELL_DRUID_ENRAGED_DEFENSE, + SPELL_DRUID_ITEM_T10_FERAL_4P_BONUS + }); } void RecalculateBaseArmor() @@ -370,13 +372,14 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_FORMS_TRINKET_BEAR) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_FORMS_TRINKET_CAT) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_FORMS_TRINKET_MOONKIN) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_FORMS_TRINKET_NONE) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_FORMS_TRINKET_TREE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_FORMS_TRINKET_BEAR, + SPELL_DRUID_FORMS_TRINKET_CAT, + SPELL_DRUID_FORMS_TRINKET_MOONKIN, + SPELL_DRUID_FORMS_TRINKET_NONE, + SPELL_DRUID_FORMS_TRINKET_TREE + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -486,9 +489,7 @@ class spell_dru_glyph_of_barkskin : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_BARKSKIN_01)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_BARKSKIN_01 }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -521,9 +522,7 @@ class spell_dru_glyph_of_innervate : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_GLYPH_OF_INNERVATE_REGEN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_GLYPH_OF_INNERVATE_REGEN }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -562,9 +561,7 @@ class spell_dru_glyph_of_rake : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_GLYPH_OF_RAKE_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_GLYPH_OF_RAKE_TRIGGERED }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -603,9 +600,7 @@ class spell_dru_glyph_of_rejuvenation : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_GLYPH_OF_REJUVENATION_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_GLYPH_OF_REJUVENATION_HEAL }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -649,10 +644,11 @@ class spell_dru_glyph_of_shred : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_GLYPH_OF_RIP) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_RIP_DURATION_LACERATE_DMG)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_GLYPH_OF_RIP, + SPELL_DRUID_RIP_DURATION_LACERATE_DMG + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -708,9 +704,7 @@ class spell_dru_glyph_of_starfire : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_INCREASED_MOONFIRE_DURATION) || !sSpellMgr->GetSpellInfo(SPELL_DRUID_NATURES_SPLENDOR)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_INCREASED_MOONFIRE_DURATION, SPELL_DRUID_NATURES_SPLENDOR }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -762,9 +756,7 @@ class spell_dru_glyph_of_starfire_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_GLYPH_OF_STARFIRE_SCRIPT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_GLYPH_OF_STARFIRE_SCRIPT }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -892,11 +884,12 @@ class spell_dru_leader_of_the_pack : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_IMP_LEADER_OF_THE_PACK_R1) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_IMP_LEADER_OF_THE_PACK_HEAL) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_IMP_LEADER_OF_THE_PACK_MANA)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_IMP_LEADER_OF_THE_PACK_R1, + SPELL_DRUID_IMP_LEADER_OF_THE_PACK_HEAL, + SPELL_DRUID_IMP_LEADER_OF_THE_PACK_MANA + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -951,11 +944,11 @@ class spell_dru_lifebloom : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LIFEBLOOM_FINAL_HEAL)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LIFEBLOOM_ENERGIZE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, + SPELL_DRUID_LIFEBLOOM_ENERGIZE + }); } void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -972,15 +965,15 @@ class spell_dru_lifebloom : public SpellScriptLoader healAmount = caster->SpellHealingBonusDone(GetTarget(), GetSpellInfo(), healAmount, HEAL, stack); healAmount = GetTarget()->SpellHealingBonusTaken(caster, GetSpellInfo(), healAmount, HEAL, stack); - GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID()); + GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, nullptr, nullptr, true, nullptr, aurEff, GetCasterGUID()); // restore mana int32 returnMana = CalculatePct(caster->GetCreateMana(), GetSpellInfo()->ManaCostPercentage) * stack / 2; - caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, NULL, NULL, true, NULL, aurEff, GetCasterGUID()); + caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, nullptr, nullptr, true, nullptr, aurEff, GetCasterGUID()); return; } - GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID()); + GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, nullptr, nullptr, true, nullptr, aurEff, GetCasterGUID()); } void HandleDispel(DispelInfo* dispelInfo) @@ -995,15 +988,15 @@ class spell_dru_lifebloom : public SpellScriptLoader { healAmount = caster->SpellHealingBonusDone(target, GetSpellInfo(), healAmount, HEAL, dispelInfo->GetRemovedCharges()); healAmount = target->SpellHealingBonusTaken(caster, GetSpellInfo(), healAmount, HEAL, dispelInfo->GetRemovedCharges()); - target->CastCustomSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, NULL, GetCasterGUID()); + target->CastCustomSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, nullptr, nullptr, true, nullptr, nullptr, GetCasterGUID()); // restore mana int32 returnMana = CalculatePct(caster->GetCreateMana(), GetSpellInfo()->ManaCostPercentage) * dispelInfo->GetRemovedCharges() / 2; - caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, NULL, NULL, true, NULL, NULL, GetCasterGUID()); + caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, nullptr, nullptr, true, nullptr, nullptr, GetCasterGUID()); return; } - target->CastCustomSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, NULL, GetCasterGUID()); + target->CastCustomSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, nullptr, nullptr, true, nullptr, nullptr, GetCasterGUID()); } } } @@ -1033,9 +1026,7 @@ class spell_dru_living_seed : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LIVING_SEED_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_LIVING_SEED_PROC }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1074,15 +1065,13 @@ class spell_dru_living_seed_proc : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LIVING_SEED_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_LIVING_SEED_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastCustomSpell(SPELL_DRUID_LIVING_SEED_HEAL, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, NULL, aurEff); + GetTarget()->CastCustomSpell(SPELL_DRUID_LIVING_SEED_HEAL, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, nullptr, aurEff); } void Register() override @@ -1160,10 +1149,11 @@ class spell_dru_omen_of_clarity : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_BALANCE_T10_BONUS) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_BALANCE_T10_BONUS_PROC)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_BALANCE_T10_BONUS, + SPELL_DRUID_BALANCE_T10_BONUS_PROC + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) @@ -1304,12 +1294,13 @@ class spell_dru_revitalize : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_REVITALIZE_ENERGIZE_MANA) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_REVITALIZE_ENERGIZE_RAGE) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_REVITALIZE_ENERGIZE_ENERGY) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_REVITALIZE_ENERGIZE_RP)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_REVITALIZE_ENERGIZE_MANA, + SPELL_DRUID_REVITALIZE_ENERGIZE_RAGE, + SPELL_DRUID_REVITALIZE_ENERGIZE_ENERGY, + SPELL_DRUID_REVITALIZE_ENERGIZE_RP + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1414,9 +1405,7 @@ class spell_dru_savage_defense : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].TriggerSpell)) - return false; - return true; + return ValidateSpellInfo({ spellInfo->Effects[EFFECT_0].TriggerSpell }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1470,15 +1459,13 @@ class spell_dru_savage_roar : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_SAVAGE_ROAR)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_SAVAGE_ROAR }); } void AfterApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); - target->CastSpell(target, SPELL_DRUID_SAVAGE_ROAR, true, NULL, aurEff, GetCasterGUID()); + target->CastSpell(target, SPELL_DRUID_SAVAGE_ROAR, true, nullptr, aurEff, GetCasterGUID()); } void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1608,9 +1595,7 @@ class spell_dru_survival_instincts : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_SURVIVAL_INSTINCTS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_SURVIVAL_INSTINCTS }); } void AfterApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1746,11 +1731,12 @@ class spell_dru_t3_2p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_T3_PROC_ENERGIZE_MANA) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_T3_PROC_ENERGIZE_RAGE) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_T3_PROC_ENERGIZE_ENERGY)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_T3_PROC_ENERGIZE_MANA, + SPELL_DRUID_T3_PROC_ENERGIZE_RAGE, + SPELL_DRUID_T3_PROC_ENERGIZE_ENERGY + }); } bool CheckProc(ProcEventInfo& /*eventInfo*/) @@ -1809,9 +1795,7 @@ class spell_dru_t3_6p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_BLESSING_OF_THE_CLAW)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_BLESSING_OF_THE_CLAW }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1844,9 +1828,7 @@ class spell_dru_t3_8p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_EXHILARATE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_EXHILARATE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1886,9 +1868,7 @@ class spell_dru_t4_2p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_INFUSION)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_INFUSION }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1921,11 +1901,11 @@ class spell_dru_item_t6_trinket : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_BLESSING_OF_REMULOS) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_BLESSING_OF_ELUNE) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_BLESSING_OF_CENARIUS)) - return false; - return true; + return ValidateSpellInfo({ + SPELL_DRUID_BLESSING_OF_REMULOS, + SPELL_DRUID_BLESSING_OF_ELUNE, + SPELL_DRUID_BLESSING_OF_CENARIUS + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1987,10 +1967,11 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_T9_FERAL_RELIC_BEAR) || - !sSpellMgr->GetSpellInfo(SPELL_DRUID_T9_FERAL_RELIC_CAT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DRUID_T9_FERAL_RELIC_BEAR, + SPELL_DRUID_T9_FERAL_RELIC_CAT + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -2058,9 +2039,7 @@ class spell_dru_t10_balance_4p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_LANGUISH)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_LANGUISH }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2162,9 +2141,7 @@ class spell_dru_t10_restoration_4p_bonus_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_REJUVENATION_T10_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DRUID_REJUVENATION_T10_PROC }); } bool CheckProc(ProcEventInfo& eventInfo) diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 3e9184acc94..cbec8270e18 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -23,21 +23,23 @@ */ #include "ScriptMgr.h" -#include "GameTime.h" #include "Battleground.h" -#include "Cell.h" #include "CellImpl.h" -#include "GridNotifiers.h" +#include "DBCStores.h" +#include "GameTime.h" #include "GridNotifiersImpl.h" #include "Group.h" #include "InstanceScript.h" +#include "Item.h" #include "LFGMgr.h" +#include "Log.h" #include "Pet.h" #include "ReputationMgr.h" #include "SkillDiscovery.h" +#include "SpellAuraEffects.h" #include "SpellHistory.h" +#include "SpellMgr.h" #include "SpellScript.h" -#include "SpellAuraEffects.h" #include "Vehicle.h" class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader @@ -49,14 +51,7 @@ class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader { PrepareAuraScript(spell_gen_absorb0_hitlimit1_AuraScript); - public: - spell_gen_absorb0_hitlimit1_AuraScript() - { - limit = 0; - } - - private: - uint32 limit; + uint32 limit = 0; bool Load() override { @@ -103,13 +98,14 @@ class spell_gen_adaptive_warding : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_FIRE) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_NATURE) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_FROST) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_SHADOW) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_ADAPTIVE_WARDING_ARCANE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_GEN_ADAPTIVE_WARDING_FIRE, + SPELL_GEN_ADAPTIVE_WARDING_NATURE, + SPELL_GEN_ADAPTIVE_WARDING_FROST, + SPELL_GEN_ADAPTIVE_WARDING_SHADOW, + SPELL_GEN_ADAPTIVE_WARDING_ARCANE + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -219,9 +215,7 @@ class spell_gen_animal_blood : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SPAWN_BLOOD_POOL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SPAWN_BLOOD_POOL }); } void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -301,9 +295,7 @@ class spell_gen_aura_service_uniform : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SERVICE_UNIFORM)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SERVICE_UNIFORM }); } void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -398,9 +390,7 @@ class spell_gen_bandage : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_RECENTLY_BANDAGED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_RECENTLY_BANDAGED }); } SpellCastResult CheckCast() @@ -450,9 +440,7 @@ class spell_gen_blood_reserve : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_GEN_BLOOD_RESERVE_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_GEN_BLOOD_RESERVE_HEAL }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -563,10 +551,8 @@ class spell_gen_bonked : public SpellScriptLoader target->RemoveAurasDueToSpell(SPELL_BONKED); if (Aura const* auraOnGuard = target->GetAura(SPELL_ON_GUARD)) - { if (Item* item = target->GetItemByGuid(auraOnGuard->GetCastItemGUID())) target->DestroyItemCount(item->GetEntry(), 1, true); - } } } @@ -618,7 +604,7 @@ enum BreakShieldSpells class spell_gen_break_shield: public SpellScriptLoader { public: - spell_gen_break_shield(const char* name) : SpellScriptLoader(name) { } + spell_gen_break_shield(char const* name) : SpellScriptLoader(name) { } class spell_gen_break_shield_SpellScript : public SpellScript { @@ -731,9 +717,7 @@ class spell_gen_burning_depths_necrolyte_image : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(uint32(spellInfo->Effects[EFFECT_2].CalcValue()))) - return false; - return true; + return ValidateSpellInfo({ static_cast<uint32>(spellInfo->Effects[EFFECT_2].CalcValue()) }); } void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -776,16 +760,14 @@ class spell_gen_cannibalize : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CANNIBALIZE_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_CANNIBALIZE_TRIGGERED }); } SpellCastResult CheckIfCorpseNear() { Unit* caster = GetCaster(); float max_range = GetSpellInfo()->GetMaxRange(false); - WorldObject* result = NULL; + WorldObject* result = nullptr; // search for nearby enemy corpse in range Trinity::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY); Trinity::WorldObjectSearcher<Trinity::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check); @@ -831,16 +813,14 @@ class spell_gen_chaos_blast : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CHAOS_BLAST)) - return false; - return true; + return ValidateSpellInfo({ SPELL_CHAOS_BLAST }); } void HandleDummy(SpellEffIndex /* effIndex */) { int32 basepoints0 = 100; Unit* caster = GetCaster(); if (Unit* target = GetHitUnit()) - caster->CastCustomSpell(target, SPELL_CHAOS_BLAST, &basepoints0, NULL, NULL, true); + caster->CastCustomSpell(target, SPELL_CHAOS_BLAST, &basepoints0, nullptr, nullptr, true); } void Register() override @@ -931,23 +911,17 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader { PrepareAuraScript(spell_gen_clone_weapon_auraScript); - public: - spell_gen_clone_weapon_auraScript() - { - prevItem = 0; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_AURA) || - !sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_2_AURA) || - !sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_3_AURA) || - !sSpellMgr->GetSpellInfo(SPELL_COPY_OFFHAND_AURA) || - !sSpellMgr->GetSpellInfo(SPELL_COPY_OFFHAND_2_AURA) || - !sSpellMgr->GetSpellInfo(SPELL_COPY_RANGED_AURA)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_COPY_WEAPON_AURA, + SPELL_COPY_WEAPON_2_AURA, + SPELL_COPY_WEAPON_3_AURA, + SPELL_COPY_OFFHAND_AURA, + SPELL_COPY_OFFHAND_2_AURA, + SPELL_COPY_RANGED_AURA + }); } void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1035,8 +1009,7 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader OnEffectRemove += AuraEffectRemoveFn(spell_gen_clone_weapon_auraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); } - private: - uint32 prevItem; + uint32 prevItem = 0; }; AuraScript* GetAuraScript() const override @@ -1101,10 +1074,11 @@ class spell_gen_create_lance : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_ALLIANCE) || - !sSpellMgr->GetSpellInfo(SPELL_CREATE_LANCE_HORDE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_CREATE_LANCE_ALLIANCE, + SPELL_CREATE_LANCE_HORDE + }); } void HandleScript(SpellEffIndex effIndex) @@ -1185,7 +1159,7 @@ enum DalaranDisguiseSpells class spell_gen_dalaran_disguise : public SpellScriptLoader { public: - spell_gen_dalaran_disguise(const char* name) : SpellScriptLoader(name) { } + spell_gen_dalaran_disguise(char const* name) : SpellScriptLoader(name) { } class spell_gen_dalaran_disguise_SpellScript : public SpellScript { @@ -1196,17 +1170,22 @@ class spell_gen_dalaran_disguise : public SpellScriptLoader switch (spellInfo->Id) { case SPELL_SUNREAVER_DISGUISE_TRIGGER: - if (!sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_FEMALE) || - !sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_MALE)) - return false; - break; + return ValidateSpellInfo( + { + SPELL_SUNREAVER_DISGUISE_FEMALE, + SPELL_SUNREAVER_DISGUISE_MALE + }); case SPELL_SILVER_COVENANT_DISGUISE_TRIGGER: - if (!sSpellMgr->GetSpellInfo(SPELL_SILVER_COVENANT_DISGUISE_FEMALE) || - !sSpellMgr->GetSpellInfo(SPELL_SILVER_COVENANT_DISGUISE_MALE)) - return false; + return ValidateSpellInfo( + { + SPELL_SILVER_COVENANT_DISGUISE_FEMALE, + SPELL_SILVER_COVENANT_DISGUISE_MALE + }); + default: break; } - return true; + + return false; } void HandleScript(SpellEffIndex /*effIndex*/) @@ -1265,9 +1244,7 @@ class spell_gen_damage_reduction_aura : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DAMAGE_REDUCTION_AURA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DAMAGE_REDUCTION_AURA }); } void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1320,13 +1297,12 @@ class spell_gen_defend : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_1)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_2)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_3)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_VISUAL_SHIELD_1, + SPELL_VISUAL_SHIELD_2, + SPELL_VISUAL_SHIELD_3 + }); } void RefreshVisualShields(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1338,7 +1314,7 @@ class spell_gen_defend : public SpellScriptLoader for (uint8 i = 0; i < GetSpellInfo()->StackAmount; ++i) target->RemoveAurasDueToSpell(SPELL_VISUAL_SHIELD_1 + i); - target->CastSpell(target, SPELL_VISUAL_SHIELD_1 + GetAura()->GetStackAmount() - 1, true, NULL, aurEff); + target->CastSpell(target, SPELL_VISUAL_SHIELD_1 + GetAura()->GetStackAmount() - 1, true, nullptr, aurEff); } else GetTarget()->RemoveAurasDueToSpell(GetId()); @@ -1442,9 +1418,7 @@ class spell_gen_divine_storm_cd_reset : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DIVINE_STORM)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DIVINE_STORM }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -1512,13 +1486,6 @@ class spell_gen_dungeon_credit : public SpellScriptLoader { PrepareSpellScript(spell_gen_dungeon_credit_SpellScript); - public: - spell_gen_dungeon_credit_SpellScript() - { - _handled = false; - } - - private: bool Load() override { return GetCaster()->GetTypeId() == TYPEID_UNIT; @@ -1533,7 +1500,7 @@ class spell_gen_dungeon_credit : public SpellScriptLoader _handled = true; Unit* caster = GetCaster(); if (InstanceScript* instance = caster->GetInstanceScript()) - instance->UpdateEncounterState(ENCOUNTER_CREDIT_CAST_SPELL, GetSpellInfo()->Id, caster); + instance->UpdateEncounterStateForSpellCast(GetSpellInfo()->Id, caster); } void Register() override @@ -1541,8 +1508,7 @@ class spell_gen_dungeon_credit : public SpellScriptLoader AfterHit += SpellHitFn(spell_gen_dungeon_credit_SpellScript::CreditEncounter); } - private: - bool _handled; + bool _handled = false; }; SpellScript* GetSpellScript() const override @@ -1575,13 +1541,14 @@ class spell_gen_elune_candle : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HEAD) || - !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_CHEST) || - !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HAND_R) || - !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HAND_L) || - !sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_NORMAL)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_ELUNE_CANDLE_OMEN_HEAD, + SPELL_ELUNE_CANDLE_OMEN_CHEST, + SPELL_ELUNE_CANDLE_OMEN_HAND_R, + SPELL_ELUNE_CANDLE_OMEN_HAND_L, + SPELL_ELUNE_CANDLE_NORMAL + }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -1609,7 +1576,7 @@ class spell_gen_elune_candle : public SpellScriptLoader else spellId = SPELL_ELUNE_CANDLE_NORMAL; - GetCaster()->CastSpell(GetHitUnit(), spellId, true, NULL); + GetCaster()->CastSpell(GetHitUnit(), spellId, true, nullptr); } void Register() override @@ -1642,11 +1609,12 @@ class spell_gen_gadgetzan_transporter_backfire : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH) || - !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_EVIL_TWIN) || - !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_MISS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH, + SPELL_TRANSPORTER_EVIL_TWIN, + SPELL_TRANSPORTER_MALFUNCTION_MISS + }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -1743,10 +1711,11 @@ class spell_gen_gnomish_transporter : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_SUCCESS) || - !sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_FAILURE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_TRANSPORTER_SUCCESS, + SPELL_TRANSPORTER_FAILURE + }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -1805,7 +1774,7 @@ enum GenericLifebloom class spell_gen_lifebloom : public SpellScriptLoader { public: - spell_gen_lifebloom(const char* name, uint32 spellId) : SpellScriptLoader(name), _spellId(spellId) { } + spell_gen_lifebloom(char const* name, uint32 spellId) : SpellScriptLoader(name), _spellId(spellId) { } class spell_gen_lifebloom_AuraScript : public AuraScript { @@ -1814,11 +1783,10 @@ class spell_gen_lifebloom : public SpellScriptLoader public: spell_gen_lifebloom_AuraScript(uint32 spellId) : AuraScript(), _spellId(spellId) { } + private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(_spellId)) - return false; - return true; + return ValidateSpellInfo({ _spellId }); } void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1828,7 +1796,7 @@ class spell_gen_lifebloom : public SpellScriptLoader return; // final heal - GetTarget()->CastSpell(GetTarget(), _spellId, true, NULL, aurEff, GetCasterGUID()); + GetTarget()->CastSpell(GetTarget(), _spellId, true, nullptr, aurEff, GetCasterGUID()); } void Register() override @@ -1836,7 +1804,6 @@ class spell_gen_lifebloom : public SpellScriptLoader AfterEffectRemove += AuraEffectRemoveFn(spell_gen_lifebloom_AuraScript::AfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL); } - private: uint32 _spellId; }; @@ -1961,7 +1928,7 @@ enum Mounts class spell_gen_mount : public SpellScriptLoader { public: - spell_gen_mount(const char* name, uint32 mount0 = 0, uint32 mount60 = 0, uint32 mount100 = 0, uint32 mount150 = 0, uint32 mount280 = 0, uint32 mount310 = 0) : SpellScriptLoader(name), + spell_gen_mount(char const* name, uint32 mount0 = 0, uint32 mount60 = 0, uint32 mount100 = 0, uint32 mount150 = 0, uint32 mount280 = 0, uint32 mount310 = 0) : SpellScriptLoader(name), _mount0(mount0), _mount60(mount60), _mount100(mount100), _mount150(mount150), _mount280(mount280), _mount310(mount310) { } class spell_gen_mount_SpellScript : public SpellScript @@ -1972,21 +1939,24 @@ class spell_gen_mount : public SpellScriptLoader spell_gen_mount_SpellScript(uint32 mount0, uint32 mount60, uint32 mount100, uint32 mount150, uint32 mount280, uint32 mount310) : SpellScript(), _mount0(mount0), _mount60(mount60), _mount100(mount100), _mount150(mount150), _mount280(mount280), _mount310(mount310) { } + private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (_mount0 && !sSpellMgr->GetSpellInfo(_mount0)) - return false; - if (_mount60 && !sSpellMgr->GetSpellInfo(_mount60)) - return false; - if (_mount100 && !sSpellMgr->GetSpellInfo(_mount100)) - return false; - if (_mount150 && !sSpellMgr->GetSpellInfo(_mount150)) - return false; - if (_mount280 && !sSpellMgr->GetSpellInfo(_mount280)) - return false; - if (_mount310 && !sSpellMgr->GetSpellInfo(_mount310)) - return false; - return true; + bool result = true; + if (_mount0) + result &= ValidateSpellInfo({ _mount0 }); + if (_mount60) + result &= ValidateSpellInfo({ _mount60 }); + if (_mount100) + result &= ValidateSpellInfo({ _mount100 }); + if (_mount150) + result &= ValidateSpellInfo({ _mount150 }); + if (_mount280) + result &= ValidateSpellInfo({ _mount280 }); + if (_mount310) + result &= ValidateSpellInfo({ _mount310 }); + + return result; } void HandleMount(SpellEffIndex effIndex) @@ -2047,7 +2017,6 @@ class spell_gen_mount : public SpellScriptLoader OnEffectHitTarget += SpellEffectFn(spell_gen_mount_SpellScript::HandleMount, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT); } - private: uint32 _mount0; uint32 _mount60; uint32 _mount100; @@ -2249,9 +2218,7 @@ class spell_gen_moss_covered_feet : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FALL_DOWN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_FALL_DOWN }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2272,7 +2239,7 @@ class spell_gen_moss_covered_feet : public SpellScriptLoader } }; -enum Netherbloom +enum Netherbloom : uint32 { SPELL_NETHERBLOOM_POLLEN_1 = 28703 }; @@ -2290,8 +2257,9 @@ class spell_gen_netherbloom : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { for (uint8 i = 0; i < 5; ++i) - if (!sSpellMgr->GetSpellInfo(SPELL_NETHERBLOOM_POLLEN_1 + i)) + if (!ValidateSpellInfo({ SPELL_NETHERBLOOM_POLLEN_1 + i })) return false; + return true; } @@ -2347,9 +2315,7 @@ class spell_gen_nightmare_vine : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_NIGHTMARE_POLLEN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_NIGHTMARE_POLLEN }); } void HandleScript(SpellEffIndex effIndex) @@ -2398,14 +2364,15 @@ class spell_gen_obsidian_armor : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_HOLY) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FIRE) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_NATURE) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_FROST) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_SHADOW) || - !sSpellMgr->GetSpellInfo(SPELL_GEN_OBSIDIAN_ARMOR_ARCANE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_GEN_OBSIDIAN_ARMOR_HOLY, + SPELL_GEN_OBSIDIAN_ARMOR_FIRE, + SPELL_GEN_OBSIDIAN_ARMOR_NATURE, + SPELL_GEN_OBSIDIAN_ARMOR_FROST, + SPELL_GEN_OBSIDIAN_ARMOR_SHADOW, + SPELL_GEN_OBSIDIAN_ARMOR_ARCANE + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -2448,7 +2415,7 @@ class spell_gen_obsidian_armor : public SpellScriptLoader default: return; } - GetTarget()->CastSpell(GetTarget(), spellId, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), spellId, true, nullptr, aurEff); } void Register() override @@ -2526,11 +2493,12 @@ class spell_gen_orc_disguise : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_TRIGGER) || - !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_MALE) || - !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_FEMALE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_ORC_DISGUISE_TRIGGER, + SPELL_ORC_DISGUISE_MALE, + SPELL_ORC_DISGUISE_FEMALE + }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -2575,9 +2543,7 @@ class spell_gen_paralytic_poison : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PARALYSIS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PARALYSIS }); } void HandleStun(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -2603,7 +2569,7 @@ class spell_gen_paralytic_poison : public SpellScriptLoader class spell_gen_proc_below_pct_damaged : public SpellScriptLoader { public: - spell_gen_proc_below_pct_damaged(const char* name) : SpellScriptLoader(name) { } + spell_gen_proc_below_pct_damaged(char const* name) : SpellScriptLoader(name) { } class spell_gen_proc_below_pct_damaged_AuraScript : public AuraScript { @@ -2679,10 +2645,11 @@ class spell_gen_parachute : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PARACHUTE) || - !sSpellMgr->GetSpellInfo(SPELL_PARACHUTE_BUFF)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PARACHUTE, + SPELL_PARACHUTE_BUFF + }); } void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) @@ -2965,9 +2932,7 @@ class spell_gen_seaforium_blast : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT }); } bool Load() override @@ -2978,7 +2943,7 @@ class spell_gen_seaforium_blast : public SpellScriptLoader void AchievementCredit(SpellEffIndex /*effIndex*/) { - // but in effect handling OriginalCaster can become NULL + // but in effect handling OriginalCaster can become nullptr if (Unit* originalCaster = GetOriginalCaster()) if (GameObject* go = GetHitGObj()) if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING) @@ -3053,7 +3018,7 @@ class spell_gen_spirit_healer_res : public SpellScriptLoader { WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8); data << uint64(target->GetGUID()); - originalCaster->GetSession()->SendPacket(&data); + originalCaster->SendDirectMessage(&data); } } @@ -3078,7 +3043,7 @@ enum SummonElemental class spell_gen_summon_elemental : public SpellScriptLoader { public: - spell_gen_summon_elemental(const char* name, uint32 spellId) : SpellScriptLoader(name), _spellId(spellId) { } + spell_gen_summon_elemental(char const* name, uint32 spellId) : SpellScriptLoader(name), _spellId(spellId) { } class spell_gen_summon_elemental_AuraScript : public AuraScript { @@ -3087,11 +3052,10 @@ class spell_gen_summon_elemental : public SpellScriptLoader public: spell_gen_summon_elemental_AuraScript(uint32 spellId) : AuraScript(), _spellId(spellId) { } + private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(_spellId)) - return false; - return true; + return ValidateSpellInfo({ _spellId }); } void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -3106,7 +3070,7 @@ class spell_gen_summon_elemental : public SpellScriptLoader if (GetCaster()) if (Unit* owner = GetCaster()->GetOwner()) if (owner->GetTypeId() == TYPEID_PLAYER) /// @todo this check is maybe wrong - owner->ToPlayer()->RemovePet(NULL, PET_SAVE_NOT_IN_SLOT, true); + owner->ToPlayer()->RemovePet(nullptr, PET_SAVE_NOT_IN_SLOT, true); } void Register() override @@ -3115,7 +3079,6 @@ class spell_gen_summon_elemental : public SpellScriptLoader AfterEffectRemove += AuraEffectRemoveFn(spell_gen_summon_elemental_AuraScript::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); } - private: uint32 _spellId; }; @@ -3144,9 +3107,7 @@ class spell_gen_summon_tournament_mount : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_LANCE_EQUIPPED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_LANCE_EQUIPPED }); } SpellCastResult CheckIfLanceEquiped() @@ -3220,10 +3181,11 @@ class spell_gen_tournament_duel : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ON_TOURNAMENT_MOUNT) || - !sSpellMgr->GetSpellInfo(SPELL_MOUNTED_DUEL)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_ON_TOURNAMENT_MOUNT, + SPELL_MOUNTED_DUEL + }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -3307,9 +3269,7 @@ class spell_pvp_trinket_wotf_shared_cd : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(Triggered)) - return false; - return true; + return ValidateSpellInfo({ Triggered }); } void HandleScript() @@ -3371,7 +3331,7 @@ class spell_gen_turkey_marker : public SpellScriptLoader // on stack 15 cast the achievement crediting spell if (GetStackAmount() >= 15) - target->CastSpell(target, SPELL_TURKEY_VENGEANCE, true, NULL, aurEff, GetCasterGUID()); + target->CastSpell(target, SPELL_TURKEY_VENGEANCE, true, nullptr, aurEff, GetCasterGUID()); } void OnPeriodic(AuraEffect const* /*aurEff*/) @@ -3463,9 +3423,7 @@ class spell_gen_vampiric_touch : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_VAMPIRIC_TOUCH_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_VAMPIRIC_TOUCH_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -3630,15 +3588,13 @@ class spell_gen_whisper_gulch_yogg_saron_whisper : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_YOGG_SARON_WHISPER_DUMMY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_YOGG_SARON_WHISPER_DUMMY }); } void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) { PreventDefaultAction(); - GetTarget()->CastSpell((Unit*)NULL, SPELL_YOGG_SARON_WHISPER_DUMMY, true); + GetTarget()->CastSpell((Unit*)nullptr, SPELL_YOGG_SARON_WHISPER_DUMMY, true); } void Register() override @@ -3733,9 +3689,7 @@ class spell_gen_gm_freeze : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_GM_FREEZE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_GM_FREEZE }); } void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -3918,18 +3872,9 @@ public: { PrepareAuraScript(spell_gen_mixology_bonus_AuraScript); - public: - spell_gen_mixology_bonus_AuraScript() - { - bonus = 0; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MIXOLOGY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MIXOLOGY }); } bool Load() override @@ -4115,7 +4060,7 @@ public: } } - int32 bonus; + int32 bonus = 0; void Register() override { diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp index 588bccb9596..eac0ff10c23 100644 --- a/src/server/scripts/Spells/spell_holiday.cpp +++ b/src/server/scripts/Spells/spell_holiday.cpp @@ -21,15 +21,15 @@ * Scriptnames in this file should be prefixed with "spell_#holidayname_". */ -#include "Player.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" -#include "GridNotifiers.h" -#include "GridNotifiersImpl.h" #include "CellImpl.h" +#include "CreatureAIImpl.h" +#include "GridNotifiersImpl.h" +#include "Player.h" +#include "SpellAuraEffects.h" +#include "SpellScript.h" #include "Vehicle.h" +#include "World.h" // 45102 Romantic Picnic enum SpellsPicnic @@ -135,10 +135,7 @@ class spell_hallow_end_candy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - for (uint32 spellId : spells) - if (!sSpellMgr->GetSpellInfo(spellId)) - return false; - return true; + return ValidateSpellInfo(spells); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -181,10 +178,11 @@ class spell_hallow_end_candy_pirate : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HALLOWS_END_CANDY_FEMALE_DEFIAS_PIRATE) - || !sSpellMgr->GetSpellInfo(SPELL_HALLOWS_END_CANDY_MALE_DEFIAS_PIRATE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_HALLOWS_END_CANDY_FEMALE_DEFIAS_PIRATE, + SPELL_HALLOWS_END_CANDY_MALE_DEFIAS_PIRATE + }); } void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -238,11 +236,19 @@ class spell_hallow_end_trick : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE) - || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_FEMALE) - || !sSpellMgr->GetSpellInfo(SPELL_SKELETON_COSTUME) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_TRICK_BUFF)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PIRATE_COSTUME_MALE, + SPELL_PIRATE_COSTUME_FEMALE, + SPELL_NINJA_COSTUME_MALE, + SPELL_NINJA_COSTUME_FEMALE, + SPELL_LEPER_GNOME_COSTUME_MALE, + SPELL_LEPER_GNOME_COSTUME_FEMALE, + SPELL_SKELETON_COSTUME, + SPELL_GHOST_COSTUME_MALE, + SPELL_GHOST_COSTUME_FEMALE, + SPELL_TRICK_BUFF + }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -311,9 +317,7 @@ class spell_hallow_end_trick_or_treat : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TRICK) || !sSpellMgr->GetSpellInfo(SPELL_TREAT) || !sSpellMgr->GetSpellInfo(SPELL_TRICKED_OR_TREATED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_TRICK, SPELL_TREAT, SPELL_TRICKED_OR_TREATED }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -349,13 +353,12 @@ class spell_hallow_end_tricky_treat : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TRICKY_TREAT_SPEED)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_TRICKY_TREAT_TRIGGER)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_UPSET_TUMMY)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_TRICKY_TREAT_SPEED, + SPELL_TRICKY_TREAT_TRIGGER, + SPELL_UPSET_TUMMY + }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -402,16 +405,17 @@ public: bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || - !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || - !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE) || - !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_FEMALE) || - !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_MALE) || - !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_FEMALE) || - !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_MALE) || - !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_FEMALE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PIRATE_COSTUME_MALE, + SPELL_PIRATE_COSTUME_FEMALE, + SPELL_NINJA_COSTUME_MALE, + SPELL_NINJA_COSTUME_FEMALE, + SPELL_LEPER_GNOME_COSTUME_MALE, + SPELL_LEPER_GNOME_COSTUME_FEMALE, + SPELL_GHOST_COSTUME_MALE, + SPELL_GHOST_COSTUME_FEMALE + }); } void HandleScriptEffect() @@ -472,7 +476,7 @@ class spell_pilgrims_bounty_buff_food : public SpellScriptLoader private: uint32 const _triggeredSpellId; public: - spell_pilgrims_bounty_buff_food(const char* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } + spell_pilgrims_bounty_buff_food(char const* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } class spell_pilgrims_bounty_buff_food_AuraScript : public AuraScript { @@ -565,7 +569,7 @@ class spell_pilgrims_bounty_feast_on : public SpellScriptLoader if (Player* player = target->ToPlayer()) { player->CastSpell(player, SPELL_ON_PLATE_EAT_VISUAL, true); - caster->CastSpell(player, _spellId, true, NULL, NULL, player->GetGUID()); + caster->CastSpell(player, _spellId, true, nullptr, nullptr, player->GetGUID()); } if (Aura* aura = caster->GetAura(GetEffectValue())) @@ -609,9 +613,7 @@ class spell_pilgrims_bounty_turkey_tracker : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_KILL_COUNTER_VISUAL) || !sSpellMgr->GetSpellInfo(SPELL_KILL_COUNTER_VISUAL_MAX)) - return false; - return true; + return ValidateSpellInfo({ SPELL_KILL_COUNTER_VISUAL, SPELL_KILL_COUNTER_VISUAL_MAX }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -673,22 +675,21 @@ class spell_pilgrims_bounty_well_fed : public SpellScriptLoader uint32 _triggeredSpellId; public: - spell_pilgrims_bounty_well_fed(const char* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } + spell_pilgrims_bounty_well_fed(char const* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } class spell_pilgrims_bounty_well_fed_SpellScript : public SpellScript { PrepareSpellScript(spell_pilgrims_bounty_well_fed_SpellScript); - private: + uint32 _triggeredSpellId; public: spell_pilgrims_bounty_well_fed_SpellScript(uint32 triggeredSpellId) : SpellScript(), _triggeredSpellId(triggeredSpellId) { } + private: bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(_triggeredSpellId)) - return false; - return true; + return ValidateSpellInfo({ _triggeredSpellId }); } void HandleScript(SpellEffIndex effIndex) @@ -780,13 +781,13 @@ class spell_pilgrims_bounty_on_plate : public SpellScriptLoader uint32 _triggeredSpellId4; public: - spell_pilgrims_bounty_on_plate(const char* name, uint32 triggeredSpellId1, uint32 triggeredSpellId2, uint32 triggeredSpellId3, uint32 triggeredSpellId4) : SpellScriptLoader(name), + spell_pilgrims_bounty_on_plate(char const* name, uint32 triggeredSpellId1, uint32 triggeredSpellId2, uint32 triggeredSpellId3, uint32 triggeredSpellId4) : SpellScriptLoader(name), _triggeredSpellId1(triggeredSpellId1), _triggeredSpellId2(triggeredSpellId2), _triggeredSpellId3(triggeredSpellId3), _triggeredSpellId4(triggeredSpellId4) { } class spell_pilgrims_bounty_on_plate_SpellScript : public SpellScript { PrepareSpellScript(spell_pilgrims_bounty_on_plate_SpellScript); - private: + uint32 _triggeredSpellId1; uint32 _triggeredSpellId2; uint32 _triggeredSpellId3; @@ -796,14 +797,16 @@ class spell_pilgrims_bounty_on_plate : public SpellScriptLoader spell_pilgrims_bounty_on_plate_SpellScript(uint32 triggeredSpellId1, uint32 triggeredSpellId2, uint32 triggeredSpellId3, uint32 triggeredSpellId4) : SpellScript(), _triggeredSpellId1(triggeredSpellId1), _triggeredSpellId2(triggeredSpellId2), _triggeredSpellId3(triggeredSpellId3), _triggeredSpellId4(triggeredSpellId4) { } + private: bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(_triggeredSpellId1) - || !sSpellMgr->GetSpellInfo(_triggeredSpellId2) - || !sSpellMgr->GetSpellInfo(_triggeredSpellId3) - || !sSpellMgr->GetSpellInfo(_triggeredSpellId4)) - return false; - return true; + return ValidateSpellInfo( + { + _triggeredSpellId1, + _triggeredSpellId2, + _triggeredSpellId3, + _triggeredSpellId4 + }); } Vehicle* GetTable(Unit* target) @@ -898,23 +901,21 @@ class spell_pilgrims_bounty_a_serving_of : public SpellScriptLoader private: uint32 _triggeredSpellId; public: - spell_pilgrims_bounty_a_serving_of(const char* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } + spell_pilgrims_bounty_a_serving_of(char const* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } class spell_pilgrims_bounty_a_serving_of_AuraScript : public AuraScript { PrepareAuraScript(spell_pilgrims_bounty_a_serving_of_AuraScript); - private: uint32 _triggeredSpellId; public: spell_pilgrims_bounty_a_serving_of_AuraScript(uint32 triggeredSpellId) : AuraScript(), _triggeredSpellId(triggeredSpellId) { } + private: bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(_triggeredSpellId)) - return false; - return true; + return ValidateSpellInfo({ _triggeredSpellId }); } void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -976,11 +977,12 @@ class spell_winter_veil_mistletoe : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_MISTLETOE) || - !sSpellMgr->GetSpellInfo(SPELL_CREATE_HOLLY) || - !sSpellMgr->GetSpellInfo(SPELL_CREATE_SNOWFLAKES)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_CREATE_MISTLETOE, + SPELL_CREATE_HOLLY, + SPELL_CREATE_SNOWFLAKES + }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -1013,6 +1015,14 @@ enum PX238WinterWondervolt SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_4 = 26274 }; +uint32 const WonderboltTransformSpells[] = +{ + SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_1, + SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_2, + SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_3, + SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_4 +}; + class spell_winter_veil_px_238_winter_wondervolt : public SpellScriptLoader { public: @@ -1024,33 +1034,20 @@ class spell_winter_veil_px_238_winter_wondervolt : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_1) || - !sSpellMgr->GetSpellInfo(SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_2) || - !sSpellMgr->GetSpellInfo(SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_3) || - !sSpellMgr->GetSpellInfo(SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_4)) - return false; - return true; + return ValidateSpellInfo(WonderboltTransformSpells); } void HandleScript(SpellEffIndex effIndex) { PreventHitDefaultEffect(effIndex); - uint32 const spells[4] = - { - SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_1, - SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_2, - SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_3, - SPELL_PX_238_WINTER_WONDERVOLT_TRANSFORM_4 - }; - if (Unit* target = GetHitUnit()) { - for (uint8 i = 0; i < 4; ++i) - if (target->HasAura(spells[i])) + for (uint32 spell : WonderboltTransformSpells) + if (target->HasAura(spell)) return; - target->CastSpell(target, spells[urand(0, 3)], true); + target->CastSpell(target, Trinity::Containers::SelectRandomContainerElement(WonderboltTransformSpells), true); } } @@ -1321,7 +1318,7 @@ class spell_brewfest_relay_race_intro_force_player_to_throw : public SpellScript PreventHitDefaultEffect(effIndex); // All this spells trigger a spell that requires reagents; if the // triggered spell is cast as "triggered", reagents are not consumed - GetHitUnit()->CastSpell((Unit*)NULL, GetSpellInfo()->Effects[effIndex].TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST)); + GetHitUnit()->CastSpell((Unit*)nullptr, GetSpellInfo()->Effects[effIndex].TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST)); } void Register() override @@ -1507,9 +1504,7 @@ class spell_midsummer_braziers_hit : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TORCH_TOSSING_TRAINING) || !sSpellMgr->GetSpellInfo(SPELL_TORCH_TOSSING_PRACTICE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_TORCH_TOSSING_TRAINING, SPELL_TORCH_TOSSING_PRACTICE }); } void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1560,11 +1555,12 @@ class spell_gen_ribbon_pole_dancer_check : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HAS_FULL_MIDSUMMER_SET) - || !sSpellMgr->GetSpellInfo(SPELL_RIBBON_DANCE) - || !sSpellMgr->GetSpellInfo(SPELL_BURNING_HOT_POLE_DANCE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_HAS_FULL_MIDSUMMER_SET, + SPELL_RIBBON_DANCE, + SPELL_BURNING_HOT_POLE_DANCE + }); } void PeriodicTick(AuraEffect const* /*aurEff*/) diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index 79ca0a1eb6c..2b9bfac79e9 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -21,15 +21,14 @@ * Scriptnames of files in this file should be prefixed with "spell_hun_". */ -#include "Pet.h" #include "ScriptMgr.h" -#include "Cell.h" #include "CellImpl.h" -#include "GridNotifiers.h" #include "GridNotifiersImpl.h" +#include "Pet.h" +#include "SpellAuraEffects.h" #include "SpellHistory.h" +#include "SpellMgr.h" #include "SpellScript.h" -#include "SpellAuraEffects.h" enum HunterSpells { @@ -87,9 +86,7 @@ class spell_hun_aspect_of_the_beast : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_ASPECT_OF_THE_BEAST_PET)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_ASPECT_OF_THE_BEAST_PET }); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -131,12 +128,13 @@ class spell_hun_ascpect_of_the_viper : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_ASPECT_OF_THE_VIPER_ENERGIZE) || - !sSpellMgr->GetSpellInfo(SPELL_HUNTER_GLYPH_OF_ASPECT_OF_THE_VIPER) || - !sSpellMgr->GetSpellInfo(SPELL_HUNTER_VIPER_ATTACK_SPEED) || - !sSpellMgr->GetSpellInfo(SPELL_HUNTER_VICIOUS_VIPER)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_HUNTER_ASPECT_OF_THE_VIPER_ENERGIZE, + SPELL_HUNTER_GLYPH_OF_ASPECT_OF_THE_VIPER, + SPELL_HUNTER_VIPER_ATTACK_SPEED, + SPELL_HUNTER_VICIOUS_VIPER + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) @@ -149,14 +147,14 @@ class spell_hun_ascpect_of_the_viper : public SpellScriptLoader if (AuraEffect const* glyph = GetTarget()->GetAuraEffect(SPELL_HUNTER_GLYPH_OF_ASPECT_OF_THE_VIPER, EFFECT_0)) AddPct(mana, glyph->GetAmount()); - GetTarget()->CastCustomSpell(SPELL_HUNTER_ASPECT_OF_THE_VIPER_ENERGIZE, SPELLVALUE_BASE_POINT0, mana, GetTarget(), true, NULL, aurEff); + GetTarget()->CastCustomSpell(SPELL_HUNTER_ASPECT_OF_THE_VIPER_ENERGIZE, SPELLVALUE_BASE_POINT0, mana, GetTarget(), true, nullptr, aurEff); } void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) { // Hunter T7 4P Bonus if (GetTarget()->HasAura(SPELL_HUNTER_VIPER_ATTACK_SPEED)) - GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_VICIOUS_VIPER, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_VICIOUS_VIPER, true, nullptr, aurEff); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -192,9 +190,7 @@ class spell_hun_chimera_shot : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_CHIMERA_SHOT_SERPENT) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_CHIMERA_SHOT_VIPER) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_CHIMERA_SHOT_SCORPID)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_CHIMERA_SHOT_SERPENT, SPELL_HUNTER_CHIMERA_SHOT_VIPER, SPELL_HUNTER_CHIMERA_SHOT_SCORPID }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -225,7 +221,8 @@ class spell_hun_chimera_shot : public SpellScriptLoader // first, calculate damage of basic tick (C&P from AuraEffect::HandlePeriodicDamageAurasTick) basePoint = (aurEff->GetAmount() + aurEff->GetBonusAmount()) * aurEff->GetDonePct(); if (Player* modOwner = caster->GetSpellModOwner()) - modOwner->ApplySpellMod<SPELLMOD_DOT>(aurEff->GetId(), basePoint); + modOwner->ApplySpellMod(aurEff->GetId(), SPELLMOD_DOT, basePoint); + basePoint = unitTarget->SpellDamageBonusTaken(caster, aurEff->GetSpellInfo(), basePoint, DOT, aura->GetStackAmount()); // then, multiply to get damage potential @@ -287,9 +284,7 @@ class spell_hun_cobra_strikes : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].TriggerSpell)) - return false; - return true; + return ValidateSpellInfo({ spellInfo->Effects[EFFECT_0].TriggerSpell }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) @@ -382,9 +377,7 @@ class spell_hun_glyph_of_arcane_shot : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_GLYPH_OF_ARCANE_SHOT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_GLYPH_OF_ARCANE_SHOT }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -444,9 +437,7 @@ class spell_hun_glyph_of_mend_pet : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_GLYPH_OF_MEND_PET_HAPPINESS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_GLYPH_OF_MEND_PET_HAPPINESS }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -479,9 +470,7 @@ class spell_hun_hunting_party : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_REPLENISHMENT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_REPLENISHMENT }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -514,9 +503,7 @@ class spell_hun_improved_mend_pet : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_IMPROVED_MEND_PET)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_IMPROVED_MEND_PET }); } bool CheckProc(ProcEventInfo& /*eventInfo*/) @@ -527,7 +514,7 @@ class spell_hun_improved_mend_pet : public SpellScriptLoader void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_IMPROVED_MEND_PET, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_IMPROVED_MEND_PET, true, nullptr, aurEff); } void Register() override @@ -555,9 +542,7 @@ class spell_hun_invigoration : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_INVIGORATION_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_INVIGORATION_TRIGGERED }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -592,9 +577,7 @@ class spell_hun_kill_command_pet : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_KILL_COMMAND_HUNTER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_KILL_COMMAND_HUNTER }); } void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) @@ -632,16 +615,14 @@ class spell_hun_last_stand_pet : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_LAST_STAND_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_PET_LAST_STAND_TRIGGERED }); } void HandleDummy(SpellEffIndex /*effIndex*/) { Unit* caster = GetCaster(); int32 healthModSpellBasePoints0 = int32(caster->CountPctFromMaxHealth(30)); - caster->CastCustomSpell(caster, SPELL_HUNTER_PET_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, NULL, NULL, true, NULL); + caster->CastCustomSpell(caster, SPELL_HUNTER_PET_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, nullptr, nullptr, true, nullptr); } void Register() override @@ -668,10 +649,11 @@ class spell_hun_lock_and_load : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_LOCK_AND_LOAD_TRIGGER) || - !sSpellMgr->GetSpellInfo(SPELL_HUNTER_LOCK_AND_LOAD_MARKER)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_HUNTER_LOCK_AND_LOAD_TRIGGER, + SPELL_HUNTER_LOCK_AND_LOAD_MARKER + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -740,9 +722,12 @@ class spell_hun_masters_call : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_MASTERS_CALL_TRIGGERED) || !sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue()) || !sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_1].CalcValue())) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_HUNTER_MASTERS_CALL_TRIGGERED, + static_cast<uint32>(spellInfo->Effects[EFFECT_0].CalcValue()), + static_cast<uint32>(spellInfo->Effects[EFFECT_1].CalcValue()) + }); } bool Load() override @@ -820,9 +805,7 @@ class spell_hun_misdirection : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_MISDIRECTION_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_MISDIRECTION_PROC }); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -839,7 +822,7 @@ class spell_hun_misdirection : public SpellScriptLoader void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_MISDIRECTION_PROC, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_MISDIRECTION_PROC, true, nullptr, aurEff); } void Register() override @@ -902,16 +885,14 @@ class spell_hun_pet_carrion_feeder : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_CARRION_FEEDER_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_PET_CARRION_FEEDER_TRIGGERED }); } SpellCastResult CheckIfCorpseNear() { Unit* caster = GetCaster(); float max_range = GetSpellInfo()->GetMaxRange(false); - WorldObject* result = NULL; + WorldObject* result = nullptr; // search for nearby enemy corpse in range Trinity::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY); Trinity::WorldObjectSearcher<Trinity::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check); @@ -961,9 +942,7 @@ class spell_hun_pet_heart_of_the_phoenix : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_TRIGGERED) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_TRIGGERED, SPELL_HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -1003,9 +982,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_PIERCING_SHOTS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_PIERCING_SHOTS }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1060,9 +1037,7 @@ class spell_hun_rapid_recuperation : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].TriggerSpell)) - return false; - return true; + return ValidateSpellInfo({ spellInfo->Effects[EFFECT_0].TriggerSpell }); } void HandlePeriodic(AuraEffect const* aurEff) @@ -1099,10 +1074,11 @@ class spell_hun_rapid_recuperation_trigger : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_RAPID_RECUPERATION_MANA_R1) || - !sSpellMgr->GetSpellInfo(SPELL_HUNTER_RAPID_RECUPERATION_MANA_R2)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_HUNTER_RAPID_RECUPERATION_MANA_R1, + SPELL_HUNTER_RAPID_RECUPERATION_MANA_R2 + }); } void HandleRapidFireProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) @@ -1202,9 +1178,7 @@ class spell_hun_roar_of_sacrifice : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROAR_OF_SACRIFICE_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROAR_OF_SACRIFICE_TRIGGERED }); } bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1288,9 +1262,7 @@ class spell_hun_sniper_training : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_SNIPER_TRAINING_R1) || !sSpellMgr->GetSpellInfo(SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_SNIPER_TRAINING_R1, SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 }); } void HandlePeriodic(AuraEffect const* aurEff) @@ -1431,9 +1403,7 @@ class spell_hun_thrill_of_the_hunt : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_THRILL_OF_THE_HUNT_MANA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_THRILL_OF_THE_HUNT_MANA }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1489,9 +1459,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_T9_4P_GREATNESS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HUNTER_T9_4P_GREATNESS }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1534,10 +1502,11 @@ class spell_hun_viper_attack_speed : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_ASPECT_OF_THE_VIPER) || - !sSpellMgr->GetSpellInfo(SPELL_HUNTER_VICIOUS_VIPER)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_HUNTER_ASPECT_OF_THE_VIPER, + SPELL_HUNTER_VICIOUS_VIPER + }); } void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 01f3efb0e33..0de0c0c00b9 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -21,15 +21,20 @@ * Scriptnames of files in this file should be prefixed with "spell_item_". */ -#include "Player.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "SpellHistory.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" -#include "SkillDiscovery.h" #include "Battleground.h" +#include "Containers.h" +#include "Creature.h" +#include "CreatureAIImpl.h" #include "DBCStores.h" +#include "Map.h" +#include "ObjectMgr.h" +#include "Player.h" +#include "SkillDiscovery.h" +#include "SpellAuraEffects.h" +#include "SpellHistory.h" +#include "SpellMgr.h" +#include "SpellScript.h" // Generic script for handling item dummy effects which trigger another spell. class spell_item_trigger_spell : public SpellScriptLoader @@ -38,22 +43,21 @@ class spell_item_trigger_spell : public SpellScriptLoader uint32 _triggeredSpellId; public: - spell_item_trigger_spell(const char* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } + spell_item_trigger_spell(char const* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } class spell_item_trigger_spell_SpellScript : public SpellScript { PrepareSpellScript(spell_item_trigger_spell_SpellScript); - private: + uint32 _triggeredSpellId; public: spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId) : SpellScript(), _triggeredSpellId(triggeredSpellId) { } + private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(_triggeredSpellId)) - return false; - return true; + return ValidateSpellInfo({ _triggeredSpellId }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -92,15 +96,13 @@ class spell_item_aegis_of_preservation : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_AEGIS_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_AEGIS_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_AEGIS_HEAL, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_AEGIS_HEAL, true, nullptr, aurEff); } void Register() override @@ -142,10 +144,11 @@ class spell_item_alchemists_stone : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ALCHEMISTS_STONE_EXTRA_HEAL) || - !sSpellMgr->GetSpellInfo(SPELL_ALCHEMISTS_STONE_EXTRA_MANA)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_ALCHEMISTS_STONE_EXTRA_HEAL, + SPELL_ALCHEMISTS_STONE_EXTRA_MANA + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -213,11 +216,12 @@ class spell_item_anger_capacitor : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MOTE_OF_ANGER) || - !sSpellMgr->GetSpellInfo(SPELL_MANIFEST_ANGER_MAIN_HAND) || - !sSpellMgr->GetSpellInfo(SPELL_MANIFEST_ANGER_OFF_HAND)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MOTE_OF_ANGER, + SPELL_MANIFEST_ANGER_MAIN_HAND, + SPELL_MANIFEST_ANGER_OFF_HAND + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -234,7 +238,7 @@ class spell_item_anger_capacitor : public SpellScriptLoader caster->RemoveAurasDueToSpell(SPELL_MOTE_OF_ANGER); uint32 spellId = SPELL_MANIFEST_ANGER_MAIN_HAND; if (Player* player = caster->ToPlayer()) - if (player->GetWeaponForAttack(OFF_ATTACK, true) && urand(0, 1)) + if (player->GetWeaponForAttack(OFF_ATTACK, true) && roll_chance_i(50)) spellId = SPELL_MANIFEST_ANGER_OFF_HAND; caster->CastSpell(target, spellId, true, nullptr, aurEff); @@ -312,18 +316,18 @@ class spell_item_aura_of_madness : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SOCIOPATH) || - !sSpellMgr->GetSpellInfo(SPELL_DELUSIONAL) || - !sSpellMgr->GetSpellInfo(SPELL_KLEPTOMANIA) || - !sSpellMgr->GetSpellInfo(SPELL_MEGALOMANIA) || - !sSpellMgr->GetSpellInfo(SPELL_PARANOIA) || - !sSpellMgr->GetSpellInfo(SPELL_MANIC) || - !sSpellMgr->GetSpellInfo(SPELL_NARCISSISM) || - !sSpellMgr->GetSpellInfo(SPELL_MARTYR_COMPLEX) || - !sSpellMgr->GetSpellInfo(SPELL_DEMENTIA) || - !sObjectMgr->GetBroadcastText(SAY_MADNESS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SOCIOPATH, + SPELL_DELUSIONAL, + SPELL_KLEPTOMANIA, + SPELL_MEGALOMANIA, + SPELL_PARANOIA, + SPELL_MANIC, + SPELL_NARCISSISM, + SPELL_MARTYR_COMPLEX, + SPELL_DEMENTIA + }) && sObjectMgr->GetBroadcastText(SAY_MADNESS); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -389,10 +393,11 @@ class spell_item_dementia : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DEMENTIA_POS) || - !sSpellMgr->GetSpellInfo(SPELL_DEMENTIA_NEG)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DEMENTIA_POS, + SPELL_DEMENTIA_NEG + }); } void HandlePeriodicDummy(AuraEffect const* aurEff) @@ -430,9 +435,7 @@ class spell_item_blessing_of_ancient_kings : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PROTECTION_OF_ANCIENT_KINGS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PROTECTION_OF_ANCIENT_KINGS }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -519,9 +522,7 @@ class spell_item_deadly_precision_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DEADLY_PRECISION)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DEADLY_PRECISION }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -575,13 +576,14 @@ class spell_item_deathbringers_will : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(Strength) || - !sSpellMgr->GetSpellInfo(Agility) || - !sSpellMgr->GetSpellInfo(AttackPower) || - !sSpellMgr->GetSpellInfo(Critical) || - !sSpellMgr->GetSpellInfo(Haste)) - return false; - return true; + return ValidateSpellInfo( + { + Strength, + Agility, + AttackPower, + Critical, + Haste + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -706,11 +708,10 @@ class spell_item_defibrillate : public SpellScriptLoader public: spell_item_defibrillate_SpellScript(uint8 chance, uint32 failSpell) : SpellScript(), _chance(chance), _failSpell(failSpell) { } + private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (_failSpell && !sSpellMgr->GetSpellInfo(_failSpell)) - return false; - return true; + return !_failSpell || ValidateSpellInfo({ _failSpell }); } void HandleScript(SpellEffIndex effIndex) @@ -728,7 +729,6 @@ class spell_item_defibrillate : public SpellScriptLoader OnEffectHitTarget += SpellEffectFn(spell_item_defibrillate_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_RESURRECT); } - private: uint8 _chance; uint32 _failSpell; }; @@ -760,15 +760,13 @@ class spell_item_desperate_defense : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DESPERATE_RAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DESPERATE_RAGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_DESPERATE_RAGE, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_DESPERATE_RAGE, true, nullptr, aurEff); } void Register() override @@ -810,17 +808,14 @@ class spell_item_deviate_fish : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - for (uint32 spellId = SPELL_SLEEPY; spellId <= SPELL_HEALTHY_SPIRIT; ++spellId) - if (!sSpellMgr->GetSpellInfo(spellId)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SLEEPY, SPELL_INVIGORATE, SPELL_SHRINK, SPELL_PARTY_TIME, SPELL_HEALTHY_SPIRIT }); } void HandleDummy(SpellEffIndex /*effIndex*/) { Unit* caster = GetCaster(); uint32 spellId = urand(SPELL_SLEEPY, SPELL_HEALTHY_SPIRIT); - caster->CastSpell(caster, spellId, true, NULL); + caster->CastSpell(caster, spellId, true, nullptr); } void Register() override @@ -852,9 +847,7 @@ class spell_item_discerning_eye_beast_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DISCERNING_EYE_BEAST)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DISCERNING_EYE_BEAST }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -926,9 +919,7 @@ class spell_item_fate_rune_of_unsurpassed_vigor : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_UNSURPASSED_VIGOR)) - return false; - return true; + return ValidateSpellInfo({ SPELL_UNSURPASSED_VIGOR }); } void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/) @@ -969,9 +960,7 @@ class spell_item_flask_of_the_north : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_SP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_AP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_STR)) - return false; - return true; + return ValidateSpellInfo({ SPELL_FLASK_OF_THE_NORTH_SP, SPELL_FLASK_OF_THE_NORTH_AP, SPELL_FLASK_OF_THE_NORTH_STR }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1004,7 +993,7 @@ class spell_item_flask_of_the_north : public SpellScriptLoader break; } - caster->CastSpell(caster, possibleSpells[urand(0, (possibleSpells.size() - 1))], true, NULL); + caster->CastSpell(caster, possibleSpells[urand(0, (possibleSpells.size() - 1))], true, nullptr); } void Register() override @@ -1037,9 +1026,7 @@ class spell_item_frozen_shadoweave : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHADOWMEND)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHADOWMEND }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1085,9 +1072,7 @@ class spell_item_gnomish_death_ray : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_SELF) || !sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_TARGET)) - return false; - return true; + return ValidateSpellInfo({ SPELL_GNOMISH_DEATH_RAY_SELF, SPELL_GNOMISH_DEATH_RAY_TARGET }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1132,9 +1117,7 @@ class spell_item_harm_prevention_belt : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FORCEFIELD_COLLAPSE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_FORCEFIELD_COLLAPSE }); } void HandleProc(ProcEventInfo& /*eventInfo*/) @@ -1172,9 +1155,7 @@ class spell_item_healing_touch_refund : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HEALING_TOUCH_MANA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HEALING_TOUCH_MANA }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1226,12 +1207,13 @@ class spell_item_heartpierce : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(Energy) || - !sSpellMgr->GetSpellInfo(Mana) || - !sSpellMgr->GetSpellInfo(Rage) || - !sSpellMgr->GetSpellInfo(RunicPower)) - return false; - return true; + return ValidateSpellInfo( + { + Energy, + Mana, + Rage, + RunicPower + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1334,9 +1316,14 @@ class spell_item_make_a_wish : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_BLESSING) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_MIGHTY_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FURIOUS_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_TINY_MAGICAL_CRAWDAD) || !sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_GIFT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MR_PINCHYS_BLESSING, + SPELL_SUMMON_MIGHTY_MR_PINCHY, + SPELL_SUMMON_FURIOUS_MR_PINCHY, + SPELL_TINY_MAGICAL_CRAWDAD, + SPELL_MR_PINCHYS_GIFT + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1350,7 +1337,7 @@ class spell_item_make_a_wish : public SpellScriptLoader case 3: spellId = SPELL_SUMMON_FURIOUS_MR_PINCHY; break; case 4: spellId = SPELL_TINY_MAGICAL_CRAWDAD; break; } - caster->CastSpell(caster, spellId, true, NULL); + caster->CastSpell(caster, spellId, true, nullptr); } void Register() override @@ -1384,9 +1371,7 @@ class spell_item_mark_of_conquest : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_CONQUEST_ENERGIZE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MARK_OF_CONQUEST_ENERGIZE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1485,9 +1470,7 @@ class spell_item_necrotic_touch : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ITEM_NECROTIC_TOUCH_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ITEM_NECROTIC_TOUCH_PROC }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1539,9 +1522,12 @@ class spell_item_net_o_matic : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED3)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_NET_O_MATIC_TRIGGERED1, + SPELL_NET_O_MATIC_TRIGGERED2, + SPELL_NET_O_MATIC_TRIGGERED3 + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1596,9 +1582,12 @@ class spell_item_noggenfogger_elixir : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1, + SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2, + SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3 + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1673,9 +1662,7 @@ class spell_item_persistent_shield : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PERSISTENT_SHIELD_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PERSISTENT_SHIELD_TRIGGERED }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1729,9 +1716,7 @@ class spell_item_pet_healing : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_HEALTH_LINK)) - return false; - return true; + return ValidateSpellInfo({ SPELL_HEALTH_LINK }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1813,10 +1798,13 @@ class spell_item_savory_deviate_delight : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - for (uint32 spellId = SPELL_FLIP_OUT_MALE; spellId <= SPELL_YAAARRRR_FEMALE; ++spellId) - if (!sSpellMgr->GetSpellInfo(spellId)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_FLIP_OUT_MALE, + SPELL_FLIP_OUT_FEMALE, + SPELL_YAAARRRR_MALE, + SPELL_YAAARRRR_FEMALE + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1830,7 +1818,7 @@ class spell_item_savory_deviate_delight : public SpellScriptLoader // Yaaarrrr - pirate case 2: spellId = (caster->getGender() == GENDER_MALE ? SPELL_YAAARRRR_MALE : SPELL_YAAARRRR_FEMALE); break; } - caster->CastSpell(caster, spellId, true, NULL); + caster->CastSpell(caster, spellId, true, nullptr); } void Register() override @@ -2013,13 +2001,12 @@ class spell_item_shadowmourne : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_SOUL_FRAGMENT)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE, + SPELL_SHADOWMOURNE_SOUL_FRAGMENT, + SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -2032,14 +2019,14 @@ class spell_item_shadowmourne : public SpellScriptLoader void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_SHADOWMOURNE_SOUL_FRAGMENT, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_SHADOWMOURNE_SOUL_FRAGMENT, true, nullptr, aurEff); // this can't be handled in AuraScript of SoulFragments because we need to know victim if (Aura* soulFragments = GetTarget()->GetAura(SPELL_SHADOWMOURNE_SOUL_FRAGMENT)) { if (soulFragments->GetStackAmount() >= 10) { - GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE, true, NULL, aurEff); + GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE, true, nullptr, aurEff); soulFragments->Remove(); } } @@ -2070,9 +2057,12 @@ class spell_item_shadowmourne_soul_fragment : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_VISUAL_LOW) || !sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_VISUAL_HIGH) || !sSpellMgr->GetSpellInfo(SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SHADOWMOURNE_VISUAL_LOW, + SPELL_SHADOWMOURNE_VISUAL_HIGH, + SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF + }); } void OnStackChange(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -2139,9 +2129,15 @@ class spell_item_six_demon_bag : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FROSTBOLT) || !sSpellMgr->GetSpellInfo(SPELL_POLYMORPH) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FELHOUND_MINION) || !sSpellMgr->GetSpellInfo(SPELL_FIREBALL) || !sSpellMgr->GetSpellInfo(SPELL_CHAIN_LIGHTNING) || !sSpellMgr->GetSpellInfo(SPELL_ENVELOPING_WINDS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_FROSTBOLT, + SPELL_POLYMORPH, + SPELL_SUMMON_FELHOUND_MINION, + SPELL_FIREBALL, + SPELL_CHAIN_LIGHTNING, + SPELL_ENVELOPING_WINDS + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -2204,9 +2200,7 @@ class spell_item_swift_hand_justice_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SWIFT_HAND_OF_JUSTICE_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SWIFT_HAND_OF_JUSTICE_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2248,9 +2242,7 @@ class spell_item_totem_of_flowing_water : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_LESSER_HEALING_WAVE_MANA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_LESSER_HEALING_WAVE_MANA }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2325,9 +2317,12 @@ class spell_item_underbelly_elixir : public SpellScriptLoader } bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED3)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_UNDERBELLY_ELIXIR_TRIGGERED1, + SPELL_UNDERBELLY_ELIXIR_TRIGGERED2, + SPELL_UNDERBELLY_ELIXIR_TRIGGERED3 + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -2339,7 +2334,7 @@ class spell_item_underbelly_elixir : public SpellScriptLoader case 1: spellId = SPELL_UNDERBELLY_ELIXIR_TRIGGERED1; break; case 2: spellId = SPELL_UNDERBELLY_ELIXIR_TRIGGERED2; break; } - caster->CastSpell(caster, spellId, true, NULL); + caster->CastSpell(caster, spellId, true, nullptr); } void Register() override @@ -2423,9 +2418,12 @@ class spell_item_red_rider_air_rifle : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_AIR_RIFLE_HOLD_VISUAL) || !sSpellMgr->GetSpellInfo(SPELL_AIR_RIFLE_SHOOT) || !sSpellMgr->GetSpellInfo(SPELL_AIR_RIFLE_SHOOT_SELF)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_AIR_RIFLE_HOLD_VISUAL, + SPELL_AIR_RIFLE_SHOOT, + SPELL_AIR_RIFLE_SHOOT_SELF + }); } void HandleScript(SpellEffIndex effIndex) @@ -2654,9 +2652,12 @@ class spell_item_vanquished_clutches : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CRUSHER) || !sSpellMgr->GetSpellInfo(SPELL_CONSTRICTOR) || !sSpellMgr->GetSpellInfo(SPELL_CORRUPTOR)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_CRUSHER, + SPELL_CONSTRICTOR, + SPELL_CORRUPTOR + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -2840,15 +2841,17 @@ class spell_item_purify_helboar_meat : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_PURIFIED_HELBOAR_MEAT) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_TOXIC_HELBOAR_MEAT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SUMMON_PURIFIED_HELBOAR_MEAT, + SPELL_SUMMON_TOXIC_HELBOAR_MEAT + }); } void HandleDummy(SpellEffIndex /* effIndex */) { Unit* caster = GetCaster(); - caster->CastSpell(caster, roll_chance_i(50) ? SPELL_SUMMON_PURIFIED_HELBOAR_MEAT : SPELL_SUMMON_TOXIC_HELBOAR_MEAT, true, NULL); + caster->CastSpell(caster, roll_chance_i(50) ? SPELL_SUMMON_PURIFIED_HELBOAR_MEAT : SPELL_SUMMON_TOXIC_HELBOAR_MEAT, true, nullptr); } void Register() override @@ -2889,7 +2892,7 @@ class spell_item_crystal_prison_dummy_dnd : public SpellScriptLoader if (Creature* target = GetHitCreature()) if (target->isDead() && !target->IsPet()) { - GetCaster()->SummonGameObject(OBJECT_IMPRISONED_DOOMGUARD, *target, G3D::Quat(), uint32(target->GetRespawnTime()-time(NULL))); + GetCaster()->SummonGameObject(OBJECT_IMPRISONED_DOOMGUARD, *target, QuaternionData(), uint32(target->GetRespawnTime()-time(nullptr))); target->DespawnOrUnsummon(); } } @@ -2926,11 +2929,14 @@ class spell_item_reindeer_transformation : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FLYING_REINDEER_310) || !sSpellMgr->GetSpellInfo(SPELL_FLYING_REINDEER_280) - || !sSpellMgr->GetSpellInfo(SPELL_FLYING_REINDEER_60) || !sSpellMgr->GetSpellInfo(SPELL_REINDEER_100) - || !sSpellMgr->GetSpellInfo(SPELL_REINDEER_60)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_FLYING_REINDEER_310, + SPELL_FLYING_REINDEER_280, + SPELL_FLYING_REINDEER_60, + SPELL_REINDEER_100, + SPELL_REINDEER_60 + }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -2991,9 +2997,7 @@ class spell_item_nigh_invulnerability : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_NIGH_INVULNERABILITY) || !sSpellMgr->GetSpellInfo(SPELL_COMPLETE_VULNERABILITY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_NIGH_INVULNERABILITY, SPELL_COMPLETE_VULNERABILITY }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3037,9 +3041,7 @@ class spell_item_poultryizer : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_POULTRYIZER_SUCCESS) || !sSpellMgr->GetSpellInfo(SPELL_POULTRYIZER_BACKFIRE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_POULTRYIZER_SUCCESS, SPELL_POULTRYIZER_BACKFIRE }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3081,9 +3083,7 @@ class spell_item_socrethars_stone : public SpellScriptLoader } bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SOCRETHAR_TO_SEAT) || !sSpellMgr->GetSpellInfo(SPELL_SOCRETHAR_FROM_SEAT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SOCRETHAR_TO_SEAT, SPELL_SOCRETHAR_FROM_SEAT }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3132,9 +3132,9 @@ class spell_item_demon_broiled_surprise : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_DEMON_BROILED_SURPRISE) || !sObjectMgr->GetCreatureTemplate(NPC_ABYSSAL_FLAMEBRINGER) || !sObjectMgr->GetQuestTemplate(QUEST_SUPER_HOT_STEW)) - return false; - return true; + return ValidateSpellInfo({ SPELL_CREATE_DEMON_BROILED_SURPRISE }) && + sObjectMgr->GetCreatureTemplate(NPC_ABYSSAL_FLAMEBRINGER) && + sObjectMgr->GetQuestTemplate(QUEST_SUPER_HOT_STEW); } bool Load() override @@ -3189,9 +3189,7 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_RAPTOR_CAPTURE_CREDIT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_RAPTOR_CAPTURE_CREDIT }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3202,7 +3200,7 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader GetHitCreature()->DespawnOrUnsummon(); //cast spell Raptor Capture Credit - caster->CastSpell(caster, SPELL_RAPTOR_CAPTURE_CREDIT, true, NULL); + caster->CastSpell(caster, SPELL_RAPTOR_CAPTURE_CREDIT, true, nullptr); } } @@ -3283,9 +3281,13 @@ class spell_item_brewfest_mount_transformation : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MOUNT_RAM_100) || !sSpellMgr->GetSpellInfo(SPELL_MOUNT_RAM_60) || !sSpellMgr->GetSpellInfo(SPELL_MOUNT_KODO_100) || !sSpellMgr->GetSpellInfo(SPELL_MOUNT_KODO_60)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MOUNT_RAM_100, + SPELL_MOUNT_RAM_60, + SPELL_MOUNT_KODO_100, + SPELL_MOUNT_KODO_60 + }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3353,9 +3355,7 @@ class spell_item_nitro_boots : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_NITRO_BOOTS_SUCCESS) || !sSpellMgr->GetSpellInfo(SPELL_NITRO_BOOTS_BACKFIRE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_NITRO_BOOTS_SUCCESS, SPELL_NITRO_BOOTS_BACKFIRE }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3399,9 +3399,7 @@ class spell_item_teach_language : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_LEARN_GNOMISH_BINARY) || !sSpellMgr->GetSpellInfo(SPELL_LEARN_GOBLIN_BINARY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_LEARN_GNOMISH_BINARY, SPELL_LEARN_GOBLIN_BINARY }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3445,9 +3443,7 @@ class spell_item_rocket_boots : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROCKET_BOOTS_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROCKET_BOOTS_PROC }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3457,7 +3453,7 @@ class spell_item_rocket_boots : public SpellScriptLoader bg->EventPlayerDroppedFlag(caster); caster->GetSpellHistory()->ResetCooldown(SPELL_ROCKET_BOOTS_PROC); - caster->CastSpell(caster, SPELL_ROCKET_BOOTS_PROC, true, NULL); + caster->CastSpell(caster, SPELL_ROCKET_BOOTS_PROC, true, nullptr); } SpellCastResult CheckCast() @@ -3497,9 +3493,7 @@ class spell_item_pygmy_oil : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PYGMY_OIL_PYGMY_AURA) || !sSpellMgr->GetSpellInfo(SPELL_PYGMY_OIL_SMALLER_AURA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PYGMY_OIL_PYGMY_AURA, SPELL_PYGMY_OIL_SMALLER_AURA }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3583,9 +3577,9 @@ class spell_item_chicken_cover : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CHICKEN_NET) || !sSpellMgr->GetSpellInfo(SPELL_CAPTURE_CHICKEN_ESCAPE) || !sObjectMgr->GetQuestTemplate(QUEST_CHICKEN_PARTY) || !sObjectMgr->GetQuestTemplate(QUEST_FLOWN_THE_COOP)) - return false; - return true; + return ValidateSpellInfo({ SPELL_CHICKEN_NET, SPELL_CAPTURE_CHICKEN_ESCAPE }) && + sObjectMgr->GetQuestTemplate(QUEST_CHICKEN_PARTY) && + sObjectMgr->GetQuestTemplate(QUEST_FLOWN_THE_COOP); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -3744,10 +3738,11 @@ class spell_item_shard_of_the_scale : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(HealProc) || - !sSpellMgr->GetSpellInfo(DamageProc)) - return false; - return true; + return ValidateSpellInfo( + { + HealProc, + DamageProc + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -3794,12 +3789,13 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SOUL_PRESERVER_DRUID) || - !sSpellMgr->GetSpellInfo(SPELL_SOUL_PRESERVER_PALADIN) || - !sSpellMgr->GetSpellInfo(SPELL_SOUL_PRESERVER_PRIEST) || - !sSpellMgr->GetSpellInfo(SPELL_SOUL_PRESERVER_SHAMAN)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SOUL_PRESERVER_DRUID, + SPELL_SOUL_PRESERVER_PALADIN, + SPELL_SOUL_PRESERVER_PRIEST, + SPELL_SOUL_PRESERVER_SHAMAN + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -3881,12 +3877,9 @@ class spell_item_sunwell_neck : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sFactionStore.LookupEntry(FACTION_ALDOR) || - !sFactionStore.LookupEntry(FACTION_SCRYERS) || - !sSpellMgr->GetSpellInfo(Aldors) || - !sSpellMgr->GetSpellInfo(Scryers)) - return false; - return true; + return ValidateSpellInfo({ Aldors, Scryers }) && + sFactionStore.LookupEntry(FACTION_ALDOR) && + sFactionStore.LookupEntry(FACTION_SCRYERS); } bool CheckProc(ProcEventInfo& eventInfo) @@ -3981,12 +3974,13 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DEATH_CHOICE_NORMAL_STRENGTH) || - !sSpellMgr->GetSpellInfo(SPELL_DEATH_CHOICE_NORMAL_AGILITY) || - !sSpellMgr->GetSpellInfo(SPELL_DEATH_CHOICE_HEROIC_STRENGTH) || - !sSpellMgr->GetSpellInfo(SPELL_DEATH_CHOICE_HEROIC_AGILITY)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DEATH_CHOICE_NORMAL_STRENGTH, + SPELL_DEATH_CHOICE_NORMAL_AGILITY, + SPELL_DEATH_CHOICE_HEROIC_STRENGTH, + SPELL_DEATH_CHOICE_HEROIC_AGILITY + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -4065,11 +4059,10 @@ public: { } + private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(_stackSpell) || !sSpellMgr->GetSpellInfo(_triggerSpell)) - return false; - return true; + return ValidateSpellInfo({ _stackSpell, _triggerSpell }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -4097,7 +4090,6 @@ public: OnEffectProc += AuraEffectProcFn(spell_item_trinket_stack_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); } - private: uint32 _stackSpell; uint32 _triggerSpell; }; @@ -4115,7 +4107,7 @@ private: // 57345 - Darkmoon Card: Greatness enum DarkmoonCardSpells { - SPELL_DARKMOON_CARD_STRENGHT = 60229, + SPELL_DARKMOON_CARD_STRENGTH = 60229, SPELL_DARKMOON_CARD_AGILITY = 60233, SPELL_DARKMOON_CARD_INTELLECT = 60234, SPELL_DARKMOON_CARD_SPIRIT = 60235, @@ -4132,12 +4124,13 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DARKMOON_CARD_STRENGHT) || - !sSpellMgr->GetSpellInfo(SPELL_DARKMOON_CARD_AGILITY) || - !sSpellMgr->GetSpellInfo(SPELL_DARKMOON_CARD_INTELLECT) || - !sSpellMgr->GetSpellInfo(SPELL_DARKMOON_CARD_SPIRIT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_DARKMOON_CARD_STRENGTH, + SPELL_DARKMOON_CARD_AGILITY, + SPELL_DARKMOON_CARD_INTELLECT, + SPELL_DARKMOON_CARD_SPIRIT + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -4151,11 +4144,11 @@ public: float spi = caster->GetStat(STAT_SPIRIT); float stat = 0.0f; - uint32 spellTrigger = SPELL_DARKMOON_CARD_STRENGHT; + uint32 spellTrigger = SPELL_DARKMOON_CARD_STRENGTH; if (str > stat) { - spellTrigger = SPELL_DARKMOON_CARD_STRENGHT; + spellTrigger = SPELL_DARKMOON_CARD_STRENGTH; stat = str; } @@ -4209,9 +4202,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CHARM_WITCH_DOCTOR_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_CHARM_WITCH_DOCTOR_PROC }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -4258,10 +4249,11 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MANA_DRAIN_ENERGIZE) - || !sSpellMgr->GetSpellInfo(SPELL_MANA_DRAIN_LEECH)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MANA_DRAIN_ENERGIZE, + SPELL_MANA_DRAIN_LEECH + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -4309,11 +4301,8 @@ class spell_item_taunt_flag_targeting : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TAUNT_FLAG)) - return false; - if (!sObjectMgr->GetBroadcastText(EMOTE_PLANTS_FLAG)) - return false; - return true; + return ValidateSpellInfo({ SPELL_TAUNT_FLAG }) && + sObjectMgr->GetBroadcastText(EMOTE_PLANTS_FLAG); } void FilterTargets(std::list<WorldObject*>& targets) @@ -4381,9 +4370,7 @@ class spell_item_mind_control_cap : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_GNOMISH_MIND_CONTROL_CAP) || !sSpellMgr->GetSpellInfo(SPELL_DULLARD)) - return false; - return true; + return ValidateSpellInfo({ SPELL_GNOMISH_MIND_CONTROL_CAP, SPELL_DULLARD }); } void HandleDummy(SpellEffIndex /* effIndex */) @@ -4436,9 +4423,7 @@ class spell_item_universal_remote : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CONTROL_MACHINE) || !sSpellMgr->GetSpellInfo(SPELL_MOBILITY_MALFUNCTION) || !sSpellMgr->GetSpellInfo(SPELL_TARGET_LOCK)) - return false; - return true; + return ValidateSpellInfo({ SPELL_CONTROL_MACHINE, SPELL_MOBILITY_MALFUNCTION, SPELL_TARGET_LOCK }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -4492,9 +4477,7 @@ class spell_item_zandalarian_charm : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(_spellId)) - return false; - return true; + return ValidateSpellInfo({ _spellId }); } bool CheckProc(ProcEventInfo& eventInfo) diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index 72b4a323710..c40e164a130 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -21,11 +21,14 @@ * Scriptnames of files in this file should be prefixed with "spell_mage_". */ -#include "Player.h" #include "ScriptMgr.h" +#include "Creature.h" +#include "Player.h" +#include "Random.h" +#include "SpellAuraEffects.h" #include "SpellHistory.h" +#include "SpellMgr.h" #include "SpellScript.h" -#include "SpellAuraEffects.h" enum MageSpells { @@ -79,11 +82,11 @@ class spell_mage_incanters_absorbtion_base_AuraScript : public AuraScript public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_INCANTERS_ABSORBTION_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED, + SPELL_MAGE_INCANTERS_ABSORBTION_R1 + }); } void Trigger(AuraEffect* aurEff, DamageInfo& /*dmgInfo*/, uint32& absorbAmount) @@ -93,7 +96,7 @@ class spell_mage_incanters_absorbtion_base_AuraScript : public AuraScript if (AuraEffect* talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_MAGE_INCANTERS_ABSORBTION_R1, EFFECT_0)) { int32 bp = CalculatePct(absorbAmount, talentAurEff->GetAmount()); - target->CastCustomSpell(target, SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff); + target->CastCustomSpell(target, SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED, &bp, nullptr, nullptr, true, nullptr, aurEff); } } }; @@ -110,10 +113,11 @@ class spell_mage_arcane_potency : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_ARCANE_POTENCY_RANK_1) || - !sSpellMgr->GetSpellInfo(SPELL_MAGE_ARCANE_POTENCY_RANK_2)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MAGE_ARCANE_POTENCY_RANK_1, + SPELL_MAGE_ARCANE_POTENCY_RANK_2 + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -161,9 +165,7 @@ class spell_mage_blast_wave : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_GLYPH_OF_BLAST_WAVE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_GLYPH_OF_BLAST_WAVE }); } void HandleKnockBack(SpellEffIndex effIndex) @@ -196,9 +198,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_BLAZING_SPEED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_BLAZING_SPEED }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -264,9 +264,7 @@ class spell_mage_burnout : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_BURNOUT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_BURNOUT }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -350,9 +348,7 @@ class spell_mage_combustion : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_COMBUSTION_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_COMBUSTION_PROC }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -391,9 +387,7 @@ class spell_mage_imp_blizzard : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_CHILLED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_CHILLED }); } void HandleChill(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -428,9 +422,7 @@ class spell_mage_imp_mana_gems : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_MANA_SURGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_MANA_SURGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -463,9 +455,7 @@ class spell_mage_empowered_fire : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_EMPOWERED_FIRE_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_EMPOWERED_FIRE_PROC }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -511,9 +501,7 @@ class spell_mage_fingers_of_frost : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_FINGERS_OF_FROST_AURASTATE_AURA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_FINGERS_OF_FROST_AURASTATE_AURA }); } void HandleDummy(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) @@ -553,11 +541,11 @@ class spell_mage_fire_frost_ward : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_FROST_WARDING_TRIGGERED)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_FROST_WARDING_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MAGE_FROST_WARDING_TRIGGERED, + SPELL_MAGE_FROST_WARDING_R1 + }); } void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated) @@ -586,7 +574,7 @@ class spell_mage_fire_frost_ward : public SpellScriptLoader { int32 bp = dmgInfo.GetDamage(); dmgInfo.AbsorbDamage(bp); - target->CastCustomSpell(target, SPELL_MAGE_FROST_WARDING_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff); + target->CastCustomSpell(target, SPELL_MAGE_FROST_WARDING_TRIGGERED, &bp, nullptr, nullptr, true, nullptr, aurEff); absorbAmount = 0; PreventDefaultAction(); } @@ -617,18 +605,9 @@ class spell_mage_focus_magic : public SpellScriptLoader { PrepareAuraScript(spell_mage_focus_magic_AuraScript); - public: - spell_mage_focus_magic_AuraScript() - { - _procTarget = nullptr; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_FOCUS_MAGIC_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_FOCUS_MAGIC_PROC }); } bool CheckProc(ProcEventInfo& /*eventInfo*/) @@ -640,7 +619,7 @@ class spell_mage_focus_magic : public SpellScriptLoader void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(_procTarget, SPELL_MAGE_FOCUS_MAGIC_PROC, true, NULL, aurEff); + GetTarget()->CastSpell(_procTarget, SPELL_MAGE_FOCUS_MAGIC_PROC, true, nullptr, aurEff); } void Register() override @@ -649,8 +628,7 @@ class spell_mage_focus_magic : public SpellScriptLoader OnEffectProc += AuraEffectProcFn(spell_mage_focus_magic_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_MOD_SPELL_CRIT_CHANCE); } - private: - Unit* _procTarget; + Unit* _procTarget = nullptr; }; AuraScript* GetAuraScript() const override @@ -673,11 +651,12 @@ class spell_mage_gen_extra_effects : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_T10_2P_BONUS) || - !sSpellMgr->GetSpellInfo(SPELL_MAGE_T10_2P_BONUS_EFFECT) || - !sSpellMgr->GetSpellInfo(SPELL_MAGE_T8_4P_BONUS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MAGE_T10_2P_BONUS, + SPELL_MAGE_T10_2P_BONUS_EFFECT, + SPELL_MAGE_T8_4P_BONUS + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -825,9 +804,7 @@ class spell_mage_hot_streak : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_HOT_STREAK_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_HOT_STREAK_PROC }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -880,9 +857,7 @@ class spell_mage_ice_barrier : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_SHATTERED_BARRIER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_SHATTERED_BARRIER }); } void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated) @@ -942,9 +917,7 @@ class spell_mage_ignite : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_IGNITE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_IGNITE }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -989,9 +962,7 @@ class spell_mage_living_bomb : public SpellScriptLoader bool Validate(SpellInfo const* spell) override { - if (!sSpellMgr->GetSpellInfo(uint32(spell->Effects[EFFECT_1].CalcValue()))) - return false; - return true; + return ValidateSpellInfo({ static_cast<uint32>(spell->Effects[EFFECT_1].CalcValue()) }); } void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -1001,7 +972,7 @@ class spell_mage_living_bomb : public SpellScriptLoader return; if (Unit* caster = GetCaster()) - caster->CastSpell(GetTarget(), uint32(aurEff->GetAmount()), true, NULL, aurEff); + caster->CastSpell(GetTarget(), uint32(aurEff->GetAmount()), true, nullptr, aurEff); } void Register() override @@ -1028,9 +999,7 @@ class spell_mage_magic_absorption : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_MAGIC_ABSORPTION_MANA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_MAGIC_ABSORPTION_MANA }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1065,10 +1034,8 @@ class spell_mage_mana_shield : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!spell_mage_incanters_absorbtion_base_AuraScript::Validate(spellInfo) || - !sSpellMgr->GetSpellInfo(SPELL_MAGE_ARCANE_SURGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_ARCANE_SURGE }) && + spell_mage_incanters_absorbtion_base_AuraScript::Validate(spellInfo); } void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated) @@ -1119,9 +1086,7 @@ class spell_mage_master_of_elements : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_MASTER_OF_ELEMENTS_ENERGIZE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MAGE_MASTER_OF_ELEMENTS_ENERGIZE }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1209,22 +1174,18 @@ class spell_mage_polymorph_cast_visual : public SpellScriptLoader { PrepareSpellScript(spell_mage_polymorph_cast_visual_SpellScript); - static const uint32 PolymorhForms[6]; + static const uint32 PolymorphForms[6]; bool Validate(SpellInfo const* /*spellInfo*/) override { - // check if spell ids exist in dbc - for (uint32 i = 0; i < 6; ++i) - if (!sSpellMgr->GetSpellInfo(PolymorhForms[i])) - return false; - return true; + return ValidateSpellInfo(PolymorphForms); } void HandleDummy(SpellEffIndex /*effIndex*/) { if (Unit* target = GetCaster()->FindNearestCreature(NPC_AUROSALIA, 30.0f)) if (target->GetTypeId() == TYPEID_UNIT) - target->CastSpell(target, PolymorhForms[urand(0, 5)], true); + target->CastSpell(target, PolymorphForms[urand(0, 5)], true); } void Register() override @@ -1239,7 +1200,7 @@ class spell_mage_polymorph_cast_visual : public SpellScriptLoader } }; -const uint32 spell_mage_polymorph_cast_visual::spell_mage_polymorph_cast_visual_SpellScript::PolymorhForms[6] = +const uint32 spell_mage_polymorph_cast_visual::spell_mage_polymorph_cast_visual_SpellScript::PolymorphForms[6] = { SPELL_MAGE_SQUIRREL_FORM, SPELL_MAGE_GIRAFFE_FORM, @@ -1261,9 +1222,12 @@ class spell_mage_summon_water_elemental : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_GLYPH_OF_ETERNAL_WATER) || !sSpellMgr->GetSpellInfo(SPELL_MAGE_SUMMON_WATER_ELEMENTAL_TEMPORARY) || !sSpellMgr->GetSpellInfo(SPELL_MAGE_SUMMON_WATER_ELEMENTAL_PERMANENT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_MAGE_GLYPH_OF_ETERNAL_WATER, + SPELL_MAGE_SUMMON_WATER_ELEMENTAL_TEMPORARY, + SPELL_MAGE_SUMMON_WATER_ELEMENTAL_PERMANENT + }); } void HandleDummy(SpellEffIndex /*effIndex*/) diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index b259db332a9..08ea6472a8d 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -21,13 +21,15 @@ * Scriptnames of files in this file should be prefixed with "spell_pal_". */ -#include "Player.h" -#include "GameTime.h" #include "ScriptMgr.h" -#include "SpellScript.h" +#include "GameTime.h" +#include "Group.h" +#include "Player.h" +#include "Random.h" #include "SpellAuraEffects.h" #include "SpellHistory.h" -#include "Group.h" +#include "SpellMgr.h" +#include "SpellScript.h" enum PaladinSpells { @@ -146,15 +148,8 @@ class spell_pal_ardent_defender : public SpellScriptLoader { PrepareAuraScript(spell_pal_ardent_defender_AuraScript); - public: - spell_pal_ardent_defender_AuraScript() - { - absorbPct = 0; - healPct = 0; - } - - private: - uint32 absorbPct, healPct; + uint32 _absorbPct = 0; + uint32 _healPct = 0; enum Spell { @@ -163,15 +158,13 @@ class spell_pal_ardent_defender : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(PAL_SPELL_ARDENT_DEFENDER_HEAL)) - return false; - return true; + return ValidateSpellInfo({ PAL_SPELL_ARDENT_DEFENDER_HEAL }); } bool Load() override { - healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); - absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(); + _absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(); + _healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); return GetUnitOwner()->GetTypeId() == TYPEID_PLAYER; } @@ -181,7 +174,7 @@ class spell_pal_ardent_defender : public SpellScriptLoader amount = -1; } - void Absorb(AuraEffect* aurEff, DamageInfo & dmgInfo, uint32 & absorbAmount) + void Absorb(AuraEffect* aurEff, DamageInfo& dmgInfo, uint32& absorbAmount) { Unit* victim = GetTarget(); int32 remainingHealth = victim->GetHealth() - dmgInfo.GetDamage(); @@ -192,15 +185,13 @@ class spell_pal_ardent_defender : public SpellScriptLoader // Cast healing spell, completely avoid damage absorbAmount = dmgInfo.GetDamage(); - uint32 defenseSkillValue = victim->GetDefenseSkillValue(); + float defenseSkillValue = victim->GetDefenseSkillValue(); // Max heal when defense skill denies critical hits from raid bosses // Formula: max defense at level + 140 (raiting from gear) - uint32 reqDefForMaxHeal = victim->getLevel() * 5 + 140; - float pctFromDefense = (defenseSkillValue >= reqDefForMaxHeal) - ? 1.0f - : float(defenseSkillValue) / float(reqDefForMaxHeal); + float reqDefForMaxHeal = victim->GetMaxSkillValueForLevel() + 140.0f; + float defenseFactor = std::min(1.0f, defenseSkillValue / reqDefForMaxHeal); - int32 healAmount = int32(victim->CountPctFromMaxHealth(uint32(healPct * pctFromDefense))); + int32 healAmount = int32(victim->CountPctFromMaxHealth(static_cast<uint32>(lroundf(_healPct * defenseFactor)))); victim->CastCustomSpell(PAL_SPELL_ARDENT_DEFENDER_HEAL, SPELLVALUE_BASE_POINT0, healAmount, victim, true, nullptr, aurEff); victim->GetSpellHistory()->AddCooldown(PAL_SPELL_ARDENT_DEFENDER_HEAL, 0, std::chrono::minutes(2)); } @@ -210,7 +201,7 @@ class spell_pal_ardent_defender : public SpellScriptLoader uint32 damageToReduce = (victim->GetHealth() < allowedHealth) ? dmgInfo.GetDamage() : allowedHealth - remainingHealth; - absorbAmount = CalculatePct(damageToReduce, absorbPct); + absorbAmount = CalculatePct(damageToReduce, _absorbPct); } } @@ -239,9 +230,7 @@ class spell_pal_aura_mastery : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_AURA_MASTERY_IMMUNE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_AURA_MASTERY_IMMUNE }); } void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -279,9 +268,7 @@ class spell_pal_aura_mastery_immune : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_CONCENTRACTION_AURA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_CONCENTRACTION_AURA }); } bool CheckAreaTarget(Unit* target) @@ -313,10 +300,11 @@ class spell_pal_avenging_wrath : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_SANCTIFIED_WRATH) - || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_SANCTIFIED_WRATH_TALENT_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_SANCTIFIED_WRATH, + SPELL_PALADIN_SANCTIFIED_WRATH_TALENT_R1 + }); } void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -325,7 +313,7 @@ class spell_pal_avenging_wrath : public SpellScriptLoader if (AuraEffect const* aurEff = target->GetAuraEffectOfRankedSpell(SPELL_PALADIN_SANCTIFIED_WRATH_TALENT_R1, EFFECT_2)) { int32 basepoints = aurEff->GetAmount(); - target->CastCustomSpell(target, SPELL_PALADIN_SANCTIFIED_WRATH, &basepoints, &basepoints, NULL, true, NULL, aurEff); + target->CastCustomSpell(target, SPELL_PALADIN_SANCTIFIED_WRATH, &basepoints, &basepoints, nullptr, true, nullptr, aurEff); } } @@ -359,9 +347,13 @@ class spell_pal_blessing_of_faith : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_DRUID) || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PALADIN) || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PRIEST) || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_LOWER_CITY_SHAMAN)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_BLESSING_OF_LOWER_CITY_DRUID, + SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PALADIN, + SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PRIEST, + SPELL_PALADIN_BLESSING_OF_LOWER_CITY_SHAMAN + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -416,11 +408,11 @@ class spell_pal_blessing_of_sanctuary : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF, + SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE + }); } void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -444,7 +436,7 @@ class spell_pal_blessing_of_sanctuary : public SpellScriptLoader void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE, true, nullptr, aurEff); } void Register() override @@ -558,32 +550,23 @@ class spell_pal_divine_storm : public SpellScriptLoader { PrepareSpellScript(spell_pal_divine_storm_SpellScript); - public: - spell_pal_divine_storm_SpellScript() - { - healPct = 0; - } - - private: - uint32 healPct; + uint32 _healPct = 0; bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STORM_DUMMY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_DIVINE_STORM_DUMMY }); } bool Load() override { - healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster()); + _healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster()); return true; } void TriggerHeal() { Unit* caster = GetCaster(); - caster->CastCustomSpell(SPELL_PALADIN_DIVINE_STORM_DUMMY, SPELLVALUE_BASE_POINT0, (GetHitDamage() * healPct) / 100, caster, true); + caster->CastCustomSpell(SPELL_PALADIN_DIVINE_STORM_DUMMY, SPELLVALUE_BASE_POINT0, (GetHitDamage() * _healPct) / 100, caster, true); } void Register() override @@ -608,18 +591,10 @@ class spell_pal_divine_storm_dummy : public SpellScriptLoader { PrepareSpellScript(spell_pal_divine_storm_dummy_SpellScript); - public: - spell_pal_divine_storm_dummy_SpellScript() - { - _targetCount = 0; - } - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STORM_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_DIVINE_STORM_HEAL }); } void CountTargets(std::list<WorldObject*>& targetList) @@ -633,10 +608,10 @@ class spell_pal_divine_storm_dummy : public SpellScriptLoader return; int32 heal = GetEffectValue() / _targetCount; - GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_PALADIN_DIVINE_STORM_HEAL, &heal, NULL, NULL, true); + GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_PALADIN_DIVINE_STORM_HEAL, &heal, nullptr, nullptr, true); } - private: - uint32 _targetCount; + + uint32 _targetCount = 0; void Register() override { @@ -699,9 +674,7 @@ class spell_pal_eye_for_an_eye : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_EYE_FOR_AN_EYE_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_EYE_FOR_AN_EYE_DAMAGE }); } void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -740,9 +713,7 @@ class spell_pal_glyph_of_divinity : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_GLYPH_OF_DIVINITY_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_GLYPH_OF_DIVINITY_PROC }); } void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -817,9 +788,7 @@ class spell_pal_glyph_of_holy_light_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_GLYPH_OF_HOLY_LIGHT_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_GLYPH_OF_HOLY_LIGHT_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -860,9 +829,7 @@ class spell_pal_guarded_by_the_light : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_PLEA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_DIVINE_PLEA }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -980,9 +947,7 @@ class spell_pal_heart_of_the_crusader : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_HEART_OF_THE_CRUSADER_EFF_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_HEART_OF_THE_CRUSADER_EFF_R1 }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1089,11 +1054,12 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_SHOCK_R1_HEALING) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_ILLUMINATION_ENERGIZE) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_SHOCK_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_HOLY_SHOCK_R1_HEALING, + SPELL_PALADIN_ILLUMINATION_ENERGIZE, + SPELL_PALADIN_HOLY_SHOCK_R1 + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1153,11 +1119,12 @@ class spell_pal_improved_aura : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(_spellId) - || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1) - || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_SWIFT_RETRIBUTION_R1)) - return false; - return true; + return ValidateSpellInfo( + { + _spellId, + SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1, + SPELL_PALADIN_SWIFT_RETRIBUTION_R1 + }); } void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1251,9 +1218,7 @@ class spell_pal_improved_lay_of_hands : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].TriggerSpell)) - return false; - return true; + return ValidateSpellInfo({ spellInfo->Effects[EFFECT_0].TriggerSpell }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1286,11 +1251,12 @@ class spell_pal_infusion_of_light : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_SACRED_SHIELD) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_T9_HOLY_4P_BONUS) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_FLASH_OF_LIGHT_PROC)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_SACRED_SHIELD, + SPELL_PALADIN_T9_HOLY_4P_BONUS, + SPELL_PALADIN_FLASH_OF_LIGHT_PROC + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1353,15 +1319,13 @@ class spell_pal_item_healing_discount : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_ITEM_HEALING_TRANCE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_ITEM_HEALING_TRANCE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_ITEM_HEALING_TRANCE, true, NULL, aurEff); + GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_ITEM_HEALING_TRANCE, true, nullptr, aurEff); } void Register() override @@ -1388,10 +1352,11 @@ class spell_pal_item_t6_trinket : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_ENDURING_LIGHT) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_ENDURING_JUDGEMENT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_ENDURING_LIGHT, + SPELL_PALADIN_ENDURING_JUDGEMENT + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1450,12 +1415,14 @@ class spell_pal_judgement : public SpellScriptLoader public: spell_pal_judgement_SpellScript(uint32 spellId) : SpellScript(), _spellId(spellId) { } + private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_JUDGEMENT_DAMAGE) - || !sSpellMgr->GetSpellInfo(_spellId)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_JUDGEMENT_DAMAGE, + _spellId + }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -1485,7 +1452,6 @@ class spell_pal_judgement : public SpellScriptLoader OnEffectHitTarget += SpellEffectFn(spell_pal_judgement_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); } - private: uint32 const _spellId; }; @@ -1512,7 +1478,7 @@ class spell_pal_judgement_of_command : public SpellScriptLoader { if (Unit* unitTarget = GetHitUnit()) if (SpellInfo const* spell_proto = sSpellMgr->GetSpellInfo(GetEffectValue())) - GetCaster()->CastSpell(unitTarget, spell_proto, true, NULL); + GetCaster()->CastSpell(unitTarget, spell_proto, true, nullptr); } void Register() override @@ -1539,9 +1505,7 @@ class spell_pal_judgement_of_light_heal : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_JUDGEMENT_OF_LIGHT_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_JUDGEMENT_OF_LIGHT_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1578,9 +1542,7 @@ class spell_pal_judgement_of_wisdom_mana : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_JUDGEMENT_OF_WISDOM_MANA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_JUDGEMENT_OF_WISDOM_MANA }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1624,9 +1586,7 @@ class spell_pal_judgements_of_the_just : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_JUDGEMENTS_OF_THE_JUST_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_JUDGEMENTS_OF_THE_JUST_PROC }); } void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1659,10 +1619,11 @@ class spell_pal_judgements_of_the_wise : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_REPLENISHMENT) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_JUDGEMENTS_OF_THE_WISE_MANA)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_REPLENISHMENT, + SPELL_PALADIN_JUDGEMENTS_OF_THE_WISE_MANA + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1698,13 +1659,12 @@ class spell_pal_lay_on_hands : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_FORBEARANCE)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_AVENGING_WRATH_MARKER)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_IMMUNE_SHIELD_MARKER)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_FORBEARANCE, + SPELL_PALADIN_AVENGING_WRATH_MARKER, + SPELL_PALADIN_IMMUNE_SHIELD_MARKER + }); } SpellCastResult CheckCast() @@ -1754,13 +1714,14 @@ class spell_pal_light_s_beacon : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BEACON_OF_LIGHT) - || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_1) - || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_2) - || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_3) - || !sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_LIGHT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_BEACON_OF_LIGHT, + SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_1, + SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_2, + SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_3, + SPELL_PALADIN_HOLY_LIGHT + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1820,9 +1781,7 @@ class spell_pal_righteous_defense : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT }); } SpellCastResult CheckCast() @@ -1884,9 +1843,7 @@ class spell_pal_righteous_vengeance : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_RIGHTEOUS_VENGEANCE_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_RIGHTEOUS_VENGEANCE_DAMAGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1977,10 +1934,11 @@ class spell_pal_sacred_shield_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_SACRED_SHIELD_TRIGGER) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_T8_HOLY_4P_BONUS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_SACRED_SHIELD_TRIGGER, + SPELL_PALADIN_T8_HOLY_4P_BONUS + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2030,9 +1988,7 @@ class spell_pal_seal_of_righteousness : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -2048,7 +2004,7 @@ class spell_pal_seal_of_righteousness : public SpellScriptLoader int32 holy = GetTarget()->SpellBaseDamageBonusDone(SPELL_SCHOOL_MASK_HOLY); holy += eventInfo.GetProcTarget()->SpellBaseDamageBonusTaken(SPELL_SCHOOL_MASK_HOLY); int32 bp = int32((ap * 0.022f + 0.044f * holy) * GetTarget()->GetAttackTime(BASE_ATTACK) / 1000); - GetTarget()->CastCustomSpell(SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS, SPELLVALUE_BASE_POINT0, bp, eventInfo.GetProcTarget(), true, NULL, aurEff); + GetTarget()->CastCustomSpell(SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS, SPELLVALUE_BASE_POINT0, bp, eventInfo.GetProcTarget(), true, nullptr, aurEff); } void Register() override @@ -2079,10 +2035,11 @@ class spell_pal_seal_of_vengeance : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(DoTSpell) || - !sSpellMgr->GetSpellInfo(DamageSpell)) - return false; - return true; + return ValidateSpellInfo( + { + DoTSpell, + DamageSpell + }); } /* @@ -2205,9 +2162,7 @@ class spell_pal_spiritual_attunement : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_SPIRITUAL_ATTUNEMENT_MANA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_SPIRITUAL_ATTUNEMENT_MANA }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -2253,9 +2208,7 @@ class spell_pal_sheath_of_light : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_SHEATH_OF_LIGHT_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_SHEATH_OF_LIGHT_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2302,12 +2255,13 @@ class spell_pal_t3_6p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_POWER_ARMOR) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_POWER_ATTACK_POWER) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_POWER_SPELL_POWER) || - !sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_POWER_MP5)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PALADIN_HOLY_POWER_ARMOR, + SPELL_PALADIN_HOLY_POWER_ATTACK_POWER, + SPELL_PALADIN_HOLY_POWER_SPELL_POWER, + SPELL_PALADIN_HOLY_POWER_MP5 + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2368,9 +2322,7 @@ class spell_pal_t8_2p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_MENDING)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PALADIN_HOLY_MENDING }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) diff --git a/src/server/scripts/Spells/spell_pet.cpp b/src/server/scripts/Spells/spell_pet.cpp index abe40cc2c7d..1386a212322 100644 --- a/src/server/scripts/Spells/spell_pet.cpp +++ b/src/server/scripts/Spells/spell_pet.cpp @@ -22,11 +22,13 @@ */ #include "ScriptMgr.h" -#include "SpellScript.h" +#include "ObjectMgr.h" +#include "Pet.h" +#include "Player.h" #include "SpellAuraEffects.h" +#include "SpellMgr.h" +#include "SpellScript.h" #include "Unit.h" -#include "Player.h" -#include "Pet.h" enum HunterPetCalculate { @@ -1497,13 +1499,6 @@ public: { PrepareAuraScript(spell_dk_pet_scaling_01_AuraScript); - public: - spell_dk_pet_scaling_01_AuraScript() - { - _tempHealth = 0; - } - - private: bool Load() override { if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER) @@ -1563,7 +1558,7 @@ public: float mod = 0.7f; // Ravenous Dead - AuraEffect const* aurEff = NULL; + AuraEffect const* aurEff = nullptr; // Check just if owner has Ravenous Dead since it's effect is not an aura aurEff = owner->GetAuraEffect(SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE, SPELLFAMILY_DEATHKNIGHT, 3010, 0); if (aurEff) @@ -1587,8 +1582,7 @@ public: DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_pet_scaling_01_AuraScript::CalculateStrengthAmount, EFFECT_1, SPELL_AURA_MOD_STAT); } - private: - uint32 _tempHealth; + uint32 _tempHealth = 0; }; AuraScript* GetAuraScript() const override diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index cd8aa4138a0..4ba231b021c 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -21,11 +21,12 @@ * Scriptnames of files in this file should be prefixed with "spell_pri_". */ -#include "Player.h" #include "ScriptMgr.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" #include "GridNotifiers.h" +#include "Player.h" +#include "SpellAuraEffects.h" +#include "SpellMgr.h" +#include "SpellScript.h" enum PriestSpells { @@ -115,9 +116,7 @@ class spell_pri_aq_3p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_ORACULAR_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_ORACULAR_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -159,9 +158,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_BLESSED_RECOVERY_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_BLESSED_RECOVERY_R1 }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -205,10 +202,11 @@ class spell_pri_body_and_soul : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_BODY_AND_SOUL_POISON_TRIGGER) || - !sSpellMgr->GetSpellInfo(SPELL_PRIEST_ABOLISH_DISEASE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PRIEST_BODY_AND_SOUL_POISON_TRIGGER, + SPELL_PRIEST_ABOLISH_DISEASE + }); } void HandleProcTriggerSpell(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) @@ -264,9 +262,7 @@ class spell_pri_circle_of_healing : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_GLYPH_OF_CIRCLE_OF_HEALING)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_GLYPH_OF_CIRCLE_OF_HEALING }); } void FilterTargets(std::list<WorldObject*>& targets) @@ -306,9 +302,7 @@ class spell_pri_divine_aegis : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_DIVINE_AEGIS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_DIVINE_AEGIS }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -395,9 +389,7 @@ class spell_pri_glyph_of_dispel_magic : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_GLYPH_OF_DISPEL_MAGIC_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_GLYPH_OF_DISPEL_MAGIC_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -439,9 +431,7 @@ class spell_pri_glyph_of_prayer_of_healing : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -479,20 +469,11 @@ class spell_pri_guardian_spirit : public SpellScriptLoader { PrepareAuraScript(spell_pri_guardian_spirit_AuraScript); - public: - spell_pri_guardian_spirit_AuraScript() - { - healPct = 0; - } - - private: - uint32 healPct; + uint32 healPct = 0; bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL }); } bool Load() override @@ -516,7 +497,7 @@ class spell_pri_guardian_spirit : public SpellScriptLoader int32 healAmount = int32(target->CountPctFromMaxHealth(healPct)); // remove the aura now, we don't want 40% healing bonus Remove(AURA_REMOVE_BY_ENEMY_SPELL); - target->CastCustomSpell(target, SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL, &healAmount, NULL, NULL, true); + target->CastCustomSpell(target, SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL, &healAmount, nullptr, nullptr, true); absorbAmount = dmgInfo.GetDamage(); } @@ -610,10 +591,11 @@ class spell_pri_improved_spirit_tap : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_SHADOW_WORD_DEATH_R1) || - !sSpellMgr->GetSpellInfo(SPELL_PRIEST_MIND_BLAST_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PRIEST_SHADOW_WORD_DEATH_R1, + SPELL_PRIEST_MIND_BLAST_R1 + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -654,10 +636,11 @@ class spell_pri_item_t6_trinket : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_DIVINE_BLESSING) || - !sSpellMgr->GetSpellInfo(SPELL_PRIEST_DIVINE_WRATH)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PRIEST_DIVINE_BLESSING, + SPELL_PRIEST_DIVINE_WRATH + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -780,18 +763,9 @@ class spell_pri_mana_leech : public SpellScriptLoader { PrepareAuraScript(spell_pri_mana_leech_AuraScript); - public: - spell_pri_mana_leech_AuraScript() - { - _procTarget = nullptr; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_MANA_LEECH_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_MANA_LEECH_PROC }); } bool CheckProc(ProcEventInfo& /*eventInfo*/) @@ -803,7 +777,7 @@ class spell_pri_mana_leech : public SpellScriptLoader void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(_procTarget, SPELL_PRIEST_MANA_LEECH_PROC, true, NULL, aurEff); + GetTarget()->CastSpell(_procTarget, SPELL_PRIEST_MANA_LEECH_PROC, true, nullptr, aurEff); } void Register() override @@ -812,8 +786,7 @@ class spell_pri_mana_leech : public SpellScriptLoader OnEffectProc += AuraEffectProcFn(spell_pri_mana_leech_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); } - private: - Unit* _procTarget; + Unit* _procTarget = nullptr; }; AuraScript* GetAuraScript() const override @@ -1003,11 +976,11 @@ class spell_pri_power_word_shield : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_REFLECTIVE_SHIELD_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED, + SPELL_PRIEST_REFLECTIVE_SHIELD_R1 + }); } void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated) @@ -1049,7 +1022,7 @@ class spell_pri_power_word_shield : public SpellScriptLoader if (AuraEffect* talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_PRIEST_REFLECTIVE_SHIELD_R1, EFFECT_0)) { int32 bp = CalculatePct(absorbAmount, talentAurEff->GetAmount()); - target->CastCustomSpell(dmgInfo.GetAttacker(), SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff); + target->CastCustomSpell(dmgInfo.GetAttacker(), SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED, &bp, nullptr, nullptr, true, nullptr, aurEff); } } @@ -1127,7 +1100,8 @@ class spell_pri_renew : public SpellScriptLoader { int32 heal = (aurEff->GetAmount() + aurEff->GetBonusAmount()) * aurEff->GetDonePct(); if (Player* modOwner = caster->GetSpellModOwner()) - modOwner->ApplySpellMod<SPELLMOD_DOT>(GetId(), heal); + modOwner->ApplySpellMod(GetId(), SPELLMOD_DOT, heal); + heal = GetTarget()->SpellHealingBonusTaken(caster, GetSpellInfo(), heal, DOT); heal *= GetSpellInfo()->GetMaxTicks(); @@ -1161,9 +1135,7 @@ class spell_pri_shadowfiend_death : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1244,9 +1216,7 @@ class spell_pri_vampiric_embrace : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1286,10 +1256,11 @@ class spell_pri_vampiric_touch : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL) || - !sSpellMgr->GetSpellInfo(SPELL_REPLENISHMENT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL, + SPELL_REPLENISHMENT + }); } bool CheckDummy(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/) @@ -1346,9 +1317,7 @@ class spell_pri_t3_4p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_ARMOR_OF_FAITH)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_ARMOR_OF_FAITH }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1381,9 +1350,7 @@ class spell_pri_t5_heal_2p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_ITEM_EFFICIENCY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_ITEM_EFFICIENCY }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1428,9 +1395,7 @@ class spell_pri_t10_heal_2p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_BLESSED_HEALING)) - return false; - return true; + return ValidateSpellInfo({ SPELL_PRIEST_BLESSED_HEALING }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 4b3074888cb..72e29df22f8 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -21,15 +21,15 @@ * Scriptnames of files in this file should be prefixed with "spell_q#questID_". */ +#include "ScriptMgr.h" #include "CellImpl.h" +#include "CreatureAIImpl.h" #include "CreatureTextMgr.h" -#include "GridNotifiers.h" #include "GridNotifiersImpl.h" #include "Player.h" -#include "ScriptMgr.h" #include "ScriptedCreature.h" -#include "SpellScript.h" #include "SpellAuraEffects.h" +#include "SpellScript.h" #include "Vehicle.h" class spell_generic_quest_update_entry_SpellScript : public SpellScript @@ -104,9 +104,7 @@ class spell_q2203_thaumaturgy_channel : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_THAUMATURGY_CHANNEL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_THAUMATURGY_CHANNEL }); } void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) @@ -152,16 +150,14 @@ class spell_q5206_test_fetid_skull : public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_CREATE_RESONATING_SKULL) || !sSpellMgr->GetSpellInfo(SPELL_CREATE_BONE_DUST)) - return false; - return true; + return ValidateSpellInfo({ SPELL_CREATE_RESONATING_SKULL, SPELL_CREATE_BONE_DUST }); } void HandleDummy(SpellEffIndex /*effIndex*/) { Unit* caster = GetCaster(); uint32 spellId = roll_chance_i(50) ? SPELL_CREATE_RESONATING_SKULL : SPELL_CREATE_BONE_DUST; - caster->CastSpell(caster, spellId, true, NULL); + caster->CastSpell(caster, spellId, true, nullptr); } void Register() override @@ -316,9 +312,7 @@ class spell_q11396_11399_scourging_crystal_controller : public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3) || !sSpellMgr->GetSpellInfo(SPELL_SCOURGING_CRYSTAL_CONTROLLER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3, SPELL_SCOURGING_CRYSTAL_CONTROLLER }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -354,9 +348,7 @@ class spell_q11396_11399_scourging_crystal_controller_dummy : public SpellScript bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3)) - return false; - return true; + return ValidateSpellInfo({ SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3 }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -417,9 +409,7 @@ class spell_q11587_arcane_prisoner_rescue : public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_ARCANE_PRISONER_MALE) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_ARCANE_PRISONER_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_ARCANE_PRISONER_KILL_CREDIT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SUMMON_ARCANE_PRISONER_MALE, SPELL_SUMMON_ARCANE_PRISONER_FEMALE, SPELL_ARCANE_PRISONER_KILL_CREDIT }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -480,9 +470,15 @@ class spell_q11730_ultrasonic_screwdriver : public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_SCAVENGEBOT_004A8) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_SENTRYBOT_57K) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_DEFENDOTANK_66D) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_SCAVENGEBOT_005B6) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_55D_COLLECTATRON) || !sSpellMgr->GetSpellInfo(SPELL_ROBOT_KILL_CREDIT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SUMMON_SCAVENGEBOT_004A8, + SPELL_SUMMON_SENTRYBOT_57K, + SPELL_SUMMON_DEFENDOTANK_66D, + SPELL_SUMMON_SCAVENGEBOT_005B6, + SPELL_SUMMON_55D_COLLECTATRON, + SPELL_ROBOT_KILL_CREDIT + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -592,9 +588,13 @@ class spell_q12634_despawn_fruit_tosser : public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_BANANAS_FALL_TO_GROUND) || !sSpellMgr->GetSpellInfo(SPELL_ORANGE_FALLS_TO_GROUND) || !sSpellMgr->GetSpellInfo(SPELL_PAPAYA_FALLS_TO_GROUND) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_ADVENTUROUS_DWARF)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_BANANAS_FALL_TO_GROUND, + SPELL_ORANGE_FALLS_TO_GROUND, + SPELL_PAPAYA_FALLS_TO_GROUND, + SPELL_SUMMON_ADVENTUROUS_DWARF + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -608,7 +608,7 @@ class spell_q12634_despawn_fruit_tosser : public SpellScriptLoader // sometimes, if you're lucky, you get a dwarf if (roll_chance_i(5)) spellId = SPELL_SUMMON_ADVENTUROUS_DWARF; - GetCaster()->CastSpell(GetCaster(), spellId, true, NULL); + GetCaster()->CastSpell(GetCaster(), spellId, true, nullptr); } void Register() override @@ -642,7 +642,7 @@ class spell_q12683_take_sputum_sample : public SpellScriptLoader if (caster->HasAuraEffect(reqAuraId, 0)) { uint32 spellId = GetSpellInfo()->Effects[EFFECT_0].CalcValue(); - caster->CastSpell(caster, spellId, true, NULL); + caster->CastSpell(caster, spellId, true, nullptr); } } @@ -744,9 +744,7 @@ class spell_q12937_relief_for_the_fallen : public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGER_AID_OF_THE_EARTHEN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_TRIGGER_AID_OF_THE_EARTHEN }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -754,7 +752,7 @@ class spell_q12937_relief_for_the_fallen : public SpellScriptLoader Player* caster = GetCaster()->ToPlayer(); if (Creature* target = GetHitCreature()) { - caster->CastSpell(caster, SPELL_TRIGGER_AID_OF_THE_EARTHEN, true, NULL); + caster->CastSpell(caster, SPELL_TRIGGER_AID_OF_THE_EARTHEN, true, nullptr); caster->KilledMonsterCredit(NPC_FALLEN_EARTHEN_DEFENDER); target->DespawnOrUnsummon(); } @@ -790,9 +788,7 @@ class spell_q10041_q10040_who_are_they : public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MALE_DISGUISE) || !sSpellMgr->GetSpellInfo(SPELL_FEMALE_DISGUISE) || !sSpellMgr->GetSpellInfo(SPELL_GENERIC_DISGUISE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MALE_DISGUISE, SPELL_FEMALE_DISGUISE, SPELL_GENERIC_DISGUISE }); } void HandleScript(SpellEffIndex effIndex) @@ -1051,9 +1047,7 @@ class spell_q14112_14145_chum_the_water: public SpellScriptLoader bool Validate(SpellInfo const* /*spellEntry*/) override { - if (!sSpellMgr->GetSpellInfo(SUMMON_ANGRY_KVALDIR) || !sSpellMgr->GetSpellInfo(SUMMON_NORTH_SEA_MAKO) || !sSpellMgr->GetSpellInfo(SUMMON_NORTH_SEA_THRESHER) || !sSpellMgr->GetSpellInfo(SUMMON_NORTH_SEA_BLUE_SHARK)) - return false; - return true; + return ValidateSpellInfo({ SUMMON_ANGRY_KVALDIR, SUMMON_NORTH_SEA_MAKO, SUMMON_NORTH_SEA_THRESHER, SUMMON_NORTH_SEA_BLUE_SHARK }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -1662,16 +1656,14 @@ class spell_q12527_zuldrak_rat : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_GORGED_LURKING_BASILISK)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SUMMON_GORGED_LURKING_BASILISK }); } void HandleScriptEffect(SpellEffIndex /* effIndex */) { if (GetHitAura() && GetHitAura()->GetStackAmount() >= GetSpellInfo()->StackAmount) { - GetHitUnit()->CastSpell((Unit*) NULL, SPELL_SUMMON_GORGED_LURKING_BASILISK, true); + GetHitUnit()->CastSpell((Unit*) nullptr, SPELL_SUMMON_GORGED_LURKING_BASILISK, true); if (Creature* basilisk = GetHitUnit()->ToCreature()) basilisk->DespawnOrUnsummon(); } @@ -1734,9 +1726,7 @@ class spell_q12730_quenching_mist : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FLICKERING_FLAMES)) - return false; - return true; + return ValidateSpellInfo({ SPELL_FLICKERING_FLAMES }); } void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) @@ -1777,10 +1767,7 @@ class spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy : public bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_RIDE)) - return false; - - return true; + return ValidateSpellInfo({ SPELL_RIDE }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1864,9 +1851,8 @@ class spell_q12847_summon_soul_moveto_bunny : public SpellScriptLoader enum BearFlankMaster { - SPELL_BEAR_FLANK_MASTER = 56565, SPELL_CREATE_BEAR_FLANK = 56566, - SPELL_BEAR_FLANK_FAIL = 56569 + SPELL_BEAR_FLANK_FAIL = 56569 }; class spell_q13011_bear_flank_master : public SpellScriptLoader @@ -1880,10 +1866,11 @@ class spell_q13011_bear_flank_master : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_BEAR_FLANK_MASTER) || - !sSpellMgr->GetSpellInfo(SPELL_CREATE_BEAR_FLANK)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_CREATE_BEAR_FLANK, + SPELL_BEAR_FLANK_FAIL + }); } bool Load() override @@ -1929,9 +1916,7 @@ class spell_q13086_cannons_target : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue())) - return false; - return true; + return ValidateSpellInfo({ static_cast<uint32>(spellInfo->Effects[EFFECT_0].CalcValue()) }); } void HandleEffectDummy(SpellEffIndex /*effIndex*/) @@ -1980,14 +1965,15 @@ class spell_q12690_burst_at_the_seams : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_BURST_AT_THE_SEAMS) - || !sSpellMgr->GetSpellInfo(SPELL_BURST_AT_THE_SEAMS_DMG) - || !sSpellMgr->GetSpellInfo(SPELL_BURST_AT_THE_SEAMS_DMG_2) - || !sSpellMgr->GetSpellInfo(SPELL_BURST_AT_THE_SEAMS_BONE) - || !sSpellMgr->GetSpellInfo(SPELL_BURST_AT_THE_SEAMS_MEAT) - || !sSpellMgr->GetSpellInfo(SPELL_BURST_AT_THE_SEAMS_BMEAT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_BURST_AT_THE_SEAMS, + SPELL_BURST_AT_THE_SEAMS_DMG, + SPELL_BURST_AT_THE_SEAMS_DMG_2, + SPELL_BURST_AT_THE_SEAMS_BONE, + SPELL_BURST_AT_THE_SEAMS_MEAT, + SPELL_BURST_AT_THE_SEAMS_BMEAT + }); } bool Load() override @@ -2056,9 +2042,7 @@ class spell_q12308_escape_from_silverbrook : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_WORGEN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SUMMON_WORGEN }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -2134,12 +2118,13 @@ class spell_q12641_death_comes_from_on_high : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_FORGE_CREDIT) || - !sSpellMgr->GetSpellInfo(SPELL_TOWN_HALL_CREDIT) || - !sSpellMgr->GetSpellInfo(SPELL_SCARLET_HOLD_CREDIT) || - !sSpellMgr->GetSpellInfo(SPELL_CHAPEL_CREDIT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_FORGE_CREDIT, + SPELL_TOWN_HALL_CREDIT, + SPELL_SCARLET_HOLD_CREDIT, + SPELL_CHAPEL_CREDIT + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -2164,7 +2149,7 @@ class spell_q12641_death_comes_from_on_high : public SpellScriptLoader return; } - GetCaster()->CastSpell((Unit*)NULL, spellId, true); + GetCaster()->CastSpell((Unit*)nullptr, spellId, true); } void Register() override @@ -2230,7 +2215,7 @@ class spell_q12619_emblazon_runeblade : public SpellScriptLoader { PreventDefaultAction(); if (Unit* caster = GetCaster()) - caster->CastSpell(caster, GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, true, NULL, aurEff); + caster->CastSpell(caster, GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, true, nullptr, aurEff); } void Register() override @@ -2289,9 +2274,7 @@ class spell_q12919_gymers_grab : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_RIDE_GYMER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_RIDE_GYMER }); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -2368,9 +2351,7 @@ class spell_q13400_illidan_kill_master : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ILLIDAN_KILL_CREDIT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ILLIDAN_KILL_CREDIT }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -2410,9 +2391,7 @@ class spell_q14100_q14111_make_player_destroy_totems : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TOTEM_OF_THE_EARTHEN_RING)) - return false; - return true; + return ValidateSpellInfo({ SPELL_TOTEM_OF_THE_EARTHEN_RING }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -2451,11 +2430,7 @@ class spell_q10929_fumping : SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_SAND_GNOME)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_BONE_SLICER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SUMMON_SAND_GNOME, SPELL_SUMMON_BONE_SLICER }); } void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index 4d9f32de2db..750b5073a7c 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -21,12 +21,17 @@ * Scriptnames of files in this file should be prefixed with "spell_rog_". */ -#include "Player.h" #include "ScriptMgr.h" -#include "SpellScript.h" +#include "Containers.h" +#include "DBCStores.h" +#include "Item.h" +#include "Log.h" +#include "ObjectAccessor.h" +#include "Player.h" #include "SpellAuraEffects.h" #include "SpellHistory.h" -#include "Containers.h" +#include "SpellMgr.h" +#include "SpellScript.h" enum RogueSpells { @@ -60,18 +65,9 @@ class spell_rog_blade_flurry : public SpellScriptLoader { PrepareAuraScript(spell_rog_blade_flurry_AuraScript); - public: - spell_rog_blade_flurry_AuraScript() - { - _procTarget = nullptr; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_BLADE_FLURRY_EXTRA_ATTACK)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_BLADE_FLURRY_EXTRA_ATTACK }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -96,8 +92,7 @@ class spell_rog_blade_flurry : public SpellScriptLoader OnEffectProc += AuraEffectProcFn(spell_rog_blade_flurry_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_MOD_MELEE_HASTE); } - private: - Unit* _procTarget; + Unit* _procTarget = nullptr; }; AuraScript* GetAuraScript() const override @@ -116,20 +111,11 @@ class spell_rog_cheat_death : public SpellScriptLoader { PrepareAuraScript(spell_rog_cheat_death_AuraScript); - public: - spell_rog_cheat_death_AuraScript() - { - absorbChance = 0; - } - - private: - uint32 absorbChance; + uint32 absorbChance = 0; bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_CHEAT_DEATH_COOLDOWN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_CHEAT_DEATH_COOLDOWN }); } bool Load() override @@ -227,9 +213,7 @@ class spell_rog_deadly_brew : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_CRIPPLING_POISON)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_CRIPPLING_POISON }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -260,13 +244,6 @@ class spell_rog_deadly_poison : public SpellScriptLoader { PrepareSpellScript(spell_rog_deadly_poison_SpellScript); - public: - spell_rog_deadly_poison_SpellScript() - { - _stackAmount = 0; - } - - private: bool Load() override { // at this point CastItem must already be initialized @@ -341,7 +318,7 @@ class spell_rog_deadly_poison : public SpellScriptLoader AfterHit += SpellHitFn(spell_rog_deadly_poison_SpellScript::HandleAfterHit); } - uint8 _stackAmount; + uint8 _stackAmount = 0; }; SpellScript* GetSpellScript() const override @@ -351,11 +328,12 @@ class spell_rog_deadly_poison : public SpellScriptLoader }; // 51690 - Killing Spree -#define KillingSpreeScriptName "spell_rog_killing_spree" class spell_rog_killing_spree : public SpellScriptLoader { public: - spell_rog_killing_spree() : SpellScriptLoader(KillingSpreeScriptName) { } + static char constexpr const ScriptName[] = "spell_rog_killing_spree"; + + spell_rog_killing_spree() : SpellScriptLoader(ScriptName) { } class spell_rog_killing_spree_SpellScript : public SpellScript { @@ -370,10 +348,8 @@ class spell_rog_killing_spree : public SpellScriptLoader void HandleDummy(SpellEffIndex /*effIndex*/) { if (Aura* aura = GetCaster()->GetAura(SPELL_ROGUE_KILLING_SPREE)) - { - if (spell_rog_killing_spree_AuraScript* script = dynamic_cast<spell_rog_killing_spree_AuraScript*>(aura->GetScriptByName(KillingSpreeScriptName))) + if (spell_rog_killing_spree_AuraScript* script = aura->GetScript<spell_rog_killing_spree_AuraScript>(ScriptName)) script->AddTarget(GetHitUnit()); - } } void Register() override @@ -394,11 +370,12 @@ class spell_rog_killing_spree : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_KILLING_SPREE_TELEPORT) - || !sSpellMgr->GetSpellInfo(SPELL_ROGUE_KILLING_SPREE_WEAPON_DMG) - || !sSpellMgr->GetSpellInfo(SPELL_ROGUE_KILLING_SPREE_DMG_BUFF)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_ROGUE_KILLING_SPREE_TELEPORT, + SPELL_ROGUE_KILLING_SPREE_WEAPON_DMG, + SPELL_ROGUE_KILLING_SPREE_DMG_BUFF + }); } void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -449,6 +426,7 @@ class spell_rog_killing_spree : public SpellScriptLoader return new spell_rog_killing_spree_AuraScript(); } }; +char constexpr const spell_rog_killing_spree::ScriptName[]; // -31130 - Nerves of Steel class spell_rog_nerves_of_steel : public SpellScriptLoader @@ -518,9 +496,7 @@ class spell_rog_preparation : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_GLYPH_OF_PREPARATION)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_GLYPH_OF_PREPARATION }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -566,9 +542,7 @@ class spell_rog_prey_on_the_weak : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_PREY_ON_THE_WEAK)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_PREY_ON_THE_WEAK }); } void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) @@ -611,9 +585,7 @@ class spell_rog_quick_recovery : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_QUICK_RECOVERY_ENERGY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_QUICK_RECOVERY_ENERGY }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -641,11 +613,12 @@ class spell_rog_quick_recovery : public SpellScriptLoader }; // -1943 - Rupture -static char const* const RuptureScriptName = "spell_rog_rupture"; class spell_rog_rupture : public SpellScriptLoader { public: - spell_rog_rupture() : SpellScriptLoader(RuptureScriptName) { } + static char constexpr const ScriptName[] = "spell_rog_rupture"; + + spell_rog_rupture() : SpellScriptLoader(ScriptName) { } class spell_rog_rupture_AuraScript : public AuraScript { @@ -703,6 +676,7 @@ class spell_rog_rupture : public SpellScriptLoader return new spell_rog_rupture_AuraScript(); } }; +char constexpr const spell_rog_rupture::ScriptName[]; // 56800 - Glyph of Backstab (dummy) class spell_rog_glyph_of_backstab : public SpellScriptLoader @@ -716,9 +690,7 @@ class spell_rog_glyph_of_backstab : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_GLYPH_OF_BACKSTAB_TRIGGER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_GLYPH_OF_BACKSTAB_TRIGGER }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -759,7 +731,7 @@ class spell_rog_glyph_of_backstab_triggered : public SpellScriptLoader // search our Rupture aura on target if (AuraEffect* aurEff = GetHitUnit()->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_ROGUE, 0x00100000, 0, 0, caster->GetGUID())) { - RuptureAuraScript* ruptureAuraScript = dynamic_cast<RuptureAuraScript*>(aurEff->GetBase()->GetScriptByName(RuptureScriptName)); + RuptureAuraScript* ruptureAuraScript = aurEff->GetBase()->GetScript<RuptureAuraScript>(spell_rog_rupture::ScriptName); if (!ruptureAuraScript) return; @@ -843,9 +815,7 @@ class spell_rog_shiv : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_SHIV_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_ROGUE_SHIV_TRIGGERED }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -877,20 +847,13 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader { PrepareAuraScript(spell_rog_tricks_of_the_trade_AuraScript); - public: - spell_rog_tricks_of_the_trade_AuraScript() - { - _redirectTarget = nullptr; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_TRICKS_OF_THE_TRADE_DMG_BOOST)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_TRICKS_OF_THE_TRADE_PROC)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_ROGUE_TRICKS_OF_THE_TRADE_DMG_BOOST, + SPELL_ROGUE_TRICKS_OF_THE_TRADE_PROC + }); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -922,8 +885,7 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader OnEffectProc += AuraEffectProcFn(spell_rog_tricks_of_the_trade_AuraScript::HandleProc, EFFECT_1, SPELL_AURA_DUMMY); } - private: - Unit* _redirectTarget; + Unit* _redirectTarget = nullptr; }; AuraScript* GetAuraScript() const override @@ -971,10 +933,11 @@ public: bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_HONOR_AMONG_THIEVES_2) || - !sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].TriggerSpell)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_ROGUE_HONOR_AMONG_THIEVES_2, + spellInfo->Effects[EFFECT_0].TriggerSpell + }); } bool CheckProc(ProcEventInfo& /*eventInfo*/) @@ -1023,10 +986,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_ROGUE_HONOR_AMONG_THIEVES_PROC)) - return false; - - return true; + return ValidateSpellInfo({ SPELL_ROGUE_HONOR_AMONG_THIEVES_PROC }); } void FilterTargets(std::list<WorldObject*>& targets) @@ -1089,9 +1049,7 @@ class spell_rog_turn_the_tables : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].TriggerSpell)) - return false; - return true; + return ValidateSpellInfo({ spellInfo->Effects[EFFECT_0].TriggerSpell }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index 0b93927ecd0..5b89beaee2c 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -21,13 +21,17 @@ * Scriptnames of files in this file should be prefixed with "spell_sha_". */ -#include "Player.h" #include "ScriptMgr.h" #include "GridNotifiers.h" -#include "Unit.h" +#include "Item.h" +#include "ObjectAccessor.h" +#include "Map.h" +#include "Player.h" +#include "SpellAuraEffects.h" #include "SpellHistory.h" +#include "SpellMgr.h" #include "SpellScript.h" -#include "SpellAuraEffects.h" +#include "Unit.h" enum ShamanSpells { @@ -106,9 +110,7 @@ class spell_sha_ancestral_awakening : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ANCESTRAL_AWAKENING_DUMMY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_ANCESTRAL_AWAKENING_DUMMY }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -146,9 +148,7 @@ class spell_sha_ancestral_awakening_proc : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC }); } void FilterTargets(std::list<WorldObject*>& targets) @@ -167,7 +167,7 @@ class spell_sha_ancestral_awakening_proc : public SpellScriptLoader { int32 damage = GetEffectValue(); if (GetHitUnit()) - GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC, &damage, NULL, NULL, true); + GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_ANCESTRAL_AWAKENING_PROC, &damage, nullptr, nullptr, true); } void Register() override @@ -277,9 +277,7 @@ class spell_sha_bloodlust : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SATED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_SATED }); } void RemoveInvalidTargets(std::list<WorldObject*>& targets) @@ -371,16 +369,14 @@ class spell_sha_cleansing_totem_pulse : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT }); } void HandleDummy(SpellEffIndex /*effIndex*/) { int32 bp = 1; if (GetCaster() && GetHitUnit() && GetOriginalCaster()) - GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT, NULL, &bp, NULL, true, NULL, NULL, GetOriginalCaster()->GetGUID()); + GetCaster()->CastCustomSpell(GetHitUnit(), SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT, nullptr, &bp, nullptr, true, nullptr, nullptr, GetOriginalCaster()->GetGUID()); } void Register() override @@ -407,9 +403,7 @@ class spell_sha_earth_shield : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EARTH_SHIELD_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_EARTH_SHIELD_HEAL }); } void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) @@ -451,9 +445,7 @@ class spell_sha_earthbind_totem : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_EARTHBIND_TOTEM) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_EARTHEN_POWER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_TOTEM_EARTHBIND_TOTEM, SPELL_SHAMAN_TOTEM_EARTHEN_POWER }); } void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) @@ -463,7 +455,7 @@ class spell_sha_earthbind_totem : public SpellScriptLoader if (Player* owner = GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself()) if (AuraEffect* aur = owner->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, 2289, 0)) if (roll_chance_i(aur->GetBaseAmount())) - GetTarget()->CastSpell((Unit*)NULL, SPELL_SHAMAN_TOTEM_EARTHEN_POWER, true); + GetTarget()->CastSpell((Unit*)nullptr, SPELL_SHAMAN_TOTEM_EARTHEN_POWER, true); } void Apply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -550,9 +542,7 @@ class spell_sha_earthliving_weapon : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_BLESSING_OF_THE_ETERNALS_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_BLESSING_OF_THE_ETERNALS_R1 }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -648,11 +638,7 @@ class spell_sha_flame_shock : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LAVA_FLOWS_R1)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LAVA_FLOWS_TRIGGERED_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_LAVA_FLOWS_R1, SPELL_SHAMAN_LAVA_FLOWS_TRIGGERED_R1 }); } void HandleDispel(DispelInfo* /*dispelInfo*/) @@ -694,9 +680,7 @@ class spell_sha_flametongue_weapon : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_FLAMETONGUE_ATTACK)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_FLAMETONGUE_ATTACK }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -778,9 +762,7 @@ class spell_sha_frozen_power : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_FREEZE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_FREEZE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -864,9 +846,7 @@ class spell_sha_glyph_of_healing_wave : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_GLYPH_OF_HEALING_WAVE_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_GLYPH_OF_HEALING_WAVE_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -908,9 +888,7 @@ class spell_sha_glyph_of_totem_of_wrath : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_OF_WRATH_SPELL_POWER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_TOTEM_OF_WRATH_SPELL_POWER }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -969,9 +947,7 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM, SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1027,9 +1003,7 @@ class spell_sha_heroism : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EXHAUSTION)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_EXHAUSTION }); } void RemoveInvalidTargets(std::list<WorldObject*>& targets) @@ -1129,10 +1103,11 @@ class spell_sha_lightning_overload : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LIGHTNING_BOLT_OVERLOAD_R1) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_CHAIN_LIGHTNING_OVERLOAD_R1)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SHAMAN_LIGHTNING_BOLT_OVERLOAD_R1, + SPELL_SHAMAN_CHAIN_LIGHTNING_OVERLOAD_R1 + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1188,9 +1163,7 @@ class spell_sha_item_lightning_shield : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1223,9 +1196,7 @@ class spell_sha_item_lightning_shield_trigger : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_ITEM_LIGHTNING_SHIELD_DAMAGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) @@ -1258,9 +1229,7 @@ class spell_sha_item_mana_surge : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ITEM_MANA_SURGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_ITEM_MANA_SURGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1300,10 +1269,11 @@ class spell_sha_item_t6_trinket : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ENERGY_SURGE) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_POWER_SURGE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SHAMAN_ENERGY_SURGE, + SPELL_SHAMAN_POWER_SURGE + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1365,9 +1335,7 @@ class spell_sha_item_t10_elemental_2p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ELEMENTAL_MASTERY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_ELEMENTAL_MASTERY }); } void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) @@ -1446,9 +1414,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LIGHTNING_SHIELD_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_LIGHTNING_SHIELD_R1 }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1491,10 +1457,11 @@ class spell_sha_maelstrom_weapon : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_MAELSTROM_POWER) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_T10_ENHANCEMENT_4P_BONUS)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SHAMAN_MAELSTROM_POWER, + SPELL_SHAMAN_T10_ENHANCEMENT_4P_BONUS + }); } void HandleBonus(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1534,9 +1501,7 @@ class spell_sha_mana_spring_totem : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_MANA_SPRING_TOTEM_ENERGIZE }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1573,9 +1538,7 @@ class spell_sha_mana_tide_totem : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_GLYPH_OF_MANA_TIDE) || !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_MANA_TIDE_TOTEM)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_GLYPH_OF_MANA_TIDE, SPELL_SHAMAN_MANA_TIDE_TOTEM }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1623,9 +1586,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_NATURE_GUARDIAN)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_NATURE_GUARDIAN }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1676,9 +1637,7 @@ class spell_sha_sentry_totem : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_BIND_SIGHT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_BIND_SIGHT }); } void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1721,9 +1680,7 @@ class spell_sha_shamanistic_rage : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SHAMANISTIC_RAGE_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_SHAMANISTIC_RAGE_PROC }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) @@ -1759,9 +1716,7 @@ class spell_sha_spirit_hunt : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SPIRIT_HUNT_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_SPIRIT_HUNT_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1805,9 +1760,7 @@ class spell_sha_static_shock : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LIGHTNING_SHIELD_DAMAGE_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_LIGHTNING_SHIELD_DAMAGE_R1 }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1850,9 +1803,7 @@ class spell_sha_tidal_force_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TIDAL_FORCE_CRIT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_TIDAL_FORCE_CRIT }); } void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) @@ -1914,9 +1865,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEMIC_MASTERY)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_TOTEMIC_MASTERY }); } void HandleDummy(AuraEffect const* aurEff) @@ -1954,12 +1903,13 @@ class spell_sha_t3_6p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEMIC_POWER_ARMOR) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEMIC_POWER_ATTACK_POWER) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEMIC_POWER_SPELL_POWER) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEMIC_POWER_MP5)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SHAMAN_TOTEMIC_POWER_ARMOR, + SPELL_SHAMAN_TOTEMIC_POWER_ATTACK_POWER, + SPELL_SHAMAN_TOTEMIC_POWER_SPELL_POWER, + SPELL_SHAMAN_TOTEMIC_POWER_MP5 + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2020,9 +1970,7 @@ class spell_sha_t8_elemental_4p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_ELECTRIFIED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_ELECTRIFIED }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2069,9 +2017,7 @@ class spell_sha_t9_elemental_4p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_LAVA_BURST_BONUS_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_LAVA_BURST_BONUS_DAMAGE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2163,9 +2109,7 @@ class spell_sha_t10_restoration_4p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_CHAINED_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAMAN_CHAINED_HEAL }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -2212,11 +2156,12 @@ class spell_sha_windfury_weapon : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_WINDFURY_WEAPON_R1) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_WINDFURY_ATTACK_MH) || - !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_WINDFURY_ATTACK_OH)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_SHAMAN_WINDFURY_WEAPON_R1, + SPELL_SHAMAN_WINDFURY_ATTACK_MH, + SPELL_SHAMAN_WINDFURY_ATTACK_OH + }); } bool CheckProc(ProcEventInfo& eventInfo) diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp index 1f8954d0da7..1b602210889 100644 --- a/src/server/scripts/Spells/spell_warlock.cpp +++ b/src/server/scripts/Spells/spell_warlock.cpp @@ -21,10 +21,16 @@ * Scriptnames of files in this file should be prefixed with "spell_warl_". */ -#include "Player.h" #include "ScriptMgr.h" -#include "SpellScript.h" +#include "Creature.h" +#include "GameObject.h" +#include "Log.h" +#include "ObjectMgr.h" +#include "Player.h" +#include "Random.h" #include "SpellAuraEffects.h" +#include "SpellMgr.h" +#include "SpellScript.h" enum WarlockSpells { @@ -152,9 +158,7 @@ class spell_warl_create_healthstone : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R1) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R2)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R1, SPELL_WARLOCK_IMPROVED_HEALTHSTONE_R2 }); } SpellCastResult CheckCast() @@ -163,7 +167,7 @@ class spell_warl_create_healthstone : public SpellScriptLoader { uint8 spellRank = GetSpellInfo()->GetRank(); ItemPosCountVec dest; - InventoryResult msg = caster->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, iTypes[spellRank - 1][0], 1, NULL); + InventoryResult msg = caster->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, iTypes[spellRank - 1][0], 1, nullptr); if (msg != EQUIP_ERR_OK) return SPELL_FAILED_TOO_MANY_OF_ITEM; } @@ -233,9 +237,7 @@ class spell_warl_curse_of_doom : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT }); } bool Load() override @@ -253,7 +255,7 @@ class spell_warl_curse_of_doom : public SpellScriptLoader return; if (GetCaster()->ToPlayer()->isHonorOrXPTarget(GetTarget())) - GetCaster()->CastSpell(GetTarget(), SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT, true, NULL, aurEff); + GetCaster()->CastSpell(GetTarget(), SPELL_WARLOCK_CURSE_OF_DOOM_EFFECT, true, nullptr, aurEff); } void Register() override @@ -396,9 +398,14 @@ class spell_warl_demonic_empowerment : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS, + SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER, + SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD, + SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER, + SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP + }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -418,7 +425,7 @@ class spell_warl_demonic_empowerment : public SpellScriptLoader { SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER); int32 hp = int32(targetCreature->CountPctFromMaxHealth(GetCaster()->CalculateSpellDamage(targetCreature, spellInfo, 0))); - targetCreature->CastCustomSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER, &hp, NULL, NULL, true); + targetCreature->CastCustomSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER, &hp, nullptr, nullptr, true); //unitTarget->CastSpell(unitTarget, 54441, true); break; } @@ -462,10 +469,11 @@ class spell_warl_drain_soul : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_DRAIN_SOUL_R1) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMPROVED_DRAIN_SOUL_PROC)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARLOCK_IMPROVED_DRAIN_SOUL_R1, + SPELL_WARLOCK_IMPROVED_DRAIN_SOUL_PROC + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -543,9 +551,7 @@ class spell_warl_fel_synergy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_FEL_SYNERGY_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_FEL_SYNERGY_HEAL }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -591,9 +597,7 @@ class spell_warl_glyph_of_corruption_nightfall : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SHADOW_TRANCE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_SHADOW_TRANCE }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -627,9 +631,7 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_GLYPH_OF_LIFE_TAP_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_GLYPH_OF_LIFE_TAP_TRIGGERED }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -663,15 +665,13 @@ class spell_warl_glyph_of_shadowflame : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) { PreventDefaultAction(); - GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME, true, NULL, aurEff); + GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME, true, nullptr, aurEff); } void Register() override @@ -715,9 +715,7 @@ class spell_warl_haunt : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_HAUNT_HEAL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_HAUNT_HEAL }); } void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) @@ -725,7 +723,7 @@ class spell_warl_haunt : public SpellScriptLoader if (Unit* caster = GetCaster()) { int32 amount = aurEff->GetAmount(); - GetTarget()->CastCustomSpell(caster, SPELL_WARLOCK_HAUNT_HEAL, &amount, NULL, NULL, true, NULL, aurEff, GetCasterGUID()); + GetTarget()->CastCustomSpell(caster, SPELL_WARLOCK_HAUNT_HEAL, &amount, nullptr, nullptr, true, nullptr, aurEff, GetCasterGUID()); } } @@ -806,9 +804,7 @@ class spell_warl_life_tap : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_LIFE_TAP_ENERGIZE) || !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_LIFE_TAP_ENERGIZE, SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2 }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -826,7 +822,7 @@ class spell_warl_life_tap : public SpellScriptLoader if (AuraEffect const* aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, WARLOCK_ICON_ID_IMPROVED_LIFE_TAP, 0)) AddPct(mana, aurEff->GetAmount()); - caster->CastCustomSpell(target, SPELL_WARLOCK_LIFE_TAP_ENERGIZE, &mana, NULL, NULL, false); + caster->CastCustomSpell(target, SPELL_WARLOCK_LIFE_TAP_ENERGIZE, &mana, nullptr, nullptr, false); // Mana Feed int32 manaFeedVal = 0; @@ -836,7 +832,7 @@ class spell_warl_life_tap : public SpellScriptLoader if (manaFeedVal > 0) { ApplyPct(manaFeedVal, mana); - caster->CastCustomSpell(caster, SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2, &manaFeedVal, NULL, NULL, true, NULL); + caster->CastCustomSpell(caster, SPELL_WARLOCK_LIFE_TAP_ENERGIZE_2, &manaFeedVal, nullptr, nullptr, true, nullptr); } } } @@ -873,14 +869,15 @@ public: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_NETHER_PROTECTION_HOLY) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_NETHER_PROTECTION_FIRE) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_NETHER_PROTECTION_FROST) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_NETHER_PROTECTION_ARCANE) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_NETHER_PROTECTION_SHADOW) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_NETHER_PROTECTION_NATURE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARLOCK_NETHER_PROTECTION_HOLY, + SPELL_WARLOCK_NETHER_PROTECTION_FIRE, + SPELL_WARLOCK_NETHER_PROTECTION_NATURE, + SPELL_WARLOCK_NETHER_PROTECTION_FROST, + SPELL_WARLOCK_NETHER_PROTECTION_SHADOW, + SPELL_WARLOCK_NETHER_PROTECTION_ARCANE + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -962,9 +959,7 @@ class spell_warl_demonic_pact : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_DEMONIC_PACT_PROC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_DEMONIC_PACT_PROC }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1039,9 +1034,7 @@ class spell_warl_seduction : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_GLYPH_OF_SUCCUBUS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_GLYPH_OF_SUCCUBUS }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1108,9 +1101,7 @@ class spell_warl_seed_of_corruption_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SEED_OF_CORRUPTION_DAMAGE_R1)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_SEED_OF_CORRUPTION_DAMAGE_R1 }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1168,9 +1159,7 @@ class spell_warl_seed_of_corruption_generic : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SEED_OF_CORRUPTION_GENERIC)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_SEED_OF_CORRUPTION_GENERIC }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1257,11 +1246,11 @@ class spell_warl_siphon_life : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SIPHON_LIFE_HEAL)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_GLYPH_OF_SIPHON_LIFE)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARLOCK_SIPHON_LIFE_HEAL, + SPELL_WARLOCK_GLYPH_OF_SIPHON_LIFE + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -1310,15 +1299,16 @@ class spell_warl_soul_leech : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOUL_LEECH_HEAL) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMP_SOUL_LEECH_R1) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOUL_LEECH_PET_MANA_1) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOUL_LEECH_PET_MANA_2) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOUL_LEECH_CASTER_MANA_1) || - !sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOUL_LEECH_CASTER_MANA_2) || - !sSpellMgr->GetSpellInfo(SPELL_REPLENISHMENT)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARLOCK_SOUL_LEECH_HEAL, + SPELL_WARLOCK_IMP_SOUL_LEECH_R1, + SPELL_WARLOCK_SOUL_LEECH_PET_MANA_1, + SPELL_WARLOCK_SOUL_LEECH_PET_MANA_2, + SPELL_WARLOCK_SOUL_LEECH_CASTER_MANA_1, + SPELL_WARLOCK_SOUL_LEECH_CASTER_MANA_2, + SPELL_REPLENISHMENT + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1375,9 +1365,7 @@ class spell_warl_soulshatter : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_SOULSHATTER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_SOULSHATTER }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -1417,9 +1405,7 @@ class spell_warl_t4_2p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(Trigger)) - return false; - return true; + return ValidateSpellInfo({ Trigger }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -1453,9 +1439,7 @@ class spell_warl_unstable_affliction : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL }); } void HandleDispel(DispelInfo* dispelInfo) @@ -1465,7 +1449,7 @@ class spell_warl_unstable_affliction : public SpellScriptLoader { int32 damage = aurEff->GetAmount() * 9; // backfire damage and silence - caster->CastCustomSpell(dispelInfo->GetDispeller(), SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL, &damage, NULL, NULL, true, NULL, aurEff); + caster->CastCustomSpell(dispelInfo->GetDispeller(), SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL, &damage, nullptr, nullptr, true, nullptr, aurEff); } } diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 7ee2833e30f..70a4946b424 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -21,11 +21,13 @@ * Scriptnames of files in this file should be prefixed with "spell_warr_". */ -#include "Player.h" #include "ScriptMgr.h" +#include "Player.h" +#include "Random.h" +#include "SpellAuraEffects.h" #include "SpellHistory.h" +#include "SpellMgr.h" #include "SpellScript.h" -#include "SpellAuraEffects.h" enum WarriorSpells { @@ -109,7 +111,7 @@ class spell_warr_bloodthirst : public SpellScriptLoader void HandleDummy(SpellEffIndex /*effIndex*/) { int32 damage = GetEffectValue(); - GetCaster()->CastCustomSpell(GetCaster(), SPELL_WARRIOR_BLOODTHIRST, &damage, NULL, NULL, true, NULL); + GetCaster()->CastCustomSpell(GetCaster(), SPELL_WARRIOR_BLOODTHIRST, &damage, nullptr, nullptr, true, nullptr); } void Register() override @@ -165,16 +167,14 @@ class spell_warr_charge : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_TALENT) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_BUFF) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_CHARGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_TALENT, SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_BUFF, SPELL_WARRIOR_CHARGE }); } void HandleDummy(SpellEffIndex /*effIndex*/) { int32 chargeBasePoints0 = GetEffectValue(); Unit* caster = GetCaster(); - caster->CastCustomSpell(caster, SPELL_WARRIOR_CHARGE, &chargeBasePoints0, NULL, NULL, true); + caster->CastCustomSpell(caster, SPELL_WARRIOR_CHARGE, &chargeBasePoints0, nullptr, nullptr, true); // Juggernaut crit bonus if (caster->HasAura(SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_TALENT)) @@ -232,9 +232,7 @@ class spell_warr_damage_shield : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DAMAGE_SHIELD_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_DAMAGE_SHIELD_DAMAGE }); } void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -243,7 +241,7 @@ class spell_warr_damage_shield : public SpellScriptLoader // % of amount blocked int32 damage = CalculatePct(int32(GetTarget()->GetShieldBlockValue()), aurEff->GetAmount()); - GetTarget()->CastCustomSpell(SPELL_WARRIOR_DAMAGE_SHIELD_DAMAGE, SPELLVALUE_BASE_POINT0, damage, eventInfo.GetProcTarget(), true, NULL, aurEff); + GetTarget()->CastCustomSpell(SPELL_WARRIOR_DAMAGE_SHIELD_DAMAGE, SPELLVALUE_BASE_POINT0, damage, eventInfo.GetProcTarget(), true, nullptr, aurEff); } void Register() override @@ -270,12 +268,13 @@ class spell_warr_deep_wounds : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_RANK_1) || - !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_RANK_2) || - !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_RANK_3) || - !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_DEEP_WOUNDS_PERIODIC)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARRIOR_DEEP_WOUNDS_RANK_1, + SPELL_WARRIOR_DEEP_WOUNDS_RANK_2, + SPELL_WARRIOR_DEEP_WOUNDS_RANK_3, + SPELL_WARRIOR_DEEP_WOUNDS_PERIODIC + }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -319,9 +318,7 @@ class spell_warr_deep_wounds_aura : public SpellScriptLoader bool Validate(SpellInfo const* spellInfo) override { - if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].TriggerSpell)) - return false; - return true; + return ValidateSpellInfo({ spellInfo->Effects[EFFECT_0].TriggerSpell }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -373,9 +370,7 @@ class spell_warr_execute : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_EXECUTE) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_GLYPH_OF_EXECUTION)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_EXECUTE, SPELL_WARRIOR_GLYPH_OF_EXECUTION }); } void HandleEffect(SpellEffIndex effIndex) @@ -401,7 +396,7 @@ class spell_warr_execute : public SpellScriptLoader int32 bp = GetEffectValue() + int32(rageUsed * spellInfo->Effects[effIndex].DamageMultiplier + caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.2f); - caster->CastCustomSpell(target, SPELL_WARRIOR_EXECUTE, &bp, NULL, NULL, true, NULL, NULL, GetOriginalCaster()->GetGUID()); + caster->CastCustomSpell(target, SPELL_WARRIOR_EXECUTE, &bp, nullptr, nullptr, true, nullptr, nullptr, GetOriginalCaster()->GetGUID()); } } @@ -430,12 +425,13 @@ class spell_warr_extra_proc : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_T10_MELEE_4P_BONUS) || - !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_EXTRA_CHARGE) || - !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SLAM_GCD_REDUCED) || - !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_EXECUTE_GCD_REDUCED)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARRIOR_T10_MELEE_4P_BONUS, + SPELL_WARRIOR_EXTRA_CHARGE, + SPELL_WARRIOR_SLAM_GCD_REDUCED, + SPELL_WARRIOR_EXECUTE_GCD_REDUCED + }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) @@ -481,9 +477,7 @@ class spell_warr_glyph_of_blocking : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_GLYPH_OF_BLOCKING)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_GLYPH_OF_BLOCKING }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -553,9 +547,7 @@ class spell_warr_improved_spell_reflection : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_IMPROVED_SPELL_REFLECTION_TRIGGER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_IMPROVED_SPELL_REFLECTION_TRIGGER }); } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -617,9 +609,7 @@ class spell_warr_item_t10_prot_4p_bonus : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_STOICISM)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_STOICISM }); } void HandleProc(ProcEventInfo& eventInfo) @@ -655,16 +645,14 @@ class spell_warr_last_stand : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_LAST_STAND_TRIGGERED)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_LAST_STAND_TRIGGERED }); } void HandleDummy(SpellEffIndex /*effIndex*/) { Unit* caster = GetCaster(); int32 healthModSpellBasePoints0 = int32(caster->CountPctFromMaxHealth(GetEffectValue())); - caster->CastCustomSpell(caster, SPELL_WARRIOR_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, NULL, NULL, true, NULL); + caster->CastCustomSpell(caster, SPELL_WARRIOR_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, nullptr, nullptr, true, nullptr); } void Register() override @@ -775,9 +763,7 @@ class spell_warr_retaliation : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_RETALIATION_DAMAGE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_RETALIATION_DAMAGE }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -789,7 +775,7 @@ class spell_warr_retaliation : public SpellScriptLoader void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) { PreventDefaultAction(); - GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_WARRIOR_RETALIATION_DAMAGE, true, NULL, aurEff); + GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_WARRIOR_RETALIATION_DAMAGE, true, nullptr, aurEff); } void Register() override @@ -817,10 +803,11 @@ class spell_warr_second_wind : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SECOND_WIND_TRIGGER_1) || - !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SECOND_WIND_TRIGGER_2)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARRIOR_SECOND_WIND_TRIGGER_1, + SPELL_WARRIOR_SECOND_WIND_TRIGGER_2 + }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -898,9 +885,7 @@ class spell_warr_slam : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SLAM)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_SLAM }); } void HandleDummy(SpellEffIndex /*effIndex*/) @@ -931,18 +916,9 @@ class spell_warr_sweeping_strikes : public SpellScriptLoader { PrepareAuraScript(spell_warr_sweeping_strikes_AuraScript); - public: - spell_warr_sweeping_strikes_AuraScript() - { - _procTarget = nullptr; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1) || !sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2 }); } bool CheckProc(ProcEventInfo& eventInfo) @@ -976,8 +952,7 @@ class spell_warr_sweeping_strikes : public SpellScriptLoader OnEffectProc += AuraEffectProcFn(spell_warr_sweeping_strikes_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); } - private: - Unit* _procTarget; + Unit* _procTarget = nullptr; }; AuraScript* GetAuraScript() const override @@ -1063,24 +1038,15 @@ class spell_warr_vigilance : public SpellScriptLoader { PrepareAuraScript(spell_warr_vigilance_AuraScript); - public: - spell_warr_vigilance_AuraScript() - { - _procTarget = nullptr; - } - - private: bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_GLYPH_OF_VIGILANCE)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_VIGILANCE_PROC)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_VIGILANCE_REDIRECT_THREAT)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_GEN_DAMAGE_REDUCTION_AURA)) - return false; - return true; + return ValidateSpellInfo( + { + SPELL_WARRIOR_GLYPH_OF_VIGILANCE, + SPELL_WARRIOR_VIGILANCE_PROC, + SPELL_WARRIOR_VIGILANCE_REDIRECT_THREAT, + SPELL_GEN_DAMAGE_REDUCTION_AURA + }); } void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -1126,7 +1092,7 @@ class spell_warr_vigilance : public SpellScriptLoader void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) { PreventDefaultAction(); - GetTarget()->CastSpell(_procTarget, SPELL_WARRIOR_VIGILANCE_PROC, true, NULL, aurEff); + GetTarget()->CastSpell(_procTarget, SPELL_WARRIOR_VIGILANCE_PROC, true, nullptr, aurEff); } void Register() override @@ -1138,8 +1104,7 @@ class spell_warr_vigilance : public SpellScriptLoader OnEffectProc += AuraEffectProcFn(spell_warr_vigilance_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); } - private: - Unit* _procTarget; + Unit* _procTarget = nullptr; }; AuraScript* GetAuraScript() const override |
