diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Outland/BlackTemple/boss_illidan.cpp | 91 |
1 files changed, 53 insertions, 38 deletions
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 39fc20eea28..907d0c44d83 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -29,53 +29,58 @@ enum IllidanSay { // Illidan - SAY_ILLIDAN_MINION = 0, - SAY_ILLIDAN_KILL = 1, - SAY_ILLIDAN_TAKEOFF = 2, - SAY_ILLIDAN_SUMMONFLAMES = 3, - SAY_ILLIDAN_EYE_BLAST = 4, - SAY_ILLIDAN_MORPH = 5, - SAY_ILLIDAN_ENRAGE = 6, - SAY_ILLIDAN_TAUNT = 7, - SAY_ILLIDAN_DUPLICITY = 8, - SAY_ILLIDAN_UNCONVINCED = 9, - SAY_ILLIDAN_PREPARED = 10, - SAY_ILLIDAN_SHADOW_PRISON = 11, - SAY_ILLIDAN_CONFRONT_MAIEV = 12, - SAY_ILLIDAN_FRENZY = 13, - SAY_ILLIDAN_DEFEATED = 14, + SAY_ILLIDAN_MINION = 0, + SAY_ILLIDAN_KILL = 1, + SAY_ILLIDAN_TAKEOFF = 2, + SAY_ILLIDAN_SUMMONFLAMES = 3, + SAY_ILLIDAN_EYE_BLAST = 4, + SAY_ILLIDAN_MORPH = 5, + SAY_ILLIDAN_ENRAGE = 6, + SAY_ILLIDAN_TAUNT = 7, + SAY_ILLIDAN_DUPLICITY = 8, + SAY_ILLIDAN_UNCONVINCED = 9, + SAY_ILLIDAN_PREPARED = 10, + SAY_ILLIDAN_SHADOW_PRISON = 11, + SAY_ILLIDAN_CONFRONT_MAIEV = 12, + SAY_ILLIDAN_FRENZY = 13, + SAY_ILLIDAN_DEFEATED = 14, // Maiev Shadowsong - SAY_MAIEV_SHADOWSONG_TAUNT = 0, - SAY_MAIEV_SHADOWSONG_APPEAR = 1, - SAY_MAIEV_SHADOWSONG_JUSTICE = 2, - SAY_MAIEV_SHADOWSONG_TRAP = 3, - SAY_MAIEV_SHADOWSONG_DOWN = 4, - SAY_MAIEV_SHADOWSONG_FINISHED = 5, - SAY_MAIEV_SHADOWSONG_OUTRO = 6, - SAY_MAIEV_SHADOWSONG_FAREWELL = 7, + SAY_MAIEV_SHADOWSONG_TAUNT = 0, + SAY_MAIEV_SHADOWSONG_APPEAR = 1, + SAY_MAIEV_SHADOWSONG_JUSTICE = 2, + SAY_MAIEV_SHADOWSONG_TRAP = 3, + SAY_MAIEV_SHADOWSONG_DOWN = 4, + SAY_MAIEV_SHADOWSONG_FINISHED = 5, + SAY_MAIEV_SHADOWSONG_OUTRO = 6, + SAY_MAIEV_SHADOWSONG_FAREWELL = 7, // Flame of Azzinoth - EMOTE_AZZINOTH_GAZE = 0, + EMOTE_AZZINOTH_GAZE = 0, // Akama - SAY_AKAMA_DOOR = 0, - SAY_AKAMA_ALONE = 1, - SAY_AKAMA_SALUTE = 2, - SAY_AKAMA_BETRAYER = 3, - SAY_AKAMA_FREE = 4, - SAY_AKAMA_TIME_HAS_COME = 5, - SAY_AKAMA_MINIONS = 6, - SAY_AKAMA_LIGHT = 7, - SAY_AKAMA_FINISH = 8, + SAY_AKAMA_DOOR = 0, + SAY_AKAMA_ALONE = 1, + SAY_AKAMA_SALUTE = 2, + SAY_AKAMA_BETRAYER = 3, + SAY_AKAMA_FREE = 4, + SAY_AKAMA_TIME_HAS_COME = 5, + SAY_AKAMA_MINIONS = 6, + SAY_AKAMA_LIGHT = 7, + SAY_AKAMA_FINISH = 8, // Spirits - SAY_SPIRIT_ALONE = 0, + SAY_SPIRIT_ALONE = 0, // Direct Sounds - ILLIDAN_TAKEOFF_SOUND_ID = 11479, - ILLIDAN_WARGLAIVE_SOUND_ID = 11480, - WARGLAIVE_SPAWN_SOUND_ID = 11689 + ILLIDAN_TAKEOFF_SOUND_ID = 11479, + ILLIDAN_WARGLAIVE_SOUND_ID = 11480, + WARGLAIVE_SPAWN_SOUND_ID = 11689, + EVENT_BT_SUMMIT_WALK_SOUND_ID = 11717, + EVENT_BT_SUMMIT_WALK_3_SOUND_ID = 11725, + EVENT_BT_STORM_WALK_HERO_2_SOUND_ID = 11727, + EVENT_BT_STORM_WALK_UNI_3_SOUND_ID = 11729, + EVENT_BT_ARRIVAL_WALK_HERO_1_SOUND_ID = 11728 }; enum IllidanSpells @@ -187,7 +192,8 @@ enum IllidanMisc SUMMON_GROUP = 1, DATA_AKAMA_TELEPORT_POSITION = 0, MAX_MINIONS_NUMBER = 10, - SPELL_GLAIVE_VISUAL_KIT = 7668 + SPELL_GLAIVE_VISUAL_KIT = 7668, + BLACK_TEMPLE_ZONE_ID = 3959 }; enum IllidanActions @@ -284,6 +290,7 @@ enum IllidanEvents EVENT_AKAMA_LIGHT_TEXT, EVENT_FINAL_SALUTE, EVENT_AKAMA_DESPAWN, + EVENT_AKAMA_START_SOUND, // Illidan Stormrage EVENT_START_INTRO, @@ -468,6 +475,7 @@ public: { _EnterCombat(); me->SetCanDualWield(true); + me->GetMap()->SetZoneMusic(BLACK_TEMPLE_ZONE_ID, EVENT_BT_SUMMIT_WALK_3_SOUND_ID); specialEvents.ScheduleEvent(EVENT_EVADE_CHECK, Seconds(10)); specialEvents.ScheduleEvent(EVENT_BERSERK, Minutes(25)); ScheduleEvents(GROUP_PHASE_1, GROUP_PHASE_1); @@ -837,6 +845,7 @@ public: pos.Relocate(triggers.front()); pos.SetOrientation(0.0f); me->GetMotionMaster()->MovePoint(POINT_THROW_GLAIVE, pos); + me->GetMap()->SetZoneMusic(BLACK_TEMPLE_ZONE_ID, EVENT_BT_STORM_WALK_HERO_2_SOUND_ID); break; } case EVENT_THROW_WARGLAIVE: @@ -905,6 +914,7 @@ public: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); ScheduleEvents(GROUP_PHASE_3, GROUP_PHASE_3); + me->GetMap()->SetZoneMusic(BLACK_TEMPLE_ZONE_ID, EVENT_BT_STORM_WALK_UNI_3_SOUND_ID); break; case EVENT_AGONIZING_FLAMES: DoCastSelf(SPELL_AGONIZING_FLAMES_SELECTOR); @@ -979,6 +989,7 @@ public: break; case EVENT_DEFEATED_TEXT: Talk(SAY_ILLIDAN_DEFEATED); + me->GetMap()->SetZoneMusic(BLACK_TEMPLE_ZONE_ID, EVENT_BT_ARRIVAL_WALK_HERO_1_SOUND_ID); events.ScheduleEvent(EVENT_QUIET_SUICIDE, Seconds(18)); break; case EVENT_QUIET_SUICIDE: @@ -1236,6 +1247,10 @@ public: undalo->CastSpell((Unit*) nullptr, SPELL_DEATHSWORN_DOOR_CHANNEL); if (Creature* olum = ObjectAccessor::GetCreature(*me, _spiritOfOlumGUID)) olum->CastSpell((Unit*) nullptr, SPELL_DEATHSWORN_DOOR_CHANNEL); + _events.ScheduleEvent(EVENT_AKAMA_START_SOUND, Seconds(5)); + break; + case EVENT_AKAMA_START_SOUND: + me->GetMap()->SetZoneMusic(BLACK_TEMPLE_ZONE_ID, EVENT_BT_SUMMIT_WALK_SOUND_ID); break; case EVENT_AKAMA_THANKS: Talk(SAY_AKAMA_SALUTE); |