From edd88fbd1e03205b34786a391f9dd5b1e6c86acf Mon Sep 17 00:00:00 2001 From: Vitoco <44324742+xDevICCI@users.noreply.github.com> Date: Sat, 16 Feb 2019 16:08:50 -0300 Subject: [PATCH] fix(instance): Ruby Sanctum - Resistances ignored (#1371) --- src/server/game/Spells/SpellMgr.cpp | 11 +++++ .../RubySanctum/boss_halion.cpp | 40 ++++++++++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 4ae016372..a78716cf4 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -5846,6 +5846,17 @@ void SpellMgr::LoadDbcDataCorrections() case 74637: spellInfo->speed = 0; break; + //Blazing Aura + case 75885: + case 75886: + spellInfo->AttributesEx4 &= ~SPELL_ATTR4_IGNORE_RESISTANCES; + break; + //Meteor Strike + case 75952: + //Combustion Periodic + case 74629: + spellInfo->AttributesEx4 &= ~SPELL_ATTR4_IGNORE_RESISTANCES; + break; // /////////////////////////////////////////// diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index 16fba668d..f3f6a96e5 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -46,6 +46,9 @@ enum Spells SPELL_METEOR_STRIKE_TARGETING = 74638, SPELL_TAIL_LASH = 74531, + // Living Inferno + SPELL_BLAZING_AURA = 75885, + // Combustion / Consumption SPELL_SCALE_AURA = 70507, SPELL_FIERY_COMBUSTION = 74562, @@ -1184,7 +1187,7 @@ class spell_halion_twilight_realm : public SpellScriptLoader if (!target) return; - target->RemoveAurasDueToSpell(SPELL_FIERY_COMBUSTION, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL); + target->RemoveAurasDueToSpell(SPELL_FIERY_COMBUSTION, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL); if (GetTarget()->GetTypeId() != TYPEID_PLAYER) return; GetTarget()->m_Events.AddEvent(new SendEncounterUnit(GetTarget()->ToPlayer()), GetTarget()->m_Events.CalculateTime(500)); @@ -1385,7 +1388,7 @@ class spell_halion_twilight_division : public SpellScriptLoader halion->RemoveAurasDueToSpell(SPELL_TWILIGHT_PHASING); if (GameObject* gobject = halion->FindNearestGameObject(GO_HALION_PORTAL_1, 100.0f)) gobject->Delete(); - + instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 1); instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, 50); instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 50); @@ -1430,12 +1433,45 @@ class spell_halion_twilight_mending : public SpellScriptLoader } }; +class npc_living_inferno : public CreatureScript +{ +public: + npc_living_inferno() : CreatureScript("npc_living_inferno") { } + + struct npc_living_infernoAI : public ScriptedAI + { + npc_living_infernoAI(Creature* creature) : ScriptedAI(creature) { } + + void IsSummonedBy(Unit* /*summoner*/) + { + me->SetInCombatWithZone(); + me->CastSpell(me, SPELL_BLAZING_AURA, true); + + if (InstanceScript* instance = me->GetInstanceScript()) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_HALION_CONTROLLER))) + controller->AI()->JustSummoned(me); + } + + void JustDied(Unit* /*killer*/) + { + me->DespawnOrUnsummon(1); + } + }; + + CreatureAI* GetAI(Creature* creature) const + { + return GetInstanceAI(creature); + } +}; + + void AddSC_boss_halion() { new boss_halion(); new boss_twilight_halion(); new npc_halion_controller(); new npc_orb_carrier(); + new npc_living_inferno(); new spell_halion_meteor_strike_targeting(); new spell_halion_meteor_strike_marker();