Core/Scripts: implement Drain Mana breaking some auras on hit

This commit is contained in:
Aokromes
2018-02-18 17:58:58 +01:00
parent 0e9a0decaf
commit 3adfc66859
3 changed files with 23 additions and 29 deletions

View File

@@ -0,0 +1,4 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_mana_burn','spell_gen_clear_fear_poly');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(5138, 'spell_gen_clear_fear_poly'),
(8129, 'spell_gen_clear_fear_poly');

View File

@@ -922,6 +922,24 @@ enum Clone
SPELL_NIGHTMARE_FIGMENT_MIRROR_IMAGE = 57528
};
// 5138 - Drain Mana
// 8129 - Mana Burn
class spell_gen_clear_fear_poly : public SpellScript
{
PrepareSpellScript(spell_gen_clear_fear_poly);
void HandleAfterHit()
{
if (Unit* unitTarget = GetHitUnit())
unitTarget->RemoveAurasWithMechanic((1 << MECHANIC_FEAR) | (1 << MECHANIC_POLYMORPH));
}
void Register() override
{
AfterHit += SpellHitFn(spell_gen_clear_fear_poly::HandleAfterHit);
}
};
class spell_gen_clone : public SpellScriptLoader
{
public:
@@ -4380,6 +4398,7 @@ void AddSC_generic_spell_scripts()
new spell_gen_burning_depths_necrolyte_image();
new spell_gen_cannibalize();
new spell_gen_chaos_blast();
RegisterSpellScript(spell_gen_clear_fear_poly);
new spell_gen_clone();
new spell_gen_clone_weapon();
new spell_gen_clone_weapon_aura();

View File

@@ -628,34 +628,6 @@ class spell_pri_lightwell_renew : public SpellScriptLoader
}
};
// 8129 - Mana Burn
class spell_pri_mana_burn : public SpellScriptLoader
{
public:
spell_pri_mana_burn() : SpellScriptLoader("spell_pri_mana_burn") { }
class spell_pri_mana_burn_SpellScript : public SpellScript
{
PrepareSpellScript(spell_pri_mana_burn_SpellScript);
void HandleAfterHit()
{
if (Unit* unitTarget = GetHitUnit())
unitTarget->RemoveAurasWithMechanic((1 << MECHANIC_FEAR) | (1 << MECHANIC_POLYMORPH));
}
void Register() override
{
AfterHit += SpellHitFn(spell_pri_mana_burn_SpellScript::HandleAfterHit);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_pri_mana_burn_SpellScript;
}
};
// 28305 - Mana Leech (Passive) (Priest Pet Aura)
class spell_pri_mana_leech : public SpellScriptLoader
{
@@ -1303,7 +1275,6 @@ void AddSC_priest_spell_scripts()
new spell_pri_guardian_spirit();
new spell_pri_leap_of_faith_effect_trigger();
new spell_pri_lightwell_renew();
new spell_pri_mana_burn();
new spell_pri_mana_leech();
new spell_pri_mind_sear();
new spell_pri_pain_and_suffering_proc();