diff options
author | QAston <qaston@gmail.com> | 2011-05-15 19:04:09 +0200 |
---|---|---|
committer | QAston <qaston@gmail.com> | 2011-05-15 19:04:09 +0200 |
commit | 432136355e492a1fad6f9f9bd1b66933df8d9f9f (patch) | |
tree | 33ca1f807ac3da19ad46c4de7df44ee73bcb773f /src | |
parent | 1121fcfb90fb5c5cd7f8397d3f36881d9f65273e (diff) |
Scripts/Spell: Share some code for Incantner's Absorbtion script.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 75 |
1 files changed, 28 insertions, 47 deletions
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index bf1d99513b6..0fbda934ca3 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -259,38 +259,42 @@ public: } }; -// Incanter's Absorption -class spell_mage_incanters_absorbtion_absorb : public SpellScriptLoader +class spell_mage_incanters_absorbtion_base_AuraScript : public AuraScript { -public: - spell_mage_incanters_absorbtion_absorb() : SpellScriptLoader("spell_mage_incanters_absorbtion_absorb") { } +public: + enum Spells + { + SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED = 44413, + SPELL_MAGE_INCANTERS_ABSORBTION_R1 = 44394, + }; - class spell_mage_incanters_absorbtion_absorb_AuraScript : public AuraScript + bool Validate(SpellEntry const * /*spellEntry*/) { - PrepareAuraScript(spell_mage_incanters_absorbtion_absorb_AuraScript); + return sSpellStore.LookupEntry(SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED) + && sSpellStore.LookupEntry(SPELL_MAGE_INCANTERS_ABSORBTION_R1); + } - enum Spells - { - SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED = 44413, - SPELL_MAGE_INCANTERS_ABSORBTION_R1 = 44394, - }; + void Trigger(AuraEffect * aurEff, DamageInfo & /*dmgInfo*/, uint32 & absorbAmount) + { + Unit * target = GetTarget(); - bool Validate(SpellEntry const * /*spellEntry*/) + if (AuraEffect * talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_MAGE_INCANTERS_ABSORBTION_R1, EFFECT_0)) { - return sSpellStore.LookupEntry(SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED) - && sSpellStore.LookupEntry(SPELL_MAGE_INCANTERS_ABSORBTION_R1); + int32 bp = CalculatePctN(absorbAmount, talentAurEff->GetAmount()); + target->CastCustomSpell(target, SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff); } + } +}; - void Trigger(AuraEffect * aurEff, DamageInfo & /*dmgInfo*/, uint32 & absorbAmount) - { - Unit * target = GetTarget(); +// Incanter's Absorption +class spell_mage_incanters_absorbtion_absorb : public SpellScriptLoader +{ +public: + spell_mage_incanters_absorbtion_absorb() : SpellScriptLoader("spell_mage_incanters_absorbtion_absorb") { } - if (AuraEffect * talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_MAGE_INCANTERS_ABSORBTION_R1, EFFECT_0)) - { - int32 bp = CalculatePctN(absorbAmount, talentAurEff->GetAmount()); - target->CastCustomSpell(target, SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff); - } - } + class spell_mage_incanters_absorbtion_absorb_AuraScript : public spell_mage_incanters_absorbtion_base_AuraScript + { + PrepareAuraScript(spell_mage_incanters_absorbtion_absorb_AuraScript); void Register() { @@ -310,33 +314,10 @@ class spell_mage_incanters_absorbtion_manashield : public SpellScriptLoader public: spell_mage_incanters_absorbtion_manashield() : SpellScriptLoader("spell_mage_incanters_absorbtion_manashield") { } - class spell_mage_incanters_absorbtion_manashield_AuraScript : public AuraScript + class spell_mage_incanters_absorbtion_manashield_AuraScript : public spell_mage_incanters_absorbtion_base_AuraScript { PrepareAuraScript(spell_mage_incanters_absorbtion_manashield_AuraScript); - enum Spells - { - SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED = 44413, - SPELL_MAGE_INCANTERS_ABSORBTION_R1 = 44394, - }; - - bool Validate(SpellEntry const * /*spellEntry*/) - { - return sSpellStore.LookupEntry(SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED) - && sSpellStore.LookupEntry(SPELL_MAGE_INCANTERS_ABSORBTION_R1); - } - - void Trigger(AuraEffect * aurEff, DamageInfo & /*dmgInfo*/, uint32 & absorbAmount) - { - Unit * target = GetTarget(); - - if (AuraEffect * talentAurEff = target->GetAuraEffectOfRankedSpell(SPELL_MAGE_INCANTERS_ABSORBTION_R1, EFFECT_0)) - { - int32 bp = CalculatePctN(absorbAmount, talentAurEff->GetAmount()); - target->CastCustomSpell(target, SPELL_MAGE_INCANTERS_ABSORBTION_TRIGGERED, &bp, NULL, NULL, true, NULL, aurEff); - } - } - void Register() { AfterEffectManaShield += AuraEffectManaShieldFn(spell_mage_incanters_absorbtion_manashield_AuraScript::Trigger, EFFECT_0); |