mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
Scripts/Temple of Ahn Qiraj: Scripted doors of AQ40
Doors added in 1ba09572b5
# Conflicts:
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
This commit is contained in:
@@ -48,12 +48,11 @@ class boss_kri : public CreatureScript
|
||||
public:
|
||||
boss_kri() : CreatureScript("boss_kri") { }
|
||||
|
||||
struct boss_kriAI : public ScriptedAI
|
||||
struct boss_kriAI : public BossAI
|
||||
{
|
||||
boss_kriAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_kriAI(Creature* creature) : BossAI(creature, DATA_BUG_TRIO)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
@@ -66,8 +65,6 @@ public:
|
||||
Death = false;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 Cleave_Timer;
|
||||
uint32 ToxicVolley_Timer;
|
||||
uint32 Check_Timer;
|
||||
@@ -78,11 +75,9 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
@@ -146,12 +141,11 @@ class boss_vem : public CreatureScript
|
||||
public:
|
||||
boss_vem() : CreatureScript("boss_vem") { }
|
||||
|
||||
struct boss_vemAI : public ScriptedAI
|
||||
struct boss_vemAI : public BossAI
|
||||
{
|
||||
boss_vemAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_vemAI(Creature* creature) : BossAI(creature, DATA_BUG_TRIO)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
@@ -163,8 +157,6 @@ public:
|
||||
Enraged = false;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 Charge_Timer;
|
||||
uint32 KnockBack_Timer;
|
||||
uint32 Enrage_Timer;
|
||||
@@ -174,6 +166,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -184,10 +177,6 @@ public:
|
||||
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
//Return since we have no target
|
||||
@@ -238,12 +227,11 @@ class boss_yauj : public CreatureScript
|
||||
public:
|
||||
boss_yauj() : CreatureScript("boss_yauj") { }
|
||||
|
||||
struct boss_yaujAI : public ScriptedAI
|
||||
struct boss_yaujAI : public BossAI
|
||||
{
|
||||
boss_yaujAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_yaujAI(Creature* creature) : BossAI(creature, DATA_BUG_TRIO)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
@@ -255,8 +243,6 @@ public:
|
||||
VemDead = false;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 Heal_Timer;
|
||||
uint32 Fear_Timer;
|
||||
uint32 Check_Timer;
|
||||
@@ -284,10 +270,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
//Return since we have no target
|
||||
|
||||
@@ -453,14 +453,12 @@ class boss_cthun : public CreatureScript
|
||||
public:
|
||||
boss_cthun() : CreatureScript("boss_cthun") { }
|
||||
|
||||
struct cthunAI : public ScriptedAI
|
||||
struct cthunAI : public BossAI
|
||||
{
|
||||
cthunAI(Creature* creature) : ScriptedAI(creature)
|
||||
cthunAI(Creature* creature) : BossAI(creature, DATA_CTHUN)
|
||||
{
|
||||
Initialize();
|
||||
SetCombatMovement(false);
|
||||
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
@@ -485,8 +483,6 @@ public:
|
||||
StomachEnterTarget.Clear(); //Target to be teleported to stomach
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
//Out of combat whisper timer
|
||||
uint32 WisperTimer;
|
||||
|
||||
@@ -514,6 +510,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
_Reset();
|
||||
|
||||
//Clear players in stomach and outside
|
||||
Stomach_Map.clear();
|
||||
@@ -526,11 +523,6 @@ public:
|
||||
instance->SetData(DATA_CTHUN_PHASE, PHASE_NOT_STARTED);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
void SpawnEyeTentacle(float x, float y)
|
||||
{
|
||||
Creature* Spawned = DoSpawnCreature(NPC_EYE_TENTACLE, x, y, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 500);
|
||||
|
||||
@@ -47,9 +47,9 @@ class boss_fankriss : public CreatureScript
|
||||
public:
|
||||
boss_fankriss() : CreatureScript("boss_fankriss") { }
|
||||
|
||||
struct boss_fankrissAI : public ScriptedAI
|
||||
struct boss_fankrissAI : public BossAI
|
||||
{
|
||||
boss_fankrissAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_fankrissAI(Creature* creature) : BossAI(creature, DATA_FRANKRIS)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
@@ -68,6 +68,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void SummonSpawn(Unit* victim)
|
||||
@@ -97,10 +98,6 @@ public:
|
||||
Spawn->AI()->AttackStart(victim);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
//Return since we have no target
|
||||
|
||||
@@ -48,9 +48,9 @@ public:
|
||||
return new boss_huhuranAI(creature);
|
||||
}
|
||||
|
||||
struct boss_huhuranAI : public ScriptedAI
|
||||
struct boss_huhuranAI : public BossAI
|
||||
{
|
||||
boss_huhuranAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_huhuranAI(Creature* creature) : BossAI(creature, DATA_HUHURAN)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
@@ -81,10 +81,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -45,9 +45,9 @@ public:
|
||||
return new boss_ouroAI(creature);
|
||||
}
|
||||
|
||||
struct boss_ouroAI : public ScriptedAI
|
||||
struct boss_ouroAI : public BossAI
|
||||
{
|
||||
boss_ouroAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_ouroAI(Creature* creature) : BossAI(creature, DATA_OURO)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
@@ -78,11 +78,13 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
DoCastVictim(SPELL_BIRTH);
|
||||
_JustEngagedWith();
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -50,9 +50,9 @@ public:
|
||||
return new boss_sarturaAI(creature);
|
||||
}
|
||||
|
||||
struct boss_sarturaAI : public ScriptedAI
|
||||
struct boss_sarturaAI : public BossAI
|
||||
{
|
||||
boss_sarturaAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_sarturaAI(Creature* creature) : BossAI(creature, DATA_SARTURA)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
@@ -87,16 +87,19 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
_JustEngagedWith();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
Talk(SAY_DEATH);
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
|
||||
@@ -63,14 +63,11 @@ enum Misc
|
||||
TELEPORTTIME = 30000
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct boss_twinemperorsAI : public ScriptedAI
|
||||
struct boss_twinemperorsAI : public BossAI
|
||||
{
|
||||
boss_twinemperorsAI(Creature* creature): ScriptedAI(creature)
|
||||
boss_twinemperorsAI(Creature* creature): BossAI(creature, DATA_TWIN_EMPERORS)
|
||||
{
|
||||
Initialize();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
@@ -87,8 +84,6 @@ struct boss_twinemperorsAI : public ScriptedAI
|
||||
EnrageTimer = 15 * 60000;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 Heal_Timer;
|
||||
uint32 Teleport_Timer;
|
||||
bool AfterTeleport;
|
||||
@@ -106,6 +101,7 @@ struct boss_twinemperorsAI : public ScriptedAI
|
||||
{
|
||||
Initialize();
|
||||
me->ClearUnitState(UNIT_STATE_STUNNED);
|
||||
_Reset();
|
||||
}
|
||||
|
||||
Creature* GetOtherBoss()
|
||||
@@ -142,6 +138,7 @@ struct boss_twinemperorsAI : public ScriptedAI
|
||||
}
|
||||
if (!DontYellWhenDead) // I hope AI is not threaded
|
||||
DoPlaySoundToSet(me, IAmVeklor() ? SOUND_VL_DEATH : SOUND_VN_DEATH);
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) override
|
||||
@@ -151,7 +148,7 @@ struct boss_twinemperorsAI : public ScriptedAI
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
{
|
||||
DoZoneInCombat();
|
||||
_JustEngagedWith();
|
||||
Creature* pOtherBoss = GetOtherBoss();
|
||||
if (pOtherBoss)
|
||||
{
|
||||
|
||||
@@ -204,6 +204,7 @@ class boss_viscidus : public CreatureScript
|
||||
{
|
||||
DoCast(me, SPELL_VISCIDUS_SUICIDE);
|
||||
summons.DespawnAll();
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -27,6 +27,16 @@ EndScriptData */
|
||||
#include "InstanceScript.h"
|
||||
#include "temple_of_ahnqiraj.h"
|
||||
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ AQ40_DOOR_1, DATA_SARTURA, DOOR_TYPE_PASSAGE },
|
||||
{ AQ40_DOOR_1, DATA_HUHURAN, DOOR_TYPE_PASSAGE },
|
||||
{ AQ40_DOOR_2, DATA_TWIN_EMPERORS, DOOR_TYPE_PASSAGE },
|
||||
{ AQ40_DOOR_3, DATA_SKERAM, DOOR_TYPE_PASSAGE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM } // END
|
||||
};
|
||||
|
||||
class instance_temple_of_ahnqiraj : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
@@ -34,9 +44,11 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
|
||||
|
||||
struct instance_temple_of_ahnqiraj_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_temple_of_ahnqiraj_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
LoadObjectData(creatureData, nullptr);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
IsBossDied[0] = false;
|
||||
IsBossDied[1] = false;
|
||||
IsBossDied[2] = false;
|
||||
|
||||
@@ -23,22 +23,33 @@
|
||||
#define AQ40ScriptName "instance_temple_of_ahnqiraj"
|
||||
#define DataHeader "AQT"
|
||||
|
||||
uint32 const EncounterCount = 9;
|
||||
|
||||
enum AQTDataTypes
|
||||
{
|
||||
DATA_SKERAM = 1,
|
||||
DATA_KRI = 2,
|
||||
DATA_VEM = 3,
|
||||
DATA_VEMISDEAD = 4,
|
||||
DATA_VEM_DEATH = 5,
|
||||
DATA_VEKLOR = 6,
|
||||
DATA_VEKLORISDEAD = 7,
|
||||
DATA_VEKLOR_DEATH = 8,
|
||||
DATA_VEKNILASH = 9,
|
||||
DATA_VEKNILASHISDEAD = 10,
|
||||
DATA_VEKNILASH_DEATH = 11,
|
||||
DATA_BUG_TRIO_DEATH = 14,
|
||||
DATA_CTHUN_PHASE = 20,
|
||||
DATA_VISCIDUS = 21
|
||||
DATA_SKERAM = 0,
|
||||
DATA_SARTURA = 1,
|
||||
DATA_FRANKRIS = 2,
|
||||
DATA_HUHURAN = 3,
|
||||
DATA_TWIN_EMPERORS = 4,
|
||||
DATA_CTHUN = 5,
|
||||
DATA_BUG_TRIO = 6,
|
||||
DATA_VISCIDUS = 7,
|
||||
DATA_OURO = 8,
|
||||
|
||||
// Others
|
||||
DATA_KRI = 9,
|
||||
DATA_VEM = 10,
|
||||
DATA_VEMISDEAD = 11,
|
||||
DATA_VEM_DEATH = 12,
|
||||
DATA_VEKLOR = 13,
|
||||
DATA_VEKLORISDEAD = 14,
|
||||
DATA_VEKLOR_DEATH = 15,
|
||||
DATA_VEKNILASH = 16,
|
||||
DATA_VEKNILASHISDEAD = 17,
|
||||
DATA_VEKNILASH_DEATH = 18,
|
||||
DATA_BUG_TRIO_DEATH = 19,
|
||||
DATA_CTHUN_PHASE = 20
|
||||
};
|
||||
|
||||
enum AQTCreatures
|
||||
@@ -64,6 +75,13 @@ enum AQTCreatures
|
||||
NPC_VEKNILASH = 15275
|
||||
};
|
||||
|
||||
enum ObjectsAQ40
|
||||
{
|
||||
AQ40_DOOR_1 = 180634,
|
||||
AQ40_DOOR_2 = 180635,
|
||||
AQ40_DOOR_3 = 180636
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetAQ40AI(T* obj)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user