aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2013-07-21 01:52:15 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2013-07-21 01:52:15 +0200
commit0d0de8bb7a5dc821a3bfbe92faa55e32d49d7e9c (patch)
treec5c75ecbf39fbc74b0980d14e19e881610f14a4f /src
parent40b87aca8f81ce9511478c31c0fe7fb31f56ea3c (diff)
Core/Spells: Update/Convert hunter "Improved Mend Pet" for 4.3.4
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp15
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp2
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp42
3 files changed, 43 insertions, 16 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 3c3c1be3c62..edec9dc9f95 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5834,21 +5834,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
}
break;
}
- case SPELLFAMILY_HUNTER:
- {
- switch (dummySpell->SpellIconID)
- {
- case 267: // Improved Mend Pet
- {
- if (!roll_chance_i(triggerAmount))
- return false;
-
- triggered_spell_id = 24406;
- break;
- }
- }
- break;
- }
case SPELLFAMILY_PALADIN:
{
// Light's Beacon - Beacon of Light
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();