mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripting/Arcatraz: Move Zereketh the Unbound, Dalliah the Doomsayer, & Wrath-Scryer Soccothrates to cpp scripting and some cleanup.
This commit is contained in:
40
sql/updates/world/2013_11_10_00_world_misc.sql
Normal file
40
sql/updates/world/2013_11_10_00_world_misc.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- Creature text for Wrath-Scryer Soccothrates
|
||||
SET @ENTRY = 20886;
|
||||
DELETE FROM `creature_text` WHERE `entry`=@ENTRY AND `groupid` IN (7,8,9,10);
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
|
||||
(@ENTRY, 7, 0, 'Did you call on me?', 14, 0, 100, 397, 0, 11236, 'Wrath-Scryer Soccothrates - Conversation with Dalliah part 1'),
|
||||
(@ENTRY, 8, 0, 'To do your heavy lifting, most likely.', 14, 0, 100, 396, 0, 0, 'Wrath-Scryer Soccothrates - Conversation with Dalliah part 2'),
|
||||
(@ENTRY, 9, 0, 'Then I''ll commit myself to ignoring you.', 14, 0, 100, 396, 0, 0, 'Wrath-Scryer Soccothrates - Conversation with Dalliah part 3'),
|
||||
(@ENTRY, 10, 0, 'You''re the one who should be-- Wait, we have company...', 14, 0, 100, 396, 0, 0, 'Wrath-Scryer Soccothrates - Conversation with Dalliah part 4');
|
||||
|
||||
-- Creature text for Dalliah the Doomsayer
|
||||
SET @ENTRY = 20885;
|
||||
DELETE FROM `creature_text` WHERE `entry`=@ENTRY AND `groupid` IN (8,9,10);
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
|
||||
(@ENTRY, 8, 0, 'Why would I call on you?', 14, 0, 100, 396, 0, 0, 'Dalliah the Doomsayer - Conversation with Soccothrates part 1'),
|
||||
(@ENTRY, 9, 0, 'When I need someone to prance around like an overstuffed peacock, I''ll call on you.', 14, 0, 100, 396, 0, 0, 'Dalliah the Doomsayer - Conversation with Soccothrates part 2'),
|
||||
(@ENTRY, 10, 0, 'What would you know about commitment, sheet-sah?', 14, 0, 100, 396, 0, 0, 'Dalliah the Doomsayer - Conversation with Soccothrates part 3');
|
||||
|
||||
-- Creature text updates
|
||||
UPDATE `creature_text` SET `emote`=1 WHERE `entry`=20886 AND `groupid` IN (0,5);
|
||||
UPDATE `creature_text` SET `emote`=1 WHERE `entry`=20885 AND `groupid` IN (0,6);
|
||||
UPDATE `creature_text` SET `emote`=66 WHERE `entry`=20886 AND `groupid` IN (6);
|
||||
UPDATE `creature_text` SET `emote`=66 WHERE `entry`=20885 AND `groupid` IN (7);
|
||||
UPDATE `creature_text` SET `text`= 'As masters of blood, we are masters of life and death itself. Against us, even hope falls drained and lifeless.' WHERE `entry`=29196 AND `groupid`=8;
|
||||
UPDATE `creature_text` SET `comment`= 'Wrath-Scryer Soccothrates - Knock Away' WHERE `entry`=20886 AND `groupid` IN (3);
|
||||
|
||||
-- Add missing spelldifficulty_dbc values
|
||||
DELETE FROM `spelldifficulty_dbc` WHERE `id` IN (36127,36123,36173,36144,35759,36051);
|
||||
INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`) VALUES
|
||||
(36127,36127,39005),(36123,36123,39367), -- Zereketh the Unbound
|
||||
(36173,36173,39009),(36144,36144,39013), -- Dalliah the Doomsayer
|
||||
(35759,35759,39006),(36051,36051,39007); -- Wrath-Scryer Soccothrates
|
||||
|
||||
UPDATE `creature_template` SET `AIName` = '', `ScriptName`= 'boss_zereketh_the_unbound' WHERE entry=20870;
|
||||
UPDATE `creature_template` SET `AIName` = '', `ScriptName`= 'boss_dalliah_the_doomsayer' WHERE entry=20885;
|
||||
UPDATE `creature_template` SET `AIName` = '', `ScriptName`= 'boss_wrath_scryer_soccothrates' WHERE entry=20886;
|
||||
DELETE FROM creature_ai_scripts WHERE creature_id IN (20885,20886);
|
||||
DELETE FROM smart_scripts WHERE entryorguid IN (20870);
|
||||
DELETE FROM creature_ai_texts WHERE entry BETWEEN -28 AND -23;
|
||||
DELETE FROM creature_ai_texts WHERE entry BETWEEN -80 AND -73;
|
||||
UPDATE `creature` SET `spawndist`=5, `MovementType`=1 WHERE `id`=20870;
|
||||
@@ -619,6 +619,9 @@ void AddSC_boss_omor_the_unscarred();
|
||||
void AddSC_boss_vazruden_the_herald();
|
||||
void AddSC_instance_ramparts();
|
||||
void AddSC_arcatraz(); //TK Arcatraz
|
||||
void AddSC_boss_zereketh_the_unbound();
|
||||
void AddSC_boss_dalliah_the_doomsayer();
|
||||
void AddSC_boss_wrath_scryer_soccothrates();
|
||||
void AddSC_boss_harbinger_skyriss();
|
||||
void AddSC_instance_arcatraz();
|
||||
void AddSC_boss_high_botanist_freywinn(); //TK Botanica
|
||||
@@ -1140,6 +1143,9 @@ void AddOutlandScripts()
|
||||
AddSC_boss_vazruden_the_herald();
|
||||
AddSC_instance_ramparts();
|
||||
AddSC_arcatraz(); //TK Arcatraz
|
||||
AddSC_boss_zereketh_the_unbound();
|
||||
AddSC_boss_dalliah_the_doomsayer();
|
||||
AddSC_boss_wrath_scryer_soccothrates();
|
||||
AddSC_boss_harbinger_skyriss();
|
||||
AddSC_instance_arcatraz();
|
||||
AddSC_boss_high_botanist_freywinn(); //TK Botanica
|
||||
|
||||
@@ -68,6 +68,9 @@ set(scripts_STAT_SRCS
|
||||
Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
|
||||
Outland/TempestKeep/botanica/boss_warp_splinter.cpp
|
||||
Outland/TempestKeep/botanica/boss_laj.cpp
|
||||
Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp
|
||||
Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
|
||||
Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
|
||||
Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
|
||||
Outland/TempestKeep/arcatraz/instance_arcatraz.cpp
|
||||
Outland/TempestKeep/arcatraz/arcatraz.h
|
||||
|
||||
@@ -103,10 +103,10 @@ class npc_millhouse_manastorm : public CreatureScript
|
||||
|
||||
if (instance)
|
||||
{
|
||||
if (instance->GetData(TYPE_WARDEN_2) == DONE)
|
||||
if (instance->GetData(DATA_WARDEN_2) == DONE)
|
||||
Init = true;
|
||||
|
||||
if (instance->GetData(TYPE_HARBINGERSKYRISS) == DONE)
|
||||
if (instance->GetData(DATA_HARBINGERSKYRISS) == DONE)
|
||||
Talk(SAY_COMPLETE);
|
||||
}
|
||||
}
|
||||
@@ -177,7 +177,7 @@ class npc_millhouse_manastorm : public CreatureScript
|
||||
break;
|
||||
case 7:
|
||||
if (instance)
|
||||
instance->SetData(TYPE_WARDEN_2, DONE);
|
||||
instance->SetData(DATA_WARDEN_2, DONE);
|
||||
Init = true;
|
||||
break;
|
||||
}
|
||||
@@ -305,7 +305,7 @@ class npc_warden_mellichar : public CreatureScript
|
||||
DoCast(me, SPELL_TARGET_OMEGA);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(TYPE_HARBINGERSKYRISS, NOT_STARTED);
|
||||
instance->SetData(DATA_HARBINGERSKYRISS, NOT_STARTED);
|
||||
}
|
||||
|
||||
void AttackStart(Unit* /*who*/) OVERRIDE { }
|
||||
@@ -336,7 +336,7 @@ class npc_warden_mellichar : public CreatureScript
|
||||
|
||||
if (instance)
|
||||
{
|
||||
instance->SetData(TYPE_HARBINGERSKYRISS, IN_PROGRESS);
|
||||
instance->SetData(DATA_HARBINGERSKYRISS, IN_PROGRESS);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), false);
|
||||
IsRunning = true;
|
||||
}
|
||||
@@ -346,19 +346,19 @@ class npc_warden_mellichar : public CreatureScript
|
||||
{
|
||||
if (instance)
|
||||
{
|
||||
if (Phase == 7 && instance->GetData(TYPE_WARDEN_4) == DONE)
|
||||
if (Phase == 7 && instance->GetData(DATA_WARDEN_4) == DONE)
|
||||
return true;
|
||||
if (Phase == 6 && instance->GetData(TYPE_WARDEN_3) == DONE)
|
||||
if (Phase == 6 && instance->GetData(DATA_WARDEN_3) == DONE)
|
||||
return true;
|
||||
if (Phase == 5 && instance->GetData(TYPE_WARDEN_2) == DONE)
|
||||
if (Phase == 5 && instance->GetData(DATA_WARDEN_2) == DONE)
|
||||
return true;
|
||||
if (Phase == 4)
|
||||
return true;
|
||||
if (Phase == 3 && instance->GetData(TYPE_WARDEN_1) == DONE)
|
||||
if (Phase == 3 && instance->GetData(DATA_WARDEN_1) == DONE)
|
||||
return true;
|
||||
if (Phase == 2 && instance->GetData(TYPE_HARBINGERSKYRISS) == IN_PROGRESS)
|
||||
if (Phase == 2 && instance->GetData(DATA_HARBINGERSKYRISS) == IN_PROGRESS)
|
||||
return true;
|
||||
if (Phase == 1 && instance->GetData(TYPE_HARBINGERSKYRISS) == IN_PROGRESS)
|
||||
if (Phase == 1 && instance->GetData(DATA_HARBINGERSKYRISS) == IN_PROGRESS)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@@ -376,23 +376,23 @@ class npc_warden_mellichar : public CreatureScript
|
||||
{
|
||||
case 2:
|
||||
DoCast(me, SPELL_TARGET_ALPHA);
|
||||
instance->SetData(TYPE_WARDEN_1, IN_PROGRESS);
|
||||
instance->SetData(DATA_WARDEN_1, IN_PROGRESS);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), false);
|
||||
break;
|
||||
case 3:
|
||||
DoCast(me, SPELL_TARGET_BETA);
|
||||
instance->SetData(TYPE_WARDEN_2, IN_PROGRESS);
|
||||
instance->SetData(DATA_WARDEN_2, IN_PROGRESS);
|
||||
break;
|
||||
case 5:
|
||||
DoCast(me, SPELL_TARGET_DELTA);
|
||||
instance->SetData(TYPE_WARDEN_3, IN_PROGRESS);
|
||||
instance->SetData(DATA_WARDEN_3, IN_PROGRESS);
|
||||
break;
|
||||
case 6:
|
||||
DoCast(me, SPELL_TARGET_GAMMA);
|
||||
instance->SetData(TYPE_WARDEN_4, IN_PROGRESS);
|
||||
instance->SetData(DATA_WARDEN_4, IN_PROGRESS);
|
||||
break;
|
||||
case 7:
|
||||
instance->SetData(TYPE_WARDEN_5, IN_PROGRESS);
|
||||
instance->SetData(DATA_WARDEN_5, IN_PROGRESS);
|
||||
break;
|
||||
}
|
||||
CanSpawn = true;
|
||||
@@ -408,7 +408,7 @@ class npc_warden_mellichar : public CreatureScript
|
||||
{
|
||||
if (instance)
|
||||
{
|
||||
if (instance->GetData(TYPE_HARBINGERSKYRISS) == FAIL)
|
||||
if (instance->GetData(DATA_HARBINGERSKYRISS) == FAIL)
|
||||
{
|
||||
Reset();
|
||||
return;
|
||||
|
||||
@@ -16,23 +16,49 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef ARCATRAZ_H_
|
||||
#define ARCATRAZ_H_
|
||||
#ifndef ARCATRAZ_H
|
||||
#define ARCATRAZ_H
|
||||
|
||||
uint32 const EncounterCount = 13;
|
||||
|
||||
#define AScriptName "instance_arcatraz"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
TYPE_ZEREKETH = 1,
|
||||
TYPE_DALLIAH = 2,
|
||||
TYPE_SOCCOTHRATES = 3,
|
||||
TYPE_HARBINGERSKYRISS = 4,
|
||||
TYPE_WARDEN_1 = 5,
|
||||
TYPE_WARDEN_2 = 6,
|
||||
TYPE_WARDEN_3 = 7,
|
||||
TYPE_WARDEN_4 = 8,
|
||||
TYPE_WARDEN_5 = 9,
|
||||
DATA_MELLICHAR = 10,
|
||||
TYPE_SHIELD_OPEN = 11,
|
||||
DATA_SPHERE_SHIELD = 12
|
||||
DATA_ZEREKETH = 1,
|
||||
DATA_DALLIAH = 2,
|
||||
DATA_SOCCOTHRATES = 3,
|
||||
DATA_HARBINGERSKYRISS = 4,
|
||||
DATA_WARDEN_1 = 5,
|
||||
DATA_WARDEN_2 = 6,
|
||||
DATA_WARDEN_3 = 7,
|
||||
DATA_WARDEN_4 = 8,
|
||||
DATA_WARDEN_5 = 9,
|
||||
DATA_MELLICHAR = 10,
|
||||
DATA_SHIELD_OPEN = 11,
|
||||
DATA_SPHERE_SHIELD = 12,
|
||||
DATA_CONVERSATION = 13
|
||||
};
|
||||
|
||||
#endif // ARCATRAZ_H_
|
||||
enum CreaturesIds
|
||||
{
|
||||
NPC_MELLICHAR = 20904, //skyriss will kill this unit
|
||||
NPC_ALPHA_POD_TARGET = 21436,
|
||||
NPC_DALLIAH = 20885,
|
||||
NPC_SOCCOTHRATES = 20886
|
||||
};
|
||||
|
||||
enum GameObjectsIds
|
||||
{
|
||||
CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318, //door opened when Wrath-Scryer Soccothrates dies
|
||||
CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319, //door opened when Dalliah the Doomsayer dies
|
||||
POD_ALPHA = 183961, //pod first boss wave
|
||||
POD_BETA = 183963, //pod second boss wave
|
||||
POD_DELTA = 183964, //pod third boss wave
|
||||
POD_GAMMA = 183962, //pod fourth boss wave
|
||||
POD_OMEGA = 183965, //pod fifth boss wave
|
||||
WARDENS_SHIELD = 184802, // warden shield
|
||||
SEAL_SPHERE = 184802 //shield 'protecting' mellichar
|
||||
};
|
||||
|
||||
#endif // ARCATRAZ_H
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: boss_dalliah_the_doomsayer
|
||||
SD%Complete: 95%
|
||||
SDComment: soccothrates death left to script
|
||||
SDCategory: Tempest Keep, The Arcatraz
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "arcatraz.h"
|
||||
|
||||
enum Say
|
||||
{
|
||||
SAY_AGGRO = 1,
|
||||
SAY_SLAY = 2,
|
||||
SAY_WHIRLWIND = 3,
|
||||
SAY_HEAL = 4,
|
||||
SAY_DEATH = 5,
|
||||
SAY_SOCCOTHRATES_DEATH = 7, // To be scripted
|
||||
|
||||
// boss_wrath_scryer_soccothrates
|
||||
SAY_AGGRO_DALLIAH_FIRST = 0,
|
||||
SAY_DALLIAH_25_PERCENT = 5
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_GIFT_OF_THE_DOOMSAYER = 36173,
|
||||
SPELL_WHIRLWIND = 36142,
|
||||
SPELL_HEAL = 36144,
|
||||
SPELL_SHADOW_WAVE = 39016 // Heroic only
|
||||
};
|
||||
|
||||
enum Events
|
||||
{
|
||||
EVENT_GIFT_OF_THE_DOOMSAYER = 1,
|
||||
EVENT_WHIRLWIND = 2,
|
||||
EVENT_HEAL = 3,
|
||||
EVENT_SHADOW_WAVE = 4, // Heroic only
|
||||
EVENT_ME_FIRST = 5
|
||||
};
|
||||
|
||||
class boss_dalliah_the_doomsayer : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_dalliah_the_doomsayer() : CreatureScript("boss_dalliah_the_doomsayer") { }
|
||||
|
||||
struct boss_dalliah_the_doomsayerAI : public BossAI
|
||||
{
|
||||
boss_dalliah_the_doomsayerAI(Creature* creature) : BossAI(creature, DATA_DALLIAH) { }
|
||||
|
||||
void Reset() OVERRIDE
|
||||
{
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) OVERRIDE
|
||||
{
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) OVERRIDE
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_GIFT_OF_THE_DOOMSAYER, urand(1000, 4000));
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(7000, 9000));
|
||||
if (IsHeroic())
|
||||
events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000));
|
||||
events.ScheduleEvent(EVENT_ME_FIRST, 6000);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
if (Creature* soccothrates = me->FindNearestCreature(NPC_SOCCOTHRATES, 100.0f, true))
|
||||
soccothratesGUID = soccothrates->GetGUID();
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) OVERRIDE
|
||||
{
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) OVERRIDE
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_GIFT_OF_THE_DOOMSAYER:
|
||||
DoCastVictim(SPELL_GIFT_OF_THE_DOOMSAYER, true);
|
||||
events.ScheduleEvent(EVENT_GIFT_OF_THE_DOOMSAYER, urand(16000, 21000));
|
||||
break;
|
||||
case EVENT_WHIRLWIND:
|
||||
DoCast(me, SPELL_WHIRLWIND);
|
||||
Talk(SAY_WHIRLWIND);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, urand(19000, 21000));
|
||||
events.ScheduleEvent(EVENT_HEAL, 6000);
|
||||
break;
|
||||
case EVENT_HEAL:
|
||||
DoCast(me, SPELL_HEAL);
|
||||
Talk(SAY_HEAL);
|
||||
break;
|
||||
case EVENT_SHADOW_WAVE:
|
||||
DoCastVictim(SPELL_SHADOW_WAVE, true);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000));
|
||||
break;
|
||||
case EVENT_ME_FIRST:
|
||||
if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID))
|
||||
if (soccothrates->IsAlive() && !soccothrates->IsInCombat())
|
||||
soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (HealthBelowPct(25) && !soccothratesTaunt)
|
||||
{
|
||||
if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID))
|
||||
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
|
||||
soccothratesTaunt = true;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
bool soccothratesTaunt;
|
||||
uint64 soccothratesGUID;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const OVERRIDE
|
||||
{
|
||||
return new boss_dalliah_the_doomsayerAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_dalliah_the_doomsayer()
|
||||
{
|
||||
new boss_dalliah_the_doomsayer();
|
||||
}
|
||||
@@ -61,21 +61,15 @@ enum Spells
|
||||
class boss_harbinger_skyriss : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_harbinger_skyriss() : CreatureScript("boss_harbinger_skyriss") { }
|
||||
|
||||
boss_harbinger_skyriss()
|
||||
: CreatureScript("boss_harbinger_skyriss")
|
||||
struct boss_harbinger_skyrissAI : public BossAI
|
||||
{
|
||||
}
|
||||
struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
{
|
||||
boss_harbinger_skyrissAI(Creature* creature) : ScriptedAI(creature)
|
||||
boss_harbinger_skyrissAI(Creature* creature) : BossAI(creature, DATA_HARBINGERSKYRISS)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
Intro = false;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
bool Intro;
|
||||
bool IsImage33;
|
||||
bool IsImage66;
|
||||
@@ -117,8 +111,7 @@ class boss_harbinger_skyriss : public CreatureScript
|
||||
void JustDied(Unit* /*killer*/) OVERRIDE
|
||||
{
|
||||
Talk(SAY_DEATH);
|
||||
if (instance)
|
||||
instance->SetData(TYPE_HARBINGERSKYRISS, DONE);
|
||||
_JustDied();
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) OVERRIDE
|
||||
@@ -137,7 +130,7 @@ class boss_harbinger_skyriss : public CreatureScript
|
||||
void KilledUnit(Unit* victim) OVERRIDE
|
||||
{
|
||||
//won't yell killing pet/other unit
|
||||
if (victim->GetEntry() == 21436)
|
||||
if (victim->GetEntry() == NPC_ALPHA_POD_TARGET)
|
||||
return;
|
||||
|
||||
Talk(SAY_KILL);
|
||||
@@ -180,7 +173,7 @@ class boss_harbinger_skyriss : public CreatureScript
|
||||
//should have a better way to do this. possibly spell exist.
|
||||
mellic->setDeathState(JUST_DIED);
|
||||
mellic->SetHealth(0);
|
||||
instance->SetData(TYPE_SHIELD_OPEN, IN_PROGRESS);
|
||||
instance->SetData(DATA_SHIELD_OPEN, IN_PROGRESS);
|
||||
}
|
||||
++Intro_Phase;
|
||||
Intro_Timer = 3000;
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: boss_wrath_scryer_soccothrates
|
||||
SD%Complete: 85%
|
||||
SDComment: charge and dalliah death left to script
|
||||
SDCategory: Tempest Keep, The Arcatraz
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "arcatraz.h"
|
||||
|
||||
enum Say
|
||||
{
|
||||
// boss_wrath_scryer_soccothrates
|
||||
SAY_AGGRO = 1,
|
||||
SAY_SLAY = 2,
|
||||
SAY_KNOCK_AWAY = 3,
|
||||
SAY_DEATH = 4,
|
||||
SAY_DALLIAH_DEATH = 6, // To be scripted
|
||||
SAY_SOCCOTHRATES_CONVO_1 = 7,
|
||||
SAY_SOCCOTHRATES_CONVO_2 = 8,
|
||||
SAY_SOCCOTHRATES_CONVO_3 = 9,
|
||||
SAY_SOCCOTHRATES_CONVO_4 = 10,
|
||||
|
||||
// boss_dalliah_the_doomsayer
|
||||
SAY_AGGRO_SOCCOTHRATES_FIRST = 0,
|
||||
SAY_SOCCOTHRATES_25_PERCENT = 6,
|
||||
SAY_DALLIAH_CONVO_1 = 8,
|
||||
SAY_DALLIAH_CONVO_2 = 9,
|
||||
SAY_DALLIAH_CONVO_3 = 10
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_FEL_IMMOLATION = 36051,
|
||||
SPELL_FELFIRE_SHOCK = 35759,
|
||||
SPELL_KNOCK_AWAY = 36512,
|
||||
SPELL_FELFIRE_LINE_UP = 35770,
|
||||
SPELL_CHARGE_TARGETING = 36038,
|
||||
SPELL_CHARGE = 35754
|
||||
};
|
||||
|
||||
enum Events
|
||||
{
|
||||
EVENT_FELFIRE_SHOCK = 1,
|
||||
EVENT_KNOCK_AWAY = 2,
|
||||
|
||||
EVENT_PREFIGHT_1 = 3,
|
||||
EVENT_PREFIGHT_2 = 4,
|
||||
EVENT_PREFIGHT_3 = 5,
|
||||
EVENT_PREFIGHT_4 = 6,
|
||||
EVENT_PREFIGHT_5 = 7,
|
||||
EVENT_PREFIGHT_6 = 8,
|
||||
EVENT_PREFIGHT_7 = 9,
|
||||
EVENT_PREFIGHT_8 = 10,
|
||||
EVENT_PREFIGHT_9 = 11,
|
||||
EVENT_ME_FIRST = 12,
|
||||
};
|
||||
|
||||
class boss_wrath_scryer_soccothrates : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_wrath_scryer_soccothrates() : CreatureScript("boss_wrath_scryer_soccothrates") { }
|
||||
|
||||
struct boss_wrath_scryer_soccothratesAI : public BossAI
|
||||
{
|
||||
boss_wrath_scryer_soccothratesAI(Creature* creature) : BossAI(creature, DATA_SOCCOTHRATES) { }
|
||||
|
||||
void Reset() OVERRIDE
|
||||
{
|
||||
_Reset();
|
||||
preFight = false;
|
||||
dalliahTaunt = false;
|
||||
DoCast(me, SPELL_FEL_IMMOLATION);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) OVERRIDE
|
||||
{
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) OVERRIDE
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FELFIRE_SHOCK, urand(12000, 14000));
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000));
|
||||
events.ScheduleEvent(EVENT_ME_FIRST, 6000);
|
||||
Talk(SAY_AGGRO);
|
||||
preFight = false;
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) OVERRIDE
|
||||
{
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who) OVERRIDE
|
||||
{
|
||||
if (instance)
|
||||
{
|
||||
if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f))
|
||||
{
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_1);
|
||||
instance->SetData(DATA_CONVERSATION, DONE);
|
||||
|
||||
if (Creature* dalliah = me->FindNearestCreature(NPC_DALLIAH, 50.0f, true))
|
||||
{
|
||||
dalliahGUID = dalliah->GetGUID();
|
||||
preFight = true;
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_1, 2000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) OVERRIDE
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
{
|
||||
if (preFight)
|
||||
{
|
||||
events.Update(diff);
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_PREFIGHT_1:
|
||||
if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_2, 3000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_2:
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_2);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_3, 3000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_3:
|
||||
if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_4, 6000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_4:
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_3);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_5, 2000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_5:
|
||||
if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_6, 3000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_6:
|
||||
Talk(SAY_SOCCOTHRATES_CONVO_4);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_7, 2000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_7:
|
||||
if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
|
||||
dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_8, 4000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_8:
|
||||
me->GetMotionMaster()->MovePoint(0, 122.1035f, 192.7203f, 22.44115f);
|
||||
events.ScheduleEvent(EVENT_PREFIGHT_9, 4000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_9:
|
||||
if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
|
||||
{
|
||||
dalliah->SetFacingToObject(me);
|
||||
me->SetFacingToObject(dalliah);
|
||||
dalliah->SetHomePosition(dalliah->GetPositionX(), dalliah->GetPositionY(), dalliah->GetPositionZ(), 1.51737f);
|
||||
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 4.725722f);
|
||||
preFight = false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_FELFIRE_SHOCK:
|
||||
DoCastVictim(SPELL_FELFIRE_SHOCK, true);
|
||||
events.ScheduleEvent(EVENT_FELFIRE_SHOCK, urand(12000, 14000));
|
||||
break;
|
||||
case EVENT_KNOCK_AWAY:
|
||||
DoCast(me, SPELL_KNOCK_AWAY);
|
||||
Talk(SAY_KNOCK_AWAY);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000));
|
||||
break;
|
||||
case EVENT_ME_FIRST:
|
||||
if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
|
||||
if (dalliah->IsAlive() && !dalliah->IsInCombat())
|
||||
dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (HealthBelowPct(25) && !dalliahTaunt)
|
||||
{
|
||||
if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
|
||||
dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT);
|
||||
dalliahTaunt = true;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
bool preFight;
|
||||
bool dalliahTaunt;
|
||||
uint64 dalliahGUID;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const OVERRIDE
|
||||
{
|
||||
return new boss_wrath_scryer_soccothratesAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_wrath_scryer_soccothrates()
|
||||
{
|
||||
new boss_wrath_scryer_soccothrates();
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: boss_zereketh_the_unbound
|
||||
SD%Complete: 100%
|
||||
SDComment:
|
||||
SDCategory: Tempest Keep, The Arcatraz
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "arcatraz.h"
|
||||
|
||||
enum Say
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SAY_SLAY = 1,
|
||||
SAY_SHADOW_NOVA = 2,
|
||||
SAY_DEATH = 3
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_VOID_ZONE = 36119,
|
||||
SPELL_SHADOW_NOVA = 36127,
|
||||
SPELL_SEED_OF_CORRUPTION = 36123
|
||||
};
|
||||
|
||||
enum Events
|
||||
{
|
||||
EVENT_VOID_ZONE = 1,
|
||||
EVENT_SHADOW_NOVA = 2,
|
||||
EVENT_SEED_OF_CORRUPTION = 3
|
||||
};
|
||||
|
||||
class boss_zereketh_the_unbound : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_zereketh_the_unbound() : CreatureScript("boss_zereketh_the_unbound") { }
|
||||
|
||||
struct boss_zereketh_the_unboundAI : public BossAI
|
||||
{
|
||||
boss_zereketh_the_unboundAI(Creature* creature) : BossAI(creature, DATA_ZEREKETH) { }
|
||||
|
||||
void Reset() OVERRIDE
|
||||
{
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) OVERRIDE
|
||||
{
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) OVERRIDE
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_VOID_ZONE, urand (6000, 10000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_NOVA, urand (6000, 10000));
|
||||
events.ScheduleEvent(EVENT_SEED_OF_CORRUPTION, urand(12000, 20000));
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/) OVERRIDE
|
||||
{
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) OVERRIDE
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_VOID_ZONE:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
|
||||
DoCast(target, SPELL_VOID_ZONE);
|
||||
events.ScheduleEvent(EVENT_VOID_ZONE, urand (6000, 10000));
|
||||
break;
|
||||
case EVENT_SHADOW_NOVA:
|
||||
DoCastVictim(SPELL_SHADOW_NOVA, true);
|
||||
Talk(SAY_SHADOW_NOVA);
|
||||
events.ScheduleEvent(EVENT_SHADOW_NOVA, urand (6000, 10000));
|
||||
break;
|
||||
case EVENT_SEED_OF_CORRUPTION:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
|
||||
DoCast(target, SPELL_SEED_OF_CORRUPTION);
|
||||
events.ScheduleEvent(EVENT_SEED_OF_CORRUPTION, urand(12000, 20000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const OVERRIDE
|
||||
{
|
||||
return new boss_zereketh_the_unboundAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_zereketh_the_unbound()
|
||||
{
|
||||
new boss_zereketh_the_unbound();
|
||||
}
|
||||
@@ -27,23 +27,6 @@ EndScriptData */
|
||||
#include "InstanceScript.h"
|
||||
#include "arcatraz.h"
|
||||
|
||||
#define MAX_ENCOUNTER 9
|
||||
|
||||
enum Units
|
||||
{
|
||||
CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318, //door opened when Wrath-Scryer Soccothrates dies
|
||||
CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319, //door opened when Dalliah the Doomsayer dies
|
||||
POD_ALPHA = 183961, //pod first boss wave
|
||||
POD_BETA = 183963, //pod second boss wave
|
||||
POD_DELTA = 183964, //pod third boss wave
|
||||
POD_GAMMA = 183962, //pod fourth boss wave
|
||||
POD_OMEGA = 183965, //pod fifth boss wave
|
||||
WARDENS_SHIELD = 184802, // warden shield
|
||||
SEAL_SPHERE = 184802, //shield 'protecting' mellichar
|
||||
|
||||
MELLICHAR = 20904, //skyriss will kill this unit
|
||||
};
|
||||
|
||||
/* Arcatraz encounters:
|
||||
1 - Zereketh the Unbound event
|
||||
2 - Dalliah the Doomsayer event
|
||||
@@ -55,14 +38,14 @@ class instance_arcatraz : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_arcatraz()
|
||||
: InstanceMapScript("instance_arcatraz", 552)
|
||||
: InstanceMapScript(AScriptName, 552)
|
||||
{
|
||||
}
|
||||
struct instance_arcatraz_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_arcatraz_InstanceMapScript(Map* map) : InstanceScript(map) { }
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
uint32 m_auiEncounter[EncounterCount];
|
||||
|
||||
uint64 Containment_Core_Security_Field_AlphaGUID;
|
||||
uint64 Containment_Core_Security_Field_BetaGUID;
|
||||
@@ -93,7 +76,7 @@ class instance_arcatraz : public InstanceMapScript
|
||||
|
||||
bool IsEncounterInProgress() const OVERRIDE
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
for (uint8 i = 0; i < EncounterCount; ++i)
|
||||
if (m_auiEncounter[i] == IN_PROGRESS)
|
||||
return true;
|
||||
|
||||
@@ -144,7 +127,7 @@ class instance_arcatraz : public InstanceMapScript
|
||||
|
||||
void OnCreatureCreate(Creature* creature) OVERRIDE
|
||||
{
|
||||
if (creature->GetEntry() == MELLICHAR)
|
||||
if (creature->GetEntry() == NPC_MELLICHAR)
|
||||
MellicharGUID = creature->GetGUID();
|
||||
}
|
||||
|
||||
@@ -152,10 +135,10 @@ class instance_arcatraz : public InstanceMapScript
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_ZEREKETH:
|
||||
case DATA_ZEREKETH:
|
||||
m_auiEncounter[0] = data;
|
||||
break;
|
||||
case TYPE_DALLIAH:
|
||||
case DATA_DALLIAH:
|
||||
if (data == DONE)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(Containment_Core_Security_Field_BetaGUID))
|
||||
@@ -163,7 +146,7 @@ class instance_arcatraz : public InstanceMapScript
|
||||
}
|
||||
m_auiEncounter[1] = data;
|
||||
break;
|
||||
case TYPE_SOCCOTHRATES:
|
||||
case DATA_SOCCOTHRATES:
|
||||
if (data == DONE)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(Containment_Core_Security_Field_AlphaGUID))
|
||||
@@ -171,7 +154,7 @@ class instance_arcatraz : public InstanceMapScript
|
||||
}
|
||||
m_auiEncounter[2] = data;
|
||||
break;
|
||||
case TYPE_HARBINGERSKYRISS:
|
||||
case DATA_HARBINGERSKYRISS:
|
||||
if (data == NOT_STARTED || data == FAIL)
|
||||
{
|
||||
m_auiEncounter[4] = NOT_STARTED;
|
||||
@@ -182,13 +165,13 @@ class instance_arcatraz : public InstanceMapScript
|
||||
}
|
||||
m_auiEncounter[3] = data;
|
||||
break;
|
||||
case TYPE_WARDEN_1:
|
||||
case DATA_WARDEN_1:
|
||||
if (data == IN_PROGRESS)
|
||||
if (GameObject* go = instance->GetGameObject(Pod_AlphaGUID))
|
||||
go->UseDoorOrButton();
|
||||
m_auiEncounter[4] = data;
|
||||
break;
|
||||
case TYPE_WARDEN_2:
|
||||
case DATA_WARDEN_2:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(Pod_BetaGUID))
|
||||
@@ -196,7 +179,7 @@ class instance_arcatraz : public InstanceMapScript
|
||||
}
|
||||
m_auiEncounter[5] = data;
|
||||
break;
|
||||
case TYPE_WARDEN_3:
|
||||
case DATA_WARDEN_3:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(Pod_DeltaGUID))
|
||||
@@ -204,7 +187,7 @@ class instance_arcatraz : public InstanceMapScript
|
||||
}
|
||||
m_auiEncounter[6] = data;
|
||||
break;
|
||||
case TYPE_WARDEN_4:
|
||||
case DATA_WARDEN_4:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(Pod_GammaGUID))
|
||||
@@ -212,7 +195,7 @@ class instance_arcatraz : public InstanceMapScript
|
||||
}
|
||||
m_auiEncounter[7] = data;
|
||||
break;
|
||||
case TYPE_WARDEN_5:
|
||||
case DATA_WARDEN_5:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(Pod_OmegaGUID))
|
||||
@@ -220,13 +203,16 @@ class instance_arcatraz : public InstanceMapScript
|
||||
}
|
||||
m_auiEncounter[8] = data;
|
||||
break;
|
||||
case TYPE_SHIELD_OPEN:
|
||||
case DATA_SHIELD_OPEN:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
if (GameObject* go = instance->GetGameObject(Wardens_ShieldGUID))
|
||||
go->UseDoorOrButton();
|
||||
}
|
||||
break;
|
||||
case DATA_CONVERSATION:
|
||||
m_auiEncounter[12] = data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,12 +220,13 @@ class instance_arcatraz : public InstanceMapScript
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_HARBINGERSKYRISS: return m_auiEncounter[3];
|
||||
case TYPE_WARDEN_1: return m_auiEncounter[4];
|
||||
case TYPE_WARDEN_2: return m_auiEncounter[5];
|
||||
case TYPE_WARDEN_3: return m_auiEncounter[6];
|
||||
case TYPE_WARDEN_4: return m_auiEncounter[7];
|
||||
case TYPE_WARDEN_5: return m_auiEncounter[8];
|
||||
case DATA_HARBINGERSKYRISS: return m_auiEncounter[3];
|
||||
case DATA_WARDEN_1: return m_auiEncounter[4];
|
||||
case DATA_WARDEN_2: return m_auiEncounter[5];
|
||||
case DATA_WARDEN_3: return m_auiEncounter[6];
|
||||
case DATA_WARDEN_4: return m_auiEncounter[7];
|
||||
case DATA_WARDEN_5: return m_auiEncounter[8];
|
||||
case DATA_CONVERSATION: return m_auiEncounter[12];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user