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;
};
class boss_anomalus : public CreatureScript
struct boss_anomalus : public BossAI
{
public:
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)
{
}
boss_anomalus(Creature* creature) : BossAI(creature, DATA_ANOMALUS_EVENT) { }
bool achievement;
uint16 activeRifts;
@@ -199,14 +187,11 @@ public:
return me->GetHomePosition().GetExactDist2d(me) > 60.0f;
}
};
};
class achievement_chaos_theory : public AchievementCriteriaScript
{
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
{
@@ -219,6 +204,6 @@ public:
void AddSC_boss_anomalus()
{
new boss_anomalus();
RegisterNexusCreatureAI(boss_anomalus);
new achievement_chaos_theory();
}
@@ -43,21 +43,9 @@ enum Says
SAY_KILL = 2
};
class boss_commander_stoutbeard : public CreatureScript
struct boss_commander_stoutbeard : public BossAI
{
public:
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)
{
}
boss_commander_stoutbeard(Creature* creature) : BossAI(creature, DATA_COMMANDER_EVENT) {}
void Reset() override
{
@@ -124,9 +112,8 @@ public:
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_commander_stoutbeard()
{
new boss_commander_stoutbeard();
RegisterNexusCreatureAI(boss_commander_stoutbeard);
}
@@ -55,21 +55,9 @@ enum Events
EVENT_KILL_TALK = 6
};
class boss_keristrasza : public CreatureScript
struct boss_keristrasza : public BossAI
{
public:
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)
{
}
boss_keristrasza(Creature* creature) : BossAI(creature, DATA_KERISTRASZA_EVENT) {}
std::set<uint32> aGuids;
@@ -193,14 +181,11 @@ public:
DoMeleeAttackIfReady();
}
};
};
class achievement_intense_cold : public AchievementCriteriaScript
{
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
{
@@ -213,6 +198,6 @@ public:
void AddSC_boss_keristrasza()
{
new boss_keristrasza();
RegisterNexusCreatureAI(boss_keristrasza);
new achievement_intense_cold();
}
@@ -79,21 +79,9 @@ enum Events
EVENT_KILL_TALK = 9
};
class boss_magus_telestra : public CreatureScript
struct boss_magus_telestra : public BossAI
{
public:
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)
{
}
boss_magus_telestra(Creature* creature) : BossAI(creature, DATA_MAGUS_TELESTRA_EVENT) { }
uint8 copiesDied;
bool achievement;
@@ -232,7 +220,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
class spell_boss_magus_telestra_summon_telestra_clones_aura : public AuraScript
{
@@ -331,7 +318,7 @@ public:
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_gravity_well);
new achievement_split_personality();
@@ -60,21 +60,9 @@ enum Misc
GO_CRYSTAL_SPIKE = 188537
};
class boss_ormorok : public CreatureScript
struct boss_ormorok : public BossAI
{
public:
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)
{
}
boss_ormorok(Creature* creature) : BossAI(creature, DATA_ORMOROK_EVENT) {}
uint8 _spikesCount;
@@ -178,23 +166,10 @@ public:
DoMeleeAttackIfReady();
}
};
};
class npc_crystal_spike : public CreatureScript
struct npc_crystal_spike : public NullCreatureAI
{
public:
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)
{
}
npc_crystal_spike(Creature* c) : NullCreatureAI(c) { }
int32 _damageTimer;
ObjectGuid _gameObjectGUID;
@@ -223,10 +198,9 @@ public:
}
}
};
};
void AddSC_boss_ormorok()
{
new boss_ormorok();
new npc_crystal_spike();
RegisterNexusCreatureAI(boss_ormorok);
RegisterNexusCreatureAI(npc_crystal_spike);
}
@@ -166,21 +166,9 @@ enum eFrayer
SPELL_ENSNARE = 48053
};
class npc_crystalline_frayer : public CreatureScript
struct npc_crystalline_frayer : public ScriptedAI
{
public:
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)
{
}
npc_crystalline_frayer(Creature* creature) : ScriptedAI(creature) { }
bool _allowDeath;
uint32 restoreTimer;
@@ -266,10 +254,9 @@ public:
}
}
};
};
void AddSC_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);
}
#define RegisterNexusCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetNexusAI)
#endif