refactor(Scripts/SWP): Update creature scripts to new register method (#20503)

This commit is contained in:
Andrew
2024-11-10 15:44:35 -03:00
committed by GitHub
parent 3866c35f2f
commit bf925eda3c
7 changed files with 2042 additions and 2216 deletions
@@ -63,14 +63,9 @@ enum Misc
ACTION_SPAWN_FELMYST = 2
};
class boss_brutallus : public CreatureScript
struct boss_brutallus : public BossAI
{
public:
boss_brutallus() : CreatureScript("boss_brutallus") { }
struct boss_brutallusAI : public BossAI
{
boss_brutallusAI(Creature* creature) : BossAI(creature, DATA_BRUTALLUS) { }
boss_brutallus(Creature* creature) : BossAI(creature, DATA_BRUTALLUS) { }
void Reset() override
{
@@ -160,12 +155,6 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_brutallusAI>(creature);
}
};
enum eMadrigosa
{
EVENT_MAD_1 = 1,
@@ -210,14 +199,9 @@ enum eMadrigosa
SPELL_BRUTALLUS_BREAK_ICE = 46637,
};
class npc_madrigosa : public CreatureScript
struct npc_madrigosa : public NullCreatureAI
{
public:
npc_madrigosa() : CreatureScript("npc_madrigosa") { }
struct npc_madrigosaAI : public NullCreatureAI
{
npc_madrigosaAI(Creature* creature) : NullCreatureAI(creature)
npc_madrigosa(Creature* creature) : NullCreatureAI(creature)
{
instance = creature->GetInstanceScript();
bool appear = instance->GetBossState(DATA_BRUTALLUS) != DONE && instance->GetBossState(DATA_MADRIGOSA) == DONE;
@@ -404,12 +388,6 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<npc_madrigosaAI>(creature);
}
};
class spell_madrigosa_activate_barrier : public SpellScript
{
PrepareSpellScript(spell_madrigosa_activate_barrier);
@@ -519,8 +497,8 @@ public:
void AddSC_boss_brutallus()
{
new boss_brutallus();
new npc_madrigosa();
RegisterSunwellPlateauCreatureAI(boss_brutallus);
RegisterSunwellPlateauCreatureAI(npc_madrigosa);
RegisterSpellScript(spell_madrigosa_activate_barrier);
RegisterSpellScript(spell_madrigosa_deactivate_barrier);
RegisterSpellScript(spell_brutallus_burn);
@@ -82,14 +82,9 @@ enum Misc
EVENT_SPELL_FLAME_SEAR = 9
};
class boss_sacrolash : public CreatureScript
struct boss_sacrolash : public BossAI
{
public:
boss_sacrolash() : CreatureScript("boss_sacrolash") { }
struct boss_sacrolashAI : public BossAI
{
boss_sacrolashAI(Creature* creature) : BossAI(creature, DATA_EREDAR_TWINS) {}
boss_sacrolash(Creature* creature) : BossAI(creature, DATA_EREDAR_TWINS) {}
bool sisterDied;
void Reset() override
@@ -224,20 +219,9 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
struct boss_alythess : public BossAI
{
return GetSunwellPlateauAI<boss_sacrolashAI>(creature);
};
};
class boss_alythess : public CreatureScript
{
public:
boss_alythess() : CreatureScript("boss_alythess") { }
struct boss_alythessAI : public BossAI
{
boss_alythessAI(Creature* creature) : BossAI(creature, DATA_EREDAR_TWINS) { }
boss_alythess(Creature* creature) : BossAI(creature, DATA_EREDAR_TWINS) { }
bool sisterDied;
void Reset() override
@@ -362,12 +346,6 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_alythessAI>(creature);
};
};
class spell_eredar_twins_apply_dark_touched : public SpellScript
{
PrepareSpellScript(spell_eredar_twins_apply_dark_touched);
@@ -496,8 +474,8 @@ public:
void AddSC_boss_eredar_twins()
{
new boss_sacrolash();
new boss_alythess();
RegisterSunwellPlateauCreatureAI(boss_sacrolash);
RegisterSunwellPlateauCreatureAI(boss_alythess);
RegisterSpellScript(spell_eredar_twins_apply_dark_touched);
RegisterSpellScript(spell_eredar_twins_apply_flame_touched);
RegisterSpellScript(spell_eredar_twins_handle_touch);
@@ -126,14 +126,9 @@ private:
Unit* _caster;
};
class boss_felmyst : public CreatureScript
struct boss_felmyst : public BossAI
{
public:
boss_felmyst() : CreatureScript("boss_felmyst") { }
struct boss_felmystAI : public BossAI
{
boss_felmystAI(Creature* creature) : BossAI(creature, DATA_FELMYST)
boss_felmyst(Creature* creature) : BossAI(creature, DATA_FELMYST)
{
bool appear = instance->GetBossState(DATA_BRUTALLUS) == DONE;
creature->SetVisible(appear);
@@ -386,25 +381,9 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
struct npc_demonic_vapor : public NullCreatureAI
{
return GetSunwellPlateauAI<boss_felmystAI>(creature);
}
};
class npc_demonic_vapor : public CreatureScript
{
public:
npc_demonic_vapor() : CreatureScript("npc_demonic_vapor") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<npc_demonic_vaporAI>(creature);
}
struct npc_demonic_vaporAI : public NullCreatureAI
{
npc_demonic_vaporAI(Creature* creature) : NullCreatureAI(creature) { }
npc_demonic_vapor(Creature* creature) : NullCreatureAI(creature) { }
void Reset() override
{
@@ -426,21 +405,10 @@ public:
}
}
};
};
class npc_demonic_vapor_trail : public CreatureScript
struct npc_demonic_vapor_trail : public NullCreatureAI
{
public:
npc_demonic_vapor_trail() : CreatureScript("npc_demonic_vapor_trail") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<npc_demonic_vapor_trailAI>(creature);
}
struct npc_demonic_vapor_trailAI : public NullCreatureAI
{
npc_demonic_vapor_trailAI(Creature* creature) : NullCreatureAI(creature)
npc_demonic_vapor_trail(Creature* creature) : NullCreatureAI(creature)
{
timer = 1;
}
@@ -476,7 +444,6 @@ public:
summon->AI()->AttackStart(summon->AI()->SelectTarget(SelectTargetMethod::Random, 0, 100.0f));
}
};
};
class spell_felmyst_fog_of_corruption : public SpellScript
{
@@ -558,9 +525,9 @@ class spell_felmyst_open_brutallus_back_doors : public SpellScript
void AddSC_boss_felmyst()
{
new boss_felmyst();
new npc_demonic_vapor();
new npc_demonic_vapor_trail();
RegisterSunwellPlateauCreatureAI(boss_felmyst);
RegisterSunwellPlateauCreatureAI(npc_demonic_vapor);
RegisterSunwellPlateauCreatureAI(npc_demonic_vapor_trail);
RegisterSpellScript(spell_felmyst_fog_of_corruption);
RegisterSpellScript(spell_felmyst_fog_of_corruption_charm_aura);
RegisterSpellScript(spell_felmyst_open_brutallus_back_doors);
@@ -114,14 +114,9 @@ enum kalEvents
#define DRAGON_REALM_Z 53.079f
class boss_kalecgos : public CreatureScript
struct boss_kalecgos : public BossAI
{
public:
boss_kalecgos() : CreatureScript("boss_kalecgos") { }
struct boss_kalecgosAI : public BossAI
{
boss_kalecgosAI(Creature* creature) : BossAI(creature, DATA_KALECGOS)
boss_kalecgos(Creature* creature) : BossAI(creature, DATA_KALECGOS)
{
}
@@ -355,12 +350,6 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_kalecgosAI>(creature);
}
};
enum Kalec
{
SPELL_OPEN_BRUTALLUS_BACK_DOOR = 46650,
@@ -371,19 +360,9 @@ enum Kalec
EVENT_KALEC_SCENE_3 = 103
};
class boss_kalec : public CreatureScript
struct boss_kalec : public ScriptedAI
{
public:
boss_kalec() : CreatureScript("boss_kalec") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_kalecAI>(creature);
}
struct boss_kalecAI : public ScriptedAI
{
boss_kalecAI(Creature* creature) : ScriptedAI(creature) { }
boss_kalec(Creature* creature) : ScriptedAI(creature) { }
EventMap events;
EventMap events2;
@@ -486,21 +465,10 @@ public:
DoMeleeAttackIfReady();
}
};
};
class boss_sathrovarr : public CreatureScript
struct boss_sathrovarr : public ScriptedAI
{
public:
boss_sathrovarr() : CreatureScript("boss_sathrovarr") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_sathrovarrAI>(creature);
}
struct boss_sathrovarrAI : public ScriptedAI
{
boss_sathrovarrAI(Creature* creature) : ScriptedAI(creature)
boss_sathrovarr(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
}
@@ -620,7 +588,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
class SpectralBlastCheck
{
@@ -750,9 +717,9 @@ class spell_kalecgos_spectral_realm_aura : public AuraScript
void AddSC_boss_kalecgos()
{
new boss_kalecgos();
new boss_sathrovarr();
new boss_kalec();
RegisterSunwellPlateauCreatureAI(boss_kalecgos);
RegisterSunwellPlateauCreatureAI(boss_sathrovarr);
RegisterSunwellPlateauCreatureAI(boss_kalec);
RegisterSpellScript(spell_kalecgos_spectral_blast_dummy);
RegisterSpellScript(spell_kalecgos_curse_of_boundless_agony_aura);
RegisterSpellScript(spell_kalecgos_spectral_realm_dummy);
@@ -163,19 +163,9 @@ private:
Creature* _caster;
};
class npc_kiljaeden_controller : public CreatureScript
struct npc_kiljaeden_controller : public NullCreatureAI
{
public:
npc_kiljaeden_controller() : CreatureScript("npc_kiljaeden_controller") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<npc_kiljaeden_controllerAI>(creature);
}
struct npc_kiljaeden_controllerAI : public NullCreatureAI
{
npc_kiljaeden_controllerAI(Creature* creature) : NullCreatureAI(creature), summons(me)
npc_kiljaeden_controller(Creature* creature) : NullCreatureAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
}
@@ -274,16 +264,10 @@ public:
}
}
};
};
class boss_kiljaeden : public CreatureScript
struct boss_kiljaeden : public ScriptedAI
{
public:
boss_kiljaeden() : CreatureScript("boss_kiljaeden") { }
struct boss_kiljaedenAI : public ScriptedAI
{
boss_kiljaedenAI(Creature* creature) : ScriptedAI(creature)
boss_kiljaeden(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
me->SetReactState(REACT_PASSIVE);
@@ -665,12 +649,6 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_kiljaedenAI>(creature);
}
};
enum postEvent
{
SAY_VELEN_01 = 0,
@@ -772,19 +750,9 @@ private:
Creature* _owner;
};
class npc_kalecgos_kj : public CreatureScript
struct npc_kalecgos_kj : public NullCreatureAI
{
public:
npc_kalecgos_kj() : CreatureScript("npc_kalecgos_kj") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<npc_kalecgos_kjAI>(creature);
}
struct npc_kalecgos_kjAI : public NullCreatureAI
{
npc_kalecgos_kjAI(Creature* creature) : NullCreatureAI(creature), summons(me)
npc_kalecgos_kj(Creature* creature) : NullCreatureAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
}
@@ -1028,7 +996,6 @@ public:
}
}
};
};
class spell_kiljaeden_shadow_spike_aura : public AuraScript
{
@@ -1248,9 +1215,9 @@ class spell_kiljaeden_dragon_breath : public SpellScript
void AddSC_boss_kiljaeden()
{
new npc_kiljaeden_controller();
new boss_kiljaeden();
new npc_kalecgos_kj();
RegisterSunwellPlateauCreatureAI(npc_kiljaeden_controller);
RegisterSunwellPlateauCreatureAI(boss_kiljaeden);
RegisterSunwellPlateauCreatureAI(npc_kalecgos_kj);
RegisterSpellScript(spell_kiljaeden_shadow_spike_aura);
RegisterSpellScript(spell_kiljaeden_sinister_reflection);
RegisterSpellScript(spell_kiljaeden_sinister_reflection_clone);
@@ -72,14 +72,9 @@ enum Misc
DATA_NEGATIVE_ENERGY_TARGETS = 2
};
class boss_muru : public CreatureScript
struct boss_muru : public BossAI
{
public:
boss_muru() : CreatureScript("boss_muru") { }
struct boss_muruAI : public BossAI
{
boss_muruAI(Creature* creature) : BossAI(creature, DATA_MURU) { }
boss_muru(Creature* creature) : BossAI(creature, DATA_MURU) { }
void Reset() override
{
@@ -152,20 +147,9 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
struct boss_entropius : public ScriptedAI
{
return GetSunwellPlateauAI<boss_muruAI>(creature);
}
};
class boss_entropius : public CreatureScript
{
public:
boss_entropius() : CreatureScript("boss_entropius") { }
struct boss_entropiusAI : public ScriptedAI
{
boss_entropiusAI(Creature* creature) : ScriptedAI(creature) { }
boss_entropius(Creature* creature) : ScriptedAI(creature) { }
EventMap events;
EventMap events2;
@@ -262,25 +246,9 @@ public:
}
};
CreatureAI* GetAI(Creature* creature) const override
struct npc_singularity : public NullCreatureAI
{
return GetSunwellPlateauAI<boss_entropiusAI>(creature);
}
};
class npc_singularity : public CreatureScript
{
public:
npc_singularity() : CreatureScript("npc_singularity") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<npc_singularityAI>(creature);
}
struct npc_singularityAI : public NullCreatureAI
{
npc_singularityAI(Creature* creature) : NullCreatureAI(creature)
npc_singularity(Creature* creature) : NullCreatureAI(creature)
{
}
@@ -326,7 +294,6 @@ public:
}
}
};
};
class spell_muru_summon_blood_elves_periodic_aura : public AuraScript
{
@@ -475,9 +442,9 @@ class spell_entropius_black_hole_effect : public SpellScript
void AddSC_boss_muru()
{
new boss_muru();
new boss_entropius();
new npc_singularity();
RegisterSunwellPlateauCreatureAI(boss_muru);
RegisterSunwellPlateauCreatureAI(boss_entropius);
RegisterSunwellPlateauCreatureAI(npc_singularity);
RegisterSpellScript(spell_muru_summon_blood_elves_periodic_aura);
RegisterSpellScript(spell_muru_darkness_aura);
@@ -105,4 +105,6 @@ inline AI* GetSunwellPlateauAI(T* obj)
return GetInstanceAI<AI>(obj, SWPScriptName);
}
#define RegisterSunwellPlateauCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetSunwellPlateauAI)
#endif // SUNWELL_PLATEAU_H