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 83e0a70ddc)
This commit is contained in:
Keader
2020-11-05 12:05:14 -03:00
committed by Shauren
parent 442824e807
commit 281aef7c40
3 changed files with 16 additions and 4 deletions

View File

@@ -0,0 +1,4 @@
--
DELETE FROM `conditions` WHERE `SourceEntry`= 40647 AND `SourceTypeOrReferenceId`= 13;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ScriptName`, `Comment`) VALUES
(13, 4, 40647, 0, 0, 31, 0, 3, 23089, 0, 0, 0, '', 'Shadow Prison - Target Akama');

View File

@@ -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))

View File

@@ -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