[Core / Script] Mr Smite Event Update (#1340)

Fixed an issue where Mr Smite would do his stomp event more than once.
This commit is contained in:
Lee
2019-01-22 08:12:46 +00:00
committed by GitHub
parent a8621e44e8
commit 662a49bfd8
@@ -43,9 +43,13 @@ class boss_mr_smite : public CreatureScript
} }
EventMap events; EventMap events;
bool health67;
bool health34;
void Reset() void Reset()
{ {
health67 = false;
health34 = false;
me->LoadEquipment(EQUIP_SWORD); me->LoadEquipment(EQUIP_SWORD);
me->SetCanDualWield(false); me->SetCanDualWield(false);
me->SetStandState(UNIT_STAND_STATE_STAND); me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -73,7 +77,7 @@ class boss_mr_smite : public CreatureScript
events.ScheduleEvent(EVENT_SMITE_SLAM, 15000); events.ScheduleEvent(EVENT_SMITE_SLAM, 15000);
break; break;
case EVENT_CHECK_HEALTH1: case EVENT_CHECK_HEALTH1:
if (me->HealthBelowPct(67)) if (me->HealthBelowPct(67) && !health67)
{ {
me->CastSpell(me, SPELL_SMITE_STOMP, false); me->CastSpell(me, SPELL_SMITE_STOMP, false);
events.DelayEvents(10000); events.DelayEvents(10000);
@@ -82,12 +86,13 @@ class boss_mr_smite : public CreatureScript
Talk(SAY_SWAP1); Talk(SAY_SWAP1);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
me->SetReactState(REACT_PASSIVE); me->SetReactState(REACT_PASSIVE);
health67 = true;
break; break;
} }
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500); events.ScheduleEvent(EVENT_CHECK_HEALTH1, 500);
break; break;
case EVENT_CHECK_HEALTH2: case EVENT_CHECK_HEALTH2:
if (me->HealthBelowPct(34)) if (me->HealthBelowPct(34) && !health34)
{ {
me->CastSpell(me, SPELL_SMITE_STOMP, false); me->CastSpell(me, SPELL_SMITE_STOMP, false);
events.DelayEvents(10000); events.DelayEvents(10000);
@@ -96,6 +101,7 @@ class boss_mr_smite : public CreatureScript
Talk(SAY_SWAP2); Talk(SAY_SWAP2);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
me->SetReactState(REACT_PASSIVE); me->SetReactState(REACT_PASSIVE);
health34 = true;
break; break;
} }
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500); events.ScheduleEvent(EVENT_CHECK_HEALTH2, 500);