diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 19 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_shaman.cpp | 44 | 
2 files changed, 43 insertions, 20 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 6a10d113553..b72ceecfff0 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5619,25 +5619,6 @@ void AuraEffect::HandlePeriodicTriggerSpellAuraTick(Unit* target, Unit* caster)                              target->RemoveAurasDueToSpell(28820);                          return;                      } -                    // Totemic Mastery (Skyshatter Regalia (Shaman Tier 6) - bonus) -                    case 38443: -                    { -                        bool all = true; -                        for (int i = SUMMON_SLOT_TOTEM; i < MAX_TOTEM_SLOT; ++i) -                        { -                            if (!target->m_SummonSlot[i]) -                            { -                                all = false; -                                break; -                            } -                        } - -                        if (all) -                            target->CastSpell(target, 38437, true, NULL, this); -                        else -                            target->RemoveAurasDueToSpell(38437); -                        return; -                    }                  }                  break;              } diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index c8b0264995b..41e72b1388b 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -55,7 +55,8 @@ enum ShamanSpells      SPELL_SHAMAN_TOTEM_EARTHBIND_EARTHGRAB      = 64695,      SPELL_SHAMAN_TOTEM_EARTHBIND_TOTEM          = 6474,      SPELL_SHAMAN_TOTEM_EARTHEN_POWER            = 59566, -    SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL      = 52042 +    SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL      = 52042, +    SPELL_SHAMAN_TOTEMIC_MASTERY                = 38437  };  enum ShamanSpellIcons @@ -1025,6 +1026,46 @@ class spell_sha_thunderstorm : public SpellScriptLoader          }  }; +// 38443 - Totemic Mastery (Tier 6 - 2P) +class spell_sha_totemic_mastery : public SpellScriptLoader +{ +public: +    spell_sha_totemic_mastery() : SpellScriptLoader("spell_sha_totemic_mastery") { } + +    class spell_sha_totemic_mastery_AuraScript : public AuraScript +    { +        PrepareAuraScript(spell_sha_totemic_mastery_AuraScript); + +        bool Validate(SpellInfo const* /*spellInfo*/) override +        { +            if (!sSpellMgr->GetSpellInfo(SPELL_SHAMAN_TOTEMIC_MASTERY)) +                return false; +            return true; +        } + +        void HandleDummy(AuraEffect const* /*aurEff*/) +        { +            Unit* target = GetTarget(); +            for (uint8 i = SUMMON_SLOT_TOTEM; i < MAX_TOTEM_SLOT; ++i) +                if (!target->m_SummonSlot[i]) +                    return; + +            target->CastSpell(target, SPELL_SHAMAN_TOTEMIC_MASTERY, true); +            PreventDefaultAction(); +        } + +        void Register() override +        { +            OnEffectPeriodic += AuraEffectPeriodicFn(spell_sha_totemic_mastery_AuraScript::HandleDummy, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); +        } +    }; + +    AuraScript* GetAuraScript() const override +    { +        return new spell_sha_totemic_mastery_AuraScript(); +    } +}; +  void AddSC_shaman_spell_scripts()  {      new spell_sha_ancestral_awakening_proc(); @@ -1048,4 +1089,5 @@ void AddSC_shaman_spell_scripts()      new spell_sha_mana_tide_totem();      new spell_sha_sentry_totem();      new spell_sha_thunderstorm(); +    new spell_sha_totemic_mastery();  }  | 
