diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-09-23 17:56:50 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-09-30 20:23:41 +0200 |
commit | 57c56a3ae7c212d9c5215d492bbe0df73b855139 (patch) | |
tree | c5fdc29f0c59ea43f68abd8074f06dd69e9454bd /src | |
parent | 88060425b562927b9cf2277bae8b2087978bb4cc (diff) |
DB/The Sunwell: Migrate linked_respawn to spawn groups
* Also fixed Felmyst not spawning after server reset if Brutallus was killed
Closes #27904
(cherry picked from commit 46560070ae610e4c85dfbbe37b24d2b4b4071405)
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; |