From 83e0a70ddce81ac3d3552689d975b0f2c0262b49 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 --- 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/server') diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 1f9bdfd41a5..5c9537f4442 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 2ecdc6c54ae..0ca732462ae 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->GetPosition()); } void Reset() override -- cgit v1.2.3