From 156b1eb969bad2dac638add03e213be2d3e7a9f9 Mon Sep 17 00:00:00 2001 From: avarishd <46330494+avarishd@users.noreply.github.com> Date: Mon, 6 Jun 2022 15:05:59 +0300 Subject: [PATCH] fix(Script/Instance): Ulduar - Flame Leviathan Hardcore to DB (#11879) * Hardcore removal and comment out RepairText for Players * codestyle * Remove (now) unused void Say --- .../rev_1653600539752129200.sql | 43 +++ .../Ulduar/Ulduar/boss_flame_leviathan.cpp | 268 ++++++++---------- 2 files changed, 168 insertions(+), 143 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1653600539752129200.sql diff --git a/data/sql/updates/pending_db_world/rev_1653600539752129200.sql b/data/sql/updates/pending_db_world/rev_1653600539752129200.sql new file mode 100644 index 000000000..e23f22dce --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1653600539752129200.sql @@ -0,0 +1,43 @@ +-- Flame Leviathan add mising Boss Emote (15 and above) +DELETE FROM `creature_text` WHERE `CreatureID` = 33113; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(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, 33487, 0, '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, 33507, 0, 'Flame Leviathan SAY_SLAY'), +(33113, 2, 0, 'Total systems failure. Defense protocols breached. Leviathan unit shutting down.', 14, 0, 100, 0, 0, 15520, 33506, 0, 'Flame Leviathan SAY_DEATH'), +(33113, 3, 0, 'Threat re-evaluated. Target assessment complete. Changing course.', 14, 0, 100, 0, 0, 15507, 33488, 0, 'Flame Leviathan SAY_TARGET_1'), +(33113, 3, 1, 'Pursuit objective modified. Changing course.', 14, 0, 100, 0, 0, 15508, 33489, 0, 'Flame Leviathan SAY_TARGET_2'), +(33113, 3, 2, 'Hostile entity\'s stratagem predicted. Re-routing battle function. Changing course.', 14, 0, 100, 0, 0, 15509, 33490, 0, 'Flame Leviathan SAY_TARGET_3'), +(33113, 4, 0, 'Orbital countermeasures enabled.', 14, 0, 100, 0, 0, 15510, 33491, 0, 'Flame Leviathan SAY_HARDMODE'), +(33113, 5, 0, '*ALERT* Static defense system failure. Orbital countermeasures disabled.', 14, 0, 100, 0, 0, 15511, 33492, 0, 'Flame Leviathan SAY_TOWER_NONE'), +(33113, 6, 0, 'Hodir\'s Fury online. Acquiring target.', 14, 0, 100, 0, 0, 15512, 33493, 0, 'Flame Leviathan SAY_TOWER_FROST'), +(33113, 7, 0, 'Mimiron\'s Inferno online. Acquiring target.', 14, 0, 100, 0, 0, 15513, 33495, 0, 'Flame Leviathan SAY_TOWER_FLAME'), +(33113, 8, 0, 'Freya\'s Ward online. Acquiring target.', 14, 0, 100, 0, 0, 15514, 33497, 0, 'Flame Leviathan SAY_TOWER_NATURE'), +(33113, 9, 0, 'Thorim\'s Hammer online. Acquiring target.', 14, 0, 100, 0, 0, 15515, 33499, 0, 'Flame Leviathan SAY_TOWER_STORM'), +(33113, 10, 0, 'Unauthorized entity attempting circuit overload. Activating anti-personnel countermeasures.', 14, 0, 100, 0, 0, 15516, 33501, 0, 'Flame Leviathan SAY_PLAYER_RIDING'), +(33113, 11, 0, 'System malfunction. Diverting power to support systems.', 14, 0, 100, 0, 0, 15517, 33503, 0, 'Flame Leviathan SAY_OVERLOAD_1'), +(33113, 11, 1, 'Combat matrix overload. Powering doooow...', 14, 0, 100, 0, 0, 15518, 33504, 0, 'Flame Leviathan SAY_OVERLOAD_2'), +(33113, 11, 2, 'System restart required. Deactivating weapons systems.', 14, 0, 100, 0, 0, 15519, 33505, 0, 'Flame Leviathan SAY_OVERLOAD_3'), +(33113, 12, 0, '%s pursues $n.', 41, 0, 100, 0, 0, 0, 33502, 0, 'Flame Leviathan EMOTE_PURSUE'), +(33113, 13, 0, '%s\'s circuits overloaded.', 41, 0, 100, 0, 0, 0, 33304, 0, 'Flame Leviathan EMOTE_OVERLOAD'), +(33113, 14, 0, 'Automatic repair sequence initiated.', 41, 0, 100, 0, 0, 0, 33538, 0, 'Flame Leviathan EMOTE_REPAIR'), +(33113, 15, 0, '%s activates Hodir\'s Fury.', 41, 0, 100, 0, 0, 0, 33494, 0, 'Flame Leviathan EMOTE_FROST'), +(33113, 16, 0, '%s activates Mimiron\'s Inferno.', 41, 0, 100, 0, 0, 0, 33496, 0, 'Flame Leviathan EMOTE_FLAME'), +(33113, 17, 0, '%s activates Freya\'s Ward.', 41, 0, 100, 0, 0, 0, 33498, 0, 'Flame Leviathan EMOTE_NATURE'), +(33113, 18, 0, '%s activates Thorim\'s Hammer.', 41, 0, 100, 0, 0, 0, 33500, 0, 'Flame Leviathan EMOTE_STORM'), +(33113, 19, 0, '%s reactivated. Resuming combat functions.', 41, 0, 100, 0, 0, 0, 33305, 0, 'Flame Leviathan EMOTE_REACTIVATE'); + +-- Bronzebeard Radio remove equipment (floating pickaxe) +DELETE FROM `creature_equip_template` WHERE `CreatureID` = 34054; + +-- Bronzebeard Radio move hardcode to DB (previously empty) +DELETE FROM `creature_text` WHERE `CreatureID` = 34054; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(34054, 0, 0, 'You\'ve done it! You\'ve broken the defenses of Ulduar. In a few moments, we will be dropping in to...', 12, 0, 100, 0, 0, 15804, 34154, 3, 'Bronzebeard Radio SAY_FL_START_0'), +(34054, 1, 0, 'What is that? Be careful! Something\'s headed your way!', 12, 0, 100, 0, 0, 15805, 34155, 3, 'Bronzebeard Radio SAY_FL_START_1'), +(34054, 2, 0, 'Quicly! Evasive action! Evasive act--', 12, 0, 100, 0, 0, 15806, 34156, 3, 'Bronzebeard Radio SAY_FL_START_2'), +(34054, 3, 0, 'There are four generators powering the defense structures. If you sabotage the generators, the missile attacks will stop!', 12, 0, 100, 0, 0, 15796, 34147, 3, 'Bronzebeard Radio SAY_FL_GENERATORS'), +(34054, 4, 0, 'It appears you are near a repair station! Drive your vehicle onto the platform, and it should be automatically repaired.', 12, 0, 100, 0, 0, 15803, 34153, 3, 'Bronzebeard Radio SAY_STATIONS'), +(34054, 5, 0, 'Ah, the tower of Krolmir. It is said that the power of Thorim has been used only once... and that it turned an entire continent to dust.', 12, 0, 100, 0, 0, 15801, 34151, 3, 'Bronzebeard Radio SAY_TOWER_THORIM'), +(34054, 6, 0, 'This tower powers the Hammer of Hodir. It is said to have the power to turn entire armies to ice!', 12, 0, 100, 0, 0, 15797, 34148, 3, 'Bronzebeard Radio SAY_TOWER_HODIR'), +(34054, 7, 0, 'You\'re approaching the tower of Freya. It contains the power to turn barren wastelands into jungles teeming with life overnight.', 12, 0, 100, 0, 0, 15798, 34149, 3, 'Bronzebeard Radio SAY_TOWER_FREYA'), +(34054, 8, 0, 'This generator powers Mimiron\'s Gaze. In moments, it can turn earth to ash, stone to magma--we cannot let it reach full power!', 12, 0, 100, 0, 0, 15799, 34150, 3, 'Bronzebeard Radio SAY_TOWER_MIMIRON'); 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 506e84d8c..376c1ec4d 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -34,157 +34,155 @@ enum LeviathanSpells { // Leviathan basic - SPELL_PURSUED = 62374, - SPELL_GATHERING_SPEED = 62375, - SPELL_BATTERING_RAM = 62376, - SPELL_FLAME_VENTS = 62396, - SPELL_MISSILE_BARRAGE = 62400, - SPELL_NAPALM_10 = 63666, - SPELL_NAPALM_25 = 65026, - SPELL_INVIS_AND_STEALTH_DETECT = 18950, - SPELL_TRANSITUS_SHIELD_IMPACT = 48387, + SPELL_PURSUED = 62374, + SPELL_GATHERING_SPEED = 62375, + SPELL_BATTERING_RAM = 62376, + SPELL_FLAME_VENTS = 62396, + SPELL_MISSILE_BARRAGE = 62400, + SPELL_NAPALM_10 = 63666, + SPELL_NAPALM_25 = 65026, + SPELL_INVIS_AND_STEALTH_DETECT = 18950, + SPELL_TRANSITUS_SHIELD_IMPACT = 48387, // Shutdown spells - SPELL_SYSTEMS_SHUTDOWN = 62475, - SPELL_OVERLOAD_CIRCUIT = 62399, + SPELL_SYSTEMS_SHUTDOWN = 62475, + SPELL_OVERLOAD_CIRCUIT = 62399, // hard mode - SPELL_TOWER_OF_STORMS = 65076, - SPELL_TOWER_OF_FLAMES = 65075, - SPELL_TOWER_OF_FROST = 65077, - SPELL_TOWER_OF_LIFE = 64482, + SPELL_TOWER_OF_STORMS = 65076, + SPELL_TOWER_OF_FLAMES = 65075, + SPELL_TOWER_OF_FROST = 65077, + SPELL_TOWER_OF_LIFE = 64482, - SPELL_HODIRS_FURY = 62533, - SPELL_FREYA_WARD = 62906, // removed spawn effect - SPELL_MIMIRONS_INFERNO = 62909, - SPELL_THORIMS_HAMMER = 62911, + SPELL_HODIRS_FURY = 62533, + SPELL_FREYA_WARD = 62906, // removed spawn effect + SPELL_MIMIRONS_INFERNO = 62909, + SPELL_THORIMS_HAMMER = 62911, - SPELL_FREYA_DUMMY_BLUE = 63294, - SPELL_FREYA_DUMMY_GREEN = 63295, - SPELL_FREYA_DUMMY_YELLOW = 63292, + SPELL_FREYA_DUMMY_BLUE = 63294, + SPELL_FREYA_DUMMY_GREEN = 63295, + SPELL_FREYA_DUMMY_YELLOW = 63292, // Leviathan turret spell - SPELL_SEARING_FLAME = 62402, + SPELL_SEARING_FLAME = 62402, // On turret Destory - SPELL_SMOKE_TRAIL = 63575, + SPELL_SMOKE_TRAIL = 63575, // Pool of tar blaze - SPELL_BLAZE = 62292, + SPELL_BLAZE = 62292, // Pyrite - SPELL_LIQUID_PYRITE = 62494, - SPELL_DUSTY_EXPLOSION = 63360, - SPELL_DUST_CLOUD_IMPACT = 54740, + SPELL_LIQUID_PYRITE = 62494, + SPELL_DUSTY_EXPLOSION = 63360, + SPELL_DUST_CLOUD_IMPACT = 54740, }; enum GosNpcs { - NPC_FLAME_LEVIATHAN_TURRET = 33139, - NPC_SEAT = 33114, - NPC_MECHANOLIFT = 33214, - NPC_LIQUID = 33189, + NPC_FLAME_LEVIATHAN_TURRET = 33139, + NPC_SEAT = 33114, + NPC_MECHANOLIFT = 33214, + NPC_LIQUID = 33189, // Starting event - NPC_ULDUAR_COLOSSUS = 33237, - NPC_BRANN_RADIO = 34054, - NPC_ULDUAR_GAUNTLET_GENERATOR = 33571, - NPC_DEFENDER_GENERATED = 33572, + NPC_ULDUAR_COLOSSUS = 33237, + NPC_BRANN_RADIO = 34054, + NPC_ULDUAR_GAUNTLET_GENERATOR = 33571, + NPC_DEFENDER_GENERATED = 33572, // Hard Mode - NPC_THORIM_HAMMER_TARGET = 33364, - NPC_THORIM_HAMMER = 33365, - NPC_FREYA_WARD_TARGET = 33366, - NPC_FREYA_WARD = 33367, - NPC_MIMIRONS_INFERNO_TARGET = 33369, - NPC_MIMIRONS_INFERNO = 33370, - NPC_HODIRS_FURY_TARGET = 33108, - NPC_HODIRS_FURY = 33212, + NPC_THORIM_HAMMER_TARGET = 33364, + NPC_THORIM_HAMMER = 33365, + NPC_FREYA_WARD_TARGET = 33366, + NPC_FREYA_WARD = 33367, + NPC_MIMIRONS_INFERNO_TARGET = 33369, + NPC_MIMIRONS_INFERNO = 33370, + NPC_HODIRS_FURY_TARGET = 33108, + NPC_HODIRS_FURY = 33212, }; enum Events { - EVENT_PURSUE = 1, - EVENT_MISSILE, - EVENT_VENT, - EVENT_SPEED, - EVENT_SUMMON, - EVENT_REINSTALL, - EVENT_HODIRS_FURY, - EVENT_FREYA, - EVENT_MIMIRONS_INFERNO, - EVENT_THORIMS_HAMMER, - EVENT_SOUND_BEGINNING, - EVENT_POSITION_CHECK, + EVENT_PURSUE = 1, + EVENT_MISSILE = 2, + EVENT_VENT = 3, + EVENT_SPEED = 4, + EVENT_SUMMON = 5, + EVENT_REINSTALL = 6, + EVENT_HODIRS_FURY = 7, + EVENT_FREYA = 8, + EVENT_MIMIRONS_INFERNO = 9, + EVENT_THORIMS_HAMMER = 10, + EVENT_SOUND_BEGINNING = 11, + EVENT_POSITION_CHECK = 12, }; enum Texts { - FLAME_LEVIATHAN_SAY_AGGRO = 0, - FLAME_LEVIATHAN_SAY_SLAY, - FLAME_LEVIATHAN_SAY_DEATH, - FLAME_LEVIATHAN_SAY_PURSUE, - FLAME_LEVIATHAN_SAY_HARDMODE, - FLAME_LEVIATHAN_SAY_TOWER_NONE, - FLAME_LEVIATHAN_SAY_TOWER_FROST, - FLAME_LEVIATHAN_SAY_TOWER_FLAME, - FLAME_LEVIATHAN_SAY_TOWER_NATURE, - FLAME_LEVIATHAN_SAY_TOWER_STORM, - FLAME_LEVIATHAN_SAY_PLAYER_RIDING, - FLAME_LEVIATHAN_SAY_OVERLOAD, - FLAME_LEVIATHAN_EMOTE_PURSUE, - FLAME_LEVIATHAN_EMOTE_OVERLOAD, - FLAME_LEVIATHAN_EMOTE_REPAIR -}; + FLAME_LEVIATHAN_SAY_AGGRO = 0, + FLAME_LEVIATHAN_SAY_SLAY = 1, + FLAME_LEVIATHAN_SAY_DEATH = 2, + FLAME_LEVIATHAN_SAY_PURSUE = 3, + FLAME_LEVIATHAN_SAY_HARDMODE = 4, + FLAME_LEVIATHAN_SAY_TOWER_NONE = 5, + FLAME_LEVIATHAN_SAY_TOWER_FROST = 6, + FLAME_LEVIATHAN_SAY_TOWER_FLAME = 7, + FLAME_LEVIATHAN_SAY_TOWER_NATURE = 8, + FLAME_LEVIATHAN_SAY_TOWER_STORM = 9, + FLAME_LEVIATHAN_SAY_PLAYER_RIDING = 10, + FLAME_LEVIATHAN_SAY_OVERLOAD = 11, + FLAME_LEVIATHAN_EMOTE_PURSUE = 12, + FLAME_LEVIATHAN_EMOTE_OVERLOAD = 13, + FLAME_LEVIATHAN_EMOTE_REPAIR = 14, + FLAME_LEVIATHAN_EMOTE_FROST = 15, + FLAME_LEVIATHAN_EMOTE_FLAME = 16, + FLAME_LEVIATHAN_EMOTE_NATURE = 17, + FLAME_LEVIATHAN_EMOTE_STORM = 18, + FLAME_LEVIATHAN_EMOTE_REACTIVATE = 19, -enum Sounds -{ - RSOUND_L0 = 15807, - RSOUND_L1 = 15804, - RSOUND_L2 = 15805, - RSOUND_L3 = 15806, - RSOUND_ENGAGE = 15794, - RSOUND_SILOS = 15795, - RSOUND_GENERATORS = 15796, - RSOUND_HODIR = 15797, - RSOUND_FREYA = 15798, - RSOUND_MIMIRON = 15799, - RSOUND_THORIM = 15801, - RSOUND_STATION = 15803, + // NPC_BRANN_RADIO + BRANN_RADIO_SAY_FL_START_0 = 0, + BRANN_RADIO_SAY_FL_START_1 = 1, + BRANN_RADIO_SAY_FL_START_2 = 2, + BRANN_RADIO_SAY_GENERATORS = 3, + BRANN_RADIO_SAY_STATIONS = 4, + BRANN_RADIO_SAY_TOWER_THORIM = 5, + BRANN_RADIO_SAY_TOWER_HODIR = 6, + BRANN_RADIO_SAY_TOWER_FREYA = 7, + BRANN_RADIO_SAY_TOWER_MIMIRON = 8, + + // Vehicle Repair - Said by a spell, BroadcastTextID, same as FLAME_LEVIATHAN_EMOTE_REPAIR + VEHICLE_EMOTE_REPAIR = 33538, }; enum Seats { - SEAT_PLAYER = 0, - SEAT_TURRET = 1, - SEAT_DEVICE = 2, - SEAT_CANNON = 7, + SEAT_PLAYER = 0, + SEAT_TURRET = 1, + SEAT_DEVICE = 2, + SEAT_CANNON = 7, }; enum Misc { - DATA_EVENT_STARTED = 1, - DATA_GET_TOWER_COUNT = 2, - DATA_GET_SHUTDOWN = 3, + DATA_EVENT_STARTED = 1, + DATA_GET_TOWER_COUNT = 2, + DATA_GET_SHUTDOWN = 3, - TOWER_OF_STORMS = 2, - TOWER_OF_FLAMES = 1, - TOWER_OF_FROST = 3, - TOWER_OF_LIFE = 0, + TOWER_OF_STORMS = 2, + TOWER_OF_FLAMES = 1, + TOWER_OF_FROST = 3, + TOWER_OF_LIFE = 0, - ACTION_START_NORGANNON_EVENT = 1, - ACTION_START_NORGANNON_BRANN = 2, - ACTION_START_BRANN_EVENT = 3, - ACTION_DESPAWN_ADDS = 4, - ACTION_DELAY_CANNON = 5, - ACTION_DESTROYED_TURRET = 6, + ACTION_START_NORGANNON_EVENT = 1, + ACTION_START_NORGANNON_BRANN = 2, + ACTION_START_BRANN_EVENT = 3, + ACTION_DESPAWN_ADDS = 4, + ACTION_DELAY_CANNON = 5, + ACTION_DESTROYED_TURRET = 6, }; -const Position homePos = {322.39f, -14.5f, 409.8f, 3.14f}; -/////////////////////////////////////////// -// -// BOSS CODE -// -/////////////////////////////////////////// +const Position homePos = {322.39f, -14.5f, 409.8f, 3.14f}; class boss_flame_leviathan : public CreatureScript { @@ -217,7 +215,7 @@ public: // Custom void BindPlayers(); - void RadioSay(const char* text, uint32 soundId); + void RadioSay(uint8 textid); void ActivateTowers(); void TurnGates(bool _start, bool _death); void TurnHealStations(bool _apply); @@ -357,18 +355,18 @@ public: _speakTimer += diff; if (_speakTimer <= 10000) { - RadioSay("You've done it! You've broken the defenses of Ulduar. In a few moments, we will be dropping in to...", RSOUND_L1); _speakTimer = 10000; + RadioSay(BRANN_RADIO_SAY_FL_START_0); } else if (_speakTimer > 16000 && _speakTimer < 20000) { _speakTimer = 20000; - RadioSay("What is that? Be careful! Something's headed your way!", RSOUND_L2); + RadioSay(BRANN_RADIO_SAY_FL_START_1); } else if (_speakTimer > 24000 && _speakTimer < 40000) { _speakTimer = 40000; - RadioSay("Quicly! Evasive action! Evasive act--", RSOUND_L3); + RadioSay(BRANN_RADIO_SAY_FL_START_2); } else if (_speakTimer > 41000 && _speakTimer < 60000) { @@ -443,27 +441,27 @@ public: if (Unit* seat = vehicle->GetPassenger(i)) if (seat->GetTypeId() == TYPEID_UNIT) seat->ToCreature()->AI()->EnterEvadeMode(); - me->TextEmote("Flame Leviathan reactivated. Resumming combat functions.", nullptr, true); + Talk(FLAME_LEVIATHAN_EMOTE_REACTIVATE); return; case EVENT_THORIMS_HAMMER: SummonTowerHelpers(TOWER_OF_STORMS); events.RepeatEvent(60000 + rand() % 60000); - me->TextEmote("Flame Leviathan activates Thorim's Hammer.", nullptr, true); + Talk(FLAME_LEVIATHAN_EMOTE_STORM); Talk(FLAME_LEVIATHAN_SAY_TOWER_STORM); return; case EVENT_FREYA: SummonTowerHelpers(TOWER_OF_LIFE); - me->TextEmote("Flame Leviathan activates Freya's Ward.", nullptr, true); + Talk(FLAME_LEVIATHAN_EMOTE_NATURE); Talk(FLAME_LEVIATHAN_SAY_TOWER_NATURE); return; case EVENT_MIMIRONS_INFERNO: SummonTowerHelpers(TOWER_OF_FLAMES); - me->TextEmote("Flame Leviathan activates Mimiron's Inferno.", nullptr, true); + Talk(FLAME_LEVIATHAN_EMOTE_FLAME); Talk(FLAME_LEVIATHAN_SAY_TOWER_FLAME); return; case EVENT_HODIRS_FURY: SummonTowerHelpers(TOWER_OF_FROST); - me->TextEmote("Flame Leviathan activates Hodir's Fury.", nullptr, true); + Talk(FLAME_LEVIATHAN_EMOTE_FROST); Talk(FLAME_LEVIATHAN_SAY_TOWER_FROST); return; } @@ -499,14 +497,11 @@ void boss_flame_leviathan::boss_flame_leviathanAI::BindPlayers() me->GetMap()->ToInstanceMap()->PermBindAllPlayers(); } -void boss_flame_leviathan::boss_flame_leviathanAI::RadioSay(const char* text, uint32 soundId) +void boss_flame_leviathan::boss_flame_leviathanAI::RadioSay(uint8 textid) { if (Creature* r = me->SummonCreature(NPC_BRANN_RADIO, me->GetPositionX() - 150, me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 5000)) { - WorldPacket data; - ChatHandler::BuildChatPacket(data, CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, r, nullptr, text); - r->SendMessageToSetInRange(&data, 200, true); - r->PlayDirectSound(soundId); + r->AI()->Talk(textid); } } @@ -1223,13 +1218,6 @@ public: me->SetReactState(REACT_AGGRESSIVE); } - void Say(const char* text) - { - WorldPacket data; - ChatHandler::BuildChatPacket(data, CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, me, nullptr, text); - me->SendMessageToSetInRange(&data, 100.0f, true); - } - void MoveInLineOfSight(Unit* who) override { if (!_lock) @@ -1242,8 +1230,7 @@ public: { if (me->GetDistance2d(who) <= 60.0f && who->GetPositionZ() > 430.0f) { - Say("This generator powers Mimiron's Gaze. In moments, it can turn earth to ash, stone to magma--we cannot let it reach full power!"); - me->PlayDirectSound(RSOUND_MIMIRON); + Talk(BRANN_RADIO_SAY_TOWER_MIMIRON); _lock = true; } } @@ -1252,8 +1239,7 @@ public: { if (me->GetDistance2d(who) <= 60.0f && who->GetPositionZ() < 380.0f) { - Say("You're approaching the tower of Freya. It contains the power to turn barren wastelands into jungles teeming with life overnight"); - me->PlayDirectSound(RSOUND_FREYA); + Talk(BRANN_RADIO_SAY_TOWER_FREYA); _lock = true; } } @@ -1262,8 +1248,7 @@ public: { if (me->GetDistance2d(who) <= 40.0f) { - Say("It appears you are near a repair station. Drive your vehicle on to the platform and it should be automatically repaired."); - me->PlayDirectSound(RSOUND_STATION); + Talk(BRANN_RADIO_SAY_STATIONS); _lock = true; } } @@ -1272,8 +1257,7 @@ public: { if (me->GetDistance2d(who) <= 40.0f) { - Say("This tower powers the hammer of Hodir. It is said to have the power to turn entire armies to ice!"); - me->PlayDirectSound(RSOUND_HODIR); + Talk(BRANN_RADIO_SAY_TOWER_HODIR); _lock = true; } } @@ -1282,8 +1266,7 @@ public: { if (me->GetDistance2d(who) <= 60.0f) { - Say("Aaaah, the tower of Krolmir. It is said that the power of Thorim has been used only once. And that it turned an entire continent to dust..."); - me->PlayDirectSound(RSOUND_THORIM); + Talk(BRANN_RADIO_SAY_TOWER_THORIM); _lock = true; } } @@ -1292,8 +1275,7 @@ public: { if (who->GetPositionX() >= -480.0f) { - Say("There are four generators powering the defense structures. If you sabotage the generators, the missile attacks will stop!"); - me->PlayDirectSound(RSOUND_GENERATORS); + Talk(BRANN_RADIO_SAY_GENERATORS); _lock = true; } } @@ -1533,7 +1515,7 @@ public: if (!driver) return; - driver->TextEmote("Automatic repair sequence initiated.", driver, true); + //driver->TextEmote(VEHICLE_EMOTE_REPAIR, driver, true); // No source // Actually should/could use basepoints (100) for this spell effect as percentage of health, but oh well. vehicle->GetBase()->SetFullHealth();