mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripting/The Arcatraz: Add text scripting for deaths
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user