aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp25
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp12
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp26
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp39
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp39
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp8
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp175
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h1
8 files changed, 174 insertions, 151 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index b3b9801fd00..1019deac106 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -37,15 +37,17 @@ EndScriptData */
enum Yells
{
- SAY_INTRO = -1649055,
- SAY_AGGRO = -1649056,
- SAY_KILL1 = -1649057,
- SAY_KILL2 = -1649058,
- SAY_DEATH = -1649059,
- EMOTE_SPIKE = -1649060,
- SAY_BURROWER = -1649061,
- EMOTE_LEECHING_SWARM = -1649062,
- SAY_LEECHING_SWARM = -1649063,
+ SAY_INTRO = 0,
+ SAY_AGGRO = 1,
+ EMOTE_SUBMERGE = 2,
+ EMOTE_BURROWER = 3,
+ SAY_EMERGE = 4,
+ SAY_LEECHING_SWARM = 5,
+ EMOTE_LEECHING_SWARM = 6,
+ SAY_KILL_PLAYER = 7,
+ SAY_DEATH = 8,
+
+ EMOTE_SPIKE = 0,
};
enum Summons
@@ -195,7 +197,7 @@ public:
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
- DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me);
+ Talk(SAY_KILL_PLAYER);
if (instance)
instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
@@ -321,7 +323,7 @@ public:
DoCast(me, SPELL_SUBMERGE_ANUBARAK);
DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
- DoScriptText(SAY_BURROWER, me);
+ Talk(EMOTE_BURROWER);
m_uiScarabSummoned = 0;
m_uiSummonScarabTimer = 4*IN_MILLISECONDS;
m_uiStage = 2;
@@ -669,6 +671,7 @@ public:
{
m_uiTargetGUID = who->GetGUID();
DoCast(who, SPELL_MARK);
+ Talk(EMOTE_SPIKE, who->GetGUID());
me->SetSpeed(MOVE_RUN, 0.5f);
m_uiSpeed = 0;
m_uiIncreaseSpeedTimer = 1*IN_MILLISECONDS;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index 3b0aeb958cb..c662daf3671 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -33,10 +33,9 @@ EndScriptData */
#include "SpellAuraEffects.h"
#include "trial_of_the_crusader.h"
-enum eYell
+enum Yells
{
- SAY_GARROSH_KILL_ALLIANCE_PLAYER4 = -1649118,
- SAY_VARIAN_KILL_HORDE_PLAYER4 = -1649123,
+ SAY_KILL_PLAYER = 6,
};
enum eAIs
@@ -359,11 +358,12 @@ struct boss_faction_championsAI : public ScriptedAI
if (TeamInInstance == ALLIANCE)
{
if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_VARIAN)))
- DoScriptText(SAY_VARIAN_KILL_HORDE_PLAYER4+urand(0, 3), temp); // + cause we are on negative
+ temp->AI()->Talk(SAY_KILL_PLAYER);
}
else
- if (Creature* temp = me->FindNearestCreature(NPC_GARROSH, 300.f))
- DoScriptText(SAY_GARROSH_KILL_ALLIANCE_PLAYER4+urand(0, 3), temp); // + cause we are on negative
+ if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_GARROSH)))
+ temp->AI()->Talk(SAY_KILL_PLAYER);
+
instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 4e791dfc22f..f9e2080895a 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -36,16 +36,18 @@ EndScriptData */
enum Yells
{
- SAY_INTRO = -1649030,
- SAY_AGGRO = -1649031,
- SAY_DEATH = -1649032,
- EMOTE_INCINERATE = -1649033,
- SAY_INCINERATE = -1649034,
- EMOTE_LEGION_FLAME = -1649035,
- EMOTE_NETHER_PORTAL = -1649036,
- SAY_NETHER_PORTAL = -1649037,
- EMOTE_INFERNAL_ERUPTION = -1649038,
- SAY_INFERNAL_ERUPTION = -1649039,
+ SAY_INTRO = 0,
+ SAY_AGGRO = 1,
+ EMOTE_LEGION_FLAME = 2,
+ EMOTE_NETHER_PORTAL = 3,
+ SAY_MISTRESS_OF_PAIN = 4,
+ EMOTE_INCINERATE = 5,
+ SAY_INCINERATE = 6,
+ EMOTE_INFERNAL_ERUPTION = 7,
+ SAY_INFERNAL_ERUPTION = 8,
+ SAY_KILL_PLAYER = 9,
+ SAY_DEATH = 10,
+ SAY_BERSERK = 11,
};
enum Equipment
@@ -192,8 +194,8 @@ public:
if (m_uiSummonNetherPortalTimer <= uiDiff)
{
- DoScriptText(EMOTE_NETHER_PORTAL, me);
- DoScriptText(SAY_NETHER_PORTAL, me);
+ Talk(EMOTE_NETHER_PORTAL);
+ Talk(SAY_MISTRESS_OF_PAIN);
DoCast(SPELL_NETHER_PORTAL);
m_uiSummonNetherPortalTimer = 2*MINUTE*IN_MILLISECONDS;
} else m_uiSummonNetherPortalTimer -= uiDiff;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 6c69ccbc72d..8dd4f7dad3e 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -35,16 +35,16 @@ EndScriptData */
enum Yells
{
- //Gormok
- SAY_SNOBOLLED = -1649000,
- //Acidmaw & Dreadscale
- SAY_SUBMERGE = -1649010,
- SAY_EMERGE = -1649011,
- SAY_BERSERK = -1649012,
- //Icehowl
- SAY_TRAMPLE_STARE = -1649020,
- SAY_TRAMPLE_FAIL = -1649021,
- SAY_TRAMPLE_START = -1649022,
+ // Gormok
+ EMOTE_SNOBOLLED = 0,
+
+ // Acidmaw & Dreadscale
+ EMOTE_ENRAGE = 0,
+
+ // Icehowl
+ EMOTE_TRAMPLE_START = 0,
+ EMOTE_TRAMPLE_CRASH = 1,
+ EMOTE_TRAMPLE_FAIL = 2,
};
enum Equipment
@@ -239,7 +239,7 @@ public:
if (m_uiSummonCount > 0)
{
me->SummonCreature(NPC_SNOBOLD_VASSAL, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_CORPSE_DESPAWN);
- DoScriptText(SAY_SNOBOLLED, me);
+ Talk(EMOTE_SNOBOLLED);
}
m_uiSummonTimer = urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS);
} else m_uiSummonTimer -= diff;
@@ -460,12 +460,11 @@ struct boss_jormungarAI : public ScriptedAI
if (instanceScript && instanceScript->GetData(TYPE_NORTHREND_BEASTS) == SNAKES_SPECIAL && !enraged)
{
- DoScriptText(SAY_EMERGE, me);
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
DoCast(SPELL_ENRAGE);
enraged = true;
- DoScriptText(SAY_BERSERK, me);
+ Talk(EMOTE_ENRAGE);
switch (stage)
{
case 0:
@@ -512,7 +511,6 @@ struct boss_jormungarAI : public ScriptedAI
case 1: // Submerge
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
DoCast(me, SPELL_SUBMERGE_0);
- DoScriptText(SAY_SUBMERGE, me);
me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX()+ frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ());
stage = 2;
case 2: // Wait til emerge
@@ -524,7 +522,6 @@ struct boss_jormungarAI : public ScriptedAI
break;
case 3: // Emerge
me->SetDisplayId(modelStationary);
- DoScriptText(SAY_EMERGE, me);
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
DoCast(me, SPELL_EMERGE_0);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
@@ -558,7 +555,6 @@ struct boss_jormungarAI : public ScriptedAI
case 5: // Submerge
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
DoCast(me, SPELL_SUBMERGE_0);
- DoScriptText(SAY_SUBMERGE, me);
me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ());
stage = 6;
case 6: // Wait til emerge
@@ -570,7 +566,6 @@ struct boss_jormungarAI : public ScriptedAI
break;
case 7: // Emerge
me->SetDisplayId(modelMobile);
- DoScriptText(SAY_EMERGE, me);
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
DoCast(me, SPELL_EMERGE_0);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
@@ -925,7 +920,6 @@ public:
{
m_uiTrampleTargetGUID = target->GetGUID();
me->SetTarget(m_uiTrampleTargetGUID);
- DoScriptText(SAY_TRAMPLE_STARE, me, target);
m_bTrampleCasted = false;
SetCombatMovement(false);
me->GetMotionMaster()->MoveIdle();
@@ -953,7 +947,7 @@ public:
} else m_uiTrampleTimer -= diff;
break;
case 4:
- DoScriptText(SAY_TRAMPLE_START, me);
+ Talk(EMOTE_TRAMPLE_START, m_uiTrampleTargetGUID);
me->GetMotionMaster()->MoveCharge(m_fTrampleTargetX, m_fTrampleTargetY, m_fTrampleTargetZ+2, 42, 1);
me->SetTarget(0);
m_uiStage = 5;
@@ -985,7 +979,12 @@ public:
if (!m_bTrampleCasted)
{
DoCast(me, SPELL_STAGGERED_DAZE);
- DoScriptText(SAY_TRAMPLE_FAIL, me);
+ Talk(EMOTE_TRAMPLE_CRASH);
+ }
+ else
+ {
+ DoCast(me, SPELL_FROTHING_RAGE, true);
+ Talk(EMOTE_TRAMPLE_FAIL);
}
m_bMovementStarted = false;
me->GetMotionMaster()->MovementExpired();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 4cfe4f61dbb..203e49420be 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -40,17 +40,15 @@ EndScriptData */
enum Yells
{
- SAY_AGGRO = -1649040,
- SAY_DEATH = -1649041,
- SAY_BERSERK = -1649042,
- EMOTE_SHIELD = -1649043,
- SAY_SHIELD = -1649044,
- SAY_KILL1 = -1649045,
- SAY_KILL2 = -1649046,
- EMOTE_LIGHT_VORTEX = -1649047,
- SAY_LIGHT_VORTEX = -1649048,
- EMOTE_DARK_VORTEX = -1649049,
- SAY_DARK_VORTEX = -1649050,
+ SAY_AGGRO = 0,
+ SAY_NIGHT = 1,
+ SAY_LIGHT = 2,
+ EMOTE_VORTEX = 3,
+ EMOTE_TWINK_PACT = 4,
+ SAY_TWINK_PACT = 5,
+ SAY_KILL_PLAYER = 6,
+ SAY_BERSERK = 7,
+ SAY_DEATH = 8,
};
enum Equipment
@@ -167,7 +165,6 @@ struct boss_twin_baseAI : public ScriptedAI
uint32 m_uiTouchTimer;
uint32 m_uiBerserkTimer;
- int32 m_uiVortexSay;
int32 m_uiVortexEmote;
uint32 m_uiSisterNpcId;
uint32 m_uiMyEmphatySpellId;
@@ -179,7 +176,8 @@ struct boss_twin_baseAI : public ScriptedAI
uint32 m_uiSpikeSpellId;
uint32 m_uiTouchSpellId;
- void Reset() {
+ void Reset()
+ {
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
me->SetReactState(REACT_PASSIVE);
me->ModifyAuraState(m_uiAuraState, true);
@@ -224,7 +222,7 @@ struct boss_twin_baseAI : public ScriptedAI
{
if (who->GetTypeId() == TYPEID_PLAYER)
{
- DoScriptText(urand(0, 1) ? SAY_KILL1 : SAY_KILL2, me);
+ Talk(SAY_KILL_PLAYER);
if (instance)
instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
}
@@ -336,8 +334,7 @@ struct boss_twin_baseAI : public ScriptedAI
{
if (Creature* pSister = GetSister())
pSister->AI()->DoAction(ACTION_VORTEX);
- DoScriptText(m_uiVortexEmote, me);
- DoScriptText(m_uiVortexSay, me);
+ Talk(m_uiVortexEmote);
DoCastAOE(m_uiVortexSpellId);
m_uiStage = 0;
m_uiSpecialAbilityTimer = MINUTE*IN_MILLISECONDS;
@@ -348,8 +345,8 @@ struct boss_twin_baseAI : public ScriptedAI
case 2: // Shield+Pact
if (m_uiSpecialAbilityTimer <= uiDiff)
{
- DoScriptText(EMOTE_SHIELD, me);
- DoScriptText(SAY_SHIELD, me);
+ Talk(EMOTE_TWINK_PACT);
+ Talk(SAY_TWINK_PACT);
if (Creature* pSister = GetSister())
{
pSister->AI()->DoAction(ACTION_PACT);
@@ -426,8 +423,7 @@ public:
m_uiStage = 0;
m_uiWeapon = EQUIP_MAIN_1;
m_uiAuraState = AURA_STATE_UNKNOWN22;
- m_uiVortexEmote = EMOTE_LIGHT_VORTEX;
- m_uiVortexSay = SAY_LIGHT_VORTEX;
+ m_uiVortexEmote = EMOTE_VORTEX;
m_uiSisterNpcId = NPC_DARKBANE;
m_uiMyEmphatySpellId = SPELL_TWIN_EMPATHY_DARK;
m_uiOtherEssenceSpellId = SPELL_DARK_ESSENCE_HELPER;
@@ -496,8 +492,7 @@ public:
m_uiStage = 1;
m_uiWeapon = EQUIP_MAIN_2;
m_uiAuraState = AURA_STATE_UNKNOWN19;
- m_uiVortexEmote = EMOTE_DARK_VORTEX;
- m_uiVortexSay = SAY_DARK_VORTEX;
+ m_uiVortexEmote = EMOTE_VORTEX;
m_uiSisterNpcId = NPC_LIGHTBANE;
m_uiMyEmphatySpellId = SPELL_TWIN_EMPATHY_LIGHT;
m_uiOtherEssenceSpellId = SPELL_LIGHT_ESSENCE_HELPER;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
index 4dfe5708025..3fb76ea52dc 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
@@ -47,6 +47,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
uint64 BarrentGUID;
uint64 TirionGUID;
+ uint64 TirionFordringGUID;
uint64 FizzlebangGUID;
uint64 GarroshGUID;
uint64 VarianGUID;
@@ -85,6 +86,8 @@ class instance_trial_of_the_crusader : public InstanceMapScript
TrialCounter = 50;
EventStage = 0;
+ TirionFordringGUID = 0;
+
TributeChestGUID = 0;
MainGateDoorGUID = 0;
@@ -147,6 +150,9 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case NPC_TIRION:
TirionGUID = creature->GetGUID();
break;
+ case NPC_TIRION_FORDRING:
+ TirionFordringGUID = creature->GetGUID();
+ break;
case NPC_FIZZLEBANG:
FizzlebangGUID = creature->GetGUID();
break;
@@ -422,6 +428,8 @@ class instance_trial_of_the_crusader : public InstanceMapScript
return BarrentGUID;
case NPC_TIRION:
return TirionGUID;
+ case NPC_TIRION_FORDRING:
+ return TirionFordringGUID;
case NPC_FIZZLEBANG:
return FizzlebangGUID;
case NPC_GARROSH:
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index 4ad93c0afe1..2a8eab0040a 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -34,45 +34,58 @@ EndScriptData */
enum eYells
{
- SAY_STAGE_0_01 = -1649070,
- SAY_STAGE_0_02 = -1649071,
- SAY_STAGE_0_03a = -1649072,
- SAY_STAGE_0_03h = -1649073,
- SAY_STAGE_0_04 = -1649074,
- SAY_STAGE_0_05 = -1649075,
- SAY_STAGE_0_06 = -1649076,
- SAY_STAGE_0_WIPE = -1649077,
- SAY_STAGE_1_01 = -1649080,
- SAY_STAGE_1_02 = -1649081,
- SAY_STAGE_1_03 = -1649082,
- SAY_STAGE_1_04 = -1649083,
- SAY_STAGE_1_05 = -1649030, //INTRO Jaraxxus
- SAY_STAGE_1_06 = -1649084,
- SAY_STAGE_1_07 = -1649086,
- SAY_STAGE_1_08 = -1649087,
- SAY_STAGE_1_09 = -1649088,
- SAY_STAGE_1_10 = -1649089,
- SAY_STAGE_1_11 = -1649090,
- SAY_STAGE_2_01 = -1649091,
- SAY_STAGE_2_02a = -1649092,
- SAY_STAGE_2_02h = -1649093,
- SAY_STAGE_2_03 = -1649094,
- SAY_STAGE_2_04a = -1649095,
- SAY_STAGE_2_04h = -1649096,
- SAY_STAGE_2_05a = -1649097,
- SAY_STAGE_2_05h = -1649098,
- SAY_STAGE_2_06 = -1649099,
- SAY_STAGE_3_01 = -1649100,
- SAY_STAGE_3_02 = -1649101,
- SAY_STAGE_3_03a = -1649102,
- SAY_STAGE_3_03h = -1649103,
- SAY_STAGE_4_01 = -1649104,
- SAY_STAGE_4_02 = -1649105,
- SAY_STAGE_4_03 = -1649106,
- SAY_STAGE_4_04 = -1649107,
- SAY_STAGE_4_05 = -1649108,
- SAY_STAGE_4_06 = -1649109,
- SAY_STAGE_4_07 = -1649110,
+ // Highlord Tirion Fordring - 34996
+ SAY_STAGE_0_01 = 0,
+ SAY_STAGE_0_02 = 1,
+ SAY_STAGE_0_04 = 2,
+ SAY_STAGE_0_05 = 3,
+ SAY_STAGE_0_06 = 4,
+ SAY_STAGE_0_WIPE = 5,
+ SAY_STAGE_1_01 = 6,
+ SAY_STAGE_1_07 = 7,
+ SAY_STAGE_1_08 = 8,
+ SAY_STAGE_1_11 = 9,
+ SAY_STAGE_2_01 = 10,
+ SAY_STAGE_2_03 = 11,
+ SAY_STAGE_2_06 = 12,
+ SAY_STAGE_3_01 = 13,
+ SAY_STAGE_3_02 = 14,
+ SAY_STAGE_4_01 = 15,
+ SAY_STAGE_4_03 = 16,
+
+ // Varian Wrynn
+ SAY_STAGE_0_03a = 0,
+ SAY_STAGE_1_10 = 1,
+ SAY_STAGE_2_02a = 2,
+ SAY_STAGE_2_04a = 3,
+ SAY_STAGE_2_05a = 4,
+ SAY_STAGE_3_03a = 5,
+
+ // Garrosh
+ SAY_STAGE_0_03h = 0,
+ SAY_STAGE_1_09 = 1,
+ SAY_STAGE_2_02h = 2,
+ SAY_STAGE_2_04h = 3,
+ SAY_STAGE_2_05h = 4,
+ SAY_STAGE_3_03h = 5,
+
+ // Wilfred Fizzlebang
+ SAY_STAGE_1_02 = 0,
+ SAY_STAGE_1_03 = 1,
+ SAY_STAGE_1_04 = 2,
+ SAY_STAGE_1_06 = 3,
+
+ // Lord Jaraxxus
+ SAY_STAGE_1_05 = 0,
+
+ // The Lich King
+ SAY_STAGE_4_02 = 0,
+ SAY_STAGE_4_05 = 1,
+ SAY_STAGE_4_04 = 2,
+
+ // Highlord Tirion Fordring - 36095
+ SAY_STAGE_4_06 = 0,
+ SAY_STAGE_4_07 = 1,
};
struct _Messages
@@ -289,13 +302,13 @@ class boss_lich_king_toc : public CreatureScript
switch (instance->GetData(TYPE_EVENT))
{
case 5010:
- DoScriptText(SAY_STAGE_4_02, me);
+ Talk(SAY_STAGE_4_02);
m_uiUpdateTimer = 3000;
me->GetMotionMaster()->MovePoint(0, LichKingLoc[0]);
instance->SetData(TYPE_EVENT, 5020);
break;
case 5030:
- DoScriptText(SAY_STAGE_4_04, me);
+ Talk(SAY_STAGE_4_04);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
m_uiUpdateTimer = 10000;
instance->SetData(TYPE_EVENT, 5040);
@@ -312,7 +325,7 @@ class boss_lich_king_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 5060);
break;
case 5060:
- DoScriptText(SAY_STAGE_4_05, me);
+ Talk(SAY_STAGE_4_05);
me->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
m_uiUpdateTimer = 2500;
instance->SetData(TYPE_EVENT, 5070);
@@ -371,7 +384,7 @@ class npc_fizzlebang_toc : public CreatureScript
void JustDied(Unit* killer)
{
- DoScriptText(SAY_STAGE_1_06, me, killer);
+ Talk(SAY_STAGE_1_06, killer->GetGUID());
instance->SetData(TYPE_EVENT, 1180);
if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
{
@@ -430,13 +443,13 @@ class npc_fizzlebang_toc : public CreatureScript
m_uiUpdateTimer = 4000;
break;
case 1120:
- DoScriptText(SAY_STAGE_1_02, me);
+ Talk(SAY_STAGE_1_02);
instance->SetData(TYPE_EVENT, 1130);
m_uiUpdateTimer = 12000;
break;
case 1130:
me->GetMotionMaster()->MovementExpired();
- DoScriptText(SAY_STAGE_1_03, me);
+ Talk(SAY_STAGE_1_03);
me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST_OMNI);
if (Unit* pTrigger = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 4.69494f, TEMPSUMMON_MANUAL_DESPAWN))
{
@@ -470,7 +483,7 @@ class npc_fizzlebang_toc : public CreatureScript
m_uiUpdateTimer = 3000;
break;
case 1140:
- DoScriptText(SAY_STAGE_1_04, me);
+ Talk(SAY_STAGE_1_04);
if (Creature* temp = me->SummonCreature(NPC_JARAXXUS, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 5.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME))
{
temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -492,7 +505,7 @@ class npc_fizzlebang_toc : public CreatureScript
break;
case 1144:
if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_JARAXXUS)))
- DoScriptText(SAY_STAGE_1_05, temp);
+ temp->AI()->Talk(SAY_STAGE_1_05);
instance->SetData(TYPE_EVENT, 1150);
m_uiUpdateTimer = 5000;
break;
@@ -555,13 +568,13 @@ class npc_tirion_toc : public CreatureScript
{
case 110:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
- DoScriptText(SAY_STAGE_0_01, me);
+ Talk(SAY_STAGE_0_01);
m_uiUpdateTimer = 22000;
instance->SetData(TYPE_EVENT, 120);
break;
case 140:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
- DoScriptText(SAY_STAGE_0_02, me);
+ Talk(SAY_STAGE_0_02);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 150);
break;
@@ -587,7 +600,7 @@ class npc_tirion_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 160);
break;
case 200:
- DoScriptText(SAY_STAGE_0_04, me);
+ Talk(SAY_STAGE_0_04);
m_uiUpdateTimer = 8000;
instance->SetData(TYPE_EVENT, 205);
break;
@@ -619,7 +632,7 @@ class npc_tirion_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 230);
break;
case 300:
- DoScriptText(SAY_STAGE_0_05, me);
+ Talk(SAY_STAGE_0_05);
m_uiUpdateTimer = 8000;
instance->SetData(TYPE_EVENT, 305);
break;
@@ -646,54 +659,54 @@ class npc_tirion_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 320);
break;
case 400:
- DoScriptText(SAY_STAGE_0_06, me);
+ Talk(SAY_STAGE_0_06);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 0);
break;
case 666:
- DoScriptText(SAY_STAGE_0_WIPE, me);
+ Talk(SAY_STAGE_0_WIPE);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 0);
break;
case 1010:
- DoScriptText(SAY_STAGE_1_01, me);
+ Talk(SAY_STAGE_1_01);
m_uiUpdateTimer = 7000;
instance->DoUseDoorOrButton(instance->GetData64(GO_MAIN_GATE_DOOR));
me->SummonCreature(NPC_FIZZLEBANG, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 2, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
instance->SetData(TYPE_EVENT, 0);
break;
case 1180:
- DoScriptText(SAY_STAGE_1_07, me);
+ Talk(SAY_STAGE_1_07);
m_uiUpdateTimer = 3000;
instance->SetData(TYPE_EVENT, 0);
break;
case 2000:
- DoScriptText(SAY_STAGE_1_08, me);
+ Talk(SAY_STAGE_1_08);
m_uiUpdateTimer = 18000;
instance->SetData(TYPE_EVENT, 2010);
break;
case 2030:
- DoScriptText(SAY_STAGE_1_11, me);
+ Talk(SAY_STAGE_1_11);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 0);
break;
case 3000:
- DoScriptText(SAY_STAGE_2_01, me);
+ Talk(SAY_STAGE_2_01);
m_uiUpdateTimer = 12000;
instance->SetData(TYPE_EVENT, 3050);
break;
case 3001:
- DoScriptText(SAY_STAGE_2_01, me);
+ Talk(SAY_STAGE_2_01);
m_uiUpdateTimer = 12000;
instance->SetData(TYPE_EVENT, 3051);
break;
case 3060:
- DoScriptText(SAY_STAGE_2_03, me);
+ Talk(SAY_STAGE_2_03);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 3070);
break;
case 3061:
- DoScriptText(SAY_STAGE_2_03, me);
+ Talk(SAY_STAGE_2_03);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 3071);
break;
@@ -718,17 +731,17 @@ class npc_tirion_toc : public CreatureScript
break;
//Crusaders battle end
case 3100:
- DoScriptText(SAY_STAGE_2_06, me);
+ Talk(SAY_STAGE_2_06);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 0);
break;
case 4000:
- DoScriptText(SAY_STAGE_3_01, me);
+ Talk(SAY_STAGE_3_01);
m_uiUpdateTimer = 13000;
instance->SetData(TYPE_EVENT, 4010);
break;
case 4010:
- DoScriptText(SAY_STAGE_3_02, me);
+ Talk(SAY_STAGE_3_02);
if (Creature* temp = me->SummonCreature(NPC_LIGHTBANE, ToCSpawnLoc[1].GetPositionX(), ToCSpawnLoc[1].GetPositionY(), ToCSpawnLoc[1].GetPositionZ(), 5, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME))
{
temp->SetVisible(false);
@@ -769,7 +782,7 @@ class npc_tirion_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 5000);
break;
case 5000:
- DoScriptText(SAY_STAGE_4_01, me);
+ Talk(SAY_STAGE_4_01);
m_uiUpdateTimer = 10000;
instance->SetData(TYPE_EVENT, 5005);
break;
@@ -779,7 +792,7 @@ class npc_tirion_toc : public CreatureScript
me->SummonCreature(NPC_LICH_KING_1, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5);
break;
case 5020:
- DoScriptText(SAY_STAGE_4_03, me);
+ Talk(SAY_STAGE_4_03);
m_uiUpdateTimer = 1000;
instance->SetData(TYPE_EVENT, 0);
break;
@@ -789,14 +802,16 @@ class npc_tirion_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 6005);
break;
case 6005:
- DoScriptText(SAY_STAGE_4_06, me);
+ if (Creature* tirionFordring = Unit::GetCreature((*me), instance->GetData64(NPC_TIRION_FORDRING)))
+ tirionFordring->AI()->Talk(NPC_TIRION_FORDRING);
m_uiUpdateTimer = 20000;
instance->SetData(TYPE_EVENT, 6010);
break;
case 6010:
if (IsHeroic())
{
- DoScriptText(SAY_STAGE_4_07, me);
+ if (Creature* tirionFordring = Unit::GetCreature((*me), instance->GetData64(NPC_TIRION_FORDRING)))
+ tirionFordring->AI()->Talk(SAY_STAGE_4_07);
m_uiUpdateTimer = 60000;
instance->SetData(TYPE_ANUBARAK, SPECIAL);
instance->SetData(TYPE_EVENT, 6020);
@@ -854,7 +869,7 @@ class npc_garrosh_toc : public CreatureScript
{
case 130:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
- DoScriptText(SAY_STAGE_0_03h, me);
+ Talk(SAY_STAGE_0_03h);
m_uiUpdateTimer = 3000;
instance->SetData(TYPE_EVENT, 132);
break;
@@ -864,27 +879,27 @@ class npc_garrosh_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 140);
break;
case 2010:
- DoScriptText(SAY_STAGE_1_09, me);
+ Talk(SAY_STAGE_1_09);
m_uiUpdateTimer = 9000;
instance->SetData(TYPE_EVENT, 2020);
break;
case 3050:
- DoScriptText(SAY_STAGE_2_02h, me);
+ Talk(SAY_STAGE_2_02h);
m_uiUpdateTimer = 15000;
instance->SetData(TYPE_EVENT, 3060);
break;
case 3070:
- DoScriptText(SAY_STAGE_2_04h, me);
+ Talk(SAY_STAGE_2_04h);
m_uiUpdateTimer = 6000;
instance->SetData(TYPE_EVENT, 3080);
break;
case 3081:
- DoScriptText(SAY_STAGE_2_05h, me);
+ Talk(SAY_STAGE_2_05h);
m_uiUpdateTimer = 3000;
instance->SetData(TYPE_EVENT, 3091);
break;
case 4030:
- DoScriptText(SAY_STAGE_3_03h, me);
+ Talk(SAY_STAGE_3_03h);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 4040);
break;
@@ -935,7 +950,7 @@ class npc_varian_toc : public CreatureScript
{
case 120:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_TALK);
- DoScriptText(SAY_STAGE_0_03a, me);
+ Talk(SAY_STAGE_0_03a);
m_uiUpdateTimer = 2000;
instance->SetData(TYPE_EVENT, 122);
break;
@@ -945,27 +960,27 @@ class npc_varian_toc : public CreatureScript
instance->SetData(TYPE_EVENT, 130);
break;
case 2020:
- DoScriptText(SAY_STAGE_1_10, me);
+ Talk(SAY_STAGE_1_10);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 2030);
break;
case 3051:
- DoScriptText(SAY_STAGE_2_02a, me);
+ Talk(SAY_STAGE_2_02a);
m_uiUpdateTimer = 10000;
instance->SetData(TYPE_EVENT, 3061);
break;
case 3071:
- DoScriptText(SAY_STAGE_2_04a, me);
+ Talk(SAY_STAGE_2_04a);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 3081);
break;
case 3080:
- DoScriptText(SAY_STAGE_2_05a, me);
+ Talk(SAY_STAGE_2_05a);
m_uiUpdateTimer = 3000;
instance->SetData(TYPE_EVENT, 3090);
break;
case 4020:
- DoScriptText(SAY_STAGE_3_03a, me);
+ Talk(SAY_STAGE_3_03a);
m_uiUpdateTimer = 5000;
instance->SetData(TYPE_EVENT, 4040);
break;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
index 99525b6fb32..f361c3521d1 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
@@ -162,6 +162,7 @@ enum eCreature
{
NPC_BARRENT = 34816,
NPC_TIRION = 34996,
+ NPC_TIRION_FORDRING = 36095,
NPC_FIZZLEBANG = 35458,
NPC_GARROSH = 34995,
NPC_VARIAN = 34990,