diff options
author | aquadeus <95978183+aquadeus@users.noreply.github.com> | 2021-12-17 12:27:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-17 12:27:12 +0100 |
commit | 01ac538cd252151f0db16748aa81a813a23b18b7 (patch) | |
tree | b4d5bb092a799d821c3e73c85a8a5cd06790fd45 | |
parent | 05037bd936756b8ae553d17fd920ad8316f27487 (diff) |
Scripts/Spells: Fix priest Mind Bomb (#27415)
-rw-r--r-- | sql/updates/world/master/2021_12_17_00_world_priest_mind_bomb.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 25 |
2 files changed, 28 insertions, 0 deletions
diff --git a/sql/updates/world/master/2021_12_17_00_world_priest_mind_bomb.sql b/sql/updates/world/master/2021_12_17_00_world_priest_mind_bomb.sql new file mode 100644 index 00000000000..37190073d80 --- /dev/null +++ b/sql/updates/world/master/2021_12_17_00_world_priest_mind_bomb.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pri_mind_bomb'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(205369, 'spell_pri_mind_bomb'); diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 8884a8ec8b5..dcdb7346c41 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -55,6 +55,7 @@ enum PriestSpells SPELL_PRIEST_ITEM_EFFICIENCY = 37595, SPELL_PRIEST_LEAP_OF_FAITH_EFFECT = 92832, SPELL_PRIEST_LEVITATE_EFFECT = 111759, + SPELL_PRIEST_MIND_BOMB_STUN = 226943, SPELL_PRIEST_ORACULAR_HEAL = 26170, SPELL_PRIEST_PENANCE_R1 = 47540, SPELL_PRIEST_PENANCE_R1_DAMAGE = 47758, @@ -541,6 +542,29 @@ public: } }; +// 205369 - Mind Bomb +class spell_pri_mind_bomb : public AuraScript +{ + PrepareAuraScript(spell_pri_mind_bomb); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_PRIEST_MIND_BOMB_STUN }); + } + + void RemoveEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_DEATH || GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE) + if (Unit* caster = GetCaster()) + caster->CastSpell(GetTarget()->GetPosition(), SPELL_PRIEST_MIND_BOMB_STUN, true); + } + + void Register() override + { + AfterEffectRemove += AuraEffectRemoveFn(spell_pri_mind_bomb::RemoveEffect, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + // 47540 - Penance class spell_pri_penance : public SpellScriptLoader { @@ -1330,6 +1354,7 @@ void AddSC_priest_spell_scripts() new spell_pri_item_t6_trinket(); new spell_pri_leap_of_faith_effect_trigger(); new spell_pri_levitate(); + RegisterAuraScript(spell_pri_mind_bomb); new spell_pri_penance(); RegisterSpellScript(spell_pri_power_word_radiance); new spell_pri_power_word_shield(); |