aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSarah Alexander <43092122+Nyeriah@users.noreply.github.com>2018-09-21 08:54:29 -0300
committerKeader <keader.android@gmail.com>2018-09-21 08:54:29 -0300
commitc8f830ff2b735fb45bf16f4421396709661939f6 (patch)
tree39bbb6f587eb065367b23e49bb6d9a33aa809912 /src
parentda19663514ef7f3066822124593aecef1c61888c (diff)
Scripts/TempleOfAhnQiraj: Implement Battleguard Sartura's skip-preven… (#22475)
* Scripts/TempleOfAhnQiraj: Implement Battleguard Sartura's skip-prevention area trigger * Sartura engages players if they try to skip her by walking past down the tunnel * Clean up the instance script a bit
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp17
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp66
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h6
6 files changed, 39 insertions, 60 deletions
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
index 0feb6c6d3a5..b4e975b2aaf 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -316,11 +316,11 @@ public:
switch (urand(0, 2))
{
case 0:
- if (Creature* kri = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KRI)))
+ if (Creature* kri = instance->GetCreature(DATA_KRI))
DoCast(kri, SPELL_HEAL);
break;
case 1:
- if (Creature* vem = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VEM)))
+ if (Creature* vem = instance->GetCreature(DATA_VEM))
DoCast(vem, SPELL_HEAL);
break;
case 2:
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
index 4a087aef737..eb01a99a315 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
@@ -311,8 +311,25 @@ public:
};
+// 4052
+class at_aq_battleguard_sartura : public AreaTriggerScript
+{
+public:
+ at_aq_battleguard_sartura() : AreaTriggerScript("at_aq_battleguard_sartura") { }
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override
+ {
+ if (InstanceScript* instance = player->GetInstanceScript())
+ if (Creature* sartura = instance->GetCreature(DATA_SARTURA))
+ sartura->AI()->AttackStart(player);
+
+ return true;
+ }
+};
+
void AddSC_boss_sartura()
{
new boss_sartura();
new npc_sartura_royal_guard();
+ new at_aq_battleguard_sartura();
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index 64aab1bab0e..b3c77cdc8e1 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -114,7 +114,7 @@ struct boss_twinemperorsAI : public ScriptedAI
Creature* GetOtherBoss()
{
- return ObjectAccessor::GetCreature(*me, instance->GetGuidData(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR));
+ return instance->GetCreature(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR);
}
void DamageTaken(Unit* /*done_by*/, uint32 &damage) override
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index 9511232b539..9f8dffd9a88 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -274,9 +274,9 @@ class npc_glob_of_viscidus : public CreatureScript
void JustDied(Unit* /*killer*/) override
{
- InstanceScript* Instance = me->GetInstanceScript();
+ InstanceScript* instance = me->GetInstanceScript();
- if (Creature* Viscidus = ObjectAccessor::GetCreature(*me, Instance->GetGuidData(DATA_VISCIDUS)))
+ if (Creature* Viscidus = instance->GetCreature(DATA_VISCIDUS))
{
if (BossAI* ViscidusAI = dynamic_cast<BossAI*>(Viscidus->GetAI()))
ViscidusAI->SummonedCreatureDespawn(me);
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 2d9fd9bc3ce..47cc4a70024 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
@@ -29,6 +29,17 @@ EndScriptData */
#include "Map.h"
#include "temple_of_ahnqiraj.h"
+ObjectData const creatureData[] =
+{
+ { NPC_VEM, DATA_VEM },
+ { NPC_KRI, DATA_KRI },
+ { NPC_VEKLOR, DATA_VEKLOR },
+ { NPC_VEKNILASH, DATA_VEKNILASH },
+ { NPC_VISCIDUS, DATA_VISCIDUS },
+ { NPC_SARTURA, DATA_SARTURA },
+ { 0, 0 } // END
+};
+
class instance_temple_of_ahnqiraj : public InstanceMapScript
{
public:
@@ -44,6 +55,8 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map)
{
SetHeaders(DataHeader);
+ LoadObjectData(creatureData, nullptr);
+
IsBossDied[0] = false;
IsBossDied[1] = false;
IsBossDied[2] = false;
@@ -56,43 +69,10 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
//If Vem is dead...
bool IsBossDied[3];
- //Storing Skeram, Vem and Kri.
- ObjectGuid SkeramGUID;
- ObjectGuid VemGUID;
- ObjectGuid KriGUID;
- ObjectGuid VeklorGUID;
- ObjectGuid VeknilashGUID;
- ObjectGuid ViscidusGUID;
-
uint32 BugTrioDeathCount;
uint32 CthunPhase;
- void OnCreatureCreate(Creature* creature) override
- {
- switch (creature->GetEntry())
- {
- case NPC_SKERAM:
- SkeramGUID = creature->GetGUID();
- break;
- case NPC_VEM:
- VemGUID = creature->GetGUID();
- break;
- case NPC_KRI:
- KriGUID = creature->GetGUID();
- break;
- case NPC_VEKLOR:
- VeklorGUID = creature->GetGUID();
- break;
- case NPC_VEKNILASH:
- VeknilashGUID = creature->GetGUID();
- break;
- case NPC_VISCIDUS:
- ViscidusGUID = creature->GetGUID();
- break;
- }
- }
-
bool IsEncounterInProgress() const override
{
//not active in AQ40
@@ -127,26 +107,6 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
return 0;
}
- ObjectGuid GetGuidData(uint32 identifier) const override
- {
- switch (identifier)
- {
- case DATA_SKERAM:
- return SkeramGUID;
- case DATA_VEM:
- return VemGUID;
- case DATA_KRI:
- return KriGUID;
- case DATA_VEKLOR:
- return VeklorGUID;
- case DATA_VEKNILASH:
- return VeknilashGUID;
- case DATA_VISCIDUS:
- return ViscidusGUID;
- }
- return ObjectGuid::Empty;
- } // end GetGuidData
-
void SetData(uint32 type, uint32 data) override
{
switch (type)
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
index 9722218464d..26aabf4a5ee 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
@@ -39,7 +39,8 @@ enum AQTDataTypes
DATA_VEKNILASH_DEATH = 11,
DATA_BUG_TRIO_DEATH = 14,
DATA_CTHUN_PHASE = 20,
- DATA_VISCIDUS = 21
+ DATA_VISCIDUS = 21,
+ DATA_SARTURA = 22
};
enum AQTCreatures
@@ -62,7 +63,8 @@ enum AQTCreatures
NPC_VEM = 15544,
NPC_KRI = 15511,
NPC_VEKLOR = 15276,
- NPC_VEKNILASH = 15275
+ NPC_VEKNILASH = 15275,
+ NPC_SARTURA = 15516
};
template <class AI, class T>