feat(Core/AI): Implement ScheduleHealthCheckEvent() for events that fire … (#15275)

This commit is contained in:
Skjalf
2023-03-04 23:25:43 -03:00
committed by GitHub
parent 7d970d057c
commit 81d831faac
3 changed files with 54 additions and 20 deletions

View File

@@ -44,8 +44,6 @@ enum Events
EVENT_SACRIFICE = 1,
EVENT_HELLFIRE = 2,
EVENT_ENRAGE = 3,
EVENT_HEALTH_CHECK_50 = 4,
EVENT_HEALTH_CHECK_20 = 5
};
class boss_thorngrin_the_tender : public CreatureScript
@@ -64,6 +62,12 @@ public:
void Reset() override
{
_Reset();
ScheduleHealthCheckEvent(20, [&]() {
Talk(SAY_20_PERCENT_HP);
});
ScheduleHealthCheckEvent(50, [&]() {
Talk(SAY_50_PERCENT_HP);
});
}
void MoveInLineOfSight(Unit* who) override
@@ -83,8 +87,6 @@ public:
events.ScheduleEvent(EVENT_SACRIFICE, 6000);
events.ScheduleEvent(EVENT_HELLFIRE, 18000);
events.ScheduleEvent(EVENT_ENRAGE, 15000);
events.ScheduleEvent(EVENT_HEALTH_CHECK_50, 500);
events.ScheduleEvent(EVENT_HEALTH_CHECK_20, 500);
}
void KilledUnit(Unit* victim) override
@@ -129,22 +131,6 @@ public:
me->CastSpell(me, SPELL_ENRAGE, false);
events.ScheduleEvent(EVENT_ENRAGE, 30000);
break;
case EVENT_HEALTH_CHECK_50:
if (me->HealthBelowPct(50))
{
Talk(SAY_50_PERCENT_HP);
break;
}
events.ScheduleEvent(EVENT_HEALTH_CHECK_50, 500);
break;
case EVENT_HEALTH_CHECK_20:
if (me->HealthBelowPct(20))
{
Talk(SAY_20_PERCENT_HP);
break;
}
events.ScheduleEvent(EVENT_HEALTH_CHECK_20, 500);
break;
}
DoMeleeAttackIfReady();