From db34f6480fa6a84cce3fa2ee76dbe79fce9699c6 Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 7 Jan 2017 13:22:58 -0300 Subject: DB/Script: The Only Cure is More Green Glow Closes #1723 SQL by Staleness89, corrections by Killyana Script by Keader, corrections by sirikfoll and me --- .../EasternKingdoms/Gnomeregan/gnomeregan.cpp | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'src') diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp index bf1fa7b3dde..ed754c68202 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp @@ -545,8 +545,56 @@ public: }; +// 12709 - Collecting Fallout +class spell_collecting_fallout : public SpellScriptLoader +{ + public: + spell_collecting_fallout() : SpellScriptLoader("spell_collecting_fallout") { } + + class spell_collecting_fallout_SpellScript : public SpellScript + { + PrepareSpellScript(spell_collecting_fallout_SpellScript); + + bool Load() override + { + _spellFail = true; + return true; + } + + void OnLaunch(SpellEffIndex effIndex) + { + // estimated 25% chance of success + if (roll_chance_i(25)) + _spellFail = false; + else + PreventHitDefaultEffect(effIndex); + } + + void HandleFail(SpellEffIndex effIndex) + { + if (!_spellFail) + PreventHitDefaultEffect(effIndex); + } + + void Register() override + { + OnEffectLaunch += SpellEffectFn(spell_collecting_fallout_SpellScript::OnLaunch, EFFECT_0, SPELL_EFFECT_TRIGGER_SPELL); + OnEffectLaunch += SpellEffectFn(spell_collecting_fallout_SpellScript::HandleFail, EFFECT_1, SPELL_EFFECT_TRIGGER_SPELL); + } + + bool _spellFail; + }; + + SpellScript* GetSpellScript() const override + { + return new spell_collecting_fallout_SpellScript(); + } +}; + void AddSC_gnomeregan() { new npc_blastmaster_emi_shortfuse(); new boss_grubbis(); + + new spell_collecting_fallout(); } -- cgit v1.2.3