Goatform

SpellScript

Sep 26th, 2014
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.56 KB | None | 0 0
  1. --------------------------------------------------------------------
  2.  
  3. -    SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL              = 64085
  4. +    SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL              = 64085,
  5. +   SPELL_PRIEST_SHADOW_AFFINITY_REGEN              = 64103,
  6.  
  7. --------------------------------------------------------------------
  8.  
  9.         AuraScript* GetAuraScript() const override
  10.         {
  11.             return new spell_pri_vampiric_touch_AuraScript();
  12.         }
  13. };
  14.  
  15. +// Shadow Affinity : Triggered Spell Ids
  16. +class spell_pri_shadow_affinity : public SpellScriptLoader
  17. +{
  18. +    public:
  19. +        spell_pri_shadow_affinity() : SpellScriptLoader("spell_pri_shadow_affinity") { }
  20. +
  21. +        class spell_pri_shadow_affinity_AuraScript : public AuraScript
  22. +        {
  23. +            PrepareAuraScript(spell_pri_shadow_affinity_AuraScript);
  24. +
  25. +           void HandleDispel(DispelInfo* dispelInfo)
  26. +            {
  27. +                if (Unit* caster = GetCaster())
  28. +               {
  29. +                    if (caster->HasAura(15320)) // Rank 3 Shadow Affinity Talent
  30. +                    {
  31. +                       int32 baseregen = (caster->GetCreateMana() * 15) / 100; // 15%
  32. +                        caster->CastCustomSpell(caster, SPELL_PRIEST_SHADOW_AFFINITY_REGEN, &baseregen, NULL, NULL, true, NULL, NULL);
  33. +                    }
  34. +                    if (caster->HasAura(15318)) // Rank 2 Shadow Affinity Talent
  35. +                    {
  36. +                       int32 baseregen = (caster->GetCreateMana() * 10) / 100; // 10 %
  37. +                        caster->CastCustomSpell(caster, SPELL_PRIEST_SHADOW_AFFINITY_REGEN, &baseregen, NULL, NULL, true, NULL, NULL);
  38. +                    }
  39. +                   if (caster->HasAura(15272)) // Rank 1 Shadow Affinity Talent
  40. +                    {
  41. +                       int32 baseregen = (caster->GetCreateMana() * 5) / 100; // 5%
  42. +                       caster->CastCustomSpell(caster, SPELL_PRIEST_SHADOW_AFFINITY_REGEN, &baseregen, NULL, NULL, true, NULL, NULL);
  43. +                    }
  44. +               }
  45. +            }
  46. +
  47. +            void Register()
  48. +            {
  49. +                AfterDispel += AuraDispelFn(spell_pri_shadow_affinity_AuraScript::HandleDispel);
  50. +            }
  51. +       };
  52. +
  53. +        AuraScript* GetAuraScript() const
  54. +        {
  55. +            return new spell_pri_shadow_affinity_AuraScript();
  56. +        }
  57. +};
  58. +
  59.  
  60. ------------------------------------------------------------------------------
  61.  
  62.     new spell_pri_shadow_word_death();
  63.     new spell_pri_vampiric_touch();
  64. +   new spell_pri_shadow_affinity();
  65. }
  66.  
  67. ------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment