refactor(Scripts/Nexus): Update creature scripts to new register method (#20728)

This commit is contained in:
Andrew
2024-11-25 03:15:49 -03:00
committed by GitHub
parent 7da3ab573c
commit 65ec5bbceb
7 changed files with 576 additions and 669 deletions
@@ -67,21 +67,9 @@ private:
Creature* _caster; Creature* _caster;
}; };
class boss_anomalus : public CreatureScript struct boss_anomalus : public BossAI
{ {
public: boss_anomalus(Creature* creature) : BossAI(creature, DATA_ANOMALUS_EVENT) { }
boss_anomalus() : CreatureScript("boss_anomalus") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetNexusAI<boss_anomalusAI>(creature);
}
struct boss_anomalusAI : public BossAI
{
boss_anomalusAI(Creature* creature) : BossAI(creature, DATA_ANOMALUS_EVENT)
{
}
bool achievement; bool achievement;
uint16 activeRifts; uint16 activeRifts;
@@ -199,14 +187,11 @@ public:
return me->GetHomePosition().GetExactDist2d(me) > 60.0f; return me->GetHomePosition().GetExactDist2d(me) > 60.0f;
} }
}; };
};
class achievement_chaos_theory : public AchievementCriteriaScript class achievement_chaos_theory : public AchievementCriteriaScript
{ {
public: public:
achievement_chaos_theory() : AchievementCriteriaScript("achievement_chaos_theory") achievement_chaos_theory() : AchievementCriteriaScript("achievement_chaos_theory") { }
{
}
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{ {
@@ -219,6 +204,6 @@ public:
void AddSC_boss_anomalus() void AddSC_boss_anomalus()
{ {
new boss_anomalus(); RegisterNexusCreatureAI(boss_anomalus);
new achievement_chaos_theory(); new achievement_chaos_theory();
} }
@@ -43,21 +43,9 @@ enum Says
SAY_KILL = 2 SAY_KILL = 2
}; };
class boss_commander_stoutbeard : public CreatureScript struct boss_commander_stoutbeard : public BossAI
{ {
public: boss_commander_stoutbeard(Creature* creature) : BossAI(creature, DATA_COMMANDER_EVENT) {}
boss_commander_stoutbeard() : CreatureScript("boss_commander_stoutbeard") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetNexusAI<boss_commander_stoutbeardAI>(creature);
}
struct boss_commander_stoutbeardAI : public BossAI
{
boss_commander_stoutbeardAI(Creature* creature) : BossAI(creature, DATA_COMMANDER_EVENT)
{
}
void Reset() override void Reset() override
{ {
@@ -124,9 +112,8 @@ public:
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
}; };
};
void AddSC_boss_commander_stoutbeard() void AddSC_boss_commander_stoutbeard()
{ {
new boss_commander_stoutbeard(); RegisterNexusCreatureAI(boss_commander_stoutbeard);
} }
@@ -55,21 +55,9 @@ enum Events
EVENT_KILL_TALK = 6 EVENT_KILL_TALK = 6
}; };
class boss_keristrasza : public CreatureScript struct boss_keristrasza : public BossAI
{ {
public: boss_keristrasza(Creature* creature) : BossAI(creature, DATA_KERISTRASZA_EVENT) {}
boss_keristrasza() : CreatureScript("boss_keristrasza") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetNexusAI<boss_keristraszaAI>(creature);
}
struct boss_keristraszaAI : public BossAI
{
boss_keristraszaAI(Creature* creature) : BossAI(creature, DATA_KERISTRASZA_EVENT)
{
}
std::set<uint32> aGuids; std::set<uint32> aGuids;
@@ -193,14 +181,11 @@ public:
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
}; };
};
class achievement_intense_cold : public AchievementCriteriaScript class achievement_intense_cold : public AchievementCriteriaScript
{ {
public: public:
achievement_intense_cold() : AchievementCriteriaScript("achievement_intense_cold") achievement_intense_cold() : AchievementCriteriaScript("achievement_intense_cold") { }
{
}
bool OnCheck(Player* player, Unit* target, uint32 /*criteria_id*/) override bool OnCheck(Player* player, Unit* target, uint32 /*criteria_id*/) override
{ {
@@ -213,6 +198,6 @@ public:
void AddSC_boss_keristrasza() void AddSC_boss_keristrasza()
{ {
new boss_keristrasza(); RegisterNexusCreatureAI(boss_keristrasza);
new achievement_intense_cold(); new achievement_intense_cold();
} }
@@ -79,21 +79,9 @@ enum Events
EVENT_KILL_TALK = 9 EVENT_KILL_TALK = 9
}; };
class boss_magus_telestra : public CreatureScript struct boss_magus_telestra : public BossAI
{ {
public: boss_magus_telestra(Creature* creature) : BossAI(creature, DATA_MAGUS_TELESTRA_EVENT) { }
boss_magus_telestra() : CreatureScript("boss_magus_telestra") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetNexusAI<boss_magus_telestraAI>(creature);
}
struct boss_magus_telestraAI : public BossAI
{
boss_magus_telestraAI(Creature* creature) : BossAI(creature, DATA_MAGUS_TELESTRA_EVENT)
{
}
uint8 copiesDied; uint8 copiesDied;
bool achievement; bool achievement;
@@ -232,7 +220,6 @@ public:
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
}; };
};
class spell_boss_magus_telestra_summon_telestra_clones_aura : public AuraScript class spell_boss_magus_telestra_summon_telestra_clones_aura : public AuraScript
{ {
@@ -331,7 +318,7 @@ public:
void AddSC_boss_magus_telestra() void AddSC_boss_magus_telestra()
{ {
new boss_magus_telestra(); RegisterNexusCreatureAI(boss_magus_telestra);
RegisterSpellScript(spell_boss_magus_telestra_summon_telestra_clones_aura); RegisterSpellScript(spell_boss_magus_telestra_summon_telestra_clones_aura);
RegisterSpellScript(spell_boss_magus_telestra_gravity_well); RegisterSpellScript(spell_boss_magus_telestra_gravity_well);
new achievement_split_personality(); new achievement_split_personality();
@@ -60,21 +60,9 @@ enum Misc
GO_CRYSTAL_SPIKE = 188537 GO_CRYSTAL_SPIKE = 188537
}; };
class boss_ormorok : public CreatureScript struct boss_ormorok : public BossAI
{ {
public: boss_ormorok(Creature* creature) : BossAI(creature, DATA_ORMOROK_EVENT) {}
boss_ormorok() : CreatureScript("boss_ormorok") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetNexusAI<boss_ormorokAI>(creature);
}
struct boss_ormorokAI : public BossAI
{
boss_ormorokAI(Creature* creature) : BossAI(creature, DATA_ORMOROK_EVENT)
{
}
uint8 _spikesCount; uint8 _spikesCount;
@@ -178,23 +166,10 @@ public:
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
}; };
};
class npc_crystal_spike : public CreatureScript struct npc_crystal_spike : public NullCreatureAI
{ {
public: npc_crystal_spike(Creature* c) : NullCreatureAI(c) { }
npc_crystal_spike() : CreatureScript("npc_crystal_spike") { }
CreatureAI* GetAI(Creature* pCreature) const override
{
return GetNexusAI<npc_crystal_spikeAI>(pCreature);
}
struct npc_crystal_spikeAI : public NullCreatureAI
{
npc_crystal_spikeAI(Creature* c) : NullCreatureAI(c)
{
}
int32 _damageTimer; int32 _damageTimer;
ObjectGuid _gameObjectGUID; ObjectGuid _gameObjectGUID;
@@ -223,10 +198,9 @@ public:
} }
} }
}; };
};
void AddSC_boss_ormorok() void AddSC_boss_ormorok()
{ {
new boss_ormorok(); RegisterNexusCreatureAI(boss_ormorok);
new npc_crystal_spike(); RegisterNexusCreatureAI(npc_crystal_spike);
} }
@@ -166,21 +166,9 @@ enum eFrayer
SPELL_ENSNARE = 48053 SPELL_ENSNARE = 48053
}; };
class npc_crystalline_frayer : public CreatureScript struct npc_crystalline_frayer : public ScriptedAI
{ {
public: npc_crystalline_frayer(Creature* creature) : ScriptedAI(creature) { }
npc_crystalline_frayer() : CreatureScript("npc_crystalline_frayer") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetNexusAI<npc_crystalline_frayerAI>(creature);
}
struct npc_crystalline_frayerAI : public ScriptedAI
{
npc_crystalline_frayerAI(Creature* creature) : ScriptedAI(creature)
{
}
bool _allowDeath; bool _allowDeath;
uint32 restoreTimer; uint32 restoreTimer;
@@ -266,10 +254,9 @@ public:
} }
} }
}; };
};
void AddSC_instance_nexus() void AddSC_instance_nexus()
{ {
new instance_nexus(); new instance_nexus();
new npc_crystalline_frayer(); RegisterNexusCreatureAI(npc_crystalline_frayer);
} }
@@ -62,4 +62,6 @@ inline AI* GetNexusAI(T* obj)
return GetInstanceAI<AI>(obj, NexusScriptName); return GetInstanceAI<AI>(obj, NexusScriptName);
} }
#define RegisterNexusCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetNexusAI)
#endif #endif