mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
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 46560070ae)
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
DELETE FROM `spawn_group_template` WHERE `groupId` BETWEEN 232 AND 237;
|
||||
INSERT INTO `spawn_group_template` (`groupId`,`groupName`,`groupFlags`) VALUES
|
||||
(232,'The Sunwell - Kalecgos',4),
|
||||
(233,'The Sunwell - Brutallus',4),
|
||||
(234,'The Sunwell - Felmyst',4),
|
||||
(235,'The Sunwell - Eredar Twins',4),
|
||||
(236,'The Sunwell - M''uru',4),
|
||||
(237,'The Sunwell - Kil''jaeden',4);
|
||||
|
||||
DELETE FROM `instance_spawn_groups` WHERE `spawnGroupId` BETWEEN 232 AND 237;
|
||||
INSERT INTO `instance_spawn_groups` (`instanceMapId`,`bossStateId`,`bossStates`,`spawnGroupId`,`flags`) VALUES
|
||||
(580,0,23,232,1),
|
||||
(580,1,23,233,1),
|
||||
(580,1,23,234,2), -- dont spawn felmyst before brutallus is dead
|
||||
(580,2,23,234,1),
|
||||
(580,3,23,235,1),
|
||||
(580,4,23,236,1),
|
||||
(580,5,23,237,1);
|
||||
|
||||
DELETE FROM `creature` WHERE `guid`=55421 AND `id`=25038;
|
||||
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseId`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES
|
||||
(55421, 25038, 580, 4075, 4140, '4', 0, 0, 0, 1460.2911376953125, 628.89984130859375, 46.09189605712890625, 5.281038284301757812, 604800, 0, 0, 0, 0, 0, 0, 0, 0, 45745); -- Felmyst (Area: The Dead Scar - Difficulty: 4) (Auras: 45068 - Felblaze Visual)
|
||||
|
||||
DELETE FROM `spawn_group` WHERE `groupId` BETWEEN 232 AND 237;
|
||||
INSERT INTO `spawn_group` SELECT 232, 0, `guid` FROM `linked_respawn` WHERE `linkedGuid`=54810 AND `linkType` IN (0,3);
|
||||
INSERT INTO `spawn_group` SELECT 233, 0, `guid` FROM `linked_respawn` WHERE `linkedGuid`=54811 AND `linkType` IN (0,3);
|
||||
INSERT INTO `spawn_group` SELECT 235, 0, `guid` FROM `linked_respawn` WHERE `linkedGuid`=53668 AND `linkType` IN (0,3);
|
||||
INSERT INTO `spawn_group` SELECT 236, 0, `guid` FROM `linked_respawn` WHERE `linkedGuid`=53705 AND `linkType` IN (0,3);
|
||||
INSERT INTO `spawn_group` SELECT 237, 0, `guid` FROM `linked_respawn` WHERE `linkedGuid`=56332 AND `linkType` IN (0,3);
|
||||
INSERT INTO `spawn_group` (`groupId`,`spawnType`,`spawnId`) VALUES
|
||||
(232,0,54810),
|
||||
(232,0,53645),
|
||||
(233,0,54811),
|
||||
(233,0,54812),
|
||||
(234,0,55421),
|
||||
(235,0,53668),
|
||||
(235,0,53687),
|
||||
(236,0,53705),
|
||||
(237,0,56332);
|
||||
|
||||
UPDATE `creature_template` SET `flags_extra`=`flags_extra` & ~0x80 WHERE `entry`=25038; -- remove trigger flag from felmyst
|
||||
|
||||
DELETE FROM `linked_respawn` WHERE `linkedGuid` IN (54810,54811,55421,53668,53705,56332);
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user