16#define GOSSIP_START_EVENT "Get your people to safety, we'll keep the Blue Dragonflight's forces at bay."
17#define GOSSIP_ITEM_1 "Activate the crystals when we get in trouble, right"
18#define GOSSIP_I_WANT_IN "I'm not fighting, so send me in now!"
19#define SPAWN_TIME 20000
125 {1877.670288f, 842.280273f, 43.333591f},
126 {1877.338867f, 834.615356f, 38.762287f},
127 {1872.161011f, 823.854309f, 38.645401f},
128 {1864.860474f, 815.787170f, 38.784843f},
129 {1858.953735f, 810.048950f, 44.008759f},
130 {1843.707153f, 805.807739f, 44.135197f}
136 {1902.561401f, 853.334656f, 47.106117f},
137 {1895.486084f, 855.376404f, 44.334591f},
138 {1882.805176f, 854.993286f, 43.333591f},
139 {1877.670288f, 842.280273f, 43.333591f},
140 {1877.338867f, 834.615356f, 38.762287f},
141 {1872.161011f, 823.854309f, 38.645401f},
142 {1864.860474f, 815.787170f, 38.784843f},
143 {1858.953735f, 810.048950f, 44.008759f},
144 {1843.707153f, 805.807739f, 44.135197f}
150 {1929.392212f, 837.614990f, 47.136166f},
151 {1928.290649f, 824.750427f, 45.474411f},
152 {1915.544922f, 826.919373f, 38.642811f},
153 {1900.933960f, 818.855652f, 38.801647f},
154 {1886.810547f, 813.536621f, 38.490490f},
155 {1869.079712f, 808.701538f, 38.689003f},
156 {1860.843384f, 806.645020f, 44.008789f},
157 {1843.707153f, 805.807739f, 44.135197f}
163 {1934.049438f, 815.778503f, 52.408699f},
164 {1928.290649f, 824.750427f, 45.474411f},
165 {1915.544922f, 826.919373f, 38.642811f},
166 {1900.933960f, 818.855652f, 38.801647f},
167 {1886.810547f, 813.536621f, 38.490490f},
168 {1869.079712f, 808.701538f, 38.689003f},
169 {1860.843384f, 806.645020f, 44.008789f},
170 {1843.707153f, 805.807739f, 44.135197f}
176 {1921.658447f, 761.657043f, 50.866741f},
177 {1910.559814f, 755.780457f, 47.701447f},
178 {1896.664673f, 752.920898f, 47.667004f},
179 {1887.398804f, 763.633240f, 47.666851f},
180 {1879.020386f, 775.396973f, 38.705990f},
181 {1872.439087f, 782.568604f, 38.808292f},
182 {1863.573364f, 791.173584f, 38.743660f},
183 {1857.811890f, 796.765564f, 43.950329f},
184 {1845.577759f, 800.681152f, 44.104248f}
190 {1887.398804f, 763.633240f, 47.666851f},
191 {1879.020386f, 775.396973f, 38.705990f},
192 {1872.439087f, 782.568604f, 38.808292f},
193 {1863.573364f, 791.173584f, 38.743660f},
194 {1857.811890f, 796.765564f, 43.950329f},
195 {1845.577759f, 800.681152f, 44.104248f}
201 {1888.861084f, 805.074768f, 38.375790f},
202 {1869.793823f, 804.135804f, 38.647018f},
203 {1861.541504f, 804.149780f, 43.968292f},
204 {1843.567017f, 804.288208f, 44.139091f}
210 {1892.502319f, 777.410767f, 38.630402f},
211 {1891.165161f, 762.969421f, 47.666920f},
212 {1893.168091f, 740.919189f, 47.666920f}
216 {1882.242676f, 834.818726f, 38.646786f},
217 {1879.220825f, 842.224854f, 43.333641f},
218 {1873.842896f, 863.892456f, 43.333641f}
222 {1904.298340f, 792.400391f, 38.646782f},
223 {1935.716919f, 758.437073f, 30.627895f}
227 1855.006104f, 760.641724f, 38.655266f
231 1906.667358f, 841.705566f, 38.637894f
235 {1911.437012f, 821.289246f, 38.684128f},
236 {1920.734009f, 822.978027f, 41.525414f},
237 {1928.262939f, 830.836609f, 44.668266f},
238 {1929.338989f, 837.593933f, 47.137596f},
239 {1931.063354f, 848.468445f, 47.190434f}
253 player->PlayerTalkClass->ClearMenus();
257 player->CLOSE_GOSSIP_MENU();
263 player->SEND_GOSSIP_MENU(13854, creature->GetGUID());
267 player->CLOSE_GOSSIP_MENU();
283 player->SEND_GOSSIP_MENU(13853, creature->GetGUID());
287 player->SEND_GOSSIP_MENU(13853, creature->GetGUID());
290 player->SEND_GOSSIP_MENU(13910, creature->GetGUID());
312 std::list<Creature*> GuardList;
314 if (!GuardList.empty())
316 for (std::list<Creature*>::const_iterator itr = GuardList.begin(); itr != GuardList.end(); ++itr)
320 pGuard->DisappearAndDie();
322 pGuard->SetVisible(
true);
346 std::list<Creature*> GuardList;
348 if (!GuardList.empty())
349 for (std::list<Creature*>::const_iterator itr = GuardList.begin(); itr != GuardList.end(); ++itr)
353 pGuard->SetWalk(
false);
363 std::list<Creature*> GuardList;
365 if (!GuardList.empty())
366 for (std::list<Creature*>::const_iterator itr = GuardList.begin(); itr != GuardList.end(); ++itr)
370 pGuard->SetVisible(
false);
481 for (
int i=0;i<3;i++)
486 for (
int i=0;i<3;i++)
491 for (
int i=0;i<2;i++)
504 for (
int i=0;i<5;i++)
518 me->DisappearAndDie();
569 me->DespawnOrUnsummon();
574 if ((uiWaveCount == 6) || (uiWaveCount == 12))
586 uint8 k = uiWaveCount < 12 ? 2 : 3;
587 for (
uint8 i = 0; i < k; ++i)
592 me->SetVisible(
false);
612 for (
uint8 i = 0; i < k; ++i)
726 for (
int i=0;i<6;i++)
735 for (
int i=0;i<9;i++)
740 for (
int i=0;i<8;i++)
747 for (
int i=0;i<8;i++)
752 for (
int i=0;i<9;i++)
757 for (
int i=0;i<6;i++)
762 for (
int i=0;i<4;i++)
1347 me->SetDisableGravity(
true);
const T & RAND(const T &v1, const T &v2)
@ TEMPSUMMON_DEAD_DESPAWN
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ SPELL_ARCANE_SPHERE_PASSIVE
Creature * DoSummon(uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
CreatureScript(const char *name)
GameObjectScript(const char *name)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
void DoCastVictim(uint32 spellId, bool triggered=false)
static Creature * GetCreature(WorldObject &object, uint64 guid)
InstanceScript * GetInstanceScript()
bool OnGossipHello(Player *, GameObject *go) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_teleportation_portal_vh()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_violet_hold_arcane_sphere()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
@ SABOTEUR_SHIELD_DISRUPTION
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
ScriptedAI(Creature *creature)
const T & DUNGEON_MODE(const T &normal5, const T &heroic5) const
uint32 uiArcainBarrageTimer
npc_azure_binderAI(Creature *creature)
uint32 uiArcaneExplosionTimer
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_azure_captainAI(Creature *creature)
uint32 uiMortalStrikeTimer
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 uiBrutalStrikeTimer
npc_azure_invaderAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 uiSunderArmorTimer
npc_azure_mage_slayerAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 uiArcaneEmpowermentTimer
uint32 uiConcussionBlowTimer
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_azure_raiderAI(Creature *creature)
uint32 uiMagicReflectionTimer
void FinishPointReached()
InstanceScript * instance
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_azure_saboteurAI(Creature *creature)
void WaypointReached(uint32 waypointId) OVERRIDE
uint32 uiManaDetonationTimer
npc_azure_sorcerorAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 uiArcaneStreamTimer
uint32 uiArcaneStreamTimerStartingValueHolder
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 uiArcaneBlastTimer
uint32 uiChainsOfIceTimer
npc_azure_spellbreakerAI(Creature *creature)
uint32 _tacticalBlinkTimer
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_azure_stalkerAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_escortAI(Creature *creature)
void SetDespawnAtEnd(bool despawn)
void Start(bool isActiveAttacker=true, bool run=false, uint64 playerGUID=0, Quest const *quest=NULL, bool instantRespawn=false, bool canLoopPath=false, bool resetWaypoints=true)
void AddWaypoint(uint32 id, float x, float y, float z, uint32 waitTime=0)
npc_sinclariAI(Creature *creature)
void UpdateAI(uint32 uiDiff) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
void EnterCombat(Unit *) OVERRIDE
void SummonedCreatureDies(Creature *summoned, Unit *) OVERRIDE
bool bPortalGuardianOrKeeperOrEliteSpawn
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
InstanceScript * instance
void MoveInLineOfSight(Unit *) OVERRIDE
void JustSummoned(Creature *summoned) OVERRIDE
npc_teleportation_portalAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
npc_violet_hold_arcane_sphereAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
InstanceScript * instance
void CreatureStartAttackDoor()
uint32 secondPortalRouteID
void WaypointReached(uint32 waypointId) OVERRIDE
violet_hold_trashAI(Creature *creature)
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
const float SaboteurFinalPos3[2][3]
float FourthPortalWPs[9][3]
const Position playerTeleportPosition
float ThirdPortalWPs[8][3]
@ H_SPELL_MANA_DETONATION
float FifthPortalWPs[6][3]
float SecondPortalFirstWPs[9][3]
const Position sinclariOutsidePosition
@ SPELL_ARCANE_SPHERE_PASSIVE
@ SPELL_CRYSTAL_ACTIVATION
float SixthPoralWPs[4][3]
const float SaboteurFinalPos2[3][3]
@ SABOTEUR_SHIELD_DISRUPTION
@ SPELL_DESTROY_DOOR_SEAL
#define GOSSIP_START_EVENT
const float SaboteurFinalPos1[3][3]
@ SPELL_ARCANE_EMPOWERMENT
@ H_SPELL_ARCANE_EXPLOSION
float SecondPortalSecondWPs[8][3]
const float SaboteurFinalPos4[3]
const float SaboteurFinalPos5[3]
const Position MovePosition
@ CREATURE_AZURE_MAGE_SLAYER_1
@ CREATURE_AZURE_SORCEROR
@ CREATURE_AZURE_INVADER_2
@ CREATURE_AZURE_MAGE_SLAYER_2
@ CREATURE_AZURE_BINDER_2
@ CREATURE_AZURE_SPELLBREAKER_2
@ CREATURE_AZURE_INVADER_1
@ CREATURE_AZURE_BINDER_1
@ CREATURE_AZURE_SPELLBREAKER_1
const float SaboteurFinalPos6[5][3]
@ SPELL_WHIRLWIND_OF_STEEL
float FirstPortalWPs[6][3]
@ CREATURE_PORTAL_GUARDIAN
@ DATA_NPC_PRESENCE_AT_DOOR_ADD
@ DATA_START_BOSS_ENCOUNTER
@ DATA_NPC_PRESENCE_AT_DOOR_REMOVE
Position const MovePosition