From 281aef7c40f2a222b1189bbd6573d020653673db Mon Sep 17 00:00:00 2001 From: Keader Date: Thu, 5 Nov 2020 12:05:14 -0300 Subject: Scripts/Black Temple: Some little fixes - Fixed Reliquary of Souls ignoring boundary - Fixed Maiev texts timer - Fixed Shadow Prison hitting every single npc on black temple Many thanks to Ovahlord (cherry picked from commit 83e0a70ddce81ac3d3552689d975b0f2c0262b49) --- src/server/scripts/Outland/BlackTemple/boss_illidan.cpp | 10 ++++++---- .../scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 260c496c92c..bd0d3b03117 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -235,7 +235,8 @@ enum IllidanPhases PHASE_MINIONS, PHASE_2, PHASE_3, - PHASE_4 + PHASE_4, + PHASE_OUTRO }; enum IllidanSplineMovement @@ -1621,12 +1622,12 @@ struct npc_maiev : public ScriptedAI { npc_maiev(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _canDown(true) { } - void Reset() override + void JustAppeared() override { if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE)) me->SetFacingToObject(illidan); me->SetReactState(REACT_PASSIVE); - _events.SetPhase(PHASE_INTRO); + _events.SetPhase(PHASE_OUTRO); _events.ScheduleEvent(EVENT_MAIEV_APPEAR, 1s); _events.ScheduleEvent(EVENT_MAIEV_EXCLAMATION, 2s); _events.ScheduleEvent(EVENT_MAIEV_JUSTICE_TEXT, 14s); @@ -1647,6 +1648,7 @@ struct npc_maiev : public ScriptedAI if (actionId == ACTION_START_OUTRO) { _events.Reset(); + _events.SetPhase(PHASE_OUTRO); me->SetReactState(REACT_PASSIVE); me->AttackStop(); if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE)) @@ -1671,7 +1673,7 @@ struct npc_maiev : public ScriptedAI void UpdateAI(uint32 diff) override { - if (!UpdateVictim() && !_events.IsInPhase(PHASE_INTRO)) + if (!_events.IsInPhase(PHASE_OUTRO) && !UpdateVictim()) return; if (me->HasUnitState(UNIT_STATE_CASTING)) diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index f3185f545d6..c8785f30bdf 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -656,6 +656,12 @@ struct npc_reliquary_combat_trigger : public ScriptedAI { SetCombatMovement(false); creature->m_SightDistance = 70.0f; + SetBoundary(_instance->GetBossBoundary(DATA_RELIQUARY_OF_SOULS)); + } + + bool CanAIAttack(Unit const* who) const override + { + return ScriptedAI::CanAIAttack(who) && IsInBoundary(who); } void Reset() override -- cgit v1.2.3