refactor(Scripts/MagistersTerrace): Update scripts to new register model (#17725)

This commit is contained in:
Andrew
2023-11-15 21:04:14 -03:00
committed by GitHub
parent 01c21539f9
commit 8fbed6c30e
4 changed files with 1111 additions and 1254 deletions
@@ -76,19 +76,9 @@ enum Misc
CREATURE_ARCANE_SPHERE = 24708
};
class boss_felblood_kaelthas : public CreatureScript
struct boss_felblood_kaelthas : public ScriptedAI
{
public:
boss_felblood_kaelthas() : CreatureScript("boss_felblood_kaelthas") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_felblood_kaelthasAI>(creature);
}
struct boss_felblood_kaelthasAI : public ScriptedAI
{
boss_felblood_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me)
boss_felblood_kaelthas(Creature* creature) : ScriptedAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
introSpeak = false;
@@ -297,17 +287,11 @@ public:
if (events.GetPhaseMask() == 0)
DoMeleeAttackIfReady();
}
};
};
class spell_mt_phoenix_burn : public SpellScriptLoader
class spell_mt_phoenix_burn : public SpellScript
{
public:
spell_mt_phoenix_burn() : SpellScriptLoader("spell_mt_phoenix_burn") { }
class spell_mt_phoenix_burn_SpellScript : public SpellScript
{
PrepareSpellScript(spell_mt_phoenix_burn_SpellScript);
PrepareSpellScript(spell_mt_phoenix_burn);
void HandleAfterCast()
{
@@ -317,18 +301,12 @@ public:
void Register() override
{
AfterCast += SpellCastFn(spell_mt_phoenix_burn_SpellScript::HandleAfterCast);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_mt_phoenix_burn_SpellScript();
AfterCast += SpellCastFn(spell_mt_phoenix_burn::HandleAfterCast);
}
};
void AddSC_boss_felblood_kaelthas()
{
new boss_felblood_kaelthas();
new spell_mt_phoenix_burn();
RegisterMagistersTerraceCreatureAI(boss_felblood_kaelthas);
RegisterSpellScript(spell_mt_phoenix_burn);
}
@@ -77,19 +77,9 @@ enum Events
EVENT_SPELL_IMMUNITY = 7,
};
class boss_priestess_delrissa : public CreatureScript
struct boss_priestess_delrissa : public ScriptedAI
{
public:
boss_priestess_delrissa() : CreatureScript("boss_priestess_delrissa") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_priestess_delrissaAI>(creature);
}
struct boss_priestess_delrissaAI : public ScriptedAI
{
boss_priestess_delrissaAI(Creature* creature) : ScriptedAI(creature), summons(me)
boss_priestess_delrissa(Creature* creature) : ScriptedAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
}
@@ -256,7 +246,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum helpersShared
@@ -300,10 +289,10 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
void RecalculateThreat()
{
ThreatContainer::StorageType const& tList = me->GetThreatMgr().GetThreatList();
for( ThreatContainer::StorageType::const_iterator itr = tList.begin(); itr != tList.end(); ++itr )
for (ThreatContainer::StorageType::const_iterator itr = tList.begin(); itr != tList.end(); ++itr)
{
Unit* pUnit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());
if( pUnit && pUnit->GetTypeId() == TYPEID_PLAYER && me->GetThreatMgr().GetThreat(pUnit) )
if (pUnit && pUnit->GetTypeId() == TYPEID_PLAYER && me->GetThreatMgr().GetThreat(pUnit))
{
float threatMod = GetThreatMod(me->GetDistance2d(pUnit), (float)pUnit->GetArmor(), pUnit->GetHealth(), pUnit->GetMaxHealth(), pUnit);
me->GetThreatMgr().ModifyThreatByPercent(pUnit, -100);
@@ -420,19 +409,9 @@ enum RogueEnum
EVENT_SPELL_BACKSTAB = 5,
};
class boss_kagani_nightstrike : public CreatureScript
struct boss_kagani_nightstrike : public boss_priestess_lackey_commonAI
{
public:
boss_kagani_nightstrike() : CreatureScript("boss_kagani_nightstrike") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_kagani_nightstrikeAI>(creature);
}
struct boss_kagani_nightstrikeAI : public boss_priestess_lackey_commonAI
{
boss_kagani_nightstrikeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
boss_kagani_nightstrike(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
void JustEngagedWith(Unit* who) override
{
@@ -498,7 +477,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum WarlockEnum
@@ -520,19 +498,9 @@ enum WarlockEnum
EVENT_SPELL_FEAR = 5,
};
class boss_ellris_duskhallow : public CreatureScript
struct boss_ellris_duskhallow : public boss_priestess_lackey_commonAI
{
public:
boss_ellris_duskhallow() : CreatureScript("boss_ellris_duskhallow") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_ellris_duskhallowAI>(creature);
}
struct boss_ellris_duskhallowAI : public boss_priestess_lackey_commonAI
{
boss_ellris_duskhallowAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
boss_ellris_duskhallow(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
void JustEngagedWith(Unit* who) override
{
@@ -583,7 +551,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum MonkEnum
@@ -598,19 +565,9 @@ enum MonkEnum
EVENT_SPELL_FISTS = 3,
};
class boss_eramas_brightblaze : public CreatureScript
struct boss_eramas_brightblaze : public boss_priestess_lackey_commonAI
{
public:
boss_eramas_brightblaze() : CreatureScript("boss_eramas_brightblaze") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_eramas_brightblazeAI>(creature);
}
struct boss_eramas_brightblazeAI : public boss_priestess_lackey_commonAI
{
boss_eramas_brightblazeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
boss_eramas_brightblaze(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
void JustEngagedWith(Unit* who) override
{
@@ -646,7 +603,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum MageEnum
@@ -672,19 +628,9 @@ enum MageEnum
EVENT_SPELL_BLINK = 7
};
class boss_yazzai : public CreatureScript
struct boss_yazzai : public boss_priestess_lackey_commonAI
{
public:
boss_yazzai() : CreatureScript("boss_yazzai") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_yazzaiAI>(creature);
}
struct boss_yazzaiAI : public boss_priestess_lackey_commonAI
{
boss_yazzaiAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
boss_yazzai(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
void JustEngagedWith(Unit* who) override
{
@@ -759,7 +705,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum WarriorEnum
@@ -780,19 +725,9 @@ enum WarriorEnum
EVENT_SPELL_INTERCEPT = 6,
};
class boss_warlord_salaris : public CreatureScript
struct boss_warlord_salaris : public boss_priestess_lackey_commonAI
{
public:
boss_warlord_salaris() : CreatureScript("boss_warlord_salaris") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_warlord_salarisAI>(creature);
}
struct boss_warlord_salarisAI : public boss_priestess_lackey_commonAI
{
boss_warlord_salarisAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
boss_warlord_salaris(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
void JustEngagedWith(Unit* who) override
{
@@ -844,7 +779,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum HunterEnum
@@ -866,19 +800,9 @@ enum HunterEnum
EVENT_SPELL_WING_CLIP = 5
};
class boss_garaxxas : public CreatureScript
struct boss_garaxxas : public boss_priestess_lackey_commonAI
{
public:
boss_garaxxas() : CreatureScript("boss_garaxxas") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_garaxxasAI>(creature);
}
struct boss_garaxxasAI : public boss_priestess_lackey_commonAI
{
boss_garaxxasAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) {}
boss_garaxxas(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) {}
void Reset() override
{
@@ -931,7 +855,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum ShamanEnum
@@ -955,26 +878,16 @@ enum ShamanEnum
EVENT_SPELL_FROST_SHOCK = 7
};
class boss_apoko : public CreatureScript
struct boss_apoko : public boss_priestess_lackey_commonAI
{
public:
boss_apoko() : CreatureScript("boss_apoko") { }
boss_apoko(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_apokoAI>(creature);
}
struct boss_apokoAI : public boss_priestess_lackey_commonAI
{
boss_apokoAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_MELEE) { }
// uint32 Totem_Timer;
// uint32 Totem_Timer;
uint8 Totem_Amount;
uint32 War_Stomp_Timer;
// uint32 Purge_Timer;
// uint32 Purge_Timer;
uint32 Healing_Wave_Timer;
// uint32 Frost_Shock_Timer;
// uint32 Frost_Shock_Timer;
void JustEngagedWith(Unit* who) override
{
@@ -1032,7 +945,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
enum EngineerEnum
@@ -1053,19 +965,9 @@ enum EngineerEnum
EVENT_SPELL_IRON_BOMB = 5
};
class boss_zelfan : public CreatureScript
struct boss_zelfan : public boss_priestess_lackey_commonAI
{
public:
boss_zelfan() : CreatureScript("boss_zelfan") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_zelfanAI>(creature);
}
struct boss_zelfanAI : public boss_priestess_lackey_commonAI
{
boss_zelfanAI(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
boss_zelfan(Creature* creature) : boss_priestess_lackey_commonAI(creature, AI_TYPE_RANGED) { }
void JustEngagedWith(Unit* who) override
{
@@ -1120,18 +1022,17 @@ public:
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_priestess_delrissa()
{
new boss_priestess_delrissa();
new boss_kagani_nightstrike();
new boss_ellris_duskhallow();
new boss_eramas_brightblaze();
new boss_yazzai();
new boss_warlord_salaris();
new boss_garaxxas();
new boss_apoko();
new boss_zelfan();
RegisterMagistersTerraceCreatureAI(boss_priestess_delrissa);
RegisterMagistersTerraceCreatureAI(boss_kagani_nightstrike);
RegisterMagistersTerraceCreatureAI(boss_ellris_duskhallow);
RegisterMagistersTerraceCreatureAI(boss_eramas_brightblaze);
RegisterMagistersTerraceCreatureAI(boss_yazzai);
RegisterMagistersTerraceCreatureAI(boss_warlord_salaris);
RegisterMagistersTerraceCreatureAI(boss_garaxxas);
RegisterMagistersTerraceCreatureAI(boss_apoko);
RegisterMagistersTerraceCreatureAI(boss_zelfan);
}
@@ -52,19 +52,9 @@ enum Events
EVENT_RESTORE_COMBAT = 6
};
class boss_selin_fireheart : public CreatureScript
struct boss_selin_fireheart : public ScriptedAI
{
public:
boss_selin_fireheart() : CreatureScript("boss_selin_fireheart") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_selin_fireheartAI>(creature);
};
struct boss_selin_fireheartAI : public ScriptedAI
{
boss_selin_fireheartAI(Creature* creature) : ScriptedAI(creature), summons(me)
boss_selin_fireheart(Creature* creature) : ScriptedAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
}
@@ -230,10 +220,9 @@ public:
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_selin_fireheart()
{
new boss_selin_fireheart();
RegisterMagistersTerraceCreatureAI(boss_selin_fireheart);
}
@@ -58,19 +58,9 @@ enum Misc
EVENT_HEALTH_CHECK = 3,
};
class boss_vexallus : public CreatureScript
struct boss_vexallus : public ScriptedAI
{
public:
boss_vexallus() : CreatureScript("boss_vexallus") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetMagistersTerraceAI<boss_vexallusAI>(creature);
};
struct boss_vexallusAI : public ScriptedAI
{
boss_vexallusAI(Creature* creature) : ScriptedAI(creature), summons(me)
boss_vexallus(Creature* creature) : ScriptedAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
}
@@ -181,10 +171,9 @@ public:
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_vexallus()
{
new boss_vexallus();
RegisterMagistersTerraceCreatureAI(boss_vexallus);
}