diff options
author | treeston <treeston.mmoc@gmail.com> | 2016-01-31 14:27:18 +0100 |
---|---|---|
committer | treeston <treeston.mmoc@gmail.com> | 2016-01-31 14:27:18 +0100 |
commit | c829fc7de406728f9f089d586d6bdccf7bf14748 (patch) | |
tree | 903bdd82e283d5ff319ae4e3f7fd6e7227ba8392 /src | |
parent | 406584839c9ea7617f67e286d6d2b0fa93a7d499 (diff) |
Scripts/UtgardeKeep: Ingvar updates:
- Roar at start of phase two
- Ingvar no longer does a weird move-jump towards his target when resurrecting
- Fixed a duplicate yell on phase one end
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index b72bcbecdac..8bae35df402 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -126,14 +126,14 @@ class boss_ingvar_the_plunderer : public CreatureScript { if (damage >= me->GetHealth() && events.IsInPhase(PHASE_HUMAN)) { + events.SetPhase(PHASE_EVENT); + events.ScheduleEvent(EVENT_SUMMON_BANSHEE, 3 * IN_MILLISECONDS, 0, PHASE_EVENT); + me->RemoveAllAuras(); DoCast(me, SPELL_INGVAR_FEIGN_DEATH, true); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE); - events.SetPhase(PHASE_EVENT); - events.ScheduleEvent(EVENT_SUMMON_BANSHEE, 3 * IN_MILLISECONDS, 0, PHASE_EVENT); - Talk(SAY_DEATH); } @@ -152,15 +152,24 @@ class boss_ingvar_the_plunderer : public CreatureScript me->RemoveAura(SPELL_INGVAR_FEIGN_DEATH); DoCast(me, SPELL_INGVAR_TRANSFORM, true); me->UpdateEntry(NPC_INGVAR_UNDEAD); - events.ScheduleEvent(EVENT_JUST_TRANSFORMED, 2 * IN_MILLISECONDS, 0, PHASE_EVENT); + events.ScheduleEvent(EVENT_JUST_TRANSFORMED, IN_MILLISECONDS / 2, 0, PHASE_EVENT); } void EnterCombat(Unit* /*who*/) override { + if (events.IsInPhase(PHASE_EVENT)) // ingvar gets a second EnterCombat just after feigning death + return; _EnterCombat(); Talk(SAY_AGGRO); } + void AttackStart(Unit* who) override + { + if (events.IsInPhase(PHASE_EVENT)) // prevent ingvar from beginning to attack/chase during transition + return; + BossAI::AttackStart(who); + } + void JustDied(Unit* /*killer*/) override { _JustDied(); @@ -169,6 +178,7 @@ class boss_ingvar_the_plunderer : public CreatureScript void ScheduleSecondPhase() { + DoCast(me, SPELL_DREADFUL_ROAR); events.SetPhase(PHASE_UNDEAD); events.ScheduleEvent(EVENT_DARK_SMASH, urand(14, 18)*IN_MILLISECONDS, 0, PHASE_UNDEAD); events.ScheduleEvent(EVENT_DREADFUL_ROAR, urand(18, 22)*IN_MILLISECONDS, 0, PHASE_UNDEAD); |