aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMalcrom <malcromdev@gmail.com>2013-11-10 10:00:47 -0330
committerMalcrom <malcromdev@gmail.com>2013-11-10 10:00:47 -0330
commitc2db6d49ced143f951b83185dfc525e5493d35b9 (patch)
treefeb1e81990674b05c3edb482c5671bbc5c879594 /src
parent2d28d0c109fb58d5f5cd44814a9640bb7793b4cb (diff)
Scripting/The Arcatraz: Add text scripting for deaths
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp48
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp44
2 files changed, 85 insertions, 7 deletions
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
index 20cfb2f07f8..eacd5b3835e 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
@@ -17,8 +17,8 @@
/* ScriptData
SDName: boss_dalliah_the_doomsayer
-SD%Complete: 95%
-SDComment: soccothrates death left to script
+SD%Complete: 100%
+SDComment:
SDCategory: Tempest Keep, The Arcatraz
EndScriptData */
@@ -33,7 +33,7 @@ enum Say
SAY_WHIRLWIND = 3,
SAY_HEAL = 4,
SAY_DEATH = 5,
- SAY_SOCCOTHRATES_DEATH = 7, // To be scripted
+ SAY_SOCCOTHRATES_DEATH = 7,
// boss_wrath_scryer_soccothrates
SAY_AGGRO_DALLIAH_FIRST = 0,
@@ -54,7 +54,8 @@ enum Events
EVENT_WHIRLWIND = 2,
EVENT_HEAL = 3,
EVENT_SHADOW_WAVE = 4, // Heroic only
- EVENT_ME_FIRST = 5
+ EVENT_ME_FIRST = 5,
+ EVENT_SOCCOTHRATES_DEATH = 6
};
class boss_dalliah_the_doomsayer : public CreatureScript
@@ -69,12 +70,17 @@ class boss_dalliah_the_doomsayer : public CreatureScript
void Reset() OVERRIDE
{
_Reset();
+ soccothratesDeath = false;
}
void JustDied(Unit* /*killer*/) OVERRIDE
{
_JustDied();
Talk(SAY_DEATH);
+
+ if (Creature* soccothrates = me->GetCreature(*me, soccothratesGUID))
+ if (soccothrates->IsAlive() && !soccothrates->IsInCombat())
+ soccothrates->AI()->SetData(1, 1);
}
void EnterCombat(Unit* /*who*/) OVERRIDE
@@ -96,10 +102,43 @@ class boss_dalliah_the_doomsayer : public CreatureScript
Talk(SAY_SLAY);
}
+ void SetData(uint32 /*type*/, uint32 data) OVERRIDE
+ {
+ switch (data)
+ {
+ case 1:
+ events.ScheduleEvent(EVENT_SOCCOTHRATES_DEATH, 6000);
+ soccothratesDeath = true;
+ break;
+ break;
+ default:
+ break;
+ }
+ }
+
void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
+ {
+ if (soccothratesDeath)
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_SOCCOTHRATES_DEATH:
+ Talk(SAY_SOCCOTHRATES_DEATH);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
return;
+ }
events.Update(diff);
@@ -150,6 +189,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript
private:
bool soccothratesTaunt;
+ bool soccothratesDeath;
uint64 soccothratesGUID;
};
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
index cef8a8b8e2d..8d4b18b4d47 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
@@ -17,8 +17,8 @@
/* ScriptData
SDName: boss_wrath_scryer_soccothrates
-SD%Complete: 85%
-SDComment: charge and dalliah death left to script
+SD%Complete: 95%
+SDComment: charge left to script
SDCategory: Tempest Keep, The Arcatraz
EndScriptData */
@@ -33,7 +33,7 @@ enum Say
SAY_SLAY = 2,
SAY_KNOCK_AWAY = 3,
SAY_DEATH = 4,
- SAY_DALLIAH_DEATH = 6, // To be scripted
+ SAY_DALLIAH_DEATH = 6,
SAY_SOCCOTHRATES_CONVO_1 = 7,
SAY_SOCCOTHRATES_CONVO_2 = 8,
SAY_SOCCOTHRATES_CONVO_3 = 9,
@@ -72,6 +72,7 @@ enum Events
EVENT_PREFIGHT_8 = 10,
EVENT_PREFIGHT_9 = 11,
EVENT_ME_FIRST = 12,
+ EVENT_DALLIAH_DEATH = 13
};
class boss_wrath_scryer_soccothrates : public CreatureScript
@@ -88,6 +89,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
_Reset();
preFight = false;
dalliahTaunt = false;
+ dalliahDeath = false;
DoCast(me, SPELL_FEL_IMMOLATION);
}
@@ -95,6 +97,10 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
{
_JustDied();
Talk(SAY_DEATH);
+
+ if (Creature* dalliah = me->GetCreature(*me, dalliahGUID))
+ if (dalliah->IsAlive() && !dalliah->IsInCombat())
+ dalliah->AI()->SetData(1, 1);
}
void EnterCombat(Unit* /*who*/) OVERRIDE
@@ -131,6 +137,20 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
}
}
+ void SetData(uint32 /*type*/, uint32 data) OVERRIDE
+ {
+ switch (data)
+ {
+ case 1:
+ events.ScheduleEvent(EVENT_DALLIAH_DEATH, 6000);
+ dalliahDeath = true;
+ break;
+ break;
+ default:
+ break;
+ }
+ }
+
void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
@@ -195,6 +215,23 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
}
}
+ if (dalliahDeath)
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_DALLIAH_DEATH:
+ Talk(SAY_DALLIAH_DEATH);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
return;
}
@@ -239,6 +276,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript
private:
bool preFight;
bool dalliahTaunt;
+ bool dalliahDeath;
uint64 dalliahGUID;
};