aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp394
1 files changed, 45 insertions, 349 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index ba35f642194..95d9b3bd9dd 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -562,62 +562,19 @@ public:
//used by 29032, 29061, 29065, 29067, 29068, 29070, 29074, 29072, 29073, 29071 but signed for 29032
enum SpecialSurprise
{
- SAY_EXEC_START_1 = 0, // speech for all
- SAY_EXEC_START_2 = 1,
- SAY_EXEC_START_3 = 2,
- SAY_EXEC_PROG_1 = 3,
- SAY_EXEC_PROG_2 = 4,
- SAY_EXEC_PROG_3 = 5,
- SAY_EXEC_PROG_4 = 6,
- SAY_EXEC_PROG_5 = 7,
- SAY_EXEC_PROG_6 = 8,
- SAY_EXEC_PROG_7 = 9,
- SAY_EXEC_NAME_1 = 10,
- SAY_EXEC_NAME_2 = 11,
- SAY_EXEC_RECOG_1 = 12,
- SAY_EXEC_RECOG_2 = 13,
- SAY_EXEC_RECOG_3 = 14,
- SAY_EXEC_RECOG_4 = 15,
- SAY_EXEC_RECOG_5 = 16,
- SAY_EXEC_RECOG_6 = 17,
- SAY_EXEC_NOREM_1 = 18,
- SAY_EXEC_NOREM_2 = 19,
- SAY_EXEC_NOREM_3 = 20,
- SAY_EXEC_NOREM_4 = 21,
- SAY_EXEC_NOREM_5 = 22,
- SAY_EXEC_NOREM_6 = 23,
- SAY_EXEC_NOREM_7 = 24,
- SAY_EXEC_NOREM_8 = 25,
- SAY_EXEC_NOREM_9 = 26,
- SAY_EXEC_THINK_1 = 27,
- SAY_EXEC_THINK_2 = 28,
- SAY_EXEC_THINK_3 = 29,
- SAY_EXEC_THINK_4 = 30,
- SAY_EXEC_THINK_5 = 31,
- SAY_EXEC_THINK_6 = 32,
- SAY_EXEC_THINK_7 = 33,
- SAY_EXEC_THINK_8 = 34,
- SAY_EXEC_THINK_9 = 35,
- SAY_EXEC_THINK_10 = 36,
- SAY_EXEC_LISTEN_1 = 37,
- SAY_EXEC_LISTEN_2 = 38,
- SAY_EXEC_LISTEN_3 = 39,
- SAY_EXEC_LISTEN_4 = 40,
- SAY_PLAGUEFIST = 41,
- SAY_EXEC_TIME_1 = 42,
- SAY_EXEC_TIME_2 = 43,
- SAY_EXEC_TIME_3 = 44,
- SAY_EXEC_TIME_4 = 45,
- SAY_EXEC_TIME_5 = 46,
- SAY_EXEC_TIME_6 = 47,
- SAY_EXEC_TIME_7 = 48,
- SAY_EXEC_TIME_8 = 49,
- SAY_EXEC_TIME_9 = 50,
- SAY_EXEC_TIME_10 = 51,
- SAY_EXEC_WAITING = 52,
- EMOTE_DIES = 53,
-
- NPC_PLAGUEFIST = 29053
+ SAY_EXEC_START = 0,
+ SAY_EXEC_PROG = 1,
+ SAY_EXEC_NAME = 2,
+ SAY_EXEC_RECOG = 3,
+ SAY_EXEC_NOREM = 4,
+ SAY_EXEC_THINK = 5,
+ SAY_EXEC_LISTEN = 6,
+ SAY_EXEC_TIME = 7,
+ SAY_EXEC_WAITING = 8,
+ EMOTE_DIES = 9,
+
+ SAY_PLAGUEFIST = 0,
+ NPC_PLAGUEFIST = 29053
};
class npc_a_special_surprise : public CreatureScript
@@ -728,310 +685,49 @@ public:
return;
}
- /// @todo simplify text's selection
-
- switch (player->getRace())
+ switch (ExecuteSpeech_Counter)
{
- case RACE_HUMAN:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_5, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player); break;
- case 5: Talk(SAY_EXEC_NOREM_5, player); break;
- case 6: Talk(SAY_EXEC_THINK_7, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_6, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 0:
+ Talk(SAY_EXEC_START, player);
break;
- case RACE_ORC:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_6, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player); break;
- case 5: Talk(SAY_EXEC_NOREM_7, player); break;
- case 6: Talk(SAY_EXEC_THINK_8, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_8, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 1:
+ me->SetStandState(UNIT_STAND_STATE_STAND);
break;
- case RACE_DWARF:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_2, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_2, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_3, player); break;
- case 5: Talk(SAY_EXEC_NOREM_2, player); break;
- case 6: Talk(SAY_EXEC_THINK_5, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_2, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_3, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 2:
+ Talk(SAY_EXEC_PROG, player);
break;
- case RACE_NIGHTELF:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_5, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player); break;
- case 5: Talk(SAY_EXEC_NOREM_6, player); break;
- case 6: Talk(SAY_EXEC_THINK_2, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_7, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 3:
+ Talk(SAY_EXEC_NAME, player);
break;
- case RACE_UNDEAD_PLAYER:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_3, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_4, player); break;
- case 5: Talk(SAY_EXEC_NOREM_3, player); break;
- case 6: Talk(SAY_EXEC_THINK_1, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_3, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_4, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 4:
+ Talk(SAY_EXEC_RECOG, player);
break;
- case RACE_TAUREN:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_1, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_5, player); break;
- case 5: Talk(SAY_EXEC_NOREM_8, player); break;
- case 6: Talk(SAY_EXEC_THINK_9, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_9, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 5:
+ Talk(SAY_EXEC_NOREM, player);
break;
- case RACE_GNOME:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_4, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player); break;
- case 5: Talk(SAY_EXEC_NOREM_4, player); break;
- case 6: Talk(SAY_EXEC_THINK_6, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_5, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 6:
+ Talk(SAY_EXEC_THINK, player);
break;
- case RACE_TROLL:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_3, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_7, player); break;
- case 3: Talk(SAY_EXEC_NAME_2, player); break;
- case 4: Talk(SAY_EXEC_RECOG_6, player); break;
- case 5: Talk(SAY_EXEC_NOREM_9, player); break;
- case 6: Talk(SAY_EXEC_THINK_10, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_4, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_10, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 7:
+ Talk(SAY_EXEC_LISTEN, player);
break;
- case RACE_BLOODELF:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_1, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player); break;
- //case 5: //unknown
- case 6: Talk(SAY_EXEC_THINK_3, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_1, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 8:
+ if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
- case RACE_DRAENEI:
- switch (ExecuteSpeech_Counter)
- {
- case 0: Talk(SAY_EXEC_START_1, player); break;
- case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_1, player); break;
- case 3: Talk(SAY_EXEC_NAME_1, player); break;
- case 4: Talk(SAY_EXEC_RECOG_2, player); break;
- case 5: Talk(SAY_EXEC_NOREM_1, player); break;
- case 6: Talk(SAY_EXEC_THINK_4, player); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
- case 8:
- if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
- break;
- case 9:
- Talk(SAY_EXEC_TIME_2, player);
- me->SetStandState(UNIT_STAND_STATE_KNEEL);
- me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
- break;
- case 10:
- Talk(SAY_EXEC_WAITING, player);
- break;
- case 11:
- Talk(EMOTE_DIES);
- me->setDeathState(JUST_DIED);
- me->SetHealth(0);
- return;
- }
+ case 9:
+ Talk(SAY_EXEC_TIME, player);
+ me->SetStandState(UNIT_STAND_STATE_KNEEL);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
+ break;
+ case 10:
+ Talk(SAY_EXEC_WAITING, player);
break;
+ case 11:
+ Talk(EMOTE_DIES);
+ me->setDeathState(JUST_DIED);
+ me->SetHealth(0);
+ return;
}
if (ExecuteSpeech_Counter >= 9)