aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp1
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;