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
{
@@ -158,12 +153,6 @@ public:
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_brutallusAI>(creature);
}
};
enum eMadrigosa
@@ -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;
@@ -402,12 +386,6 @@ public:
break;
}
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<npc_madrigosaAI>(creature);
}
};
class spell_madrigosa_activate_barrier : public SpellScript
@@ -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
@@ -222,22 +217,11 @@ public:
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_sacrolashAI>(creature);
};
};
class boss_alythess : public CreatureScript
struct boss_alythess : public BossAI
{
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
@@ -360,12 +344,6 @@ public:
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_alythessAI>(creature);
};
};
class spell_eredar_twins_apply_dark_touched : public SpellScript
@@ -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);
@@ -343,13 +338,13 @@ public:
break;
case EVENT_FLIGHT_BREATH1:
{
Position pos = {1447.0f + urand(0, 2) * 25.0f, 705.0f, 50.0f, 4.71f};
Position pos = { 1447.0f + urand(0, 2) * 25.0f, 705.0f, 50.0f, 4.71f };
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_START1, pos, false, true);
break;
}
case EVENT_FLIGHT_BREATH2:
{
Position pos = {1447.0f + urand(0, 2) * 25.0f, 515.0f, 50.0f, 1.57f};
Position pos = { 1447.0f + urand(0, 2) * 25.0f, 515.0f, 50.0f, 1.57f };
me->GetMotionMaster()->MovePoint(POINT_AIR_BREATH_START2, pos, false, true);
break;
}
@@ -384,27 +379,11 @@ public:
if (!me->HasUnitMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY))
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_felmystAI>(creature);
}
};
class npc_demonic_vapor : public CreatureScript
struct npc_demonic_vapor : public NullCreatureAI
{
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
{
@@ -425,22 +404,11 @@ 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;
}
@@ -475,7 +443,6 @@ public:
summon->SetInCombatWithZone();
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)
{
}
@@ -353,12 +348,6 @@ public:
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_kalecgosAI>(creature);
}
};
enum Kalec
@@ -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;
@@ -485,22 +464,11 @@ 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();
}
@@ -594,7 +562,7 @@ public:
{
if (InstanceScript* instanceScript = me->GetInstanceScript())
{
if (Creature *kalecgos = ObjectAccessor::GetCreature(*me, instanceScript->GetGuidData(
if (Creature* kalecgos = ObjectAccessor::GetCreature(*me, instanceScript->GetGuidData(
NPC_KALECGOS)))
{
kalecgos->AI()->DoAction(ACTION_ENRAGE_OTHER);
@@ -619,7 +587,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();
}
@@ -273,17 +263,11 @@ 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);
@@ -663,12 +647,6 @@ public:
}
}
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_kiljaedenAI>(creature);
}
};
enum postEvent
@@ -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();
}
@@ -1027,7 +995,6 @@ public:
break;
}
}
};
};
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
{
@@ -150,22 +145,11 @@ public:
break;
}
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_muruAI>(creature);
}
};
class boss_entropius : public CreatureScript
struct boss_entropius : public ScriptedAI
{
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;
@@ -260,27 +244,11 @@ public:
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetSunwellPlateauAI<boss_entropiusAI>(creature);
}
};
class npc_singularity : public CreatureScript
struct npc_singularity : public NullCreatureAI
{
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)
{
}
@@ -325,7 +293,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