fix(Core/BWL): Nefarian spawns (#11326)

* fix(Core/BWL): Nefarian spawns

* Rogue class call with vanish

* backticks

* despawn skeletons after death

* Update boss_nefarian.cpp
This commit is contained in:
Nefertumm
2022-04-11 08:15:15 -03:00
committed by GitHub
parent 84e5004546
commit 1ee058dfd8
4 changed files with 11 additions and 10 deletions
@@ -0,0 +1,7 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1649370784577886400');
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 23414 AND `spell_effect` IN (-1856, -1857, -26889);
INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
(23414, -1856, 2, 'Nefarian Rogue class call - Vanish'),
(23414, -1857, 2, 'Nefarian Rogue class call - Vanish'),
(23414, -26889, 2, 'Nefarian Rogue class call - Vanish');
@@ -4160,14 +4160,6 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(152); // 150 yards spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(152); // 150 yards
}); });
// Shadowbolt Volley
ApplySpellFix({ 22665 }, [](SpellInfo* spellInfo)
{
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(152); // 150 yards
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(41); // 150 yards
spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT;
});
ApplySpellFix({ 22247 }, [](SpellInfo* spellInfo) ApplySpellFix({ 22247 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesCu |= SPELL_ATTR0_CU_DONT_BREAK_STEALTH; spellInfo->AttributesCu |= SPELL_ATTR0_CU_DONT_BREAK_STEALTH;
@@ -256,7 +256,7 @@ public:
me->SetVisible(true); me->SetVisible(true);
me->SetPhaseMask(1, true); me->SetPhaseMask(1, true);
me->ReplaceAllNpcFlags(NPCFlags(1)); me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetFaction(FACTION_FRIENDLY); me->SetFaction(FACTION_FRIENDLY);
me->SetStandState(UNIT_STAND_STATE_SIT_HIGH_CHAIR); me->SetStandState(UNIT_STAND_STATE_SIT_HIGH_CHAIR);
me->RemoveAura(SPELL_NEFARIANS_BARRIER); me->RemoveAura(SPELL_NEFARIANS_BARRIER);
@@ -284,6 +284,7 @@ public:
if (action == ACTION_KILLED) if (action == ACTION_KILLED)
{ {
summons.DespawnEntry(NPC_BONE_CONSTRUCT);
Unit::Kill(me, me); Unit::Kill(me, me);
} }
} }
@@ -472,7 +473,7 @@ public:
Talk(SAY_GAMESBEGIN_1); Talk(SAY_GAMESBEGIN_1);
events.ScheduleEvent(EVENT_START_EVENT, 4000); events.ScheduleEvent(EVENT_START_EVENT, 4000);
me->SetFaction(FACTION_DRAGONFLIGHT_BLACK); me->SetFaction(FACTION_DRAGONFLIGHT_BLACK);
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetStandState(UNIT_STAND_STATE_STAND); me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE); me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
// Due to Nefarius despawning himself on Vael, we need to update the guid on instance to prevent unwanted behaviours as encounter not resetting at all. // Due to Nefarius despawning himself on Vael, we need to update the guid on instance to prevent unwanted behaviours as encounter not resetting at all.
@@ -400,6 +400,7 @@ public:
summon->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); summon->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
summon->SetReactState(REACT_PASSIVE); summon->SetReactState(REACT_PASSIVE);
summon->SetStandState(UNIT_STAND_STATE_DEAD); summon->SetStandState(UNIT_STAND_STATE_DEAD);
summon->SetHomePosition(summon->GetPosition());
if (Creature* nefarius = instance->GetCreature(victorNefariusGUID)) if (Creature* nefarius = instance->GetCreature(victorNefariusGUID))
{ {