mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 18:40:28 +00:00
fix(Scripts/HallsOfReflection): Halls of Reflection - Fix Alliance side, text broadcasts and hardcodes. (#15227)
This commit is contained in:
@@ -19,12 +19,11 @@
|
||||
|
||||
enum Yells
|
||||
{
|
||||
SAY_AGGRO = 50,
|
||||
SAY_SLAY_1 = 51,
|
||||
SAY_SLAY_2 = 52,
|
||||
SAY_DEATH = 53,
|
||||
SAY_IMPENDING_DESPAIR = 54,
|
||||
SAY_DEFILING_HORROR = 55,
|
||||
SAY_AGGRO = 0,
|
||||
SAY_SLAY = 1,
|
||||
SAY_DEATH = 2,
|
||||
SAY_IMPENDING_DESPAIR = 3,
|
||||
SAY_DEFILING_HORROR = 4,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -161,7 +160,7 @@ public:
|
||||
void KilledUnit(Unit* who) override
|
||||
{
|
||||
if (who->GetTypeId() == TYPEID_PLAYER)
|
||||
Talk(RAND(SAY_SLAY_1, SAY_SLAY_2));
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
|
||||
@@ -19,12 +19,11 @@
|
||||
|
||||
enum Yells
|
||||
{
|
||||
SAY_AGGRO = 60,
|
||||
SAY_SLAY_1 = 61,
|
||||
SAY_SLAY_2 = 62,
|
||||
SAY_DEATH = 63,
|
||||
SAY_CORRUPTED_FLESH_1 = 64,
|
||||
SAY_CORRUPTED_FLESH_2 = 65,
|
||||
SAY_AGGRO = 0,
|
||||
SAY_SLAY = 1,
|
||||
SAY_DEATH = 2,
|
||||
SAY_CORRUPTED_FLESH = 3,
|
||||
SAY_CORRUPTED_WELL = 4,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -121,12 +120,13 @@ public:
|
||||
events.ScheduleEvent(EVENT_OBLITERATE, 3000);
|
||||
break;
|
||||
case EVENT_WELL_OF_CORRUPTION:
|
||||
Talk(SAY_CORRUPTED_WELL);
|
||||
if (Unit* target = SelectTargetFromPlayerList(40.0f, 0, true))
|
||||
me->CastSpell(target, SPELL_WELL_OF_CORRUPTION, false);
|
||||
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
|
||||
break;
|
||||
case EVENT_CORRUPTED_FLESH:
|
||||
Talk(RAND(SAY_CORRUPTED_FLESH_1, SAY_CORRUPTED_FLESH_2));
|
||||
Talk(SAY_CORRUPTED_FLESH);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_CORRUPTED_FLESH, false);
|
||||
events.ScheduleEvent(EVENT_CORRUPTED_FLESH, 20000);
|
||||
break;
|
||||
@@ -150,7 +150,7 @@ public:
|
||||
void KilledUnit(Unit* who) override
|
||||
{
|
||||
if (who->GetTypeId() == TYPEID_PLAYER)
|
||||
Talk(RAND(SAY_SLAY_1, SAY_SLAY_2));
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
|
||||
@@ -84,6 +84,15 @@ enum Events
|
||||
EVENT_INTRO_END_SET,
|
||||
};
|
||||
|
||||
enum Gossips
|
||||
{
|
||||
GOSSIP_MENU_SYLVANAS = 10950,
|
||||
GOSISP_MENU_JAINA = 11031,
|
||||
|
||||
GOSSIP_OPTION_START = 0,
|
||||
GOSSIP_OPTION_START_SKIP = 1,
|
||||
};
|
||||
|
||||
class npc_hor_leader : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -107,27 +116,19 @@ public:
|
||||
{
|
||||
QuestStatus status = player->GetQuestStatus(creature->GetEntry() == NPC_SYLVANAS_PART1 ? QUEST_DELIVRANCE_FROM_THE_PIT_H2 : QUEST_DELIVRANCE_FROM_THE_PIT_A2);
|
||||
if (status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
|
||||
AddGossipItemFor(player, 0, "Can you remove the sword?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
{
|
||||
AddGossipItemFor(player, creature->GetEntry() == NPC_SYLVANAS_PART1 ? GOSSIP_MENU_SYLVANAS : GOSISP_MENU_JAINA, GOSSIP_OPTION_START, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
}
|
||||
|
||||
// once last quest is completed, she offers this shortcut of the starting event
|
||||
status = player->GetQuestStatus(creature->GetEntry() == NPC_SYLVANAS_PART1 ? QUEST_WRATH_OF_THE_LICH_KING_H2 : QUEST_WRATH_OF_THE_LICH_KING_A2);
|
||||
if (status == QUEST_STATUS_COMPLETE || status == QUEST_STATUS_REWARDED)
|
||||
{
|
||||
if (creature->GetEntry() == NPC_SYLVANAS_PART1)
|
||||
AddGossipItemFor(player, 0, "Dark Lady, I think I hear Arthas coming. Whatever you're going to do, do it quickly.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
else
|
||||
AddGossipItemFor(player, 0, "My Lady, I think I hear Arthas coming. Whatever you're going to do, do it quickly.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
AddGossipItemFor(player, creature->GetEntry() == NPC_SYLVANAS_PART1 ? GOSSIP_MENU_SYLVANAS : GOSISP_MENU_JAINA, GOSSIP_OPTION_START_SKIP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
}
|
||||
}
|
||||
|
||||
if (creature->GetEntry() == NPC_SYLVANAS_PART1)
|
||||
{
|
||||
SendGossipMenuFor(player, 15215, creature->GetGUID());
|
||||
}
|
||||
else if (creature->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
SendGossipMenuFor(player, 15339, creature->GetGUID());
|
||||
}
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -703,6 +704,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_DARK_MENDING, 8000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (!urand(0,9))
|
||||
{
|
||||
Talk(SAY_WAVE_DEATH);
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
@@ -803,6 +812,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_HALLUCINATION, 40000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (!urand(0,9))
|
||||
{
|
||||
Talk(SAY_WAVE_DEATH);
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
@@ -949,6 +966,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_KIDNEY_SHOT, 5000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (!urand(0,9))
|
||||
{
|
||||
Talk(SAY_WAVE_DEATH);
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
@@ -1046,6 +1071,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_TORTURED_ENRAGE, 15000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (!urand(0,9))
|
||||
{
|
||||
Talk(SAY_WAVE_DEATH);
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
@@ -1132,6 +1165,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_ICE_SHOT, 15000);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (!urand(0,9))
|
||||
{
|
||||
Talk(SAY_WAVE_DEATH);
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
@@ -1542,7 +1583,7 @@ public:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_FURY_OF_FROSTMOURNE, false);
|
||||
}
|
||||
break;
|
||||
case EVENT_LK_START_FOLLOWING:
|
||||
case EVENT_LK_START_FOLLOWING: /// @todo: LK Moves too fast at the begining and too slow after and the leaders (Sylvana/Jaina) should be running instead of walking.
|
||||
{
|
||||
me->SetSpeed(MOVE_RUN, 9.0f / 7.0f);
|
||||
Movement::PointsArray path;
|
||||
@@ -1555,7 +1596,7 @@ public:
|
||||
case EVENT_LK_REMORSELESS_WINTER:
|
||||
{
|
||||
me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run);
|
||||
Talk(SAY_LK_IW_1_SUMMON);
|
||||
Talk(SAY_LK_WINTER);
|
||||
me->CastSpell(me, SPELL_REMORSELESS_WINTER, true);
|
||||
Movement::PointsArray path;
|
||||
path.push_back(G3D::Vector3(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
|
||||
@@ -1755,7 +1796,7 @@ public:
|
||||
if (Player* p = itr->GetSource())
|
||||
p->KilledMonsterCredit(me->GetEntry()); // for quest
|
||||
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_LEAVE : SAY_SYLVANAS_LEAVE);
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_AGGRO : SAY_SYLVANA_AGGRO);
|
||||
me->GetMotionMaster()->MovePoint(0, LeaderEscapePos);
|
||||
events.ScheduleEvent(EVENT_ADD_GOSSIP, 8000);
|
||||
}
|
||||
@@ -1797,11 +1838,9 @@ public:
|
||||
textId = SAY_SYLVANAS_IW_4;
|
||||
break;
|
||||
case 5:
|
||||
textId = SAY_SYLVANAS_END;
|
||||
textId = (me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_TRAP : SAY_SYLVANA_TRAP);
|
||||
break;
|
||||
}
|
||||
if (me->GetEntry() == NPC_JAINA_PART2)
|
||||
textId += 10;
|
||||
Talk(textId);
|
||||
if (currentStopPoint <= 4)
|
||||
me->CastSpell((Unit*)nullptr, (me->GetEntry() == NPC_JAINA_PART2 ? SPELL_DESTROY_WALL_JAINA : SPELL_DESTROY_WALL_SYLVANAS), false);
|
||||
@@ -1813,7 +1852,7 @@ public:
|
||||
}
|
||||
break;
|
||||
case EVENT_SAY_OPENING:
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_OPENING : SAY_SYLVANAS_OPENING);
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_ESCAPE_01 : SAY_SYLVANA_ESCAPE_01);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,12 +68,13 @@ enum Creatures
|
||||
NPC_DARK_RANGER_LORALEN = 37779,
|
||||
NPC_ARCHMAGE_KORELN = 37582,
|
||||
|
||||
// Wave mobs
|
||||
NPC_WAVE_PRIEST = 38175,
|
||||
NPC_WAVE_MAGE = 38172,
|
||||
NPC_PHANTOM_HALLUCINATION = 38567, // Doesn't talk
|
||||
NPC_WAVE_MERCENARY = 38177,
|
||||
NPC_WAVE_FOOTMAN = 38173,
|
||||
NPC_WAVE_RIFLEMAN = 38176,
|
||||
NPC_WAVE_PRIEST = 38175,
|
||||
NPC_WAVE_MAGE = 38172,
|
||||
NPC_PHANTOM_HALLUCINATION = 38567,
|
||||
|
||||
NPC_FROSTSWORN_GENERAL = 36723,
|
||||
NPC_SPIRITUAL_REFLECTION = 37068,
|
||||
@@ -124,94 +125,122 @@ enum BatteredHiltStatusFlags
|
||||
|
||||
enum hYells
|
||||
{
|
||||
SAY_JAINA_INTRO_1 = 1,
|
||||
SAY_JAINA_INTRO_2 = 2,
|
||||
SAY_JAINA_INTRO_3 = 3,
|
||||
SAY_JAINA_INTRO_4 = 4,
|
||||
SAY_UTHER_INTRO_A2_1 = 5,
|
||||
SAY_JAINA_INTRO_5 = 6,
|
||||
SAY_UTHER_INTRO_A2_2 = 7,
|
||||
SAY_JAINA_INTRO_6 = 8,
|
||||
SAY_UTHER_INTRO_A2_3 = 9,
|
||||
SAY_JAINA_INTRO_7 = 10,
|
||||
SAY_UTHER_INTRO_A2_4 = 11,
|
||||
SAY_JAINA_INTRO_8 = 12,
|
||||
SAY_UTHER_INTRO_A2_5 = 13,
|
||||
SAY_JAINA_INTRO_9 = 14,
|
||||
SAY_UTHER_INTRO_A2_6 = 15,
|
||||
SAY_UTHER_INTRO_A2_7 = 16,
|
||||
SAY_JAINA_INTRO_10 = 17,
|
||||
SAY_UTHER_INTRO_A2_8 = 18,
|
||||
SAY_JAINA_INTRO_11 = 19,
|
||||
SAY_UTHER_INTRO_A2_9 = 20,
|
||||
// Part 1
|
||||
// Alliance
|
||||
SAY_JAINA_INTRO_1 = 0,
|
||||
SAY_JAINA_INTRO_2 = 1,
|
||||
SAY_JAINA_INTRO_3 = 2,
|
||||
SAY_JAINA_INTRO_4 = 3,
|
||||
SAY_UTHER_INTRO_A2_1 = 0,
|
||||
SAY_JAINA_INTRO_5 = 4,
|
||||
SAY_UTHER_INTRO_A2_2 = 1,
|
||||
SAY_JAINA_INTRO_6 = 5,
|
||||
SAY_UTHER_INTRO_A2_3 = 2,
|
||||
SAY_JAINA_INTRO_7 = 6,
|
||||
SAY_UTHER_INTRO_A2_4 = 3,
|
||||
SAY_JAINA_INTRO_8 = 7,
|
||||
SAY_UTHER_INTRO_A2_5 = 4,
|
||||
SAY_JAINA_INTRO_9 = 8,
|
||||
SAY_UTHER_INTRO_A2_6 = 5,
|
||||
SAY_UTHER_INTRO_A2_7 = 6,
|
||||
SAY_JAINA_INTRO_10 = 9,
|
||||
SAY_UTHER_INTRO_A2_8 = 7,
|
||||
SAY_JAINA_INTRO_11 = 10,
|
||||
SAY_UTHER_INTRO_A2_9 = 8,
|
||||
|
||||
SAY_SYLVANAS_INTRO_1 = 21,
|
||||
SAY_SYLVANAS_INTRO_2 = 22,
|
||||
SAY_SYLVANAS_INTRO_3 = 23,
|
||||
SAY_UTHER_INTRO_H2_1 = 24,
|
||||
SAY_SYLVANAS_INTRO_4 = 25,
|
||||
SAY_UTHER_INTRO_H2_2 = 26,
|
||||
SAY_SYLVANAS_INTRO_5 = 27,
|
||||
SAY_UTHER_INTRO_H2_3 = 28,
|
||||
SAY_SYLVANAS_INTRO_6 = 29,
|
||||
SAY_UTHER_INTRO_H2_4 = 30,
|
||||
SAY_SYLVANAS_INTRO_7 = 31,
|
||||
SAY_UTHER_INTRO_H2_5 = 32,
|
||||
SAY_UTHER_INTRO_H2_6 = 33,
|
||||
SAY_SYLVANAS_INTRO_8 = 34,
|
||||
SAY_UTHER_INTRO_H2_7 = 35,
|
||||
// Horde
|
||||
SAY_SYLVANAS_INTRO_1 = 0,
|
||||
SAY_SYLVANAS_INTRO_2 = 1,
|
||||
SAY_SYLVANAS_INTRO_3 = 2,
|
||||
SAY_UTHER_INTRO_H2_1 = 9,
|
||||
SAY_SYLVANAS_INTRO_4 = 3,
|
||||
SAY_UTHER_INTRO_H2_2 = 10,
|
||||
SAY_SYLVANAS_INTRO_5 = 4,
|
||||
SAY_UTHER_INTRO_H2_3 = 11,
|
||||
SAY_SYLVANAS_INTRO_6 = 5,
|
||||
SAY_UTHER_INTRO_H2_4 = 12,
|
||||
SAY_SYLVANAS_INTRO_7 = 6,
|
||||
SAY_UTHER_INTRO_H2_5 = 13,
|
||||
SAY_UTHER_INTRO_H2_6 = 14,
|
||||
SAY_SYLVANAS_INTRO_8 = 7,
|
||||
SAY_UTHER_INTRO_H2_7 = 15,
|
||||
|
||||
SAY_LK_INTRO_1 = 36,
|
||||
SAY_LK_INTRO_2 = 37,
|
||||
SAY_LK_INTRO_3 = 38,
|
||||
SAY_FALRIC_INTRO_1 = 39,
|
||||
SAY_MARWYN_INTRO_1 = 40,
|
||||
SAY_FALRIC_INTRO_2 = 41,
|
||||
// The Lich King Event
|
||||
SAY_LK_INTRO_1 = 0,
|
||||
SAY_LK_INTRO_2 = 1,
|
||||
SAY_LK_INTRO_3 = 2,
|
||||
SAY_FALRIC_INTRO_1 = 5,
|
||||
SAY_MARWYN_INTRO_1 = 5,
|
||||
SAY_FALRIC_INTRO_2 = 6,
|
||||
|
||||
SAY_JAINA_INTRO_END = 42,
|
||||
SAY_SYLVANAS_INTRO_END = 43,
|
||||
SAY_JAINA_INTRO_END = 11,
|
||||
SAY_SYLVANAS_INTRO_END = 8,
|
||||
|
||||
SAY_FROSTSWORN_GENERAL_AGGRO = 98,
|
||||
SAY_FROSTSWORN_GENERAL_DEATH = 99,
|
||||
// Wave mobs
|
||||
SAY_WAVE_DEATH = 0,
|
||||
|
||||
SAY_LK_AGGRO_HORDE = 100,
|
||||
SAY_LK_AGGRO_ALLY = 101,
|
||||
SAY_SYLVANAS_LEAVE = 102,
|
||||
SAY_JAINA_LEAVE = 103,
|
||||
SAY_LK_IW_1 = 104,
|
||||
SAY_LK_IW_2 = 105,
|
||||
SAY_LK_IW_3 = 106,
|
||||
SAY_LK_IW_4 = 107,
|
||||
SAY_LK_IW_1_SUMMON = 108,
|
||||
SAY_SYLVANAS_IW_1 = 109,
|
||||
SAY_SYLVANAS_IW_2 = 110,
|
||||
SAY_SYLVANAS_IW_3 = 111,
|
||||
SAY_SYLVANAS_IW_4 = 112,
|
||||
SAY_SYLVANAS_OPENING = 113,
|
||||
SAY_SYLVANAS_END = 114,
|
||||
SAY_LK_NOWHERE_TO_RUN = 115,
|
||||
SAY_FIRE_HORDE = 116,
|
||||
SAY_ONBOARD_HORDE = 117,
|
||||
SAY_FINAL_HORDE = 118,
|
||||
SAY_JAINA_IW_1 = 119,
|
||||
SAY_JAINA_IW_2 = 120,
|
||||
SAY_JAINA_IW_3 = 121,
|
||||
SAY_JAINA_IW_4 = 122,
|
||||
SAY_JAINA_OPENING = 123,
|
||||
SAY_JAINA_END = 124,
|
||||
SAY_FIRE_ALLY = 125,
|
||||
SAY_ONBOARD_ALLY = 126,
|
||||
SAY_FINAL_ALLY = 127,
|
||||
SAY_FINAL_ALLY_SECOND = 128,
|
||||
// Frostsworn General - Big add after Falrick and Marwyn
|
||||
SAY_FROSTSWORN_GENERAL_AGGRO = 0,
|
||||
SAY_FROSTSWORN_GENERAL_DEATH = 1,
|
||||
|
||||
SAY_BATTERED_HILT_HALT = 200,
|
||||
SAY_BATTERED_HILT_LEAP = 201,
|
||||
SAY_BATTERED_HILT_REALIZE = 202,
|
||||
SAY_BATTERED_HILT_PREPARE = 203,
|
||||
SAY_BATTERED_HILT_OUTRO1 = 204,
|
||||
SAY_BATTERED_HILT_OUTRO2 = 205,
|
||||
SAY_BATTERED_HILT_OUTRO3 = 206,
|
||||
SAY_BATTERED_HILT_OUTRO4 = 207,
|
||||
// Part 2
|
||||
// The Lich King Boss
|
||||
SAY_LK_AGGRO_ALLY = 0,
|
||||
SAY_LK_AGGRO_HORDE = 1,
|
||||
SAY_LK_IW_1 = 2,
|
||||
SAY_LK_IW_2 = 3,
|
||||
SAY_LK_IW_3 = 4,
|
||||
SAY_LK_IW_4 = 5,
|
||||
//SAY_LK_GHOUL = 6, // Unused
|
||||
//SAY_LK_ABON = 7, // Unused
|
||||
SAY_LK_WINTER = 8,
|
||||
SAY_LK_NOWHERE_TO_RUN = 9,
|
||||
|
||||
// Horde
|
||||
SAY_SYLVANA_AGGRO = 0,
|
||||
SAY_SYLVANAS_IW_1 = 1,
|
||||
SAY_SYLVANAS_IW_2 = 2,
|
||||
SAY_SYLVANAS_IW_3 = 3,
|
||||
SAY_SYLVANAS_IW_4 = 4,
|
||||
SAY_SYLVANA_ESCAPE_01 = 5,
|
||||
//SAY_SYLVANA_ESCAPE_02 = 6, // Unused
|
||||
SAY_SYLVANA_TRAP = 7,
|
||||
SAY_SYLVANA_FINAL = 8,
|
||||
|
||||
// (H) Ship Captain 30824
|
||||
SAY_FIRE_HORDE = 0,
|
||||
SAY_ONBOARD_HORDE = 1,
|
||||
|
||||
// Alliance
|
||||
SAY_JAINA_AGGRO = 0,
|
||||
SAY_JAINA_IW_1 = 1,
|
||||
SAY_JAINA_IW_2 = 2,
|
||||
SAY_JAINA_IW_3 = 3,
|
||||
SAY_JAINA_IW_4 = 4,
|
||||
SAY_JAINA_ESCAPE_01 = 5,
|
||||
SAY_JAINA_TRAP = 6,
|
||||
SAY_JAINA_FINAL_1 = 7,
|
||||
SAY_JAINA_FINAL_2 = 8,
|
||||
|
||||
// (A) Ship Captain 30344
|
||||
SAY_FIRE_ALLY = 0,
|
||||
SAY_ONBOARD_ALLY = 1,
|
||||
|
||||
// Battered Hilt - Quest: The Halls Of Reflection
|
||||
// Uther
|
||||
SAY_BATTERED_HILT_HALT = 16,
|
||||
EMOTE_QUEL_SPAWN = 0, // "Quel'Delar leeps to life in the presence of Frostmourne!"
|
||||
SAY_BATTERED_HILT_REALIZE = 17,
|
||||
EMOTE_QUEL_PREPARE = 1, // "Quel'Delar prepares to attack!"
|
||||
SAY_BATTERED_HILT_OUTRO1 = 18,
|
||||
SAY_BATTERED_HILT_OUTRO2 = 19,
|
||||
SAY_BATTERED_HILT_OUTRO3 = 20,
|
||||
SAY_BATTERED_HILT_OUTRO4 = 21,
|
||||
|
||||
// Marwin - Said when starting after a wipe
|
||||
EMOTE_MARWYN_INTRO_SPIRIT = 6,
|
||||
// Marwin - Wipe between wave 6 and 9
|
||||
SAY_MARWYN_WIPE_AFTER_FALRIC = 7,
|
||||
};
|
||||
|
||||
enum hMisc
|
||||
@@ -264,6 +293,9 @@ enum hMisc
|
||||
SPELL_SUMMON_LUMBERING_ABOMINATION = 69835,
|
||||
SPELL_GUNSHIP_CANNON_FIRE_PERIODIC = 70017,
|
||||
SPELL_ACHIEVEMENT_CHECK = 72830,
|
||||
|
||||
// Battered Hilt - Summon Quel'Delar
|
||||
SPELL_SUMMON_EVIL_QUEL = 69966,
|
||||
};
|
||||
|
||||
const uint32 allowedCompositions[8][5] =
|
||||
@@ -339,12 +371,12 @@ const Position CannonFirePos[2][3] =
|
||||
|
||||
const Position StairsPos[2][3] =
|
||||
{
|
||||
{
|
||||
{ // Alliance stairs
|
||||
{5226.36f, 1640.87f, 785.737f, 5.56137f},
|
||||
{5213.76f, 1626.21f, 798.068f, 5.56534f},
|
||||
{5213.76f, 1626.21f, 798.068f, 5.56534f}, /// @todo: Issue with the clipping on the top most part, probably needs a positional sniff.
|
||||
{0.0f, 0.0f, 0.0f, 0.0f}
|
||||
},
|
||||
{
|
||||
{ // Horde stairs
|
||||
{5233.61f, 1607.48f, 796.5f, 5.77774f},
|
||||
{5223.32f, 1589.24f, 809.0f, 5.76989f},
|
||||
{5243.42f, 1624.8f, 784.361f, 5.76592f}
|
||||
|
||||
@@ -40,10 +40,14 @@ public:
|
||||
_owner.AI()->Talk(SAY_BATTERED_HILT_HALT);
|
||||
break;
|
||||
case 3:
|
||||
_owner.CastSpell((Unit*)nullptr, 69966, true);
|
||||
_owner.CastSpell((Unit*)nullptr, SPELL_SUMMON_EVIL_QUEL, true);
|
||||
_owner.AI()->Talk(SAY_BATTERED_HILT_REALIZE);
|
||||
if (InstanceScript* instance = _owner.GetInstanceScript())
|
||||
instance->SetData(DATA_BATTERED_HILT, 4);
|
||||
if (Creature* quel = _owner.FindNearestCreature(NPC_QUEL_DELAR, 50))
|
||||
{
|
||||
quel->AI()->Talk(EMOTE_QUEL_SPAWN);
|
||||
}
|
||||
_owner.m_Events.AddEvent(new UtherBatteredHiltEvent(_owner, 4), _owner.m_Events.CalculateTime(3500));
|
||||
break;
|
||||
case 4:
|
||||
@@ -62,8 +66,13 @@ public:
|
||||
break;
|
||||
case 7:
|
||||
if (InstanceScript* instance = _owner.GetInstanceScript())
|
||||
{
|
||||
instance->SetData(DATA_BATTERED_HILT, 7);
|
||||
_owner.AI()->Talk(SAY_BATTERED_HILT_PREPARE);
|
||||
}
|
||||
if (Creature* quel = _owner.FindNearestCreature(NPC_QUEL_DELAR, 50))
|
||||
{
|
||||
quel->AI()->Talk(EMOTE_QUEL_PREPARE);
|
||||
}
|
||||
_owner.m_Events.AddEvent(new UtherBatteredHiltEvent(_owner, 8), _owner.m_Events.CalculateTime(4000));
|
||||
break;
|
||||
case 8:
|
||||
@@ -606,8 +615,7 @@ public:
|
||||
BatteredHiltStatus |= BHSF_THROWN;
|
||||
if (Creature* c = instance->GetCreature(NPC_UtherGUID))
|
||||
{
|
||||
c->AI()->Talk(SAY_BATTERED_HILT_LEAP);
|
||||
c->m_Events.AddEvent(new UtherBatteredHiltEvent(*c, 3), c->m_Events.CalculateTime(1500));
|
||||
c->m_Events.AddEvent(new UtherBatteredHiltEvent(*c, 3), c->m_Events.CalculateTime(5500));
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
@@ -980,7 +988,7 @@ public:
|
||||
{
|
||||
if (ResumeFirstEventTimer <= diff)
|
||||
{
|
||||
switch (ResumeFirstEventStep)
|
||||
switch (ResumeFirstEventStep) // After a wipe
|
||||
{
|
||||
case 0:
|
||||
if (Creature* pFalric = instance->GetCreature(NPC_FalricGUID))
|
||||
@@ -1007,14 +1015,27 @@ public:
|
||||
a->SetDuration(8000);
|
||||
}
|
||||
|
||||
pMarwyn->TextEmote("Spirits appear and surround the altar!", nullptr, true);
|
||||
pMarwyn->AI()->Talk(EMOTE_MARWYN_INTRO_SPIRIT);
|
||||
}
|
||||
++ResumeFirstEventStep;
|
||||
ResumeFirstEventTimer = 7500;
|
||||
break;
|
||||
case 1:
|
||||
if (Creature* pFalric = instance->GetCreature(NPC_FalricGUID))
|
||||
pFalric->AI()->Talk(SAY_FALRIC_INTRO_2);
|
||||
{
|
||||
if (pFalric->IsAlive())
|
||||
{
|
||||
pFalric->AI()->Talk(SAY_FALRIC_INTRO_2); // Between wave 1 and 4
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Creature* marwyn = instance->GetCreature(NPC_MarwynGUID))
|
||||
{
|
||||
marwyn->AI()->Talk(SAY_MARWYN_WIPE_AFTER_FALRIC); // Between wave 6 and 9
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetData(ACTION_SHOW_TRASH, 1);
|
||||
ResumeFirstEventStep = 0;
|
||||
ResumeFirstEventTimer = 0;
|
||||
@@ -1154,7 +1175,7 @@ public:
|
||||
break;
|
||||
case 9:
|
||||
if (Creature* c = instance->GetCreature(NPC_LeaderGUID))
|
||||
c->AI()->Talk(TeamIdInInstance == TEAM_ALLIANCE ? SAY_FINAL_ALLY : SAY_FINAL_HORDE);
|
||||
c->AI()->Talk(TeamIdInInstance == TEAM_ALLIANCE ? SAY_JAINA_FINAL_1 : SAY_SYLVANA_FINAL);
|
||||
HandleGameObject(GO_CaveInGUID, true);
|
||||
++outroStep;
|
||||
outroTimer = 11000;
|
||||
@@ -1168,7 +1189,7 @@ public:
|
||||
if (TeamIdInInstance == TEAM_ALLIANCE)
|
||||
if (Creature* c = instance->GetCreature(NPC_LeaderGUID))
|
||||
{
|
||||
c->AI()->Talk(SAY_FINAL_ALLY_SECOND);
|
||||
c->AI()->Talk(SAY_JAINA_FINAL_2);
|
||||
outroTimer = 10000;
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user