refactor(Scripts/RubySanctum): Spell Scripts registry macros (#19487)

This commit is contained in:
Jelle Meeus
2024-07-27 13:17:06 +02:00
committed by GitHub
parent c8cb2e55ee
commit a9e4d3d37e
5 changed files with 424 additions and 585 deletions
@@ -0,0 +1,12 @@
--
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_meteor_strike_marker_aura' WHERE `spell_id`=74641 AND `ScriptName`='spell_halion_meteor_strike_marker';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_meteor_strike_spread_aura' WHERE `spell_id`=74696 AND `ScriptName`='spell_halion_meteor_strike_spread';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_soul_consumption_aura' WHERE `spell_id`=74792 AND `ScriptName`='spell_halion_soul_consumption';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_fiery_combustion_aura' WHERE `spell_id`=74562 AND `ScriptName`='spell_halion_fiery_combustion';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_soul_consumption_aura' WHERE `spell_id`=74792 AND `ScriptName`='spell_halion_soul_consumption';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_fiery_combustion_aura' WHERE `spell_id`=74562 AND `ScriptName`='spell_halion_fiery_combustion';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_mark_of_combustion_aura' WHERE `spell_id`=74567 AND `ScriptName`='spell_halion_mark_of_combustion';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_mark_of_consumption_aura' WHERE `spell_id`=74795 AND `ScriptName`='spell_halion_mark_of_consumption';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_twilight_realm_aura' WHERE `spell_id`=74807 AND `ScriptName`='spell_halion_twilight_realm';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_leave_twilight_realm_aura' WHERE `spell_id`=74812 AND `ScriptName`='spell_halion_leave_twilight_realm';
UPDATE `spell_script_names` SET `ScriptName`='spell_halion_twilight_cutter_periodic_aura' WHERE `spell_id`=74768 AND `ScriptName`='spell_halion_twilight_cutter_periodic';
@@ -334,14 +334,14 @@ public:
}
};
class spell_baltharus_enervating_brand_trigger : public SpellScriptLoader
class spell_baltharus_enervating_brand_trigger : public SpellScript
{
public:
spell_baltharus_enervating_brand_trigger() : SpellScriptLoader("spell_baltharus_enervating_brand_trigger") { }
PrepareSpellScript(spell_baltharus_enervating_brand_trigger);
class spell_baltharus_enervating_brand_trigger_SpellScript : public SpellScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareSpellScript(spell_baltharus_enervating_brand_trigger_SpellScript);
return ValidateSpellInfo({ SPELL_SIPHONED_MIGHT });
}
void CheckDistance()
{
@@ -355,13 +355,7 @@ public:
void Register() override
{
OnHit += SpellHitFn(spell_baltharus_enervating_brand_trigger_SpellScript::CheckDistance);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_baltharus_enervating_brand_trigger_SpellScript();
OnHit += SpellHitFn(spell_baltharus_enervating_brand_trigger::CheckDistance);
}
};
@@ -486,7 +480,7 @@ void AddSC_boss_baltharus_the_warborn()
{
new boss_baltharus_the_warborn();
new npc_baltharus_the_warborn_clone();
new spell_baltharus_enervating_brand_trigger();
RegisterSpellScript(spell_baltharus_enervating_brand_trigger);
new npc_xerestrasza();
new at_baltharus_plateau();
}
@@ -798,14 +798,14 @@ public:
}
};
class spell_halion_meteor_strike_targeting : public SpellScriptLoader
class spell_halion_meteor_strike_targeting : public SpellScript
{
public:
spell_halion_meteor_strike_targeting() : SpellScriptLoader("spell_halion_meteor_strike_targeting") { }
PrepareSpellScript(spell_halion_meteor_strike_targeting);
class spell_halion_meteor_strike_targeting_SpellScript : public SpellScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareSpellScript(spell_halion_meteor_strike_targeting_SpellScript);
return ValidateSpellInfo({ SPELL_METEOR_STRIKE });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
@@ -815,24 +815,18 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_halion_meteor_strike_targeting_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectHitTarget += SpellEffectFn(spell_halion_meteor_strike_targeting::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_halion_meteor_strike_marker_aura : public AuraScript
{
return new spell_halion_meteor_strike_targeting_SpellScript();
PrepareAuraScript(spell_halion_meteor_strike_marker_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_METEOR_STRIKE_AOE_DAMAGE, SPELL_METEOR_STRIKE_FIRE_AURA_1 });
}
};
class spell_halion_meteor_strike_marker : public SpellScriptLoader
{
public:
spell_halion_meteor_strike_marker() : SpellScriptLoader("spell_halion_meteor_strike_marker") { }
class spell_halion_meteor_strike_marker_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_meteor_strike_marker_AuraScript);
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -855,25 +849,19 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_halion_meteor_strike_marker_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_meteor_strike_marker_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_halion_meteor_strike_marker_aura::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_meteor_strike_marker_aura::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_halion_meteor_strike_spread_aura : public AuraScript
{
return new spell_halion_meteor_strike_marker_AuraScript();
PrepareAuraScript(spell_halion_meteor_strike_spread_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SUMMON_METEOR_FLAME1, SPELL_SUMMON_METEOR_FLAME2, SPELL_SUMMON_METEOR_FLAME3 });
}
};
class spell_halion_meteor_strike_spread : public SpellScriptLoader
{
public:
spell_halion_meteor_strike_spread() : SpellScriptLoader("spell_halion_meteor_strike_spread") { }
class spell_halion_meteor_strike_spread_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_meteor_strike_spread_AuraScript);
void HandlePeriodic(AuraEffect const* /*aurEff*/)
{
@@ -886,24 +874,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_halion_meteor_strike_spread_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_halion_meteor_strike_spread_aura::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_halion_blazing_aura : public SpellScript
{
return new spell_halion_meteor_strike_spread_AuraScript();
}
};
class spell_halion_blazing_aura : public SpellScriptLoader
{
public:
spell_halion_blazing_aura() : SpellScriptLoader("spell_halion_blazing_aura") { }
class spell_halion_blazing_aura_SpellScript : public SpellScript
{
PrepareSpellScript(spell_halion_blazing_aura_SpellScript);
PrepareSpellScript(spell_halion_blazing_aura);
void HandleForceCast(SpellEffIndex effIndex)
{
@@ -914,27 +891,16 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_halion_blazing_aura_SpellScript::HandleForceCast, EFFECT_1, SPELL_EFFECT_FORCE_CAST);
OnEffectHitTarget += SpellEffectFn(spell_halion_blazing_aura::HandleForceCast, EFFECT_1, SPELL_EFFECT_FORCE_CAST);
}
};
SpellScript* GetSpellScript() const override
class spell_halion_combustion_consumption_aura : public AuraScript
{
return new spell_halion_blazing_aura_SpellScript();
}
};
class spell_halion_combustion_consumption : public SpellScriptLoader
{
public:
spell_halion_combustion_consumption(char const* scriptName, uint32 spell) : SpellScriptLoader(scriptName), _spellID(spell) { }
class spell_halion_combustion_consumption_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_combustion_consumption_AuraScript);
PrepareAuraScript(spell_halion_combustion_consumption_aura);
public:
spell_halion_combustion_consumption_AuraScript(uint32 spellID) : AuraScript(), _markSpell(spellID) { }
spell_halion_combustion_consumption_aura(uint32 spellID) : AuraScript(), _markSpell(spellID) { }
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -953,34 +919,21 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_halion_combustion_consumption_AuraScript::AddMarkStack, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
AfterEffectApply += AuraEffectApplyFn(spell_halion_combustion_consumption_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_combustion_consumption_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
uint32 _markSpell;
};
AuraScript* GetAuraScript() const override
{
return new spell_halion_combustion_consumption_AuraScript(_spellID);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_halion_combustion_consumption_aura::AddMarkStack, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
AfterEffectApply += AuraEffectApplyFn(spell_halion_combustion_consumption_aura::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_combustion_consumption_aura::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
private:
uint32 _spellID;
uint32 _markSpell;
};
class spell_halion_marks : public SpellScriptLoader
class spell_halion_marks_aura : public AuraScript
{
public:
spell_halion_marks(char const* scriptName, uint32 summonSpell, uint32 removeSpell) : SpellScriptLoader(scriptName), _summonSpell(summonSpell), _removeSpell(removeSpell) { }
class spell_halion_marks_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_marks_AuraScript);
PrepareAuraScript(spell_halion_marks_aura);
public:
spell_halion_marks_AuraScript(uint32 summonSpell, uint32 removeSpell) : AuraScript(), _summonSpellId(summonSpell), _removeSpellId(removeSpell) { }
spell_halion_marks_aura(uint32 summonSpell, uint32 removeSpell) : AuraScript(), _summonSpellId(summonSpell), _removeSpellId(removeSpell) { }
void BeforeDispel(DispelInfo* dispelData)
{
@@ -1004,35 +957,26 @@ public:
void Register() override
{
OnDispel += AuraDispelFn(spell_halion_marks_AuraScript::BeforeDispel);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_marks_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnDispel += AuraDispelFn(spell_halion_marks_aura::BeforeDispel);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_marks_aura::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
private:
uint32 _summonSpellId;
uint32 _removeSpellId;
};
AuraScript* GetAuraScript() const override
class spell_halion_damage_aoe_summon : public SpellScript
{
return new spell_halion_marks_AuraScript(_summonSpell, _removeSpell);
PrepareSpellScript(spell_halion_damage_aoe_summon);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SCALE_AURA });
}
private:
uint32 _summonSpell;
uint32 _removeSpell;
};
class spell_halion_damage_aoe_summon : public SpellScriptLoader
{
public:
spell_halion_damage_aoe_summon(char const* scriptName, uint32 explosionSpell, uint32 auraSpell) : SpellScriptLoader(scriptName), _explosionSpell(explosionSpell), _auraSpell(auraSpell) { }
class spell_halion_damage_aoe_summon_SpellScript : public SpellScript
{
PrepareSpellScript(spell_halion_damage_aoe_summon_SpellScript);
public:
spell_halion_damage_aoe_summon_SpellScript(uint32 explosionSpell, uint32 auraSpell) : SpellScript(), _explosionSpell(explosionSpell), _auraSpell(auraSpell) { }
spell_halion_damage_aoe_summon(uint32 explosionSpell, uint32 auraSpell) : SpellScript(), _explosionSpell(explosionSpell), _auraSpell(auraSpell) { }
void HandleSummon(SpellEffIndex effIndex)
{
@@ -1065,16 +1009,7 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_halion_damage_aoe_summon_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
}
uint32 _explosionSpell;
uint32 _auraSpell;
};
SpellScript* GetSpellScript() const override
{
return new spell_halion_damage_aoe_summon_SpellScript(_explosionSpell, _auraSpell);
OnEffectHit += SpellEffectFn(spell_halion_damage_aoe_summon::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
}
private:
@@ -1082,14 +1017,14 @@ private:
uint32 _auraSpell;
};
class spell_halion_clear_debuffs : public SpellScriptLoader
class spell_halion_clear_debuffs : public SpellScript
{
public:
spell_halion_clear_debuffs() : SpellScriptLoader("spell_halion_clear_debuffs") { }
PrepareSpellScript(spell_halion_clear_debuffs);
class spell_halion_clear_debuffs_SpellScript : public SpellScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareSpellScript(spell_halion_clear_debuffs_SpellScript);
return ValidateSpellInfo({ SPELL_FIERY_COMBUSTION });
}
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
{
@@ -1103,24 +1038,18 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_halion_clear_debuffs_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_halion_clear_debuffs::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_halion_twilight_phasing : public SpellScript
{
return new spell_halion_clear_debuffs_SpellScript();
PrepareSpellScript(spell_halion_twilight_phasing);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SUMMON_TWILIGHT_PORTAL });
}
};
class spell_halion_twilight_phasing : public SpellScriptLoader
{
public:
spell_halion_twilight_phasing() : SpellScriptLoader("spell_halion_twilight_phasing") { }
class spell_halion_twilight_phasing_SpellScript : public SpellScript
{
PrepareSpellScript(spell_halion_twilight_phasing_SpellScript);
bool Load() override
{
@@ -1136,18 +1065,13 @@ public:
void Register() override
{
OnHit += SpellHitFn(spell_halion_twilight_phasing_SpellScript::Phase);
OnHit += SpellHitFn(spell_halion_twilight_phasing::Phase);
}
};
SpellScript* GetSpellScript() const override
class spell_halion_twilight_phasing_aura : public AuraScript
{
return new spell_halion_twilight_phasing_SpellScript();
}
class spell_halion_twilight_phasing_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_twilight_phasing_AuraScript);
PrepareAuraScript(spell_halion_twilight_phasing_aura);
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*handle*/)
{
@@ -1171,25 +1095,19 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_halion_twilight_phasing_AuraScript::OnApply, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_halion_twilight_phasing_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_halion_twilight_phasing_aura::OnApply, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_halion_twilight_phasing_aura::OnRemove, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_halion_twilight_realm_aura : public AuraScript
{
return new spell_halion_twilight_phasing_AuraScript();
PrepareAuraScript(spell_halion_twilight_realm_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_FIERY_COMBUSTION });
}
};
class spell_halion_twilight_realm : public SpellScriptLoader
{
public:
spell_halion_twilight_realm() : SpellScriptLoader("spell_halion_twilight_realm") { }
class spell_halion_twilight_realm_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_twilight_realm_AuraScript);
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*handle*/)
{
@@ -1205,24 +1123,18 @@ public:
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_halion_twilight_realm_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PHASE, AURA_EFFECT_HANDLE_REAL);
AfterEffectApply += AuraEffectApplyFn(spell_halion_twilight_realm_aura::OnApply, EFFECT_0, SPELL_AURA_PHASE, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_halion_leave_twilight_realm_aura : public AuraScript
{
return new spell_halion_twilight_realm_AuraScript();
PrepareAuraScript(spell_halion_leave_twilight_realm_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SOUL_CONSUMPTION, SPELL_TWILIGHT_REALM });
}
};
class spell_halion_leave_twilight_realm : public SpellScriptLoader
{
public:
spell_halion_leave_twilight_realm() : SpellScriptLoader("spell_halion_leave_twilight_realm") { }
class spell_halion_leave_twilight_realm_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_leave_twilight_realm_AuraScript);
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*handle*/)
{
@@ -1244,25 +1156,14 @@ public:
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_halion_leave_twilight_realm_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_leave_twilight_realm_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectApply += AuraEffectApplyFn(spell_halion_leave_twilight_realm_aura::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_halion_leave_twilight_realm_aura::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_halion_twilight_cutter_periodic_aura : public AuraScript
{
return new spell_halion_leave_twilight_realm_AuraScript();
}
};
class spell_halion_twilight_cutter_periodic : public SpellScriptLoader
{
public:
spell_halion_twilight_cutter_periodic() : SpellScriptLoader("spell_halion_twilight_cutter_periodic") { }
class spell_halion_twilight_cutter_periodic_AuraScript : public AuraScript
{
PrepareAuraScript(spell_halion_twilight_cutter_periodic_AuraScript);
PrepareAuraScript(spell_halion_twilight_cutter_periodic_aura);
void HandlePeriodic(AuraEffect const* aurEff)
{
@@ -1272,13 +1173,7 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_halion_twilight_cutter_periodic_AuraScript::HandlePeriodic, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_halion_twilight_cutter_periodic_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_halion_twilight_cutter_periodic_aura::HandlePeriodic, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
@@ -1297,14 +1192,9 @@ private:
WorldObject* _cutterCaster;
};
class spell_halion_twilight_cutter : public SpellScriptLoader
class spell_halion_twilight_cutter : public SpellScript
{
public:
spell_halion_twilight_cutter() : SpellScriptLoader("spell_halion_twilight_cutter") { }
class spell_halion_twilight_cutter_SpellScript : public SpellScript
{
PrepareSpellScript(spell_halion_twilight_cutter_SpellScript);
PrepareSpellScript(spell_halion_twilight_cutter);
void RemoveNotBetween(std::list<WorldObject*>& unitList)
{
@@ -1323,24 +1213,13 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_halion_twilight_cutter_SpellScript::RemoveNotBetween, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_halion_twilight_cutter::RemoveNotBetween, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_halion_summon_exit_portals : public SpellScript
{
return new spell_halion_twilight_cutter_SpellScript();
}
};
class spell_halion_summon_exit_portals : public SpellScriptLoader
{
public:
spell_halion_summon_exit_portals() : SpellScriptLoader("spell_halion_summon_exit_portals") { }
class spell_halion_summon_exit_portals_SpellScript : public SpellScript
{
PrepareSpellScript(spell_halion_summon_exit_portals_SpellScript);
PrepareSpellScript(spell_halion_summon_exit_portals);
void OnSummon(SpellEffIndex effIndex)
{
@@ -1359,25 +1238,19 @@ public:
void Register() override
{
OnEffectLaunch += SpellEffectFn(spell_halion_summon_exit_portals_SpellScript::OnSummon, EFFECT_0, SPELL_EFFECT_SUMMON_OBJECT_WILD);
OnEffectLaunch += SpellEffectFn(spell_halion_summon_exit_portals_SpellScript::OnSummon, EFFECT_1, SPELL_EFFECT_SUMMON_OBJECT_WILD);
OnEffectLaunch += SpellEffectFn(spell_halion_summon_exit_portals::OnSummon, EFFECT_0, SPELL_EFFECT_SUMMON_OBJECT_WILD);
OnEffectLaunch += SpellEffectFn(spell_halion_summon_exit_portals::OnSummon, EFFECT_1, SPELL_EFFECT_SUMMON_OBJECT_WILD);
}
};
SpellScript* GetSpellScript() const override
class spell_halion_twilight_division : public SpellScript
{
return new spell_halion_summon_exit_portals_SpellScript();
PrepareSpellScript(spell_halion_twilight_division);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SUMMON_EXIT_PORTALS_NORMAL, SPELL_SUMMON_EXIT_PORTALS, SPELL_TWILIGHT_PHASING });
}
};
class spell_halion_twilight_division : public SpellScriptLoader
{
public:
spell_halion_twilight_division() : SpellScriptLoader("spell_halion_twilight_division") { }
class spell_halion_twilight_division_SpellScript : public SpellScript
{
PrepareSpellScript(spell_halion_twilight_division_SpellScript);
void HandleDummy(SpellEffIndex /*effIndex*/)
{
@@ -1406,24 +1279,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_halion_twilight_division_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectHitTarget += SpellEffectFn(spell_halion_twilight_division::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_halion_twilight_mending : public SpellScript
{
return new spell_halion_twilight_division_SpellScript();
}
};
class spell_halion_twilight_mending : public SpellScriptLoader
{
public:
spell_halion_twilight_mending() : SpellScriptLoader("spell_halion_twilight_mending") { }
class spell_halion_twilight_mending_SpellScript : public SpellScript
{
PrepareSpellScript(spell_halion_twilight_mending_SpellScript);
PrepareSpellScript(spell_halion_twilight_mending);
void HandleHealPct(SpellEffIndex /*effIndex*/)
{
@@ -1433,13 +1295,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_halion_twilight_mending_SpellScript::HandleHealPct, EFFECT_ALL, SPELL_EFFECT_HEAL_PCT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_halion_twilight_mending_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_halion_twilight_mending::HandleHealPct, EFFECT_ALL, SPELL_EFFECT_HEAL_PCT);
}
};
@@ -1482,24 +1338,24 @@ void AddSC_boss_halion()
new npc_orb_carrier();
new npc_living_inferno();
new spell_halion_meteor_strike_targeting();
new spell_halion_meteor_strike_marker();
new spell_halion_meteor_strike_spread();
new spell_halion_blazing_aura();
new spell_halion_combustion_consumption("spell_halion_soul_consumption", SPELL_MARK_OF_CONSUMPTION);
new spell_halion_combustion_consumption("spell_halion_fiery_combustion", SPELL_MARK_OF_COMBUSTION);
new spell_halion_marks("spell_halion_mark_of_combustion", SPELL_FIERY_COMBUSTION_SUMMON, SPELL_FIERY_COMBUSTION);
new spell_halion_marks("spell_halion_mark_of_consumption", SPELL_SOUL_CONSUMPTION_SUMMON, SPELL_SOUL_CONSUMPTION);
new spell_halion_damage_aoe_summon("spell_halion_combustion_summon", SPELL_FIERY_COMBUSTION_EXPLOSION, SPELL_COMBUSTION_DAMAGE_AURA);
new spell_halion_damage_aoe_summon("spell_halion_consumption_summon", SPELL_SOUL_CONSUMPTION_EXPLOSION, SPELL_CONSUMPTION_DAMAGE_AURA);
new spell_halion_clear_debuffs();
new spell_halion_twilight_phasing();
new spell_halion_twilight_realm();
new spell_halion_leave_twilight_realm();
new spell_halion_twilight_cutter_periodic();
new spell_halion_twilight_cutter();
new spell_halion_summon_exit_portals();
new spell_halion_twilight_division();
new spell_halion_twilight_mending();
RegisterSpellScript(spell_halion_meteor_strike_targeting);
RegisterSpellScript(spell_halion_meteor_strike_marker_aura);
RegisterSpellScript(spell_halion_meteor_strike_spread_aura);
RegisterSpellScript(spell_halion_blazing_aura);
RegisterSpellScriptWithArgs(spell_halion_combustion_consumption_aura, "spell_halion_soul_consumption_aura", SPELL_MARK_OF_CONSUMPTION);
RegisterSpellScriptWithArgs(spell_halion_combustion_consumption_aura, "spell_halion_fiery_combustion_aura", SPELL_MARK_OF_COMBUSTION);
RegisterSpellScriptWithArgs(spell_halion_marks_aura, "spell_halion_mark_of_combustion_aura", SPELL_FIERY_COMBUSTION_SUMMON, SPELL_FIERY_COMBUSTION);
RegisterSpellScriptWithArgs(spell_halion_marks_aura, "spell_halion_mark_of_consumption_aura", SPELL_SOUL_CONSUMPTION_SUMMON, SPELL_SOUL_CONSUMPTION);
RegisterSpellScriptWithArgs(spell_halion_damage_aoe_summon, "spell_halion_combustion_summon", SPELL_FIERY_COMBUSTION_EXPLOSION, SPELL_COMBUSTION_DAMAGE_AURA);
RegisterSpellScriptWithArgs(spell_halion_damage_aoe_summon, "spell_halion_consumption_summon", SPELL_SOUL_CONSUMPTION_EXPLOSION, SPELL_CONSUMPTION_DAMAGE_AURA);
RegisterSpellScript(spell_halion_clear_debuffs);
RegisterSpellAndAuraScriptPair(spell_halion_twilight_phasing, spell_halion_twilight_phasing_aura);
RegisterSpellScript(spell_halion_twilight_realm_aura);
RegisterSpellScript(spell_halion_leave_twilight_realm_aura);
RegisterSpellScript(spell_halion_twilight_cutter_periodic_aura);
RegisterSpellScript(spell_halion_twilight_cutter);
RegisterSpellScript(spell_halion_summon_exit_portals);
RegisterSpellScript(spell_halion_twilight_division);
RegisterSpellScript(spell_halion_twilight_mending);
}
@@ -185,14 +185,14 @@ public:
}
};
class spell_saviana_conflagration_init : public SpellScriptLoader
class spell_saviana_conflagration_init : public SpellScript
{
public:
spell_saviana_conflagration_init() : SpellScriptLoader("spell_saviana_conflagration_init") { }
PrepareSpellScript(spell_saviana_conflagration_init);
class spell_saviana_conflagration_init_SpellScript : public SpellScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareSpellScript(spell_saviana_conflagration_init_SpellScript);
return ValidateSpellInfo({ SPELL_FLAME_BEACON, SPELL_CONFLAGRATION_MISSLE });
}
void HandleDummy(SpellEffIndex effIndex)
{
@@ -203,24 +203,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_saviana_conflagration_init_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectHitTarget += SpellEffectFn(spell_saviana_conflagration_init::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_saviana_conflagration_throwback : public SpellScript
{
return new spell_saviana_conflagration_init_SpellScript();
}
};
class spell_saviana_conflagration_throwback : public SpellScriptLoader
{
public:
spell_saviana_conflagration_throwback() : SpellScriptLoader("spell_saviana_conflagration_throwback") { }
class spell_saviana_conflagration_throwback_SpellScript : public SpellScript
{
PrepareSpellScript(spell_saviana_conflagration_throwback_SpellScript);
PrepareSpellScript(spell_saviana_conflagration_throwback);
void HandleScript(SpellEffIndex effIndex)
{
@@ -230,20 +219,14 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_saviana_conflagration_throwback_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_saviana_conflagration_throwback_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_saviana_conflagration_throwback::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_boss_saviana_ragefire()
{
new boss_saviana_ragefire();
new spell_saviana_conflagration_init();
new spell_saviana_conflagration_throwback();
RegisterSpellScript(spell_saviana_conflagration_init);
RegisterSpellScript(spell_saviana_conflagration_throwback);
}
@@ -245,14 +245,14 @@ public:
}
};
class spell_ruby_sanctum_rallying_shout : public SpellScriptLoader
class spell_ruby_sanctum_rallying_shout : public SpellScript
{
public:
spell_ruby_sanctum_rallying_shout() : SpellScriptLoader("spell_ruby_sanctum_rallying_shout") { }
PrepareSpellScript(spell_ruby_sanctum_rallying_shout);
class spell_ruby_sanctum_rallying_shout_SpellScript : public SpellScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareSpellScript(spell_ruby_sanctum_rallying_shout_SpellScript);
return ValidateSpellInfo({ SPELL_RALLY });
}
void CountAllies()
{
@@ -267,19 +267,13 @@ public:
void Register() override
{
AfterHit += SpellHitFn(spell_ruby_sanctum_rallying_shout_SpellScript::CountAllies);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_ruby_sanctum_rallying_shout_SpellScript();
AfterHit += SpellHitFn(spell_ruby_sanctum_rallying_shout::CountAllies);
}
};
void AddSC_instance_ruby_sanctum()
{
new instance_ruby_sanctum();
new spell_ruby_sanctum_rallying_shout();
RegisterSpellScript(spell_ruby_sanctum_rallying_shout);
}