diff options
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Spells/spell_druid.cpp | 27 | 
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 4d1e00f2bf9..868805ac33f 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -89,6 +89,7 @@ enum DruidSpells      SPELL_DRUID_INCARNATION                    = 117679,      SPELL_DRUID_INCARNATION_KING_OF_THE_JUNGLE = 102543,      SPELL_DRUID_INCARNATION_TREE_OF_LIFE       = 33891, +    SPELL_DRUID_INNER_PEACE                    = 197073,      SPELL_DRUID_INNERVATE                      = 29166,      SPELL_DRUID_INNERVATE_RANK_2               = 326228,      SPELL_DRUID_INFUSION                       = 37238, @@ -1036,6 +1037,31 @@ class spell_dru_incarnation_tree_of_life : public AuraScript      }  }; +// 740 - Tranquility +class spell_dru_inner_peace : public SpellScript +{ +    bool Validate(SpellInfo const* spellInfo) override +    { +        return ValidateSpellInfo({ SPELL_DRUID_INNER_PEACE }) +            && ValidateSpellEffect({ { spellInfo->Id, EFFECT_4 } }) +            && spellInfo->GetEffect(EFFECT_3).IsAura(SPELL_AURA_MECHANIC_IMMUNITY_MASK) +            && spellInfo->GetEffect(EFFECT_4).IsAura(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN); +    } + +    void PreventEffect(WorldObject*& target) const +    { +        // Note: Inner Peace talent. +        if (!GetCaster()->HasAura(SPELL_DRUID_INNER_PEACE)) +            target = nullptr; +    } + +    void Register() override +    { +        OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_dru_inner_peace::PreventEffect, EFFECT_3, TARGET_UNIT_CASTER); +        OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_dru_inner_peace::PreventEffect, EFFECT_4, TARGET_UNIT_CASTER); +    } +}; +  // 40442 - Druid Tier 6 Trinket  class spell_dru_item_t6_trinket : public AuraScript  { @@ -2072,6 +2098,7 @@ void AddSC_druid_spell_scripts()      RegisterSpellScript(spell_dru_incapacitating_roar);      RegisterSpellScript(spell_dru_incarnation);      RegisterSpellScript(spell_dru_incarnation_tree_of_life); +    RegisterSpellScript(spell_dru_inner_peace);      RegisterSpellScript(spell_dru_innervate);      RegisterSpellScript(spell_dru_item_t6_trinket);      RegisterSpellScript(spell_dru_lifebloom);  | 
