diff options
-rw-r--r-- | sql/updates/world/master/2023_08_20_03_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_druid.cpp | 27 |
2 files changed, 30 insertions, 0 deletions
diff --git a/sql/updates/world/master/2023_08_20_03_world.sql b/sql/updates/world/master/2023_08_20_03_world.sql new file mode 100644 index 00000000000..34ecd2f29d2 --- /dev/null +++ b/sql/updates/world/master/2023_08_20_03_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_dru_inner_peace'); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(740, 'spell_dru_inner_peace'); 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); |