diff --git a/sql/updates/world/custom/custom_2019_03_05_02_world.sql b/sql/updates/world/custom/custom_2019_03_05_02_world.sql new file mode 100644 index 00000000000..652abca469a --- /dev/null +++ b/sql/updates/world/custom/custom_2019_03_05_02_world.sql @@ -0,0 +1,17 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN +('spell_feludius_fire_proc_check', +'spell_ignacious_inferno_rush'); + +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(82860, 'spell_ignacious_inferno_rush'), +(92523, 'spell_ignacious_inferno_rush'), +(92524, 'spell_ignacious_inferno_rush'), +(92525, 'spell_ignacious_inferno_rush'); + +DELETE FROM `spell_proc` WHERE `SpellId` IN (82762, 82772, 92503, 92504, 92505); +INSERT INTO `spell_proc` (`SpellId`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `Cooldown`, `Charges`, `Chance`) VALUES +(82762, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0), +(82772, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0), +(92503, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0), +(92504, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0), +(92505, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0); diff --git a/src/server/scripts/EasternKingdoms/BastionOfTwilight/boss_ascendant_council.cpp b/src/server/scripts/EasternKingdoms/BastionOfTwilight/boss_ascendant_council.cpp index 4139b2db054..e7cd9d1273b 100644 --- a/src/server/scripts/EasternKingdoms/BastionOfTwilight/boss_ascendant_council.cpp +++ b/src/server/scripts/EasternKingdoms/BastionOfTwilight/boss_ascendant_council.cpp @@ -1976,25 +1976,6 @@ class spell_feludius_glaciate : public SpellScript } }; -class spell_feludius_fire_proc_check : public AuraScript -{ - PrepareAuraScript(spell_feludius_fire_proc_check); - - bool CheckProc(ProcEventInfo& eventInfo) - { - if (SpellInfo const* spell = eventInfo.GetSpellInfo()) - if (uint32 spellId = sSpellMgr->GetSpellIdForDifficulty(SPELL_INFERNO_RUSH_TRIGGERED, eventInfo.GetActor())) - return (spell->Id == spellId); - - return false; - } - - void Register() override - { - DoCheckProc += AuraCheckProcFn(spell_feludius_fire_proc_check::CheckProc); - } -}; - class spell_feludius_heart_of_ice : public AuraScript { PrepareAuraScript(spell_feludius_heart_of_ice); @@ -2222,6 +2203,32 @@ class spell_ignacious_inferno_leap : public SpellScript } }; +class spell_ignacious_inferno_rush : public SpellScript +{ + PrepareSpellScript(spell_ignacious_inferno_rush); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_WATERLOGGED, + SPELL_FROZEN + }); + } + + void HandleAuraRemoval(SpellEffIndex /*effIndex*/) + { + Unit* target = GetHitUnit(); + target->RemoveAurasDueToSpell(sSpellMgr->GetSpellIdForDifficulty(SPELL_FROZEN, target)); + target->RemoveAurasDueToSpell(SPELL_WATERLOGGED); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_ignacious_inferno_rush::HandleAuraRemoval, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } +}; + class spell_ignacious_flame_strike : public SpellScript { PrepareSpellScript(spell_ignacious_flame_strike); @@ -2837,7 +2844,6 @@ void AddSC_boss_ascendant_council() RegisterSpellScript(spell_feludius_water_bomb_targeting); RegisterSpellScript(spell_feludius_water_bomb); RegisterSpellScript(spell_feludius_glaciate); - RegisterAuraScript(spell_feludius_fire_proc_check); RegisterAuraScript(spell_feludius_heart_of_ice); RegisterSpellAndAuraScriptPair(spell_feludius_frost_imbued, spell_feludius_frost_imbued_AuraScript); RegisterSpellScript(spell_feludius_frozen_orb_targeting); @@ -2845,6 +2851,7 @@ void AddSC_boss_ascendant_council() RegisterAuraScript(spell_ignacious_burning_blood); RegisterSpellAndAuraScriptPair(spell_ignacious_flame_imbued, spell_ignacious_flame_imbued_AuraScript); RegisterSpellScript(spell_ignacious_inferno_leap); + RegisterSpellScript(spell_ignacious_inferno_rush); RegisterSpellScript(spell_ignacious_flame_strike); RegisterSpellScript(spell_arion_lashing_winds); RegisterSpellScript(spell_arion_thundershock);