diff options
author | Keader <keader.android@gmail.com> | 2019-01-28 17:13:59 -0300 |
---|---|---|
committer | Keader <keader.android@gmail.com> | 2019-01-28 17:13:59 -0300 |
commit | 06078e30c6f1d6e2ab1dcecbba15127b07b32bb7 (patch) | |
tree | 497c7b9e6eeba297a2b067ffe98b5676fd468a15 | |
parent | b244fe0d409d635e93c326ad3e4d65e4e2ba68da (diff) |
Scripts/Temple of Ahn Qiraj: Scripted doors of AQ40
Doors added in https://github.com/TrinityCore/TrinityCore/commit/1ba09572b5a49d5cd247cdca47109d3325ec12f3
10 files changed, 76 insertions, 77 deletions
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp index 08209bc72fc..d5793d450f0 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp @@ -54,12 +54,11 @@ public: return GetAQ40AI<boss_kriAI>(creature); } - 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() @@ -72,8 +71,6 @@ public: Death = false; } - InstanceScript* instance; - uint32 Cleave_Timer; uint32 ToxicVolley_Timer; uint32 Check_Timer; @@ -84,11 +81,9 @@ public: void Reset() override { Initialize(); + _Reset(); } - void JustEngagedWith(Unit* /*who*/) override - { - } void JustDied(Unit* /*killer*/) override { @@ -153,12 +148,11 @@ public: return GetAQ40AI<boss_vemAI>(creature); } - 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() @@ -170,8 +164,6 @@ public: Enraged = false; } - InstanceScript* instance; - uint32 Charge_Timer; uint32 KnockBack_Timer; uint32 Enrage_Timer; @@ -181,6 +173,7 @@ public: void Reset() override { Initialize(); + _Reset(); } void JustDied(Unit* /*killer*/) override @@ -191,10 +184,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 @@ -246,12 +235,11 @@ public: return GetAQ40AI<boss_yaujAI>(creature); } - 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() @@ -263,8 +251,6 @@ public: VemDead = false; } - InstanceScript* instance; - uint32 Heal_Timer; uint32 Fear_Timer; uint32 Check_Timer; @@ -292,10 +278,6 @@ public: } } - void JustEngagedWith(Unit* /*who*/) override - { - } - void UpdateAI(uint32 diff) override { //Return since we have no target diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index cf9a3883c1f..05d31d88a3e 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -460,14 +460,12 @@ public: return GetAQ40AI<cthunAI>(creature); } - 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() @@ -492,8 +490,6 @@ public: StomachEnterTarget.Clear(); //Target to be teleported to stomach } - InstanceScript* instance; - //Out of combat whisper timer uint32 WisperTimer; @@ -521,6 +517,7 @@ public: void Reset() override { Initialize(); + _Reset(); //Clear players in stomach and outside Stomach_Map.clear(); @@ -533,11 +530,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); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp index 3a70e8e3b2f..f8b1c9f86e8 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp @@ -53,9 +53,9 @@ public: return GetAQ40AI<boss_fankrissAI>(creature); } - 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(); } @@ -74,6 +74,7 @@ public: void Reset() override { Initialize(); + _Reset(); } void SummonSpawn(Unit* victim) @@ -103,10 +104,6 @@ public: Spawn->AI()->AttackStart(victim); } - void JustEngagedWith(Unit* /*who*/) override - { - } - void UpdateAI(uint32 diff) override { //Return since we have no target diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp index bea3e6d9318..583876e47ae 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp @@ -50,9 +50,9 @@ public: return GetAQ40AI<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(); } @@ -83,10 +83,7 @@ public: void Reset() override { Initialize(); - } - - void JustEngagedWith(Unit* /*who*/) override - { + _Reset(); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp index a69e6f21ae5..6ba5e94feef 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp @@ -46,9 +46,9 @@ public: return GetAQ40AI<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(); } @@ -79,11 +79,13 @@ public: void Reset() override { Initialize(); + _Reset(); } void JustEngagedWith(Unit* /*who*/) override { DoCastVictim(SPELL_BIRTH); + _JustEngagedWith(); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp index 6eef5b79c1a..3a543b679c4 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp @@ -54,9 +54,9 @@ public: return GetAQ40AI<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(); } @@ -91,16 +91,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 diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp index 3ecb5968d93..d12349572e9 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp @@ -67,14 +67,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() @@ -91,8 +88,6 @@ struct boss_twinemperorsAI : public ScriptedAI EnrageTimer = 15 * 60000; } - InstanceScript* instance; - uint32 Heal_Timer; uint32 Teleport_Timer; bool AfterTeleport; @@ -110,6 +105,7 @@ struct boss_twinemperorsAI : public ScriptedAI { Initialize(); me->ClearUnitState(UNIT_STATE_STUNNED); + _Reset(); } Creature* GetOtherBoss() @@ -146,6 +142,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 @@ -155,7 +152,7 @@ struct boss_twinemperorsAI : public ScriptedAI void JustEngagedWith(Unit* who) override { - DoZoneInCombat(); + _JustEngagedWith(); Creature* pOtherBoss = GetOtherBoss(); if (pOtherBoss) { diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp index 02c31d4e95d..e71d9bb6c40 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp @@ -204,6 +204,7 @@ class boss_viscidus : public CreatureScript { DoCast(me, SPELL_VISCIDUS_SUICIDE); summons.DespawnAll(); + _JustDied(); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp index d35f88a23e7..c6f3e9fd535 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -40,6 +40,16 @@ ObjectData const creatureData[] = { 0, 0 } // END }; + +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: @@ -56,7 +66,8 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript { SetHeaders(DataHeader); LoadObjectData(creatureData, nullptr); - + SetBossNumber(EncounterCount); + LoadDoorData(doorData); IsBossDied[0] = false; IsBossDied[1] = false; IsBossDied[2] = false; diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h index e980dcbb064..ab318434bdb 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h @@ -24,23 +24,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_SARTURA = 22 + 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 @@ -67,6 +77,13 @@ enum AQTCreatures NPC_SARTURA = 15516 }; +enum ObjectsAQ40 +{ + AQ40_DOOR_1 = 180634, + AQ40_DOOR_2 = 180635, + AQ40_DOOR_3 = 180636 +}; + template <class AI, class T> inline AI* GetAQ40AI(T* obj) { |