mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-04 22:07:52 +00:00
fix(Scripts/Nexus): Don't update Telestra's event timers while she's affected by Ice Nova (#24354)
This commit is contained in:
@@ -41,6 +41,7 @@ enum Spells
|
|||||||
SPELL_ARCANE_MAGUS_SUMMON = 47708,
|
SPELL_ARCANE_MAGUS_SUMMON = 47708,
|
||||||
|
|
||||||
SPELL_FIRE_MAGUS_DEATH = 47711,
|
SPELL_FIRE_MAGUS_DEATH = 47711,
|
||||||
|
SPELL_FROST_MAGUS_DEATH = 47712,
|
||||||
SPELL_ARCANE_MAGUS_DEATH = 47713,
|
SPELL_ARCANE_MAGUS_DEATH = 47713,
|
||||||
|
|
||||||
SPELL_WEAR_CHRISTMAS_HAT = 61400
|
SPELL_WEAR_CHRISTMAS_HAT = 61400
|
||||||
@@ -83,13 +84,11 @@ struct boss_magus_telestra : public BossAI
|
|||||||
{
|
{
|
||||||
boss_magus_telestra(Creature* creature) : BossAI(creature, DATA_MAGUS_TELESTRA_EVENT) { }
|
boss_magus_telestra(Creature* creature) : BossAI(creature, DATA_MAGUS_TELESTRA_EVENT) { }
|
||||||
|
|
||||||
uint8 copiesDied;
|
|
||||||
bool achievement;
|
bool achievement;
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
BossAI::Reset();
|
BossAI::Reset();
|
||||||
copiesDied = 0;
|
|
||||||
achievement = true;
|
achievement = true;
|
||||||
|
|
||||||
if (IsHeroic() && sGameEventMgr->IsActiveEvent(GAME_EVENT_WINTER_VEIL) && !me->HasAura(SPELL_WEAR_CHRISTMAS_HAT))
|
if (IsHeroic() && sGameEventMgr->IsActiveEvent(GAME_EVENT_WINTER_VEIL) && !me->HasAura(SPELL_WEAR_CHRISTMAS_HAT))
|
||||||
@@ -152,9 +151,8 @@ struct boss_magus_telestra : public BossAI
|
|||||||
events.ScheduleEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT, 5s);
|
events.ScheduleEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT, 5s);
|
||||||
caster->ToCreature()->DespawnOrUnsummon(1s);
|
caster->ToCreature()->DespawnOrUnsummon(1s);
|
||||||
|
|
||||||
if (++copiesDied >= 3)
|
if (me->HasAura(SPELL_FIRE_MAGUS_DEATH) && me->HasAura(SPELL_FROST_MAGUS_DEATH) && me->HasAura(SPELL_ARCANE_MAGUS_DEATH))
|
||||||
{
|
{
|
||||||
copiesDied = 0;
|
|
||||||
events.CancelEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT);
|
events.CancelEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT);
|
||||||
events.ScheduleEvent(EVENT_MAGUS_MERGED, 5s);
|
events.ScheduleEvent(EVENT_MAGUS_MERGED, 5s);
|
||||||
me->CastSpell(me, SPELL_BURNING_WINDS, true);
|
me->CastSpell(me, SPELL_BURNING_WINDS, true);
|
||||||
@@ -168,13 +166,14 @@ struct boss_magus_telestra : public BossAI
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
events.Update(diff);
|
events.Update(diff);
|
||||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
if (me->HasUnitState(UNIT_STATE_CASTING) ||
|
||||||
|
(me->HasUnitState(UNIT_STATE_STUNNED) && !me->HasAura(SPELL_START_SUMMON_CLONES))) // Reflected Ice Nova can stun her as its mechanic bypasses immunities
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch (events.ExecuteEvent())
|
switch (events.ExecuteEvent())
|
||||||
{
|
{
|
||||||
case EVENT_MAGUS_HEALTH1:
|
case EVENT_MAGUS_HEALTH1:
|
||||||
if (me->HealthBelowPct(51))
|
if (me->HealthBelowPct(51) && me->HealthAbovePct(11))
|
||||||
{
|
{
|
||||||
me->CastSpell(me, SPELL_START_SUMMON_CLONES, false);
|
me->CastSpell(me, SPELL_START_SUMMON_CLONES, false);
|
||||||
events.ScheduleEvent(EVENT_MAGUS_RELOCATE, 3500ms);
|
events.ScheduleEvent(EVENT_MAGUS_RELOCATE, 3500ms);
|
||||||
|
|||||||
Reference in New Issue
Block a user