aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2011-05-15 19:04:09 +0200
committerQAston <qaston@gmail.com>2011-05-15 19:04:09 +0200
commit432136355e492a1fad6f9f9bd1b66933df8d9f9f (patch)
tree33ca1f807ac3da19ad46c4de7df44ee73bcb773f /src
parent1121fcfb90fb5c5cd7f8397d3f36881d9f65273e (diff)
Scripts/Spell: Share some code for Incantner's Absorbtion script.
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp75
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);