aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-03-11 15:28:25 +0100
committerShauren <shauren.trinity@gmail.com>2022-03-11 15:28:25 +0100
commit54974d3113e694f6ccd1299d23ff1a36006f83df (patch)
treea15dc1548e5b0f5003ec6c2f0f8e101919b1277c /src
parentb42e5d4251d1e741882985fc36be1da91a27e800 (diff)
Scripts/Spells: Update paladin scripts to new register model
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp383
1 files changed, 164 insertions, 219 deletions
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index ba66b8f99d4..3305bbde815 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -687,41 +687,30 @@ class spell_pal_fist_of_justice : public AuraScript
};
// -85043 - Grand Crusader
-class spell_pal_grand_crusader : public SpellScriptLoader
+class spell_pal_grand_crusader : public AuraScript
{
- public:
- spell_pal_grand_crusader() : SpellScriptLoader("spell_pal_grand_crusader") { }
-
- class spell_pal_grand_crusader_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pal_grand_crusader_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PALADIN_AVENGERS_SHIELD });
- }
+ PrepareAuraScript(spell_pal_grand_crusader);
- bool CheckProc(ProcEventInfo& /*eventInfo*/)
- {
- return GetTarget()->GetTypeId() == TYPEID_PLAYER;
- }
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PALADIN_AVENGERS_SHIELD });
+ }
- void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
- {
- GetTarget()->GetSpellHistory()->ResetCooldown(SPELL_PALADIN_AVENGERS_SHIELD, true);
- }
+ bool CheckProc(ProcEventInfo& /*eventInfo*/)
+ {
+ return GetTarget()->GetTypeId() == TYPEID_PLAYER;
+ }
- void Register() override
- {
- DoCheckProc += AuraCheckProcFn(spell_pal_grand_crusader_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_pal_grand_crusader_AuraScript::HandleEffectProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
- }
- };
+ void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
+ {
+ GetTarget()->GetSpellHistory()->ResetCooldown(SPELL_PALADIN_AVENGERS_SHIELD, true);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pal_grand_crusader_AuraScript();
- }
+ void Register() override
+ {
+ DoCheckProc += AuraCheckProcFn(spell_pal_grand_crusader::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_pal_grand_crusader::HandleEffectProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
};
// 54968 - Glyph of Holy Light
@@ -773,54 +762,43 @@ struct spell_pal_hammer_of_the_righteous : public SpellScript
};
// 6940 - Hand of Sacrifice
-class spell_pal_hand_of_sacrifice : public SpellScriptLoader
+class spell_pal_hand_of_sacrifice : public AuraScript
{
- public:
- spell_pal_hand_of_sacrifice() : SpellScriptLoader("spell_pal_hand_of_sacrifice") { }
-
- class spell_pal_hand_of_sacrifice_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pal_hand_of_sacrifice_AuraScript);
-
- public:
- spell_pal_hand_of_sacrifice_AuraScript()
- {
- remainingAmount = 0;
- }
-
- private:
- int32 remainingAmount;
+ PrepareAuraScript(spell_pal_hand_of_sacrifice);
- bool Load() override
- {
- if (Unit* caster = GetCaster())
- {
- remainingAmount = caster->GetMaxHealth();
- return true;
- }
- return false;
- }
+public:
+ spell_pal_hand_of_sacrifice()
+ {
+ remainingAmount = 0;
+ }
- void Split(AuraEffect* /*aurEff*/, DamageInfo & /*dmgInfo*/, uint32 & splitAmount)
- {
- remainingAmount -= splitAmount;
+private:
+ int32 remainingAmount;
- if (remainingAmount <= 0)
- {
- GetTarget()->RemoveAura(SPELL_PALADIN_HAND_OF_SACRIFICE);
- }
- }
+ bool Load() override
+ {
+ if (Unit* caster = GetCaster())
+ {
+ remainingAmount = caster->GetMaxHealth();
+ return true;
+ }
+ return false;
+ }
- void Register() override
- {
- OnEffectSplit += AuraEffectSplitFn(spell_pal_hand_of_sacrifice_AuraScript::Split, EFFECT_0);
- }
- };
+ void Split(AuraEffect* /*aurEff*/, DamageInfo & /*dmgInfo*/, uint32 & splitAmount)
+ {
+ remainingAmount -= splitAmount;
- AuraScript* GetAuraScript() const override
+ if (remainingAmount <= 0)
{
- return new spell_pal_hand_of_sacrifice_AuraScript();
+ GetTarget()->RemoveAura(SPELL_PALADIN_HAND_OF_SACRIFICE);
}
+ }
+
+ void Register() override
+ {
+ OnEffectSplit += AuraEffectSplitFn(spell_pal_hand_of_sacrifice::Split, EFFECT_0);
+ }
};
// 54149 - Infusion of Light
@@ -1216,68 +1194,57 @@ class spell_pal_lay_on_hands : public SpellScript
};
// 53651 - Light's Beacon - Beacon of Light
-class spell_pal_light_s_beacon : public SpellScriptLoader
+class spell_pal_light_s_beacon : public AuraScript
{
- public:
- spell_pal_light_s_beacon() : SpellScriptLoader("spell_pal_light_s_beacon") { }
-
- class spell_pal_light_s_beacon_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pal_light_s_beacon_AuraScript);
+ PrepareAuraScript(spell_pal_light_s_beacon);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PALADIN_BEACON_OF_LIGHT, SPELL_PALADIN_BEACON_OF_LIGHT_HEAL });
- }
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PALADIN_BEACON_OF_LIGHT, SPELL_PALADIN_BEACON_OF_LIGHT_HEAL });
+ }
- bool CheckProc(ProcEventInfo& eventInfo)
- {
- if (!eventInfo.GetActionTarget())
- return false;
- if (eventInfo.GetActionTarget()->HasAura(SPELL_PALADIN_BEACON_OF_LIGHT, eventInfo.GetActor()->GetGUID()))
- return false;
- return true;
- }
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ if (!eventInfo.GetActionTarget())
+ return false;
+ if (eventInfo.GetActionTarget()->HasAura(SPELL_PALADIN_BEACON_OF_LIGHT, eventInfo.GetActor()->GetGUID()))
+ return false;
+ return true;
+ }
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
- HealInfo* healInfo = eventInfo.GetHealInfo();
- if (!healInfo || !healInfo->GetHeal())
- return;
+ HealInfo* healInfo = eventInfo.GetHealInfo();
+ if (!healInfo || !healInfo->GetHeal())
+ return;
- uint32 heal = CalculatePct(healInfo->GetHeal(), aurEff->GetAmount());
+ uint32 heal = CalculatePct(healInfo->GetHeal(), aurEff->GetAmount());
- Unit::AuraList const& auras = GetCaster()->GetSingleCastAuras();
- for (Unit::AuraList::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
+ Unit::AuraList const& auras = GetCaster()->GetSingleCastAuras();
+ for (Unit::AuraList::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
+ {
+ if ((*itr)->GetId() == SPELL_PALADIN_BEACON_OF_LIGHT)
+ {
+ std::vector<AuraApplication*> applications;
+ (*itr)->GetApplicationVector(applications);
+ if (!applications.empty())
{
- if ((*itr)->GetId() == SPELL_PALADIN_BEACON_OF_LIGHT)
- {
- std::vector<AuraApplication*> applications;
- (*itr)->GetApplicationVector(applications);
- if (!applications.empty())
- {
- CastSpellExtraArgs args(aurEff);
- args.AddSpellMod(SPELLVALUE_BASE_POINT0, heal);
- eventInfo.GetActor()->CastSpell(applications.front()->GetTarget(), SPELL_PALADIN_BEACON_OF_LIGHT_HEAL, args);
- }
- return;
- }
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellMod(SPELLVALUE_BASE_POINT0, heal);
+ eventInfo.GetActor()->CastSpell(applications.front()->GetTarget(), SPELL_PALADIN_BEACON_OF_LIGHT_HEAL, args);
}
+ return;
}
-
- void Register() override
- {
- DoCheckProc += AuraCheckProcFn(spell_pal_light_s_beacon_AuraScript::CheckProc);
- OnEffectProc += AuraEffectProcFn(spell_pal_light_s_beacon_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
-
- AuraScript* GetAuraScript() const override
- {
- return new spell_pal_light_s_beacon_AuraScript();
}
+ }
+
+ void Register() override
+ {
+ DoCheckProc += AuraCheckProcFn(spell_pal_light_s_beacon::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_pal_light_s_beacon::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 122773 - Light's Hammer
@@ -1443,119 +1410,97 @@ class spell_pal_templar_s_verdict : public SpellScript
};
// 28789 - Holy Power
-class spell_pal_t3_6p_bonus : public SpellScriptLoader
+class spell_pal_t3_6p_bonus : public AuraScript
{
- public:
- spell_pal_t3_6p_bonus() : SpellScriptLoader("spell_pal_t3_6p_bonus") { }
+ PrepareAuraScript(spell_pal_t3_6p_bonus);
- class spell_pal_t3_6p_bonus_AuraScript : public AuraScript
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
{
- PrepareAuraScript(spell_pal_t3_6p_bonus_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- 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* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
-
- uint32 spellId;
- Unit* caster = eventInfo.GetActor();
- Unit* target = eventInfo.GetProcTarget();
-
- switch (target->GetClass())
- {
- case CLASS_PALADIN:
- case CLASS_PRIEST:
- case CLASS_SHAMAN:
- case CLASS_DRUID:
- spellId = SPELL_PALADIN_HOLY_POWER_MP5;
- break;
- case CLASS_MAGE:
- case CLASS_WARLOCK:
- spellId = SPELL_PALADIN_HOLY_POWER_SPELL_POWER;
- break;
- case CLASS_HUNTER:
- case CLASS_ROGUE:
- spellId = SPELL_PALADIN_HOLY_POWER_ATTACK_POWER;
- break;
- case CLASS_WARRIOR:
- spellId = SPELL_PALADIN_HOLY_POWER_ARMOR;
- break;
- default:
- return;
- }
+ SPELL_PALADIN_HOLY_POWER_ARMOR,
+ SPELL_PALADIN_HOLY_POWER_ATTACK_POWER,
+ SPELL_PALADIN_HOLY_POWER_SPELL_POWER,
+ SPELL_PALADIN_HOLY_POWER_MP5
+ });
+ }
- caster->CastSpell(target, spellId, aurEff);
- }
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_pal_t3_6p_bonus_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ uint32 spellId;
+ Unit* caster = eventInfo.GetActor();
+ Unit* target = eventInfo.GetProcTarget();
- AuraScript* GetAuraScript() const override
+ switch (target->GetClass())
{
- return new spell_pal_t3_6p_bonus_AuraScript();
+ case CLASS_PALADIN:
+ case CLASS_PRIEST:
+ case CLASS_SHAMAN:
+ case CLASS_DRUID:
+ spellId = SPELL_PALADIN_HOLY_POWER_MP5;
+ break;
+ case CLASS_MAGE:
+ case CLASS_WARLOCK:
+ spellId = SPELL_PALADIN_HOLY_POWER_SPELL_POWER;
+ break;
+ case CLASS_HUNTER:
+ case CLASS_ROGUE:
+ spellId = SPELL_PALADIN_HOLY_POWER_ATTACK_POWER;
+ break;
+ case CLASS_WARRIOR:
+ spellId = SPELL_PALADIN_HOLY_POWER_ARMOR;
+ break;
+ default:
+ return;
}
+
+ caster->CastSpell(target, spellId, aurEff);
+ }
+
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pal_t3_6p_bonus::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 64890 - Item - Paladin T8 Holy 2P Bonus
-class spell_pal_t8_2p_bonus : public SpellScriptLoader
+class spell_pal_t8_2p_bonus : public AuraScript
{
- public:
- spell_pal_t8_2p_bonus() : SpellScriptLoader("spell_pal_t8_2p_bonus") { }
-
- class spell_pal_t8_2p_bonus_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_pal_t8_2p_bonus_AuraScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_PALADIN_HOLY_MENDING });
- }
+ PrepareAuraScript(spell_pal_t8_2p_bonus);
- void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- PreventDefaultAction();
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PALADIN_HOLY_MENDING });
+ }
- HealInfo* healInfo = eventInfo.GetHealInfo();
- if (!healInfo || !healInfo->GetHeal())
- return;
+ void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
- Unit* caster = eventInfo.GetActor();
- Unit* target = eventInfo.GetProcTarget();
+ HealInfo* healInfo = eventInfo.GetHealInfo();
+ if (!healInfo || !healInfo->GetHeal())
+ return;
- SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(SPELL_PALADIN_HOLY_MENDING, GetCastDifficulty());
- int32 amount = CalculatePct(static_cast<int32>(healInfo->GetHeal()), aurEff->GetAmount());
+ Unit* caster = eventInfo.GetActor();
+ Unit* target = eventInfo.GetProcTarget();
- ASSERT(spellInfo->GetMaxTicks() > 0);
- amount /= spellInfo->GetMaxTicks();
+ SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(SPELL_PALADIN_HOLY_MENDING, GetCastDifficulty());
+ int32 amount = CalculatePct(static_cast<int32>(healInfo->GetHeal()), aurEff->GetAmount());
- CastSpellExtraArgs args(aurEff);
- args.AddSpellBP0(amount);
- caster->CastSpell(target, SPELL_PALADIN_HOLY_MENDING, args);
- }
+ ASSERT(spellInfo->GetMaxTicks() > 0);
+ amount /= spellInfo->GetMaxTicks();
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_pal_t8_2p_bonus_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
- }
- };
+ CastSpellExtraArgs args(aurEff);
+ args.AddSpellBP0(amount);
+ caster->CastSpell(target, SPELL_PALADIN_HOLY_MENDING, args);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_pal_t8_2p_bonus_AuraScript();
- }
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_pal_t8_2p_bonus::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
};
// 269569 - Zeal
@@ -1600,9 +1545,9 @@ void AddSC_paladin_spell_scripts()
RegisterSpellScript(spell_pal_eye_for_an_eye);
RegisterSpellScript(spell_pal_fist_of_justice);
RegisterSpellScript(spell_pal_glyph_of_holy_light);
- new spell_pal_grand_crusader();
- new spell_pal_hand_of_sacrifice();
+ RegisterSpellScript(spell_pal_grand_crusader);
RegisterSpellScript(spell_pal_hammer_of_the_righteous);
+ RegisterSpellScript(spell_pal_hand_of_sacrifice);
RegisterSpellScript(spell_pal_infusion_of_light);
RegisterSpellScript(spell_pal_moment_of_glory);
RegisterSpellScript(spell_pal_judgment);
@@ -1614,14 +1559,14 @@ void AddSC_paladin_spell_scripts()
RegisterSpellScript(spell_pal_item_healing_discount);
RegisterSpellScript(spell_pal_item_t6_trinket);
RegisterSpellScript(spell_pal_lay_on_hands);
- new spell_pal_light_s_beacon();
+ RegisterSpellScript(spell_pal_light_s_beacon);
RegisterSpellScript(spell_pal_light_hammer_init_summon);
RegisterSpellScript(spell_pal_light_hammer_periodic);
RegisterSpellScript(spell_pal_righteous_protector);
RegisterSpellScript(spell_pal_righteous_verdict);
RegisterSpellScript(spell_pal_selfless_healer);
RegisterSpellScript(spell_pal_templar_s_verdict);
- new spell_pal_t3_6p_bonus();
- new spell_pal_t8_2p_bonus();
+ RegisterSpellScript(spell_pal_t3_6p_bonus);
+ RegisterSpellScript(spell_pal_t8_2p_bonus);
RegisterSpellScript(spell_pal_zeal);
}