diff options
13 files changed, 479 insertions, 332 deletions
diff --git a/sql/updates/world/2012_12_01_01_world_ulduar_creature_text.sql b/sql/updates/world/2012_12_01_01_world_ulduar_creature_text.sql new file mode 100644 index 00000000000..82d93d7b7ae --- /dev/null +++ b/sql/updates/world/2012_12_01_01_world_ulduar_creature_text.sql @@ -0,0 +1,174 @@ +DELETE FROM `script_texts` WHERE `entry` BETWEEN -1603341 AND -1603050; +DELETE FROM `creature_text` WHERE `entry`=33350 AND `groupid`=15; +DELETE FROM `creature_text` WHERE `entry` IN ( +33515, -- Auriaya +33113, -- Flame Leviathan +32906, -- Freya +32913, -- Elder Ironbranch +32914, -- Elder Stonebark +32915, -- Elder Brightleaf +32845, -- Hodir +33118, -- Ignis +32930, -- Kologarn +33210, -- Expedition Commander +33287, -- Expedition Engineer +33186, -- Razorscale +33233, -- Razorscale Controller +33271, -- General Vezax +33488, -- Saronite Vapor +33293, -- XT-002 Deconstructor +32865 -- Thorim +); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES +-- Auriaya +(33515,0,0,'Some things are better left alone!',14,0,100,0,0,15473,'Auriaya SAY_AGGRO'), +(33515,1,1,'The secret dies with you!',14,0,100,0,0,15474,'Auriaya SAY_SLAY_1'), +(33515,1,2,'There is no escape!',14,0,100,0,0,15475,'Auriaya SAY_SLAY_2'), +(33515,2,0,'Auriaya screams in agony.',16,0,100,0,0,15476,'Auriaya SAY_DEATH'), +(33515,3,0,'You waste my time!',14,0,100,0,0,15477,'Auriaya SAY_BERSERK'), +(33515,4,0,'%s begins to cast Terrifying Screech.',41,0,100,0,0,0,'Auriaya EMOTE_FEAR'), +(33515,5,0,'%s begins to activate the Feral Defender!',41,0,100,0,0,0,'Auriaya EMOTE_DEFENDER'), +-- Flame Leviathan +(33113, 0,0,'Hostile entities detected. Threat assessment protocol active. Primary target engaged. Time minus 30 seconds to re-evaluation.',14,0,100,0,0,15506,'Flame Leviathan SAY_AGGRO'), +(33113, 1,0,'Threat assessment routine modified. Current target threat level: 0. Acquiring new target.',14,0,100,0,0,15521,'Flame Leviathan SAY_SLAY'), +(33113, 2,0,'Total systems failure. Defense protocols breached. Leviathan unit shutting down.',14,0,100,0,0,15520,'Flame Leviathan SAY_DEATH'), +(33113, 3,0,'Threat re-evaluated. Target assessment complete. Changing course.',14,0,100,0,0,15507,'Flame Leviathan SAY_TARGET_1'), +(33113, 3,1,'Pursuit objective modified. Changing course.',14,0,100,0,0,15508,'Flame Leviathan SAY_TARGET_2'), +(33113, 3,2,'Hostile entity stratagem predicted. Rerouting battle function. Changing course.',14,0,100,0,0,15509,'Flame Leviathan SAY_TARGET_3'), +(33113, 4,0,'Orbital countermeasures enabled.',14,0,100,0,0,15510,'Flame Leviathan SAY_HARDMODE'), +(33113, 5,0,'Alert! Static defense system failure. Orbital countermeasures disabled.',14,0,100,0,0,15511,'Flame Leviathan SAY_TOWER_NONE'), +(33113, 6,0,'Hodir''s Fury online. Acquiring target.',14,0,100,0,0,15512,'Flame Leviathan SAY_TOWER_FROST'), +(33113, 7,0,'Mimiron''s Inferno online. Acquiring target.',14,0,100,0,0,15513,'Flame Leviathan SAY_TOWER_FLAME'), +(33113, 8,0,'Freya''s Ward online. Acquiring target.',14,0,100,0,0,15514,'Flame Leviathan SAY_TOWER_NATURE'), +(33113, 9,0,'Thorim''s Hammer online. Acquiring target.',14,0,100,0,0,15515,'Flame Leviathan SAY_TOWER_STORM'), +(33113,10,0,'Unauthorized entity attempting circuit overload. Activating anti-personnel countermeasures.',14,0,100,0,0,15516,'Flame Leviathan SAY_PLAYER_RIDING'), +(33113,11,0,'System malfunction. Diverting power to support systems.',14,0,100,0,0,15517,'Flame Leviathan SAY_OVERLOAD_1'), +(33113,11,1,'Combat matrix overload. Powering do-o-o-own...',14,0,100,0,0,15518,'Flame Leviathan SAY_OVERLOAD_2'), +(33113,11,2,'System restart required. Deactivating weapon systems.',14,0,100,0,0,15519,'Flame Leviathan SAY_OVERLOAD_3'), +(33113,12,0,'%s pursues $n.',41,0,100,0,0,0,'Flame Leviathan EMOTE_PURSUE'), +(33113,13,0,'%s''s circuits overloaded.',41,0,100,0,0,0,'Flame Leviathan EMOTE_OVERLOAD'), +(33113,14,0,'Automatic repair sequence initiated.',41,0,100,0,0,0,'Flame Leviathan EMOTE_REPAIR'), +-- Freya +(32906, 0,0,'The Conservatory must be protected!',14,0,100,0,0,15526,'Freya SAY_AGGRO'), +(32906, 1,0,'Elders grant me your strength!',14,0,100,0,0,15527,'Freya SAY_AGGRO_WITH_ELDER'), +(32906, 2,0,'Forgive me.',14,0,100,0,0,15529,'Freya SAY_SLAY_1'), +(32906, 2,1,'From your death springs life anew!',14,0,100,0,0,15530,'Freya SAY_SLAY_2'), +(32906, 3,0,'His hold on me dissipates. I can see clearly once more. Thank you, heroes.',14,0,100,0,0,15531,'Freya SAY_DEATH'), +(32906, 4,0,'You have strayed too far, wasted too much time!',14,0,100,0,0,15532,'Freya SAY_BERSERK'), +(32906, 5,0,'Eonar, your servant requires aid!',14,0,100,0,0,15528,'Freya SAY_SUMMON_CONSERVATOR'), +(32906, 6,0,'Children, assist me!',14,0,100,0,0,15533,'Freya SAY_SUMMON_TRIO'), +(32906, 7,0,'The swarm of the elements shall overtake you!',14,0,100,0,0,15534,'Freya SAY_SUMMON_LASHERS'), +(32906, 8,0,'A |cFF00FFFFLifebinder''s Gift|r begins to grow!',41,0,100,0,0,0,'Freya EMOTE_LIFEBINDERS_GIFT'), +(32906, 9,0,'Allies of Nature have appeared!',41,0,100,0,0,0,'Freya EMOTE_ALLIES_OF_NATURE'), +(32906,10,0,'Freya begins to cast |cFFFF0000Ground Tremor!|r',41,0,100,0,0,0,'Freya EMOTE_GROUND_TREMOR'), +(32906,11,0,'Freya casts |cFF00FF00Strengthened Iron Roots!|r',41,0,100,0,0,0,'Freya EMOTE_IRON_ROOTS'), +-- Elder Ironbranch +(32913,0,0,'Mortals have no place here!',14,0,100,0,0,15493,'Elder Ironbranch SAY_AGGRO'), +(32913,1,0,'I return you whence you came!',14,0,100,0,0,15494,'Elder Ironbranch SAY_SLAY_1'), +(32913,1,1,'BEGONE!',14,0,100,0,0,15495,'Elder Ironbranch SAY_SLAY_2'), +(32913,2,0,'Freya! They come for you.',14,0,100,0,0,15496,'Elder Ironbranch SAY_DEATH'), +-- Elder Stonebark +(32914,0,0,'This place will serve as your graveyard.',14,0,100,0,0,15500,'Elder Stonebark SAY_AGGRO'), +(32914,1,0,'<Angry roar>',14,0,100,0,0,15501,'Elder Stonebark SAY_SLAY_1'), +(32914,1,1,'Such a waste.',14,0,100,0,0,15502,'Elder Stonebark SAY_SLAY_2'), +(32914,2,0,'Matron, flee! They are ruthless....',14,0,100,0,0,15503,'Elder Stonebark SAY_DEATH'), +-- Elder Brightleaf +(32915,0,0,'Matron, the Conservatory has been breached!',14,0,100,0,0,15483,'Elder Brightleaf SAY_AGGRO'), +(32915,1,0,'Fertilizer.',14,0,100,0,0,15485,'Elder Brightleaf SAY_SLAY_1'), +(32915,1,1,'Your corpse will nourish the soil!',14,0,100,0,0,15486,'Elder Brightleaf SAY_SLAY_2'), +(32915,2,0,'Matron, one has fallen!',14,0,100,0,0,15487,'Elder Brightleaf SAY_DEATH'), +-- Hodir +(32845,0,0,'You will suffer for this trespass!',14,0,100,0,0,15552,'Hodir SAY_AGGRO'), +(32845,1,0,'Tragic. To come so far, only to fail.',14,0,100,0,0,15553,'Hodir SAY_SLAY_1'), +(32845,1,1,'Welcome to the endless winter.',14,0,100,0,0,15554,'Hodir SAY_SLAY_2'), +(32845,2,0,'Winds of the north consume you!',14,0,100,0,0,15555,'Hodir SAY_FLASH_FREEZE'), +(32845,3,0,'%s roars furious.',16,0,100,0,0,15556,'Hodir SAY_STALACTITE'), +(32845,4,0,'I... I am released from his grasp... at last.',14,0,100,0,0,15557,'Hodir SAY_DEATH'), +(32845,5,0,'ENOUGH! This ends now!',14,0,100,0,0,15558,'Hodir SAY_BERSERK'), +(32845,6,0,'%s shatters the Rare Cache of Hodir!',16,0,100,0,0,0,'Hodir SAY_HARD_MODE_MISSED'), +(32845,7,0,'%s begins to cast Flash Freeze!',41,0,100,0,0,0,'Hodir - EMOTE_FREEZE'), +(32845,8,0,'%s gains Frozen Blows!',41,0,100,0,0,0,'Hodir - EMOTE_BLOW'), +-- Ignis +(33118,0,0,'Insolent whelps! Your blood will temper the weapons used to reclaim this world!',14,0,100,0,0,15564,'Ignis SAY_AGGRO'), +(33118,1,0,'Arise, soldiers of the iron crucible! The Makers'' will be done!',14,0,100,0,0,15565,'Ignis SAY_SUMMON'), +(33118,2,0,'I will burn away your impurities!',14,0,100,0,0,15566,'Ignis SAY_SLAG_POT'), +(33118,3,0,'Let the inferno consume you!',14,0,100,0,0,15567,'Ignis SAY_SCORCH_1'), +(33118,3,1,'BURN! Burn in the Maker''s fire!',14,0,100,0,0,15568,'Ignis SAY_SCORCH_2'), +(33118,4,0,'More scraps for the scrapheap!',14,0,100,0,0,15569,'Ignis SAY_SLAY_1'), +(33118,4,1,'Your bones will serve as kindling!',14,0,100,0,0,15570,'Ignis SAY_SLAY_2'), +(33118,5,0,'Let it be finished!',14,0,100,0,0,15571,'Ignis SAY_BERSERK'), +(33118,6,0,'I. Have. Failed.',14,0,100,0,0,15572,'Ignis SAY_DEATH'), +(33118,7,0,'%s begins to cast Flame Jets!',41,0,100,0,0,0,'Ignis EMOTE_JETS'), +-- Kologarn +(32930,0,0,'None shall pass!',14,0,100,0,0,15586,'Kologarn SAY_AGGRO'), +(32930,1,0,'KOL-THARISH!',14,0,100,0,0,15587,'Kologarn SAY_SLAY_1'), +(32930,1,1,'YOU FAIL!',14,0,100,0,0,15588,'Kologarn SAY_SLAY_2'), +(32930,2,0,'Just a scratch!',14,0,100,0,0,15589,'Kologarn SAY_LEFT_ARM_GONE'), +(32930,3,0,'Only a flesh wound!',14,0,100,0,0,15590,'Kologarn SAY_RIGHT_ARM_GONE'), +(32930,4,0,'OBLIVION!',14,0,100,0,0,15591,'Kologarn SAY_SHOCKWAVE'), +(32930,5,0,'I will squeeze the life from you!',14,0,100,0,0,15592,'Kologarn SAY_GRAB_PLAYER'), +(32930,6,0,'Master, they come....',14,0,100,0,0,15593,'Kologarn SAY_DEATH'), +(32930,7,0,'I am invincible!',14,0,100,0,0,15594,'Kologarn SAY_BERSERK'), +(32930,8,0,'Kologarn casts Stone Grip!',41,0,100,0,0,15592,'Kologarn EMOTE_STONE_GRIP'), +-- Expedition Commander +(33210,0,0,'Welcome, champions! All of our attempts at grounding her have failed. We could use a hand in bring her down with these harpoon guns.',12,0,100,0,0,15647,'Expedition Commander SAY_INTRO'), +(33210,1,0,'Move quickly! She won''t remain grounded for long!',14,0,100,0,0,15648,'Expedition Commander SAY_GROUND_PHASE'), +(33210,2,0,'Be on the lookout! Mole machines will be surfacing soon with those nasty Iron dwarves aboard!',14,0,100,0,0,0,'Expedition Commander SAY_AGGRO_2'), +-- Expedition Engineer +(33287,0,0,'Give us a moment to prepare to build the turrets.',14,0,100,0,0,0,'Expedition Engineer SAY_AGGRO_1'), +(33287,1,0,'Ready to move out, keep those dwarves off of our backs!',14,0,100,0,0,0,'Expedition Engineer SAY_AGGRO_3'), +(33287,2,0,'Fires out! Let''s rebuild those turrets!',14,0,100,0,0,0,'SAY_TURRETS'), +-- Razorscale +(33186,0,0,'%s is grounded permanently!',41,0,100,0,0,0,'Razorscale EMOTE_PERMA'), +(33186,1,0,'%s takes a deep breath...',41,0,100,0,0,0,'Razorscale EMOTE_BREATH'), +-- Razorscale Controller +(33233,0,0,'Harpoon Turret is ready for use!',41,0,100,0,0,0,'Razorscale Controller EMOTE_HARPOON'), +-- General Vezax +(33271,0,0,'Your destruction will herald a new age of suffering!',14,0,100,0,0,15542,'General Vezax SAY_AGGRO'), +(33271,1,0,'You thought to stand before the legions of death... and survive?',14,0,100,0,0,15543,'General Vezax SAY_SLAY_1'), +(33271,1,1,'Defiance... a flaw of mortality.',14,0,100,0,0,15544,'General Vezax SAY_SLAY_2'), +(33271,2,0,'The black blood of Yogg-Saron courses through me! I. AM. UNSTOPPABLE!',14,0,100,0,0,15545,'General Vezax SAY_SURGE_OF_DARKNESS'), +(33271,3,0,'Oh, what horrors await....',14,0,100,0,0,15546,'General Vezax SAY_DEATH'), +(33271,4,0,'Your defeat was inevitable!',14,0,100,0,0,15547,'General Vezax SAY_BERSERK'), +(33271,5,0,'Behold, now! Terror, absolute!',14,0,100,0,0,15548,'General Vezax SAY_HARDMODE'), +(33271,6,0,'The saronite vapors mass and swirl violently, merging into a monstrous form!',41,0,100,0,0,0,'General Vezax - EMOTE_ANIMUS'), +(33271,7,0,'A saronite barrier appears around General Vezax!',41,0,100,0,0,0,'General Vezax - EMOTE_BARRIER'), +(33271,8,0,'%s roars and surges with dark might!',41,0,100,0,0,0,'General Vezax - EMOTE_SURGE_OF_DARKNESS'), +-- Saronite Vapor +(33488,0,0,'A cloud of saronite vapors coalesces nearby!',41,0,100,0,0,0,'Saronite Vapor - EMOTE_VAPORS'), +-- XT-002 Deconstructor +(33293, 0,0,'New toys? For me? I promise I won''t break them this time!',14,0,100,0,0,15724,'XT-002 Deconstructor SAY_AGGRO'), +(33293, 1,0,'So tired. I will rest for just a moment!',14,0,100,0,0,15725,'XT-002 Deconstructor SAY_HEART_OPENED'), +(33293, 2,0,'I''m ready to play!',14,0,100,0,0,15726,'XT-002 Deconstructor SAY_HEART_CLOSED'), +(33293, 3,0,'NO! NO! NO! NO! NO!',14,0,100,0,0,15727,'XT-002 Deconstructor SAY_TYMPANIC_TANTRUM'), +(33293, 4,0,'I... I think I broke it.',14,0,100,0,0,15728,'XT-002 Deconstructor SAY_SLAY_1'), +(33293, 4,1,'I guess it doesn''t bend that way.',14,0,100,0,0,15729,'XT-002 Deconstructor SAY_SLAY_2'), +(33293, 5,0,'I''m tired of these toys. I don''t want to play anymore!',14,0,100,0,0,15730,'XT-002 Deconstructor SAY_BERSERK'), +(33293, 6,0, 'You are bad... Toys... Very... Baaaaad ',14,0,100,0,0,15731,'XT-002 Deconstructor SAY_DEATH'), +(33293, 7,0,'Time for a new game! My old toys will fight my new toys!',14,0,100,0,0,15732,'XT-002 Deconstructor SAY_SUMMON'), +(33293, 8,0,'%s''s heart is exposed and leaking energy.',41,0,100,0,0,0,'XT-002 Deconstructor EMOTE_HEART_OPENED'), +(33293, 9,0,'%s''s heart is severed from his body.',41,0,100,0,0,0,'XT-002 Deconstructor EMOTE_HEART_CLOSED'), +(33293,10,0,'%s begins to cause the earth to quake.',41,0,100,0,0,0,'XT-002 Deconstructor EMOTE_TYMPANIC_TANTRUM'), +(33293,11,0,'%s consumes a scrap bot to repair himself!',41,0,100,0,0,0,'XT-002 Deconstructor EMOTE_SCRAPBOT'), +-- Thorim +(32865, 0,0,'Interlopers! You mortals who dare to interfere with my sport will pay... Wait--you...',14,0,100,0,0,15733,'Thorim SAY_AGGRO_1'), +(32865, 0,1,'I remember you... In the mountains... But you... what is this? Where am--',14,0,100,0,0,15734,'Thorim SAY_AGGRO_2'), +(32865, 1,0,'Behold the power of the storms and despair!',14,0,100,0,0,15735,'Thorim SAY_SPECIAL_1'), +(32865, 2,0,'Do not hold back! Destroy them!',14,0,100,0,0,15736,'Thorim SAY_SPECIAL_2'), +(32865, 3,0,'Have you begun to regret your intrusion?',14,0,100,0,0,15737,'Thorim SAY_SPECIAL_3'), +(32865, 4,0,'Impertinent whelps, you dare challenge me atop my pedestal? I will crush you myself!',14,0,100,0,0,15738,'Thorim SAY_JUMPDOWN'), +(32865, 5,0,'Can''t you at least put up a fight!?',14,0,100,0,0,15739,'Thorim SAY_SLAY_1'), +(32865, 5,1,'Pathetic.',14,0,100,0,0,15740,'Thorim SAY_SLAY_2'), +(32865, 6,0,'My patience has reached its limit!',14,0,100,0,0,15741,'Thorim SAY_BERSERK'), +(32865, 7,0,'Failures! Weaklings!',14,0,100,0,0,15742,'Thorim SAY_WIPE'), +(32865, 8,0,'Stay your arms! I yield!',14,0,100,0,0,15743,'Thorim SAY_DEATH'), +(32865, 9,0,'I feel as though I am awakening from a nightmare, but the shadows in this place yet linger.',14,0,100,0,0,15744,'Thorim SAY_END_NORMAL_1'), +(32865,10,0,'Sif... was Sif here? Impossible--she died by my brother''s hand. A dark nightmare indeed....',14,0,100,0,0,15745,'Thorim SAY_END_NORMAL_2'), +(32865,11,0,'I need time to reflect.... I will aid your cause if you should require it. I owe you at least that much. Farewell.',14,0,100,0,0,15746,'Thorim SAY_END_NORMAL_3'), +(32865,12,0,'You! Fiend! You are not my beloved! Be gone!',14,0,100,0,0,15747,'Thorim SAY_END_HARD_1'), +(32865,13,0,'Behold the hand behind all the evil that has befallen Ulduar, left my kingdom in ruins, corrupted my brother, and slain my wife.',14,0,100,0,0,15748,'Thorim SAY_END_HARD_2'), +(32865,14,0,'And now it falls to you, champions, to avenge us all. The task before you is great, but I will lend you my aid as I am able. You must prevail.',14,0,100,0,0,15749,'Thorim SAY_END_HARD_3'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=64604; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13,1,64604,0,0,31,0,4,0,0,0,0,0,'','Freya - Nature Bomb'); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp index bfe158051b1..bd063877d39 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp @@ -76,16 +76,12 @@ enum AuriayaEvents enum AuriayaYells { - // Yells - SAY_AGGRO = -1603050, - SAY_SLAY_1 = -1603051, - SAY_SLAY_2 = -1603052, - SAY_DEATH = -1603053, - SAY_BERSERK = -1603054, - - // Emotes - EMOTE_FEAR = -1603055, - EMOTE_DEFENDER = -1603056, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_BERSERK = 3, + EMOTE_FEAR = 4, + EMOTE_DEFENDER = 5 }; enum AuriayaActions @@ -121,7 +117,7 @@ class boss_auriaya : public CreatureScript void EnterCombat(Unit* /*who*/) { _EnterCombat(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); events.ScheduleEvent(EVENT_SCREECH, urand(45000, 65000)); events.ScheduleEvent(EVENT_BLAST, urand(20000, 25000)); @@ -131,9 +127,10 @@ class boss_auriaya : public CreatureScript events.ScheduleEvent(EVENT_BERSERK, 600000); } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } void JustSummoned(Creature* summoned) @@ -206,8 +203,8 @@ class boss_auriaya : public CreatureScript void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); _JustDied(); + Talk(SAY_DEATH); } void UpdateAI(uint32 const diff) @@ -229,7 +226,7 @@ class boss_auriaya : public CreatureScript events.ScheduleEvent(EVENT_SCREECH, urand(40000, 60000)); break; case EVENT_TERRIFYING: - DoScriptText(EMOTE_FEAR, me); + Talk(EMOTE_FEAR); DoCast(SPELL_TERRIFYING_SCREECH); events.ScheduleEvent(EVENT_TERRIFYING, urand(20000, 30000)); break; @@ -238,7 +235,7 @@ class boss_auriaya : public CreatureScript events.ScheduleEvent(EVENT_BLAST, urand(25000, 35000)); break; case EVENT_DEFENDER: - DoScriptText(EMOTE_DEFENDER, me); + Talk(EMOTE_DEFENDER); DoCast(SPELL_DEFENDER_TRIGGER); if (Creature* trigger = me->FindNearestCreature(NPC_FERAL_DEFENDER_TRIGGER, 15.0f, true)) DoCast(trigger, SPELL_ACTIVATE_DEFENDER, true); @@ -262,7 +259,7 @@ class boss_auriaya : public CreatureScript break; case EVENT_BERSERK: DoCast(me, SPELL_BERSERK, true); - DoScriptText(SAY_BERSERK, me); + Talk(SAY_BERSERK); events.CancelEvent(EVENT_BERSERK); break; } @@ -296,17 +293,17 @@ class npc_auriaya_seeping_trigger : public CreatureScript instance = me->GetInstanceScript(); } - void Reset() - { - me->DespawnOrUnsummon(600000); - DoCast(me, SPELL_SEEPING_ESSENCE); - } + void Reset() + { + me->DespawnOrUnsummon(600000); + DoCast(me, SPELL_SEEPING_ESSENCE); + } - void UpdateAI(uint32 const /*diff*/) - { - if (instance->GetBossState(BOSS_AURIAYA) != IN_PROGRESS) - me->DespawnOrUnsummon(); - } + void UpdateAI(uint32 const /*diff*/) + { + if (instance->GetBossState(BOSS_AURIAYA) != IN_PROGRESS) + me->DespawnOrUnsummon(); + } private: InstanceScript* instance; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index a26f5763472..5699616563a 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -141,9 +141,6 @@ enum Vehicles VEHICLE_DEMOLISHER = 33109, }; -#define EMOTE_PURSUE "Flame Leviathan pursues $N." -#define EMOTE_OVERLOAD "Flame Leviathan's circuits overloaded." -#define EMOTE_REPAIR "Automatic repair sequence initiated." #define DATA_SHUTOUT 29112912 // 2911, 2912 are achievement IDs #define DATA_ORBIT_ACHIEVEMENTS 1 #define VEHICLE_SPAWNS 5 @@ -151,22 +148,21 @@ enum Vehicles enum Yells { - SAY_AGGRO = -1603060, - SAY_SLAY = -1603061, - SAY_DEATH = -1603062, - SAY_TARGET_1 = -1603063, - SAY_TARGET_2 = -1603064, - SAY_TARGET_3 = -1603065, - SAY_HARDMODE = -1603066, - SAY_TOWER_NONE = -1603067, - SAY_TOWER_FROST = -1603068, - SAY_TOWER_FLAME = -1603069, - SAY_TOWER_NATURE = -1603070, - SAY_TOWER_STORM = -1603071, - SAY_PLAYER_RIDING = -1603072, - SAY_OVERLOAD_1 = -1603073, - SAY_OVERLOAD_2 = -1603074, - SAY_OVERLOAD_3 = -1603075, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_TARGET = 3, + SAY_HARDMODE = 4, + SAY_TOWER_NONE = 5, + SAY_TOWER_FROST = 6, + SAY_TOWER_FLAME = 7, + SAY_TOWER_NATURE = 8, + SAY_TOWER_STORM = 9, + SAY_PLAYER_RIDING = 10, + SAY_OVERLOAD = 11, + EMOTE_PURSUE = 12, + EMOTE_OVERLOAD = 13, + EMOTE_REPAIR = 14 }; enum MiscellanousData @@ -179,15 +175,8 @@ enum MiscellanousData FOUR_SEATS = 4, }; -Position const Center[]= -{ - {354.8771f, -12.90240f, 409.803650f, 0.0f}, -}; - -Position const InfernoStart[]= -{ - {390.93f, -13.91f, 409.81f, 0.0f}, -}; +Position const Center = { 354.8771f, -12.90240f, 409.803650f, 0.0f }; +Position const InfernoStart = { 390.93f, -13.91f, 409.81f, 0.0f }; Position const PosSiege[VEHICLE_SPAWNS] = { @@ -320,12 +309,12 @@ class boss_flame_leviathan : public CreatureScript } if (!towerOfLife && !towerOfFrost && !towerOfFlames && !towerOfStorms) - DoScriptText(SAY_TOWER_NONE, me); + Talk(SAY_TOWER_NONE); else - DoScriptText(SAY_HARDMODE, me); + Talk(SAY_HARDMODE); } else - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); } void JustDied(Unit* /*killer*/) @@ -334,7 +323,7 @@ class boss_flame_leviathan : public CreatureScript // Set Field Flags 67108928 = 64 | 67108864 = UNIT_FLAG_UNK_6 | UNIT_FLAG_SKINNABLE // Set DynFlags 12 // Set NPCFlags 0 - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void SpellHit(Unit* /*caster*/, SpellInfo const* spell) @@ -397,7 +386,7 @@ class boss_flame_leviathan : public CreatureScript switch (eventId) { case EVENT_PURSUE: - DoScriptText(RAND(SAY_TARGET_1, SAY_TARGET_2, SAY_TARGET_3), me); + Talk(SAY_TARGET); DoCast(SPELL_PURSUED); // Will select target in spellscript events.ScheduleEvent(EVENT_PURSUE, 35*IN_MILLISECONDS); break; @@ -420,8 +409,8 @@ class boss_flame_leviathan : public CreatureScript events.ScheduleEvent(EVENT_SUMMON, 2*IN_MILLISECONDS); break; case EVENT_SHUTDOWN: - DoScriptText(RAND(SAY_OVERLOAD_1, SAY_OVERLOAD_2, SAY_OVERLOAD_3), me); - me->MonsterTextEmote(EMOTE_OVERLOAD, 0, true); + Talk(SAY_OVERLOAD); + Talk(EMOTE_OVERLOAD); me->CastSpell(me, SPELL_SYSTEMS_SHUTDOWN, true); if (Shutout) Shutout = false; @@ -429,7 +418,7 @@ class boss_flame_leviathan : public CreatureScript events.DelayEvents(20 * IN_MILLISECONDS, 0); break; case EVENT_REPAIR: - me->MonsterTextEmote(EMOTE_REPAIR, 0, true); + Talk(EMOTE_REPAIR); me->ClearUnitState(UNIT_STATE_STUNNED | UNIT_STATE_ROOT); events.ScheduleEvent(EVENT_SHUTDOWN, 150*IN_MILLISECONDS); events.CancelEvent(EVENT_REPAIR); @@ -440,12 +429,12 @@ class boss_flame_leviathan : public CreatureScript if (Creature* thorim = DoSummon(NPC_THORIM_BEACON, me, float(urand(20, 60)), 20000, TEMPSUMMON_TIMED_DESPAWN)) thorim->GetMotionMaster()->MoveRandom(100); } - DoScriptText(SAY_TOWER_STORM, me); + Talk(SAY_TOWER_STORM); events.CancelEvent(EVENT_THORIM_S_HAMMER); break; case EVENT_MIMIRON_S_INFERNO: // Tower of Flames - me->SummonCreature(NPC_MIMIRON_BEACON, InfernoStart->GetPositionX(), InfernoStart->GetPositionY(), InfernoStart->GetPositionZ()); - DoScriptText(SAY_TOWER_FLAME, me); + me->SummonCreature(NPC_MIMIRON_BEACON, InfernoStart); + Talk(SAY_TOWER_FLAME); events.CancelEvent(EVENT_MIMIRON_S_INFERNO); break; case EVENT_HODIR_S_FURY: // Tower of Frost @@ -454,11 +443,11 @@ class boss_flame_leviathan : public CreatureScript if (Creature* hodir = DoSummon(NPC_HODIR_BEACON, me, 50, 0)) hodir->GetMotionMaster()->MoveRandom(100); } - DoScriptText(SAY_TOWER_FROST, me); + Talk(SAY_TOWER_FROST); events.CancelEvent(EVENT_HODIR_S_FURY); break; case EVENT_FREYA_S_WARD: // Tower of Nature - DoScriptText(SAY_TOWER_NATURE, me); + Talk(SAY_TOWER_NATURE); for (int32 i = 0; i < 4; ++i) me->SummonCreature(NPC_FREYA_BEACON, FreyaBeacons[i]); @@ -529,8 +518,8 @@ class boss_flame_leviathan : public CreatureScript case ACTION_MOVE_TO_CENTER_POSITION: // Triggered by 2 Collossus near door if (!me->isDead()) { - me->SetHomePosition(Center->GetPositionX(), Center->GetPositionY(), Center->GetPositionZ(), 0); - me->GetMotionMaster()->MoveCharge(Center->GetPositionX(), Center->GetPositionY(), Center->GetPositionZ()); //position center + me->SetHomePosition(Center); + me->GetMotionMaster()->MoveCharge(Center.GetPositionX(), Center.GetPositionY(), Center.GetPositionZ()); // position center me->SetReactState(REACT_AGGRESSIVE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_STUNNED); return; @@ -593,8 +582,8 @@ class boss_flame_leviathan_seat : public CreatureScript { if (!apply) return; - else - DoScriptText(SAY_PLAYER_RIDING, me); + else if (Creature* leviathan = me->GetVehicleCreatureBase()) + leviathan->AI()->Talk(SAY_PLAYER_RIDING); if (Creature* turret = me->GetVehicleKit()->GetPassenger(SEAT_TURRET)->ToCreature()) { @@ -887,7 +876,7 @@ class npc_colossus : public CreatureScript void JustDied(Unit* /*killer*/) { - if (me->GetHomePosition().IsInDist(Center, 50.f)) + if (me->GetHomePosition().IsInDist(&Center, 50.f)) instance->SetData(DATA_COLOSSUS, instance->GetData(DATA_COLOSSUS)+1); } @@ -1700,7 +1689,7 @@ class spell_pursue : public SpellScriptLoader { if (IS_PLAYER_GUID(itr->second.Passenger)) { - caster->MonsterTextEmote(EMOTE_PURSUE, itr->second.Passenger, true); + caster->AI()->Talk(EMOTE_PURSUE, itr->second.Passenger); return; } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index f60922c426c..ac7c4ce8da5 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -27,34 +27,23 @@ enum FreyaYells { // Freya - SAY_AGGRO = -1603180, - SAY_AGGRO_WITH_ELDER = -1603181, - SAY_SLAY_1 = -1603182, - SAY_SLAY_2 = -1603183, - SAY_DEATH = -1603184, - SAY_BERSERK = -1603185, - SAY_SUMMON_CONSERVATOR = -1603186, - SAY_SUMMON_TRIO = -1603187, - SAY_SUMMON_LASHERS = -1603188, - SAY_YS_HELP = -1603189, - - // Elder Brightleaf - SAY_BRIGHTLEAF_AGGRO = -1603190, - SAY_BRIGHTLEAF_SLAY_1 = -1603191, - SAY_BRIGHTLEAF_SLAY_2 = -1603192, - SAY_BRIGHTLEAF_DEATH = -1603193, - - // Elder Ironbranch - SAY_IRONBRANCH_AGGRO = -1603194, - SAY_IRONBRANCH_SLAY_1 = -1603195, - SAY_IRONBRANCH_SLAY_2 = -1603196, - SAY_IRONBRANCH_DEATH = -1603197, - - // Elder Stonebark - SAY_STONEBARK_AGGRO = -1603198, - SAY_STONEBARK_SLAY_1 = -1603199, - SAY_STONEBARK_SLAY_2 = -1603200, - SAY_STONEBARK_DEATH = -1603201, + SAY_AGGRO = 0, + SAY_AGGRO_WITH_ELDER = 1, + SAY_SLAY = 2, + SAY_DEATH = 3, + SAY_BERSERK = 4, + SAY_SUMMON_CONSERVATOR = 5, + SAY_SUMMON_TRIO = 6, + SAY_SUMMON_LASHERS = 7, + EMOTE_LIFEBINDERS_GIFT = 8, + EMOTE_ALLIES_OF_NATURE = 9, + EMOTE_GROUND_TREMOR = 10, + EMOTE_IRON_ROOTS = 11, + + // Elder Brightleaf / Elder Ironbranch / Elder Stonebark + SAY_ELDER_AGGRO = 0, + SAY_ELDER_SLAY = 1, + SAY_ELDER_DEATH = 2 }; enum FreyaSpells @@ -143,7 +132,7 @@ enum FreyaSpells // Nature Bomb SPELL_NATURE_BOMB = 64587, SPELL_OBJECT_BOMB = 64600, - SPELL_SUMMON_NATURE_BOMB = 64606, + SPELL_SUMMON_NATURE_BOMB = 64604, // Unstable Sun Beam SPELL_UNSTABLE_SUN_BEAM = 62211, @@ -316,9 +305,10 @@ class boss_freya : public CreatureScript random[n] = false; } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } void DamageTaken(Unit* who, uint32& damage) @@ -369,9 +359,9 @@ class boss_freya : public CreatureScript } if (elderCount == 0) - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); else - DoScriptText(SAY_AGGRO_WITH_ELDER, me); + Talk(SAY_AGGRO_WITH_ELDER); me->CastCustomSpell(SPELL_ATTUNED_TO_NATURE, SPELLVALUE_AURA_STACK, 150, me, true); @@ -409,7 +399,7 @@ class boss_freya : public CreatureScript switch (eventId) { case EVENT_ENRAGE: - DoScriptText(SAY_BERSERK, me); + Talk(SAY_BERSERK); DoCast(me, SPELL_ENRAGE); break; case EVENT_SUNBEAM: @@ -418,17 +408,9 @@ class boss_freya : public CreatureScript events.ScheduleEvent(EVENT_SUNBEAM, urand(10000, 15000)); break; case EVENT_NATURE_BOMB: - { - // On every player - std::list<Player*> PlayerList; - Trinity::AnyPlayerInObjectRangeCheck checker(me, 50.0f); - Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(me, PlayerList, checker); - me->VisitNearbyWorldObject(50.0f, searcher); - for (std::list<Player*>::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr) - (*itr)->CastSpell(*itr, SPELL_SUMMON_NATURE_BOMB, true); + DoCastAOE(SPELL_SUMMON_NATURE_BOMB, true); events.ScheduleEvent(EVENT_NATURE_BOMB, urand(10000, 12000)); break; - } case EVENT_UNSTABLE_ENERGY: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) DoCast(target, SPELL_FREYA_UNSTABLE_SUNBEAM, true); @@ -442,15 +424,18 @@ class boss_freya : public CreatureScript events.ScheduleEvent(EVENT_NATURE_BOMB, urand(10000, 20000)); break; case EVENT_EONAR_GIFT: + Talk(EMOTE_LIFEBINDERS_GIFT); DoCast(me, SPELL_SUMMON_EONAR_GIFT); events.ScheduleEvent(EVENT_EONAR_GIFT, urand(40000, 50000)); break; case EVENT_STRENGTHENED_IRON_ROOTS: + Talk(EMOTE_IRON_ROOTS); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true, -SPELL_ROOTS_FREYA)) target->CastSpell(target, SPELL_ROOTS_FREYA, true); // This must be casted by Target self events.ScheduleEvent(EVENT_STRENGTHENED_IRON_ROOTS, urand(12000, 20000)); break; case EVENT_GROUND_TREMOR: + Talk(EMOTE_GROUND_TREMOR); DoCastAOE(SPELL_FREYA_GROUND_TREMOR); events.ScheduleEvent(EVENT_GROUND_TREMOR, urand(25000, 28000)); break; @@ -573,20 +558,21 @@ class boss_freya : public CreatureScript switch (GetWaveId()) { case 0: - DoScriptText(SAY_SUMMON_LASHERS, me); + Talk(SAY_SUMMON_LASHERS); for (uint8 n = 0; n < 10; ++n) DoCast(SPELL_SUMMON_LASHERS); break; case 1: - DoScriptText(SAY_SUMMON_TRIO, me); + Talk(SAY_SUMMON_TRIO); DoCast(SPELL_SUMMON_TRIO); trioWaveCount++; break; case 2: - DoScriptText(SAY_SUMMON_CONSERVATOR, me); + Talk(SAY_SUMMON_CONSERVATOR); DoCast(SPELL_SUMMON_ANCIENT_CONSERVATOR); break; } + Talk(EMOTE_ALLIES_OF_NATURE); waveCount++; } @@ -602,7 +588,7 @@ class boss_freya : public CreatureScript me->CastSpell((Unit*)NULL, summonSpell[me->GetMap()->GetDifficulty()][elderCount], true); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); me->SetReactState(REACT_PASSIVE); _JustDied(); me->RemoveAllAuras(); @@ -705,17 +691,18 @@ class boss_elder_brightleaf : public CreatureScript lumberjack = false; } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_BRIGHTLEAF_SLAY_1, SAY_BRIGHTLEAF_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_ELDER_SLAY); } void JustDied(Unit* killer) { _JustDied(); - DoScriptText(SAY_BRIGHTLEAF_DEATH, me); + Talk(SAY_ELDER_DEATH); - if (killer && killer->GetTypeId() == TYPEID_PLAYER) + if (killer->GetTypeId() == TYPEID_PLAYER) { if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_IRONBRANCH))) Ironbranch->AI()->DoAction(ACTION_ELDER_DEATH); @@ -729,7 +716,7 @@ class boss_elder_brightleaf : public CreatureScript { _EnterCombat(); if (!me->HasAura(SPELL_DRAINED_OF_POWER)) - DoScriptText(SAY_BRIGHTLEAF_AGGRO, me); + Talk(SAY_ELDER_AGGRO); } void UpdateAI(uint32 const diff) @@ -825,17 +812,18 @@ class boss_elder_stonebark : public CreatureScript lumberjack = false; } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_STONEBARK_SLAY_1, SAY_STONEBARK_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_ELDER_SLAY); } void JustDied(Unit* killer) { _JustDied(); - DoScriptText(SAY_STONEBARK_DEATH, me); + Talk(SAY_ELDER_DEATH); - if (killer && killer->GetTypeId() == TYPEID_PLAYER) + if (killer->GetTypeId() == TYPEID_PLAYER) { if (Creature* Ironbranch = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_IRONBRANCH))) Ironbranch->AI()->DoAction(ACTION_ELDER_DEATH); @@ -849,7 +837,7 @@ class boss_elder_stonebark : public CreatureScript { _EnterCombat(); if (!me->HasAura(SPELL_DRAINED_OF_POWER)) - DoScriptText(SAY_STONEBARK_AGGRO, me); + Talk(SAY_ELDER_AGGRO); } void DamageTaken(Unit* who, uint32& damage) @@ -951,17 +939,18 @@ class boss_elder_ironbranch : public CreatureScript lumberjack = false; } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_IRONBRANCH_SLAY_1, SAY_IRONBRANCH_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_ELDER_SLAY); } void JustDied(Unit* killer) { _JustDied(); - DoScriptText(SAY_IRONBRANCH_DEATH, me); + Talk(SAY_ELDER_DEATH); - if (killer && killer->GetTypeId() == TYPEID_PLAYER) + if (killer->GetTypeId() == TYPEID_PLAYER) { if (Creature* Brightleaf = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF))) Brightleaf->AI()->DoAction(ACTION_ELDER_DEATH); @@ -975,7 +964,7 @@ class boss_elder_ironbranch : public CreatureScript { _EnterCombat(); if (!me->HasAura(SPELL_DRAINED_OF_POWER)) - DoScriptText(SAY_IRONBRANCH_AGGRO, me); + Talk(SAY_ELDER_AGGRO); } void UpdateAI(uint32 const diff) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp index 1232c1b9051..43d203daedf 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -24,21 +24,22 @@ enum VezaxYells { - SAY_AGGRO = -1603290, - SAY_SLAY_1 = -1603291, - SAY_SLAY_2 = -1603292, - SAY_SURGE_OF_DARKNESS = -1603293, - SAY_DEATH = -1603294, - SAY_BERSERK = -1603295, - SAY_HARDMODE = -1603296, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_SURGE_OF_DARKNESS = 2, + SAY_DEATH = 3, + SAY_BERSERK = 4, + SAY_HARDMODE = 5, }; enum VezaxEmotes { - EMOTE_VAPORS = -1603289, - EMOTE_ANIMUS = -1603297, - EMOTE_BARRIER = -1603298, - EMOTE_SURGE_OF_DARKNESS = -1603299, + EMOTE_ANIMUS = 6, + EMOTE_BARRIER = 7, + EMOTE_SURGE_OF_DARKNESS = 8, + + // Saronite Vapor + EMOTE_VAPORS = 9 }; enum VezaxSpells @@ -122,7 +123,7 @@ class boss_general_vezax : public CreatureScript { _EnterCombat(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoCast(me, SPELL_AURA_OF_DESPAIR); CheckShamanisticRage(); @@ -173,8 +174,8 @@ class boss_general_vezax : public CreatureScript break; } case EVENT_SURGE_OF_DARKNESS: - DoScriptText(EMOTE_SURGE_OF_DARKNESS, me); - DoScriptText(SAY_SURGE_OF_DARKNESS, me); + Talk(EMOTE_SURGE_OF_DARKNESS); + Talk(SAY_SURGE_OF_DARKNESS); DoCast(me, SPELL_SURGE_OF_DARKNESS); events.ScheduleEvent(EVENT_SURGE_OF_DARKNESS, urand(50000, 70000)); break; @@ -183,8 +184,8 @@ class boss_general_vezax : public CreatureScript events.ScheduleEvent(EVENT_SARONITE_VAPORS, urand(30000, 35000)); if (++vaporCount == 6 && smellSaronite) { - DoScriptText(SAY_HARDMODE, me); - DoScriptText(EMOTE_BARRIER, me); + Talk(SAY_HARDMODE); + Talk(EMOTE_BARRIER); summons.DespawnAll(); DoCast(me, SPELL_SARONITE_BARRIER); DoCast(SPELL_SUMMON_SARONITE_ANIMUS); @@ -194,7 +195,7 @@ class boss_general_vezax : public CreatureScript } break; case EVENT_BERSERK: - DoScriptText(SAY_BERSERK, me); + Talk(SAY_BERSERK); DoCast(me, SPELL_BERSERK); break; } @@ -209,15 +210,16 @@ class boss_general_vezax : public CreatureScript shadowDodger = false; } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { _JustDied(); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_AURA_OF_DESPAIR); } @@ -316,7 +318,6 @@ class boss_saronite_animus : public CreatureScript boss_saronite_animusAI(Creature* creature) : ScriptedAI(creature) { instance = me->GetInstanceScript(); - DoScriptText(EMOTE_BARRIER, me); } void Reset() @@ -378,7 +379,7 @@ class npc_saronite_vapors : public CreatureScript { npc_saronite_vaporsAI(Creature* creature) : ScriptedAI(creature) { - DoScriptText(EMOTE_VAPORS, me); + Talk(EMOTE_VAPORS); instance = me->GetInstanceScript(); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); me->ApplySpellImmune(0, IMMUNITY_ID, 49560, true); // Death Grip jump effect diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index c9fe1c5b707..ae865ded40a 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -32,18 +32,15 @@ enum HodirYells { - SAY_AGGRO = -1603210, - SAY_SLAY_1 = -1603211, - SAY_SLAY_2 = -1603212, - SAY_FLASH_FREEZE = -1603213, - SAY_STALACTITE = -1603214, - SAY_DEATH = -1603215, - SAY_BERSERK = -1603216, - SAY_YS_HELP = -1603217, - SAY_HARD_MODE_FAILED = -1603218, - - EMOTE_FREEZE = -1603209, - EMOTE_BLOWS = -1603219, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_FLASH_FREEZE = 2, + SAY_STALACTITE = 3, + SAY_DEATH = 4, + SAY_BERSERK = 5, + SAY_HARD_MODE_FAILED = 6, + EMOTE_FREEZE = 7, + EMOTE_BLOWS = 8 }; enum HodirSpells @@ -329,7 +326,7 @@ class boss_hodir : public CreatureScript void EnterCombat(Unit* /*who*/) { _EnterCombat(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoCast(me, SPELL_BITING_COLD, true); gettingColdInHereTimer = 1000; @@ -346,10 +343,10 @@ class boss_hodir : public CreatureScript events.ScheduleEvent(EVENT_BERSERK, 480000); } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - if (!urand(0, 3)) - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } void DamageTaken(Unit* /*who*/, uint32& damage) @@ -357,7 +354,7 @@ class boss_hodir : public CreatureScript if (damage >= me->GetHealth()) { damage = 0; - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (iCouldSayThatThisCacheWasRare) instance->SetData(DATA_HODIR_RARE_CACHE, 1); @@ -404,8 +401,8 @@ class boss_hodir : public CreatureScript events.ScheduleEvent(EVENT_ICICLE, RAID_MODE(5500, 3500)); break; case EVENT_FLASH_FREEZE: - DoScriptText(SAY_FLASH_FREEZE, me); - DoScriptText(EMOTE_FREEZE, me); + Talk(SAY_FLASH_FREEZE); + Talk(EMOTE_FREEZE); for (uint8 n = 0; n < RAID_MODE(2, 3); ++n) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) target->CastSpell(target, SPELL_ICICLE_SNOWDRIFT, true); @@ -424,19 +421,19 @@ class boss_hodir : public CreatureScript break; } case EVENT_BLOWS: - DoScriptText(SAY_STALACTITE, me); - DoScriptText(EMOTE_BLOWS, me); + Talk(SAY_STALACTITE); + Talk(EMOTE_BLOWS); DoCast(me, SPELL_FROZEN_BLOWS); events.ScheduleEvent(EVENT_BLOWS, urand(60000, 65000)); break; case EVENT_RARE_CACHE: - DoScriptText(SAY_HARD_MODE_FAILED, me); + Talk(SAY_HARD_MODE_FAILED); iCouldSayThatThisCacheWasRare = false; instance->SetData(DATA_HODIR_RARE_CACHE, 0); events.CancelEvent(EVENT_RARE_CACHE); break; case EVENT_BERSERK: - DoScriptText(SAY_BERSERK, me); + Talk(SAY_BERSERK); DoCast(me, SPELL_BERSERK, true); events.CancelEvent(EVENT_BERSERK); break; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index c0fb4e3ecc8..8f68542d462 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -24,16 +24,14 @@ enum Yells { - SAY_AGGRO = -1603220, - SAY_SLAY_1 = -1603221, - SAY_SLAY_2 = -1603222, - SAY_DEATH = -1603223, - SAY_SUMMON = -1603224, - SAY_SLAG_POT = -1603225, - SAY_SCORCH_1 = -1603226, - SAY_SCORCH_2 = -1603227, - SAY_BERSERK = -1603228, - EMOTE_JETS = -1603229, + SAY_AGGRO = 0, + SAY_SUMMON = 1, + SAY_SLAG_POT = 2, + SAY_SCORCH = 3, + SAY_SLAY = 4, + SAY_BERSERK = 5, + SAY_DEATH = 6, + EMOTE_JETS = 7 }; enum Spells @@ -135,7 +133,7 @@ class boss_ignis : public CreatureScript void EnterCombat(Unit* /*who*/) { _EnterCombat(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); events.ScheduleEvent(EVENT_JET, 30000); events.ScheduleEvent(EVENT_SCORCH, 25000); events.ScheduleEvent(EVENT_SLAG_POT, 35000); @@ -151,7 +149,7 @@ class boss_ignis : public CreatureScript void JustDied(Unit* /*killer*/) { _JustDied(); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } uint32 GetData(uint32 type) const @@ -162,10 +160,10 @@ class boss_ignis : public CreatureScript return 0; } - void KilledUnit(Unit* /*victim*/) + void KilledUnit(Unit* who) { - if (!urand(0, 4)) - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } void JustSummoned(Creature* summon) @@ -217,7 +215,7 @@ class boss_ignis : public CreatureScript case EVENT_SLAG_POT: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) { - DoScriptText(SAY_SLAG_POT, me); + Talk(SAY_SLAG_POT); _slagPotGUID = target->GetGUID(); DoCast(target, SPELL_GRAB); events.DelayEvents(3000); @@ -252,14 +250,14 @@ class boss_ignis : public CreatureScript } break; case EVENT_SCORCH: - DoScriptText(RAND(SAY_SCORCH_1, SAY_SCORCH_2), me); + Talk(SAY_SCORCH); if (Unit* target = me->getVictim()) me->SummonCreature(NPC_GROUND_SCORCH, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 45000); DoCast(SPELL_SCORCH); events.ScheduleEvent(EVENT_SCORCH, 25000); break; case EVENT_CONSTRUCT: - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); DoSummon(NPC_IRON_CONSTRUCT, ConstructSpawnPosition[urand(0, CONSTRUCT_SPAWN_POINTS - 1)], 30000, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT); DoCast(SPELL_STRENGHT); DoCast(me, SPELL_ACTIVATE_CONSTRUCT); @@ -267,7 +265,7 @@ class boss_ignis : public CreatureScript break; case EVENT_BERSERK: DoCast(me, SPELL_BERSERK, true); - DoScriptText(SAY_BERSERK, me); + Talk(SAY_BERSERK); break; } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index 9c77bb298a5..0e4d5026caf 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -76,15 +76,15 @@ enum Events enum Yells { - SAY_AGGRO = -1603230, - SAY_SLAY_1 = -1603231, - SAY_SLAY_2 = -1603232, - SAY_LEFT_ARM_GONE = -1603233, - SAY_RIGHT_ARM_GONE = -1603234, - SAY_SHOCKWAVE = -1603235, - SAY_GRAB_PLAYER = -1603236, - SAY_DEATH = -1603237, - SAY_BERSERK = -1603238, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_LEFT_ARM_GONE = 2, + SAY_RIGHT_ARM_GONE = 3, + SAY_SHOCKWAVE = 4, + SAY_GRAB_PLAYER = 5, + SAY_DEATH = 6, + SAY_BERSERK = 7, + EMOTE_STONE_GRIP = 8 }; class boss_kologarn : public CreatureScript @@ -113,7 +113,7 @@ class boss_kologarn : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); events.ScheduleEvent(EVENT_MELEE_CHECK, 6000); events.ScheduleEvent(EVENT_SMASH, 5000); @@ -138,7 +138,7 @@ class boss_kologarn : public CreatureScript void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); DoCast(SPELL_KOLOGARN_PACIFY); me->GetMotionMaster()->MoveTargetedHome(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -146,9 +146,10 @@ class boss_kologarn : public CreatureScript _JustDied(); } - void KilledUnit(Unit* /*who*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) @@ -160,7 +161,7 @@ class boss_kologarn : public CreatureScript if (!apply && isEncounterInProgress) { who->ToCreature()->DisappearAndDie(); - DoScriptText(SAY_LEFT_ARM_GONE, me); + Talk(SAY_LEFT_ARM_GONE); events.ScheduleEvent(EVENT_RESPAWN_LEFT_ARM, 40000); } } @@ -171,7 +172,7 @@ class boss_kologarn : public CreatureScript if (!apply && isEncounterInProgress) { who->ToCreature()->DisappearAndDie(); - DoScriptText(SAY_RIGHT_ARM_GONE, me); + Talk(SAY_RIGHT_ARM_GONE); events.ScheduleEvent(EVENT_RESPAWN_RIGHT_ARM, 40000); } } @@ -272,7 +273,7 @@ class boss_kologarn : public CreatureScript break; case EVENT_ENRAGE: DoCast(SPELL_BERSERK); - DoScriptText(SAY_BERSERK, me); + Talk(SAY_BERSERK); break; case EVENT_RESPAWN_LEFT_ARM: case EVENT_RESPAWN_RIGHT_ARM: @@ -290,7 +291,8 @@ class boss_kologarn : public CreatureScript if (right) { DoCast(SPELL_STONE_GRIP); - DoScriptText(SAY_GRAB_PLAYER, me); + Talk(SAY_GRAB_PLAYER); + Talk(EMOTE_STONE_GRIP); } events.ScheduleEvent(EVENT_STONE_GRIP, 25 * IN_MILLISECONDS); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 6a4a5255293..b5c907af7f0 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -35,8 +35,7 @@ enum Yells SAY_V07TRON_ACTIVATE = 11, SAY_V07TRON_SLAY = 12, SAY_V07TRON_DEATH = 13, - SAY_BERSERK = 14, - SAY_YS_HELP = 15 + SAY_BERSERK = 14 }; enum Spells diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp index 5ea2678adfe..9643b2ec9ab 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp @@ -27,15 +27,22 @@ enum Says { - SAY_GREET = -1603260, - SAY_GROUND_PHASE = -1603261, - SAY_AGGRO_1 = -1603262, - SAY_AGGRO_2 = -1603263, - SAY_AGGRO_3 = -1603264, - SAY_TURRETS = -1603265, - EMOTE_HARPOON = -1603266, - EMOTE_BREATH = -1603267, - EMOTE_PERMA = -1603268, + // Expedition Commander + SAY_INTRO = 0, + SAY_GROUND_PHASE = 1, + SAY_AGGRO_2 = 2, + + // Expedition Engineer + SAY_AGGRO_1 = 0, + SAY_AGGRO_3 = 1, + SAY_TURRETS = 2, // unused + + // Razorscale Controller + EMOTE_HARPOON = 0, + + // Razorscale + EMOTE_PERMA = 0, + EMOTE_BREATH = 1 }; enum Spells @@ -245,7 +252,7 @@ class boss_razorscale_controller : public CreatureScript switch (eventId) { case EVENT_BUILD_HARPOON_1: - DoScriptText(EMOTE_HARPOON, me); + Talk(EMOTE_HARPOON); if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_1, PosHarpoon[0].GetPositionX(), PosHarpoon[0].GetPositionY(), PosHarpoon[0].GetPositionZ(), 4.790f, 0.0f, 0.0f, 0.0f, 0.0f, uint32(me->GetRespawnTime()))) { if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) //only nearest broken harpoon @@ -255,7 +262,7 @@ class boss_razorscale_controller : public CreatureScript } return; case EVENT_BUILD_HARPOON_2: - DoScriptText(EMOTE_HARPOON, me); + Talk(EMOTE_HARPOON); if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_2, PosHarpoon[1].GetPositionX(), PosHarpoon[1].GetPositionY(), PosHarpoon[1].GetPositionZ(), 4.659f, 0, 0, 0, 0, uint32(me->GetRespawnTime()))) { if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) @@ -264,7 +271,7 @@ class boss_razorscale_controller : public CreatureScript } return; case EVENT_BUILD_HARPOON_3: - DoScriptText(EMOTE_HARPOON, me); + Talk(EMOTE_HARPOON); if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_3, PosHarpoon[2].GetPositionX(), PosHarpoon[2].GetPositionY(), PosHarpoon[2].GetPositionZ(), 5.382f, 0, 0, 0, 0, uint32(me->GetRespawnTime()))) { if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) @@ -274,7 +281,7 @@ class boss_razorscale_controller : public CreatureScript } return; case EVENT_BUILD_HARPOON_4: - DoScriptText(EMOTE_HARPOON, me); + Talk(EMOTE_HARPOON); if (GameObject* Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_4, PosHarpoon[3].GetPositionX(), PosHarpoon[3].GetPositionY(), PosHarpoon[3].GetPositionZ(), 4.266f, 0, 0, 0, 0, uint32(me->GetRespawnTime()))) { if (GameObject* BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) @@ -444,7 +451,7 @@ class boss_razorscale : public CreatureScript me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); me->RemoveAllAuras(); me->SetReactState(REACT_AGGRESSIVE); - DoScriptText(EMOTE_BREATH, me, 0); + Talk(EMOTE_BREATH); DoCastAOE(SPELL_FLAMEBREATH); events.CancelEvent(EVENT_BREATH); return; @@ -468,7 +475,7 @@ class boss_razorscale : public CreatureScript events.ScheduleEvent(EVENT_FLAME, 10000, 0, PHASE_PERMAGROUND); return; case EVENT_BREATH: - me->MonsterTextEmote(EMOTE_BREATH, 0, true); + Talk(EMOTE_BREATH); DoCastVictim(SPELL_FLAMEBREATH); events.ScheduleEvent(EVENT_BREATH, 20000, 0, PHASE_PERMAGROUND); return; @@ -522,7 +529,7 @@ class boss_razorscale : public CreatureScript void EnterPermaGround() { - me->MonsterTextEmote(EMOTE_PERMA, 0, true); + Talk(EMOTE_PERMA); phase = PHASE_PERMAGROUND; events.SetPhase(PHASE_PERMAGROUND); me->SetCanFly(false); @@ -608,7 +615,7 @@ class npc_expedition_commander : public CreatureScript { if (!Greet && me->IsWithinDistInMap(who, 10.0f) && who->GetTypeId() == TYPEID_PLAYER) { - DoScriptText(SAY_GREET, me); + Talk(SAY_INTRO); Greet = true; } } @@ -623,7 +630,7 @@ class npc_expedition_commander : public CreatureScript switch (action) { case ACTION_GROUND_PHASE: - DoScriptText(SAY_GROUND_PHASE, me); + Talk(SAY_GROUND_PHASE); break; case ACTION_COMMANDER_RESET: summons.clear(); @@ -653,7 +660,7 @@ class npc_expedition_commander : public CreatureScript Engineer[n]->SetHomePosition(PosEngRepair[n]); Engineer[n]->GetMotionMaster()->MoveTargetedHome(); } - Engineer[0]->MonsterYell(SAY_AGGRO_3, LANG_UNIVERSAL, 0); + Engineer[0]->AI()->Talk(SAY_AGGRO_3); Phase = 3; AttackStartTimer = 14000; break; @@ -672,7 +679,7 @@ class npc_expedition_commander : public CreatureScript Engineer[n]->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); for (uint8 n = 0; n < 4; ++n) Defender[n]->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); - me->MonsterYell(SAY_AGGRO_2, LANG_UNIVERSAL, 0); + Talk(SAY_AGGRO_2); AttackStartTimer = 16000; Phase = 5; break; @@ -682,7 +689,7 @@ class npc_expedition_commander : public CreatureScript Razorscale->AI()->DoAction(ACTION_EVENT_START); me->SetInCombatWith(Razorscale); } - Engineer[0]->MonsterYell(SAY_AGGRO_1, LANG_UNIVERSAL, 0); + Engineer[0]->AI()->Talk(SAY_AGGRO_1); Phase = 6; break; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index 084cd3e0f86..0d4e3aad132 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -21,83 +21,80 @@ enum Yells { - SAY_AGGRO_1 = -1603270, - SAY_AGGRO_2 = -1603271, - SAY_SPECIAL_1 = -1603272, - SAY_SPECIAL_2 = -1603273, - SAY_SPECIAL_3 = -1603274, - SAY_JUMPDOWN = -1603275, - SAY_SLAY_1 = -1603276, - SAY_SLAY_2 = -1603277, - SAY_BERSERK = -1603278, - SAY_WIPE = -1603279, - SAY_DEATH = -1603280, - SAY_END_NORMAL_1 = -1603281, - SAY_END_NORMAL_2 = -1603282, - SAY_END_NORMAL_3 = -1603283, - SAY_END_HARD_1 = -1603284, - SAY_END_HARD_2 = -1603285, - SAY_END_HARD_3 = -1603286, - SAY_YS_HELP = -1603287, + SAY_AGGRO = 0, + SAY_SPECIAL_1 = 1, + SAY_SPECIAL_2 = 2, + SAY_SPECIAL_3 = 3, + SAY_JUMPDOWN = 4, + SAY_SLAY = 5, + SAY_BERSERK = 6, + SAY_WIPE = 7, + SAY_DEATH = 8, + SAY_END_NORMAL_1 = 9, + SAY_END_NORMAL_2 = 10, + SAY_END_NORMAL_3 = 11, + SAY_END_HARD_1 = 12, + SAY_END_HARD_2 = 13, + SAY_END_HARD_3 = 14 }; class boss_thorim : public CreatureScript { -public: - boss_thorim() : CreatureScript("boss_thorim") { } + public: + boss_thorim() : CreatureScript("boss_thorim") { } - CreatureAI* GetAI(Creature* creature) const - { - return GetUlduarAI<boss_thorimAI>(creature); - } - - struct boss_thorimAI : public BossAI - { - boss_thorimAI(Creature* creature) : BossAI(creature, BOSS_THORIM) + struct boss_thorimAI : public BossAI { - } + boss_thorimAI(Creature* creature) : BossAI(creature, BOSS_THORIM) + { + } - void Reset() - { - _Reset(); - } + void Reset() + { + _Reset(); + } - void EnterEvadeMode() - { - DoScriptText(SAY_WIPE, me); - _EnterEvadeMode(); - } + void EnterEvadeMode() + { + DoScriptText(SAY_WIPE, me); + _EnterEvadeMode(); + } - void KilledUnit(Unit* /*victim*/) - { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); - } + void KilledUnit(Unit* who) + { + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } - void JustDied(Unit* /*killer*/) - { - DoScriptText(SAY_DEATH, me); - _JustDied(); - } + void JustDied(Unit* /*killer*/) + { + DoScriptText(SAY_DEATH, me); + _JustDied(); + } - void EnterCombat(Unit* /*who*/) - { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2), me); - _EnterCombat(); - } + void EnterCombat(Unit* /*who*/) + { + Talk(SAY_AGGRO); + _EnterCombat(); + } - void UpdateAI(const uint32 diff) - { - if (!UpdateVictim()) - return; - //SPELLS TODO: + void UpdateAI(uint32 const diff) + { + if (!UpdateVictim()) + return; + //SPELLS TODO: - // - DoMeleeAttackIfReady(); + // + DoMeleeAttackIfReady(); - EnterEvadeIfOutOfCombatArea(diff); - } - }; + EnterEvadeIfOutOfCombatArea(diff); + } + }; + CreatureAI* GetAI(Creature* creature) const + { + return GetUlduarAI<boss_thorimAI>(creature); + } }; void AddSC_boss_thorim() diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index 30f60da178a..09ab35d6589 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -157,15 +157,18 @@ enum XT002Data enum Yells { - SAY_AGGRO = -1603300, - SAY_HEART_OPENED = -1603301, - SAY_HEART_CLOSED = -1603302, - SAY_TYMPANIC_TANTRUM = -1603303, - SAY_SLAY_1 = -1603304, - SAY_SLAY_2 = -1603305, - SAY_BERSERK = -1603306, - SAY_DEATH = -1603307, - SAY_SUMMON = -1603308, + SAY_AGGRO = 0, + SAY_HEART_OPENED = 1, + SAY_HEART_CLOSED = 2, + SAY_TYMPANIC_TANTRUM = 3, + SAY_SLAY = 4, + SAY_BERSERK = 5, + SAY_DEATH = 6, + SAY_SUMMON = 7, + EMOTE_HEART_OPENED = 8, + EMOTE_HEART_CLOSED = 9, + EMOTE_TYMPANIC_TANTRUM = 10, + EMOTE_SCRAPBOT = 11 }; enum AchievementCredits @@ -223,7 +226,7 @@ class boss_xt002 : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); _EnterCombat(); events.ScheduleEvent(EVENT_ENRAGE, TIMER_ENRAGE); @@ -248,14 +251,15 @@ class boss_xt002 : public CreatureScript } } - void KilledUnit(Unit* /*victim*/) + void KilledUnit(Unit* who) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); _JustDied(); } @@ -292,7 +296,8 @@ class boss_xt002 : public CreatureScript events.ScheduleEvent(EVENT_GRAVITY_BOMB, TIMER_GRAVITY_BOMB); break; case EVENT_TYMPANIC_TANTRUM: - DoScriptText(SAY_TYMPANIC_TANTRUM, me); + Talk(SAY_TYMPANIC_TANTRUM); + Talk(EMOTE_TYMPANIC_TANTRUM); DoCast(SPELL_TYMPANIC_TANTRUM); events.ScheduleEvent(EVENT_TYMPANIC_TANTRUM, urand(TIMER_TYMPANIC_TANTRUM_MIN, TIMER_TYMPANIC_TANTRUM_MAX)); break; @@ -300,7 +305,7 @@ class boss_xt002 : public CreatureScript SetPhaseOne(); break; case EVENT_ENRAGE: - DoScriptText(SAY_BERSERK, me); + Talk(SAY_BERSERK); DoCast(me, SPELL_ENRAGE); break; case EVENT_ENTER_HARD_MODE: @@ -325,6 +330,7 @@ class boss_xt002 : public CreatureScript if (me->GetHealthPct() > (25 * (4 - _heartExposed))) ++_heartExposed; + Talk(EMOTE_SCRAPBOT); _healthRecovered = true; } } @@ -359,7 +365,8 @@ class boss_xt002 : public CreatureScript void ExposeHeart() { - DoScriptText(SAY_HEART_OPENED, me); + Talk(SAY_HEART_OPENED); + Talk(EMOTE_HEART_OPENED); DoCast(me, SPELL_SUBMERGE); // WIll make creature untargetable me->AttackStop(); @@ -391,7 +398,8 @@ class boss_xt002 : public CreatureScript void SetPhaseOne() { - DoScriptText(SAY_HEART_CLOSED, me); + Talk(SAY_HEART_CLOSED); + Talk(EMOTE_HEART_CLOSED); DoCast(me, SPELL_STAND); me->SetReactState(REACT_AGGRESSIVE); @@ -928,7 +936,8 @@ class spell_xt002_heart_overload_periodic : public SpellScriptLoader } } - DoScriptText(SAY_SUMMON, caster->GetVehicleBase()); + if (Creature* base = caster->GetVehicleCreatureBase()) + base->AI()->Talk(SAY_SUMMON); } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp index 58ba125b994..20d6a7a40da 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp @@ -43,18 +43,6 @@ enum Sara enum YoggSaron_Yells { - SAY_PHASE2_1 = -1603330, - SAY_PHASE2_2 = -1603331, - SAY_PHASE2_3 = -1603332, - SAY_PHASE2_4 = -1603333, - SAY_PHASE2_5 = -1603334, - SAY_PHASE3 = -1603335, - SAY_VISION = -1603336, - SAY_SLAY_1 = -1603337, - SAY_SLAY_2 = -1603338, - WHISP_INSANITY_1 = -1603339, - WHISP_INSANITY_2 = -1603340, - SAY_DEATH = -1603341, }; enum |