refactor(Scripts/Northrend): spell scripts use registry macros (#20401)

This commit is contained in:
Jelle Meeus
2024-11-01 20:11:14 +01:00
committed by GitHub
parent ff3f241500
commit 7eb1b64a6f
7 changed files with 161 additions and 241 deletions
@@ -0,0 +1,5 @@
--
UPDATE `spell_script_names` SET `ScriptName`='spell_voa_overcharge_aura' WHERE `spell_id`=64217 AND `ScriptName`='spell_voa_overcharge';
UPDATE `spell_script_names` SET `ScriptName`='spell_koralon_meteor_fists_aura' WHERE `spell_id` IN (66725,68161) AND `ScriptName`='spell_koralon_meteor_fists';
UPDATE `spell_script_names` SET `ScriptName`='spell_flame_warder_meteor_fists_aura' WHERE `spell_id` IN (66808,68160) AND `ScriptName`='spell_flame_warder_meteor_fists';
UPDATE `spell_script_names` SET `ScriptName`='spell_hos_dark_matter_aura' WHERE `spell_id`=51001 AND `ScriptName`='spell_hos_dark_matter';
@@ -254,14 +254,9 @@ public:
}; };
}; };
class spell_loken_pulsing_shockwave : public SpellScriptLoader class spell_loken_pulsing_shockwave : public SpellScript
{ {
public: PrepareSpellScript(spell_loken_pulsing_shockwave);
spell_loken_pulsing_shockwave() : SpellScriptLoader("spell_loken_pulsing_shockwave") { }
class spell_loken_pulsing_shockwave_SpellScript : public SpellScript
{
PrepareSpellScript(spell_loken_pulsing_shockwave_SpellScript);
void CalculateDamage(SpellEffIndex /*effIndex*/) void CalculateDamage(SpellEffIndex /*effIndex*/)
{ {
@@ -275,18 +270,12 @@ public:
void Register() override void Register() override
{ {
OnEffectHitTarget += SpellEffectFn(spell_loken_pulsing_shockwave_SpellScript::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); OnEffectHitTarget += SpellEffectFn(spell_loken_pulsing_shockwave::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_loken_pulsing_shockwave_SpellScript();
} }
}; };
void AddSC_boss_loken() void AddSC_boss_loken()
{ {
new boss_loken(); new boss_loken();
new spell_loken_pulsing_shockwave(); RegisterSpellScript(spell_loken_pulsing_shockwave);
} }
@@ -180,14 +180,14 @@ public:
}; };
}; };
class spell_krystallus_shatter : public SpellScriptLoader class spell_krystallus_shatter : public SpellScript
{ {
public: PrepareSpellScript(spell_krystallus_shatter);
spell_krystallus_shatter() : SpellScriptLoader("spell_krystallus_shatter") { }
class spell_krystallus_shatter_SpellScript : public SpellScript bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
PrepareSpellScript(spell_krystallus_shatter_SpellScript); return ValidateSpellInfo({ SPELL_SHATTER_EFFECT });
}
void HandleScript(SpellEffIndex /*effIndex*/) void HandleScript(SpellEffIndex /*effIndex*/)
{ {
@@ -200,24 +200,13 @@ public:
void Register() override void Register() override
{ {
OnEffectHitTarget += SpellEffectFn(spell_krystallus_shatter_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); OnEffectHitTarget += SpellEffectFn(spell_krystallus_shatter::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_krystallus_shatter_SpellScript();
} }
}; };
class spell_krystallus_shatter_effect : public SpellScriptLoader class spell_krystallus_shatter_effect : public SpellScript
{ {
public: PrepareSpellScript(spell_krystallus_shatter_effect);
spell_krystallus_shatter_effect() : SpellScriptLoader("spell_krystallus_shatter_effect") { }
class spell_krystallus_shatter_effect_SpellScript : public SpellScript
{
PrepareSpellScript(spell_krystallus_shatter_effect_SpellScript);
void CalculateDamage() void CalculateDamage()
{ {
@@ -235,19 +224,13 @@ public:
void Register() override void Register() override
{ {
OnHit += SpellHitFn(spell_krystallus_shatter_effect_SpellScript::CalculateDamage); OnHit += SpellHitFn(spell_krystallus_shatter_effect::CalculateDamage);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_krystallus_shatter_effect_SpellScript();
} }
}; };
void AddSC_boss_krystallus() void AddSC_boss_krystallus()
{ {
new boss_krystallus(); new boss_krystallus();
new spell_krystallus_shatter(); RegisterSpellScript(spell_krystallus_shatter);
new spell_krystallus_shatter_effect(); RegisterSpellScript(spell_krystallus_shatter_effect);
} }
@@ -864,14 +864,14 @@ public:
}; };
}; };
class spell_hos_dark_matter : public SpellScriptLoader class spell_hos_dark_matter_aura : public AuraScript
{ {
public: PrepareAuraScript(spell_hos_dark_matter_aura);
spell_hos_dark_matter() : SpellScriptLoader("spell_hos_dark_matter") { }
class spell_hos_dark_matter_AuraScript : public AuraScript bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
PrepareAuraScript(spell_hos_dark_matter_AuraScript); return ValidateSpellInfo({ SPELL_DARK_MATTER_H, SPELL_DARK_MATTER });
}
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{ {
@@ -881,13 +881,7 @@ public:
void Register() override void Register() override
{ {
OnEffectRemove += AuraEffectRemoveFn(spell_hos_dark_matter_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); OnEffectRemove += AuraEffectRemoveFn(spell_hos_dark_matter_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_hos_dark_matter_AuraScript();
} }
}; };
@@ -897,5 +891,5 @@ void AddSC_brann_bronzebeard()
new dark_rune_protectors(); new dark_rune_protectors();
new dark_rune_stormcaller(); new dark_rune_stormcaller();
new iron_golem_custodian(); new iron_golem_custodian();
new spell_hos_dark_matter(); RegisterSpellScript(spell_hos_dark_matter_aura);
} }
@@ -184,14 +184,14 @@ class boss_archavon : public CreatureScript
}; };
// 58941 - Rock Shards // 58941 - Rock Shards
class spell_archavon_rock_shards : public SpellScriptLoader class spell_archavon_rock_shards : public SpellScript
{ {
public: PrepareSpellScript(spell_archavon_rock_shards);
spell_archavon_rock_shards() : SpellScriptLoader("spell_archavon_rock_shards") { }
class spell_archavon_rock_shards_SpellScript : public SpellScript bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
PrepareSpellScript(spell_archavon_rock_shards_SpellScript); return ValidateSpellInfo({ SPELL_ROCK_SHARDS_LEFT_HAND_VISUAL, SPELL_ROCK_SHARDS_RIGHT_HAND_VISUAL });
}
void HandleScript(SpellEffIndex effIndex) void HandleScript(SpellEffIndex effIndex)
{ {
@@ -220,18 +220,12 @@ class spell_archavon_rock_shards : public SpellScriptLoader
void Register() override void Register() override
{ {
OnEffectHitTarget += SpellEffectFn(spell_archavon_rock_shards_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); OnEffectHitTarget += SpellEffectFn(spell_archavon_rock_shards::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_archavon_rock_shards_SpellScript();
} }
}; };
void AddSC_boss_archavon() void AddSC_boss_archavon()
{ {
new boss_archavon(); new boss_archavon();
new spell_archavon_rock_shards(); RegisterSpellScript(spell_archavon_rock_shards);
} }
@@ -205,14 +205,14 @@ public:
} }
}; };
class spell_voa_overcharge : public SpellScriptLoader class spell_voa_overcharge_aura : public AuraScript
{ {
public: PrepareAuraScript(spell_voa_overcharge_aura);
spell_voa_overcharge() : SpellScriptLoader("spell_voa_overcharge") { }
class spell_voa_overcharge_AuraScript : public AuraScript bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
PrepareAuraScript(spell_voa_overcharge_AuraScript); return ValidateSpellInfo({ SPELL_OVERCHARGED_BLAST });
}
void HandlePeriodicDummy(AuraEffect const* /*aurEff*/) void HandlePeriodicDummy(AuraEffect const* /*aurEff*/)
{ {
@@ -228,24 +228,13 @@ public:
void Register() override void Register() override
{ {
OnEffectPeriodic += AuraEffectPeriodicFn(spell_voa_overcharge_AuraScript::HandlePeriodicDummy, EFFECT_2, SPELL_AURA_PERIODIC_DUMMY); OnEffectPeriodic += AuraEffectPeriodicFn(spell_voa_overcharge_aura::HandlePeriodicDummy, EFFECT_2, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_voa_overcharge_AuraScript();
} }
}; };
class spell_voa_lightning_nova : public SpellScriptLoader class spell_voa_lightning_nova : public SpellScript
{ {
public: PrepareSpellScript(spell_voa_lightning_nova);
spell_voa_lightning_nova() : SpellScriptLoader("spell_voa_lightning_nova") { }
class spell_voa_lightning_nova_SpellScript : public SpellScript
{
PrepareSpellScript(spell_voa_lightning_nova_SpellScript);
void HandleOnHit() void HandleOnHit()
{ {
@@ -261,13 +250,7 @@ public:
void Register() override void Register() override
{ {
OnHit += SpellHitFn(spell_voa_lightning_nova_SpellScript::HandleOnHit); OnHit += SpellHitFn(spell_voa_lightning_nova::HandleOnHit);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_voa_lightning_nova_SpellScript();
} }
}; };
@@ -275,6 +258,6 @@ void AddSC_boss_emalon()
{ {
new boss_emalon(); new boss_emalon();
new spell_voa_overcharge(); RegisterSpellScript(spell_voa_overcharge_aura);
new spell_voa_lightning_nova(); RegisterSpellScript(spell_voa_lightning_nova);
} }
@@ -165,14 +165,14 @@ public:
} }
}; };
class spell_voa_flaming_cinder : public SpellScriptLoader class spell_voa_flaming_cinder : public SpellScript
{ {
public: PrepareSpellScript(spell_voa_flaming_cinder);
spell_voa_flaming_cinder() : SpellScriptLoader("spell_voa_flaming_cinder") { }
class spell_voa_flaming_cinder_SpellScript : public SpellScript bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
PrepareSpellScript(spell_voa_flaming_cinder_SpellScript); return ValidateSpellInfo({ SPELL_FLAMING_CINDER_MISSILE });
}
void HandleDummy(SpellEffIndex /*effIndex*/) void HandleDummy(SpellEffIndex /*effIndex*/)
{ {
@@ -182,24 +182,13 @@ public:
void Register() override void Register() override
{ {
OnEffectHitTarget += SpellEffectFn(spell_voa_flaming_cinder_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); OnEffectHitTarget += SpellEffectFn(spell_voa_flaming_cinder::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_voa_flaming_cinder_SpellScript();
} }
}; };
class spell_koralon_meteor_fists : public SpellScriptLoader class spell_koralon_meteor_fists_aura : public AuraScript
{ {
public: PrepareAuraScript(spell_koralon_meteor_fists_aura);
spell_koralon_meteor_fists() : SpellScriptLoader("spell_koralon_meteor_fists") { }
class spell_koralon_meteor_fists_AuraScript : public AuraScript
{
PrepareAuraScript(spell_koralon_meteor_fists_AuraScript);
bool Validate(SpellInfo const* /*spellInfo*/) override bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
@@ -214,24 +203,13 @@ public:
void Register() override void Register() override
{ {
OnEffectProc += AuraEffectProcFn(spell_koralon_meteor_fists_AuraScript::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY); OnEffectProc += AuraEffectProcFn(spell_koralon_meteor_fists_aura::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_koralon_meteor_fists_AuraScript();
} }
}; };
class spell_flame_warder_meteor_fists : public SpellScriptLoader class spell_flame_warder_meteor_fists_aura : public AuraScript
{ {
public: PrepareAuraScript(spell_flame_warder_meteor_fists_aura);
spell_flame_warder_meteor_fists() : SpellScriptLoader("spell_flame_warder_meteor_fists") { }
class spell_flame_warder_meteor_fists_AuraScript : public AuraScript
{
PrepareAuraScript(spell_flame_warder_meteor_fists_AuraScript);
bool Validate(SpellInfo const* /*spellInfo*/) override bool Validate(SpellInfo const* /*spellInfo*/) override
{ {
@@ -246,20 +224,14 @@ public:
void Register() override void Register() override
{ {
OnEffectProc += AuraEffectProcFn(spell_flame_warder_meteor_fists_AuraScript::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY); OnEffectProc += AuraEffectProcFn(spell_flame_warder_meteor_fists_aura::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_flame_warder_meteor_fists_AuraScript();
} }
}; };
void AddSC_boss_koralon() void AddSC_boss_koralon()
{ {
new boss_koralon(); new boss_koralon();
new spell_voa_flaming_cinder(); RegisterSpellScript(spell_voa_flaming_cinder);
new spell_koralon_meteor_fists(); RegisterSpellScript(spell_koralon_meteor_fists_aura);
new spell_flame_warder_meteor_fists(); RegisterSpellScript(spell_flame_warder_meteor_fists_aura);
} }