From 0d0de8bb7a5dc821a3bfbe92faa55e32d49d7e9c Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Sun, 21 Jul 2013 01:52:15 +0200 Subject: Core/Spells: Update/Convert hunter "Improved Mend Pet" for 4.3.4 --- src/server/scripts/Spells/spell_generic.cpp | 2 +- src/server/scripts/Spells/spell_hunter.cpp | 42 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 3dabd772ed3..b96ee4db5bd 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -203,7 +203,7 @@ class spell_gen_alchemist_stone : public SpellScriptLoader spellId = ALECHEMIST_STONE_HEAL; else if (eventInfo.GetDamageInfo()->GetSpellInfo()->HasEffect(SPELL_EFFECT_ENERGIZE)) spellId = ALECHEMIST_STONE_MANA; - TC_LOG_ERROR(LOG_FILTER_GENERAL, "spellId: %u, procSpell: %u", spellId, eventInfo.GetDamageInfo()->GetSpellInfo()->Id); + if (!spellId) return; diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index 0630491bb8c..19d8cde542a 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -39,6 +39,7 @@ enum HunterSpells SPELL_HUNTER_CHIMERA_SHOT_VIPER = 53358, SPELL_HUNTER_CHIMERA_SHOT_SCORPID = 53359, SPELL_HUNTER_GLYPH_OF_ASPECT_OF_THE_VIPER = 56851, + SPELL_HUNTER_IMPROVED_MEND_PET = 24406, SPELL_HUNTER_INVIGORATION_TRIGGERED = 53398, SPELL_HUNTER_LOCK_AND_LOAD = 56453, SPELL_HUNTER_MASTERS_CALL_TRIGGERED = 62305, @@ -273,6 +274,46 @@ class spell_hun_disengage : public SpellScriptLoader } }; +// -19572 - Improved Mend Pet +class spell_hun_improved_mend_pet : public SpellScriptLoader +{ + public: + spell_hun_improved_mend_pet() : SpellScriptLoader("spell_hun_improved_mend_pet") { } + + class spell_hun_improved_mend_pet_AuraScript : public AuraScript + { + PrepareAuraScript(spell_hun_improved_mend_pet_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_IMPROVED_MEND_PET)) + return false; + return true; + } + + bool CheckProc(ProcEventInfo& /*eventInfo*/) + { + return roll_chance_i(GetEffect(EFFECT_0)->GetAmount()); + } + + void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) + { + PreventDefaultAction(); + GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_IMPROVED_MEND_PET, true, NULL, aurEff); + } + + void Register() OVERRIDE + { + DoCheckProc += AuraCheckProcFn(spell_hun_improved_mend_pet_AuraScript::CheckProc); + OnEffectProc += AuraEffectProcFn(spell_hun_improved_mend_pet_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_hun_improved_mend_pet_AuraScript(); + } +}; // 53412 - Invigoration class spell_hun_invigoration : public SpellScriptLoader { @@ -939,6 +980,7 @@ void AddSC_hunter_spell_scripts() new spell_hun_ascpect_of_the_viper(); new spell_hun_chimera_shot(); new spell_hun_disengage(); + new spell_hun_improved_mend_pet(); new spell_hun_invigoration(); new spell_hun_last_stand_pet(); new spell_hun_masters_call(); -- cgit v1.2.3