diff options
Diffstat (limited to 'src')
5 files changed, 28 insertions, 46 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 176bdefcbc8..70d77cc4155 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -1551,8 +1551,8 @@ void AddSC_boss_sindragosa() RegisterSpellScript(spell_rimefang_icy_blast); RegisterSpellScript(spell_frostwarden_handler_order_whelp); RegisterSpellAndAuraScriptPair(spell_frostwarden_handler_focus_fire, spell_frostwarden_handler_focus_fire_aura); - new spell_trigger_spell_from_caster("spell_sindragosa_ice_tomb", SPELL_ICE_TOMB_DUMMY, TRIGGERED_IGNORE_SET_FACING); - new spell_trigger_spell_from_caster("spell_sindragosa_ice_tomb_dummy", SPELL_FROST_BEACON); + RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_sindragosa_ice_tomb", SPELL_ICE_TOMB_DUMMY, TRIGGERED_IGNORE_SET_FACING); + RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_sindragosa_ice_tomb_dummy", SPELL_FROST_BEACON); RegisterSpellScript(spell_sindragosa_ice_tomb_target); // AreaTriggers diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp index 4992f0005b0..5d1a64d13ef 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp @@ -1502,7 +1502,7 @@ void AddSC_boss_sister_svalna() RegisterIcecrownCitadelCreatureAI(npc_captain_rupert); RegisterIcecrownCitadelCreatureAI(npc_frostwing_ymirjar_vrykul); RegisterIcecrownCitadelCreatureAI(npc_impaling_spear); - new spell_trigger_spell_from_caster("spell_svalna_caress_of_death", SPELL_IMPALING_SPEAR_KILL); + RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_svalna_caress_of_death", SPELL_IMPALING_SPEAR_KILL); RegisterSpellScript(spell_svalna_revive_champion); RegisterSpellScript(spell_svalna_remove_spear); new at_icc_start_frostwing_gauntlet(); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 23661e925b6..94f13286b2e 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -2890,7 +2890,7 @@ void AddSC_boss_the_lich_king() RegisterSpellScript(spell_the_lich_king_trigger_vile_spirit); RegisterSpellScript(spell_the_lich_king_jump); RegisterSpellScript(spell_the_lich_king_jump_remove_aura); - new spell_trigger_spell_from_caster("spell_the_lich_king_mass_resurrection", SPELL_MASS_RESURRECTION_REAL); + RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_the_lich_king_mass_resurrection", SPELL_MASS_RESURRECTION_REAL); RegisterSpellScript(spell_the_lich_king_play_movie); RegisterSpellScript(spell_the_lich_king_harvest_souls_teleport); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index 6e209d6f1e3..db8c99e0ff6 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1465,47 +1465,24 @@ class spell_icc_soul_missile : public SpellScriptLoader } }; -class spell_trigger_spell_from_caster_SpellScript : public SpellScript +spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(uint32 triggerId, TriggerCastFlags triggerFlags /*= TRIGGERED_FULL_MASK*/) + : SpellScript(), _triggerId(triggerId), _triggerFlags(triggerFlags) { - PrepareSpellScript(spell_trigger_spell_from_caster_SpellScript); - - public: - spell_trigger_spell_from_caster_SpellScript(uint32 triggerId, TriggerCastFlags triggerFlags) - : SpellScript(), _triggerId(triggerId), _triggerFlags(triggerFlags) { } - - private: - bool Validate(SpellInfo const* /*spell*/) override - { - return ValidateSpellInfo({ _triggerId }); - } - - void HandleTrigger() - { - GetCaster()->CastSpell(GetHitUnit(), _triggerId, _triggerFlags); - } - - void Register() override - { - AfterHit += SpellHitFn(spell_trigger_spell_from_caster_SpellScript::HandleTrigger); - } - - uint32 _triggerId; - TriggerCastFlags _triggerFlags; -}; +} -spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId) - : SpellScriptLoader(scriptName), _triggerId(triggerId), _triggerFlags(TRIGGERED_FULL_MASK) +bool spell_trigger_spell_from_caster::Validate(SpellInfo const* /*spell*/) { + return ValidateSpellInfo({ _triggerId }); } -spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId, TriggerCastFlags triggerFlags) - : SpellScriptLoader(scriptName), _triggerId(triggerId), _triggerFlags(triggerFlags) +void spell_trigger_spell_from_caster::HandleTrigger() { + GetCaster()->CastSpell(GetHitUnit(), _triggerId, _triggerFlags); } -SpellScript* spell_trigger_spell_from_caster::GetSpellScript() const +void spell_trigger_spell_from_caster::Register() { - return new spell_trigger_spell_from_caster_SpellScript(_triggerId, _triggerFlags); + AfterHit += SpellHitFn(spell_trigger_spell_from_caster::HandleTrigger); } class at_icc_saurfang_portal : public AreaTriggerScript diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h index f6ec558c735..4499704cfe6 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h @@ -19,7 +19,8 @@ #define ICECROWN_CITADEL_H_ #include "CreatureAIImpl.h" -#include "ScriptMgr.h" +#include "SpellDefines.h" +#include "SpellScript.h" #define ICCScriptName "instance_icecrown_citadel" #define DataHeader "IC" @@ -549,16 +550,20 @@ extern Position const SpiritWardenSpawn; uint32 const WeeklyNPCs = 9; uint32 const MaxHeroicAttempts = 50; -class spell_trigger_spell_from_caster : public SpellScriptLoader +class spell_trigger_spell_from_caster : public SpellScript { - public: - spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId, TriggerCastFlags triggerFlags); - spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId); - SpellScript* GetSpellScript() const override; - - private: - uint32 _triggerId; - TriggerCastFlags _triggerFlags; + PrepareSpellScript(spell_trigger_spell_from_caster); + +public: + spell_trigger_spell_from_caster(uint32 triggerId, TriggerCastFlags triggerFlags = TRIGGERED_FULL_MASK); + +private: + bool Validate(SpellInfo const* spell) override; + void HandleTrigger(); + void Register() override; + + uint32 _triggerId; + TriggerCastFlags _triggerFlags; }; template <class AI, class T> |