diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp | 27 | ||||
-rw-r--r-- | src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp | 1 |
2 files changed, 23 insertions, 5 deletions
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 90f959b4667..90f93a137e4 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -131,6 +131,17 @@ struct boss_felmyst : public BossAI float breathX, breathY; + void InitializeAI() override + { + // for intro sequence + if (instance->GetBossState(DATA_FELMYST) == SPECIAL) + if (Creature* madrigosa = instance->GetCreature(DATA_MADRIGOSA)) + me->Relocate(madrigosa); + + me->SetDisplayFromModel(0); + me->SetNativeDisplayId(me->GetDisplayId()); + } + void Reset() override { Initialize(); @@ -182,6 +193,12 @@ struct boss_felmyst : public BossAI BossAI::JustDied(killer); } + void EnterEvadeMode(EvadeReason /*why*/) override + { + Reset(); + _DespawnAtEvade(); + } + void SpellHit(WorldObject* caster, SpellInfo const* spellInfo) override { Unit* unitCaster = caster->ToUnit(); @@ -284,7 +301,7 @@ struct boss_felmyst : public BossAI if (!target) { - EnterEvadeMode(); + EnterEvadeMode(EVADE_REASON_NO_HOSTILES); return; } @@ -310,7 +327,7 @@ struct boss_felmyst : public BossAI if (!target) { - EnterEvadeMode(); + EnterEvadeMode(EVADE_REASON_NO_HOSTILES); return; } @@ -339,7 +356,7 @@ struct boss_felmyst : public BossAI if (!target) { - EnterEvadeMode(); + EnterEvadeMode(EVADE_REASON_NO_HOSTILES); return; } @@ -379,7 +396,7 @@ struct boss_felmyst : public BossAI DoStartMovement(target); else { - EnterEvadeMode(); + EnterEvadeMode(EVADE_REASON_NO_HOSTILES); return; } break; @@ -398,7 +415,7 @@ struct boss_felmyst : public BossAI if (!UpdateVictim()) { if (phase == PHASE_FLIGHT && !me->IsInEvadeMode()) - EnterEvadeMode(); + EnterEvadeMode(EVADE_REASON_NO_HOSTILES); return; } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 523eab4522e..92d3547ccc8 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -294,6 +294,7 @@ struct boss_muru : public BossAI { me->SetVisible(false); _entropiusGUID = summon->GetGUID(); + DoZoneInCombat(summon); if (_hasEnraged) summon->CastSpell(summon, SPELL_ENRAGE, true); return; |