Scripts/Icecrown Citadel: Finish script registration refactoring - RegisterSpellScriptWithArgs

(cherry picked from commit 600a6b5f681c0f5864f9e9e37559965742e22ca9)
This commit is contained in:
Shauren
2022-02-05 11:50:57 +01:00
parent f3300899d8
commit a0edc1fb1b
17 changed files with 45 additions and 48 deletions
@@ -23,6 +23,7 @@
#include "PassiveAI.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellAuraEffects.h"
#include "SpellInfo.h"
@@ -23,6 +23,7 @@
#include "ObjectAccessor.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "SpellAuraEffects.h"
#include "SpellMgr.h"
#include "SpellScript.h"
@@ -22,6 +22,7 @@
#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptMgr.h"
#include "SpellAuras.h"
#include "SpellScript.h"
@@ -21,6 +21,7 @@
#include "ObjectAccessor.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "SpellAuras.h"
#include "SpellScript.h"
@@ -29,6 +29,7 @@
#include "PassiveAI.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptMgr.h"
#include "SpellAuraEffects.h"
#include "SpellHistory.h"
#include "SpellMgr.h"
@@ -23,6 +23,7 @@
#include "Player.h"
#include "QuestPools.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
@@ -24,6 +24,7 @@
#include "Player.h"
#include "PointMovementGenerator.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
@@ -24,6 +24,7 @@
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellAuraEffects.h"
#include "SpellMgr.h"
@@ -21,6 +21,7 @@
#include "Map.h"
#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
@@ -1542,8 +1542,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
@@ -17,11 +17,12 @@
#include "icecrown_citadel.h"
#include "CellImpl.h"
#include "InstanceScript.h"
#include "GridNotifiersImpl.h"
#include "InstanceScript.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "ScriptedEscortAI.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "VehicleDefines.h"
@@ -1489,7 +1490,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();
@@ -23,6 +23,7 @@
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
@@ -2849,7 +2850,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_harvest_souls_teleport);
// Achievements
@@ -23,6 +23,7 @@
#include "ObjectAccessor.h"
#include "PhasingHandler.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
@@ -22,6 +22,7 @@
#include "Map.h"
#include "Player.h"
#include "ScriptedGossip.h"
#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
@@ -24,6 +24,7 @@
#include "ObjectAccessor.h"
#include "PassiveAI.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
enum ICCTexts
@@ -1459,47 +1460,24 @@ class spell_icc_soul_missile : public SpellScriptLoader
}
};
class spell_trigger_spell_from_caster_SpellScript : public SpellScript
{
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)
spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(uint32 triggerId, TriggerCastFlags triggerFlags /*= TRIGGERED_FULL_MASK*/)
: SpellScript(), _triggerId(triggerId), _triggerFlags(triggerFlags)
{
}
spell_trigger_spell_from_caster::spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId, TriggerCastFlags triggerFlags)
: SpellScriptLoader(scriptName), _triggerId(triggerId), _triggerFlags(triggerFlags)
bool spell_trigger_spell_from_caster::Validate(SpellInfo const* /*spell*/)
{
return ValidateSpellInfo({ _triggerId });
}
SpellScript* spell_trigger_spell_from_caster::GetSpellScript() const
void spell_trigger_spell_from_caster::HandleTrigger()
{
return new spell_trigger_spell_from_caster_SpellScript(_triggerId, _triggerFlags);
GetCaster()->CastSpell(GetHitUnit(), _triggerId, _triggerFlags);
}
void spell_trigger_spell_from_caster::Register()
{
AfterHit += SpellHitFn(spell_trigger_spell_from_caster::HandleTrigger);
}
class at_icc_saurfang_portal : public AreaTriggerScript
@@ -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;
PrepareSpellScript(spell_trigger_spell_from_caster);
private:
uint32 _triggerId;
TriggerCastFlags _triggerFlags;
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>
@@ -24,6 +24,7 @@
#include "ObjectMgr.h"
#include "Player.h"
#include "QuestPools.h"
#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "Transport.h"
#include "TransportMgr.h"