diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Spells/spell_shaman.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index a745514f195..1d88e3f68b5 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -29,7 +29,11 @@ enum ShamanSpells SHAMAN_SPELL_GLYPH_OF_MANA_TIDE = 55441, SHAMAN_SPELL_MANA_TIDE_TOTEM = 39609, SHAMAN_SPELL_FIRE_NOVA_R1 = 1535, - SHAMAN_SPELL_FIRE_NOVA_TRIGGERED_R1 = 8349 + SHAMAN_SPELL_FIRE_NOVA_TRIGGERED_R1 = 8349, + + //For Earthen Power + SHAMAN_TOTEM_SPELL_EARTHBIND_TOTEM = 6474, //Spell casted by totem + SHAMAN_TOTEM_SPELL_EARTHEN_POWER = 59566,//Spell witch remove snare effect }; // 1535 Fire Nova @@ -131,8 +135,48 @@ public: } }; +// 6474 - Earthbind Totem - Fix Talent:Earthen Power +class spell_sha_earthbind_totem : public SpellScriptLoader +{ +public: + spell_sha_earthbind_totem() : SpellScriptLoader("spell_sha_earthbind_totem") { } + + class spell_sha_earthbind_totem_AuraScript : public AuraScript + { + PrepareAuraScript(spell_sha_earthbind_totem_AuraScript); + + bool Validate(SpellEntry const * /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SHAMAN_TOTEM_SPELL_EARTHBIND_TOTEM)) + return false; + if (!sSpellStore.LookupEntry(SHAMAN_TOTEM_SPELL_EARTHEN_POWER)) + return false; + return true; + } + + void HandleEffectPeriodic(AuraEffect const * aurEff, AuraApplication const * aurApp) + { + if (Unit* target = aurApp->GetTarget()) + if (Unit *caster = aurEff->GetBase()->GetCaster()) + if (AuraEffect* aur = caster->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, 2289, 0)) + if (roll_chance_i(aur->GetBaseAmount())) + target->CastSpell(target, SHAMAN_TOTEM_SPELL_EARTHEN_POWER, true, NULL, aurEff); + } + + void Register() + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_sha_earthbind_totem_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); + } + }; + + AuraScript *GetAuraScript() const + { + return new spell_sha_earthbind_totem_AuraScript(); + } +}; void AddSC_shaman_spell_scripts() { new spell_sha_fire_nova(); new spell_sha_mana_tide_totem(); + new spell_sha_earthbind_totem(); } |
