refactor(Scripts/Spells): convert spell_warlock into new system (#9066)

This commit is contained in:
Kitzunu
2021-11-09 11:45:43 +01:00
committed by GitHub
parent 9b72a0a0e1
commit 7c1fb0b088
+139 -456
View File
@@ -69,15 +69,9 @@ enum WarlockSpellIcons
WARLOCK_ICON_ID_MANA_FEED = 1982
};
// Ours
class spell_warl_eye_of_kilrogg : public SpellScriptLoader
class spell_warl_eye_of_kilrogg : public AuraScript
{
public:
spell_warl_eye_of_kilrogg() : SpellScriptLoader("spell_warl_eye_of_kilrogg") { }
class spell_warl_eye_of_kilrogg_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_eye_of_kilrogg_AuraScript);
PrepareAuraScript(spell_warl_eye_of_kilrogg);
void HandleAuraApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -114,25 +108,14 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_warl_eye_of_kilrogg_AuraScript::HandleAuraApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_warl_eye_of_kilrogg_AuraScript::HandleAuraRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_warl_eye_of_kilrogg::HandleAuraApply, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_warl_eye_of_kilrogg::HandleAuraRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_warl_shadowflame : public SpellScript
{
return new spell_warl_eye_of_kilrogg_AuraScript();
}
};
class spell_warl_shadowflame : public SpellScriptLoader
{
public:
spell_warl_shadowflame() : SpellScriptLoader("spell_warl_shadowflame") { }
class spell_warl_shadowflame_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_shadowflame_SpellScript);
PrepareSpellScript(spell_warl_shadowflame);
void HandleSchoolDMG(SpellEffIndex /*effIndex*/)
{
@@ -142,24 +125,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_warl_shadowflame_SpellScript::HandleSchoolDMG, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
OnEffectHitTarget += SpellEffectFn(spell_warl_shadowflame::HandleSchoolDMG, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
SpellScript* GetSpellScript() const override
class spell_warl_seduction : public AuraScript
{
return new spell_warl_shadowflame_SpellScript();
}
};
class spell_warl_seduction : public SpellScriptLoader
{
public:
spell_warl_seduction() : SpellScriptLoader("spell_warl_seduction") { }
class spell_warl_seduction_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_seduction_AuraScript);
PrepareAuraScript(spell_warl_seduction);
void HandleAuraApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -178,24 +150,13 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_warl_seduction_AuraScript::HandleAuraApply, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_warl_seduction::HandleAuraApply, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_warl_improved_demonic_tactics : public AuraScript
{
return new spell_warl_seduction_AuraScript();
}
};
class spell_warl_improved_demonic_tactics : public SpellScriptLoader
{
public:
spell_warl_improved_demonic_tactics() : SpellScriptLoader("spell_warl_improved_demonic_tactics") { }
class spell_warl_improved_demonic_tactics_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_improved_demonic_tactics_AuraScript);
PrepareAuraScript(spell_warl_improved_demonic_tactics);
bool Load() override
{
@@ -238,27 +199,16 @@ public:
void Register() override
{
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_warl_improved_demonic_tactics_AuraScript::CalcPeriodic, EFFECT_ALL, SPELL_AURA_DUMMY);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_improved_demonic_tactics_AuraScript::CalculateAmount, EFFECT_ALL, SPELL_AURA_DUMMY);
DoEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_warl_improved_demonic_tactics_AuraScript::HandleEffectCalcSpellMod, EFFECT_ALL, SPELL_AURA_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_improved_demonic_tactics_AuraScript::HandlePeriodic, EFFECT_ALL, SPELL_AURA_DUMMY);
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_warl_improved_demonic_tactics::CalcPeriodic, EFFECT_ALL, SPELL_AURA_DUMMY);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_improved_demonic_tactics::CalculateAmount, EFFECT_ALL, SPELL_AURA_DUMMY);
DoEffectCalcSpellMod += AuraEffectCalcSpellModFn(spell_warl_improved_demonic_tactics::HandleEffectCalcSpellMod, EFFECT_ALL, SPELL_AURA_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_improved_demonic_tactics::HandlePeriodic, EFFECT_ALL, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
class spell_warl_ritual_of_summoning : public SpellScript
{
return new spell_warl_improved_demonic_tactics_AuraScript();
}
};
class spell_warl_ritual_of_summoning : public SpellScriptLoader
{
public:
spell_warl_ritual_of_summoning() : SpellScriptLoader("spell_warl_ritual_of_summoning") { }
class spell_warl_ritual_of_summoning_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_ritual_of_summoning_SpellScript);
PrepareSpellScript(spell_warl_ritual_of_summoning);
SpellCastResult CheckCast()
{
@@ -270,24 +220,13 @@ public:
void Register() override
{
OnCheckCast += SpellCheckCastFn(spell_warl_ritual_of_summoning_SpellScript::CheckCast);
OnCheckCast += SpellCheckCastFn(spell_warl_ritual_of_summoning::CheckCast);
}
};
SpellScript* GetSpellScript() const override
class spell_warl_demonic_aegis : public AuraScript
{
return new spell_warl_ritual_of_summoning_SpellScript();
}
};
class spell_warl_demonic_aegis : public SpellScriptLoader
{
public:
spell_warl_demonic_aegis() : SpellScriptLoader("spell_warl_demonic_aegis") { }
class spell_warl_demonic_aegis_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_demonic_aegis_AuraScript);
PrepareAuraScript(spell_warl_demonic_aegis);
void HandleAuraApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -297,24 +236,13 @@ public:
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_warl_demonic_aegis_AuraScript::HandleAuraApply, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_warl_demonic_aegis::HandleAuraApply, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_warl_demonic_knowledge : public AuraScript
{
return new spell_warl_demonic_aegis_AuraScript();
}
};
class spell_warl_demonic_knowledge : public SpellScriptLoader
{
public:
spell_warl_demonic_knowledge() : SpellScriptLoader("spell_warl_demonic_knowledge") { }
class spell_warl_demonic_knowledge_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_demonic_knowledge_AuraScript);
PrepareAuraScript(spell_warl_demonic_knowledge);
void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
{
@@ -336,26 +264,15 @@ public:
void Register() override
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_demonic_knowledge_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_DAMAGE_DONE);
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_warl_demonic_knowledge_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_MOD_DAMAGE_DONE);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_knowledge_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_MOD_DAMAGE_DONE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_demonic_knowledge::CalculateAmount, EFFECT_0, SPELL_AURA_MOD_DAMAGE_DONE);
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_warl_demonic_knowledge::CalcPeriodic, EFFECT_0, SPELL_AURA_MOD_DAMAGE_DONE);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_knowledge::HandlePeriodic, EFFECT_0, SPELL_AURA_MOD_DAMAGE_DONE);
}
};
AuraScript* GetAuraScript() const override
class spell_warl_generic_scaling : public AuraScript
{
return new spell_warl_demonic_knowledge_AuraScript();
}
};
class spell_warl_generic_scaling : public SpellScriptLoader
{
public:
spell_warl_generic_scaling() : SpellScriptLoader("spell_warl_generic_scaling") { }
class spell_warl_generic_scaling_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_generic_scaling_AuraScript);
PrepareAuraScript(spell_warl_generic_scaling);
void CalculateResistanceAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
{
@@ -443,36 +360,25 @@ public:
void Register() override
{
if (m_scriptSpellId != 34947)
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling_AuraScript::CalculateResistanceAmount, EFFECT_ALL, SPELL_AURA_MOD_RESISTANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling::CalculateResistanceAmount, EFFECT_ALL, SPELL_AURA_MOD_RESISTANCE);
if (m_scriptSpellId == 34947 || m_scriptSpellId == 34956)
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling_AuraScript::CalculateStatAmount, EFFECT_ALL, SPELL_AURA_MOD_STAT);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling::CalculateStatAmount, EFFECT_ALL, SPELL_AURA_MOD_STAT);
if (m_scriptSpellId == 34947)
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling_AuraScript::CalculateAPAmount, EFFECT_ALL, SPELL_AURA_MOD_ATTACK_POWER);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling_AuraScript::CalculateSPAmount, EFFECT_ALL, SPELL_AURA_MOD_DAMAGE_DONE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling::CalculateAPAmount, EFFECT_ALL, SPELL_AURA_MOD_ATTACK_POWER);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_generic_scaling::CalculateSPAmount, EFFECT_ALL, SPELL_AURA_MOD_DAMAGE_DONE);
}
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_warl_generic_scaling_AuraScript::CalcPeriodic, EFFECT_ALL, SPELL_AURA_ANY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_generic_scaling_AuraScript::HandlePeriodic, EFFECT_ALL, SPELL_AURA_ANY);
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_warl_generic_scaling::CalcPeriodic, EFFECT_ALL, SPELL_AURA_ANY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_generic_scaling::HandlePeriodic, EFFECT_ALL, SPELL_AURA_ANY);
}
};
AuraScript* GetAuraScript() const override
class spell_warl_infernal_scaling : public AuraScript
{
return new spell_warl_generic_scaling_AuraScript();
}
};
class spell_warl_infernal_scaling : public SpellScriptLoader
{
public:
spell_warl_infernal_scaling() : SpellScriptLoader("spell_warl_infernal_scaling") { }
class spell_warl_infernal_scaling_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_infernal_scaling_AuraScript);
PrepareAuraScript(spell_warl_infernal_scaling);
void CalculateResistanceAmount(AuraEffect const* aurEff, int32& amount, bool& /*canBeRecalculated*/)
{
@@ -536,37 +442,25 @@ public:
void Register() override
{
if (m_scriptSpellId != 36186)
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling_AuraScript::CalculateResistanceAmount, EFFECT_ALL, SPELL_AURA_MOD_RESISTANCE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling::CalculateResistanceAmount, EFFECT_ALL, SPELL_AURA_MOD_RESISTANCE);
if (m_scriptSpellId == 36186 || m_scriptSpellId == 36188)
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling_AuraScript::CalculateStatAmount, EFFECT_ALL, SPELL_AURA_MOD_STAT);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling::CalculateStatAmount, EFFECT_ALL, SPELL_AURA_MOD_STAT);
if (m_scriptSpellId == 36186)
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling_AuraScript::CalculateAPAmount, EFFECT_ALL, SPELL_AURA_MOD_ATTACK_POWER);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling_AuraScript::CalculateSPAmount, EFFECT_ALL, SPELL_AURA_MOD_DAMAGE_DONE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling::CalculateAPAmount, EFFECT_ALL, SPELL_AURA_MOD_ATTACK_POWER);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_infernal_scaling::CalculateSPAmount, EFFECT_ALL, SPELL_AURA_MOD_DAMAGE_DONE);
}
OnEffectApply += AuraEffectApplyFn(spell_warl_infernal_scaling_AuraScript::HandleEffectApply, EFFECT_ALL, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_warl_infernal_scaling::HandleEffectApply, EFFECT_ALL, SPELL_AURA_ANY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_infernal_scaling_AuraScript();
}
};
//Theirs
// -710 - Banish
class spell_warl_banish : public SpellScriptLoader
class spell_warl_banish : public SpellScript
{
public:
spell_warl_banish() : SpellScriptLoader("spell_warl_banish") { }
class spell_warl_banish_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_banish_SpellScript);
PrepareSpellScript(spell_warl_banish);
void HandleBanish(SpellMissInfo missInfo)
{
@@ -587,25 +481,14 @@ public:
void Register() override
{
BeforeHit += BeforeSpellHitFn(spell_warl_banish_SpellScript::HandleBanish);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_banish_SpellScript();
BeforeHit += BeforeSpellHitFn(spell_warl_banish::HandleBanish);
}
};
// 47193 - Demonic Empowerment
class spell_warl_demonic_empowerment : public SpellScriptLoader
class spell_warl_demonic_empowerment : public SpellScript
{
public:
spell_warl_demonic_empowerment() : SpellScriptLoader("spell_warl_demonic_empowerment") { }
class spell_warl_demonic_empowerment_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_demonic_empowerment_SpellScript);
PrepareSpellScript(spell_warl_demonic_empowerment);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -655,25 +538,14 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_warl_demonic_empowerment_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_demonic_empowerment_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_warl_demonic_empowerment::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 6201 - Create Healthstone (and ranks)
class spell_warl_create_healthstone : public SpellScriptLoader
class spell_warl_create_healthstone : public SpellScript
{
public:
spell_warl_create_healthstone() : SpellScriptLoader("spell_warl_create_healthstone") { }
class spell_warl_create_healthstone_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_create_healthstone_SpellScript);
PrepareSpellScript(spell_warl_create_healthstone);
static uint32 const iTypes[8][3];
@@ -724,18 +596,12 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_warl_create_healthstone_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnCheckCast += SpellCheckCastFn(spell_warl_create_healthstone_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_warl_create_healthstone::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnCheckCast += SpellCheckCastFn(spell_warl_create_healthstone::CheckCast);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_create_healthstone_SpellScript();
}
};
uint32 const spell_warl_create_healthstone::spell_warl_create_healthstone_SpellScript::iTypes[8][3] =
uint32 const spell_warl_create_healthstone::spell_warl_create_healthstone::iTypes[8][3] =
{
{ 5512, 19004, 19005}, // Minor Healthstone
{ 5511, 19006, 19007}, // Lesser Healthstone
@@ -748,14 +614,9 @@ uint32 const spell_warl_create_healthstone::spell_warl_create_healthstone_SpellS
};
// 47422 - Everlasting Affliction
class spell_warl_everlasting_affliction : public SpellScriptLoader
class spell_warl_everlasting_affliction : public SpellScript
{
public:
spell_warl_everlasting_affliction() : SpellScriptLoader("spell_warl_everlasting_affliction") { }
class spell_warl_everlasting_affliction_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_everlasting_affliction_SpellScript);
PrepareSpellScript(spell_warl_everlasting_affliction);
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
{
@@ -770,25 +631,14 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_warl_everlasting_affliction_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_everlasting_affliction_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_warl_everlasting_affliction::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 18541 - Ritual of Doom Effect
class spell_warl_ritual_of_doom_effect : public SpellScriptLoader
class spell_warl_ritual_of_doom_effect : public SpellScript
{
public:
spell_warl_ritual_of_doom_effect() : SpellScriptLoader("spell_warl_ritual_of_doom_effect") { }
class spell_warl_ritual_of_doom_effect_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_ritual_of_doom_effect_SpellScript);
PrepareSpellScript(spell_warl_ritual_of_doom_effect);
void HandleDummy(SpellEffIndex /*effIndex*/)
{
@@ -798,25 +648,14 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_warl_ritual_of_doom_effect_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_ritual_of_doom_effect_SpellScript();
OnEffectHit += SpellEffectFn(spell_warl_ritual_of_doom_effect::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
// -27285 - Seed of Corruption
class spell_warl_seed_of_corruption : public SpellScriptLoader
class spell_warl_seed_of_corruption : public SpellScript
{
public:
spell_warl_seed_of_corruption() : SpellScriptLoader("spell_warl_seed_of_corruption") { }
class spell_warl_seed_of_corruption_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_seed_of_corruption_SpellScript);
PrepareSpellScript(spell_warl_seed_of_corruption);
void FilterTargets(std::list<WorldObject*>& targets)
{
@@ -826,25 +665,14 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warl_seed_of_corruption_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_seed_of_corruption_SpellScript();
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warl_seed_of_corruption::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
// 29858 - Soulshatter
class spell_warl_soulshatter : public SpellScriptLoader
class spell_warl_soulshatter : public SpellScript
{
public:
spell_warl_soulshatter() : SpellScriptLoader("spell_warl_soulshatter") { }
class spell_warl_soulshatter_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_soulshatter_SpellScript);
PrepareSpellScript(spell_warl_soulshatter);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -863,25 +691,14 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_warl_soulshatter_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_soulshatter_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_warl_soulshatter::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
// 63108 - Siphon Life
class spell_warl_siphon_life : public SpellScriptLoader
class spell_warl_siphon_life : public AuraScript
{
public:
spell_warl_siphon_life() : SpellScriptLoader("spell_warl_siphon_life") { }
class spell_warl_siphon_life_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_siphon_life_AuraScript);
PrepareAuraScript(spell_warl_siphon_life);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -915,27 +732,16 @@ public:
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_warl_siphon_life_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_warl_siphon_life_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_siphon_life_AuraScript();
DoCheckProc += AuraCheckProcFn(spell_warl_siphon_life::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_warl_siphon_life::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// -1454 - Life Tap
#define LIFE_TAP_COEFFICIENT 0.9F
class spell_warl_life_tap : public SpellScriptLoader
class spell_warl_life_tap : public SpellScript
{
public:
spell_warl_life_tap() : SpellScriptLoader("spell_warl_life_tap") { }
class spell_warl_life_tap_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_life_tap_SpellScript);
PrepareSpellScript(spell_warl_life_tap);
bool Load() override
{
@@ -987,26 +793,15 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_warl_life_tap_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_warl_life_tap_SpellScript::CheckCast);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_life_tap_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_warl_life_tap::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnCheckCast += SpellCheckCastFn(spell_warl_life_tap::CheckCast);
}
};
// 48018 - Demonic Circle: Summon
class spell_warl_demonic_circle_summon : public SpellScriptLoader
class spell_warl_demonic_circle_summon : public AuraScript
{
public:
spell_warl_demonic_circle_summon() : SpellScriptLoader("spell_warl_demonic_circle_summon") { }
class spell_warl_demonic_circle_summon_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_demonic_circle_summon_AuraScript);
PrepareAuraScript(spell_warl_demonic_circle_summon);
void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes mode)
{
@@ -1039,26 +834,15 @@ public:
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_warl_demonic_circle_summon_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_circle_summon_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_demonic_circle_summon_AuraScript();
OnEffectRemove += AuraEffectRemoveFn(spell_warl_demonic_circle_summon::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_demonic_circle_summon::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
// 48020 - Demonic Circle: Teleport
class spell_warl_demonic_circle_teleport : public SpellScriptLoader
class spell_warl_demonic_circle_teleport : public AuraScript
{
public:
spell_warl_demonic_circle_teleport() : SpellScriptLoader("spell_warl_demonic_circle_teleport") { }
class spell_warl_demonic_circle_teleport_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_demonic_circle_teleport_AuraScript);
PrepareAuraScript(spell_warl_demonic_circle_teleport);
void HandleTeleport(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -1074,25 +858,14 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_warl_demonic_circle_teleport_AuraScript::HandleTeleport, EFFECT_0, SPELL_AURA_MECHANIC_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_demonic_circle_teleport_AuraScript();
OnEffectApply += AuraEffectApplyFn(spell_warl_demonic_circle_teleport::HandleTeleport, EFFECT_0, SPELL_AURA_MECHANIC_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
}
};
// -47230 - Fel Synergy
class spell_warl_fel_synergy : public SpellScriptLoader
class spell_warl_fel_synergy : public AuraScript
{
public:
spell_warl_fel_synergy() : SpellScriptLoader("spell_warl_fel_synergy") { }
class spell_warl_fel_synergy_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_fel_synergy_AuraScript);
PrepareAuraScript(spell_warl_fel_synergy);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -1123,26 +896,15 @@ public:
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_warl_fel_synergy_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_warl_fel_synergy_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_fel_synergy_AuraScript();
DoCheckProc += AuraCheckProcFn(spell_warl_fel_synergy::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_warl_fel_synergy::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// -48181 - Haunt
class spell_warl_haunt : public SpellScriptLoader
class spell_warl_haunt : public SpellScript
{
public:
spell_warl_haunt() : SpellScriptLoader("spell_warl_haunt") { }
class spell_warl_haunt_SpellScript : public SpellScript
{
PrepareSpellScript(spell_warl_haunt_SpellScript);
PrepareSpellScript(spell_warl_haunt);
void HandleAfterHit()
{
@@ -1153,13 +915,13 @@ public:
void Register() override
{
AfterHit += SpellHitFn(spell_warl_haunt_SpellScript::HandleAfterHit);
AfterHit += SpellHitFn(spell_warl_haunt::HandleAfterHit);
}
};
class spell_warl_haunt_AuraScript : public AuraScript
class spell_warl_haunt_aura : public AuraScript
{
PrepareAuraScript(spell_warl_haunt_AuraScript);
PrepareAuraScript(spell_warl_haunt_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -1177,30 +939,14 @@ public:
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_warl_haunt_AuraScript::HandleRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_warl_haunt_SpellScript();
}
AuraScript* GetAuraScript() const override
{
return new spell_warl_haunt_AuraScript();
OnEffectRemove += AuraEffectRemoveFn(spell_warl_haunt_aura::HandleRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
// -30108 - Unstable Affliction
class spell_warl_unstable_affliction : public SpellScriptLoader
class spell_warl_unstable_affliction : public AuraScript
{
public:
spell_warl_unstable_affliction() : SpellScriptLoader("spell_warl_unstable_affliction") { }
class spell_warl_unstable_affliction_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_unstable_affliction_AuraScript);
PrepareAuraScript(spell_warl_unstable_affliction);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -1221,25 +967,14 @@ public:
void Register() override
{
AfterDispel += AuraDispelFn(spell_warl_unstable_affliction_AuraScript::HandleDispel);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_unstable_affliction_AuraScript();
AfterDispel += AuraDispelFn(spell_warl_unstable_affliction::HandleDispel);
}
};
// -603 - Curse of Doom
class spell_warl_curse_of_doom : public SpellScriptLoader
class spell_warl_curse_of_doom : public AuraScript
{
public:
spell_warl_curse_of_doom() : SpellScriptLoader("spell_warl_curse_of_doom") { }
class spell_warl_curse_of_doom_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_curse_of_doom_AuraScript);
PrepareAuraScript(spell_warl_curse_of_doom);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -1266,25 +1001,14 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_warl_curse_of_doom_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_curse_of_doom_AuraScript();
AfterEffectRemove += AuraEffectRemoveFn(spell_warl_curse_of_doom::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
// -755 - Health Funnel
class spell_warl_health_funnel : public SpellScriptLoader
class spell_warl_health_funnel : public AuraScript
{
public:
spell_warl_health_funnel() : SpellScriptLoader("spell_warl_health_funnel") { }
class spell_warl_health_funnel_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_health_funnel_AuraScript);
PrepareAuraScript(spell_warl_health_funnel);
void ApplyEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -1308,26 +1032,15 @@ public:
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_warl_health_funnel_AuraScript::RemoveEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_warl_health_funnel_AuraScript::ApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_health_funnel_AuraScript();
OnEffectRemove += AuraEffectRemoveFn(spell_warl_health_funnel::RemoveEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_warl_health_funnel::ApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
}
};
// -6229 - Shadow Ward
class spell_warl_shadow_ward : public SpellScriptLoader
class spell_warl_shadow_ward : public AuraScript
{
public:
spell_warl_shadow_ward() : SpellScriptLoader("spell_warl_shadow_ward") { }
class spell_warl_shadow_ward_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_shadow_ward_AuraScript);
PrepareAuraScript(spell_warl_shadow_ward);
void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
{
@@ -1346,25 +1059,14 @@ public:
void Register() override
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_shadow_ward_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_shadow_ward_AuraScript();
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_shadow_ward::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
}
};
// 63310 - Glyph of Shadowflame
class spell_warl_glyph_of_shadowflame : public SpellScriptLoader
class spell_warl_glyph_of_shadowflame : public AuraScript
{
public:
spell_warl_glyph_of_shadowflame() : SpellScriptLoader("spell_warl_glyph_of_shadowflame") { }
class spell_warl_glyph_of_shadowflame_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_glyph_of_shadowflame_AuraScript);
PrepareAuraScript(spell_warl_glyph_of_shadowflame);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -1379,25 +1081,14 @@ public:
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_warl_glyph_of_shadowflame_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_glyph_of_shadowflame_AuraScript();
OnEffectProc += AuraEffectProcFn(spell_warl_glyph_of_shadowflame::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
// -1120 - Drain Soul
class spell_warl_drain_soul : public SpellScriptLoader
class spell_warl_drain_soul : public AuraScript
{
public:
spell_warl_drain_soul() : SpellScriptLoader("spell_warl_drain_soul") { }
class spell_warl_drain_soul_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_drain_soul_AuraScript);
PrepareAuraScript(spell_warl_drain_soul);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -1464,48 +1155,40 @@ public:
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_warl_drain_soul_AuraScript::CheckProc);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_drain_soul_AuraScript::HandleTick, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectProc += AuraEffectProcFn(spell_warl_drain_soul_AuraScript::HandleProc, EFFECT_2, SPELL_AURA_PROC_TRIGGER_SPELL);
DoCheckProc += AuraCheckProcFn(spell_warl_drain_soul::CheckProc);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_drain_soul::HandleTick, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectProc += AuraEffectProcFn(spell_warl_drain_soul::HandleProc, EFFECT_2, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_warl_drain_soul_AuraScript();
}
};
void AddSC_warlock_spell_scripts()
{
// Ours
new spell_warl_eye_of_kilrogg();
new spell_warl_shadowflame();
new spell_warl_seduction();
new spell_warl_improved_demonic_tactics();
new spell_warl_ritual_of_summoning();
new spell_warl_demonic_aegis();
new spell_warl_demonic_knowledge();
new spell_warl_generic_scaling();
new spell_warl_infernal_scaling();
// Theirs
new spell_warl_banish();
new spell_warl_create_healthstone();
new spell_warl_curse_of_doom();
new spell_warl_demonic_circle_summon();
new spell_warl_demonic_circle_teleport();
new spell_warl_demonic_empowerment();
new spell_warl_everlasting_affliction();
new spell_warl_fel_synergy();
new spell_warl_glyph_of_shadowflame();
new spell_warl_haunt();
new spell_warl_health_funnel();
new spell_warl_life_tap();
new spell_warl_ritual_of_doom_effect();
new spell_warl_seed_of_corruption();
new spell_warl_shadow_ward();
new spell_warl_siphon_life();
new spell_warl_soulshatter();
new spell_warl_unstable_affliction();
new spell_warl_drain_soul();
RegisterSpellScript(spell_warl_eye_of_kilrogg);
RegisterSpellScript(spell_warl_shadowflame);
RegisterSpellScript(spell_warl_seduction);
RegisterSpellScript(spell_warl_improved_demonic_tactics);
RegisterSpellScript(spell_warl_ritual_of_summoning);
RegisterSpellScript(spell_warl_demonic_aegis);
RegisterSpellScript(spell_warl_demonic_knowledge);
RegisterSpellScript(spell_warl_generic_scaling);
RegisterSpellScript(spell_warl_infernal_scaling);
RegisterSpellScript(spell_warl_banish);
RegisterSpellScript(spell_warl_create_healthstone);
RegisterSpellScript(spell_warl_curse_of_doom);
RegisterSpellScript(spell_warl_demonic_circle_summon);
RegisterSpellScript(spell_warl_demonic_circle_teleport);
RegisterSpellScript(spell_warl_demonic_empowerment);
RegisterSpellScript(spell_warl_everlasting_affliction);
RegisterSpellScript(spell_warl_fel_synergy);
RegisterSpellScript(spell_warl_glyph_of_shadowflame);
RegisterSpellAndAuraScriptPair(spell_warl_haunt, spell_warl_haunt_aura);
RegisterSpellScript(spell_warl_health_funnel);
RegisterSpellScript(spell_warl_life_tap);
RegisterSpellScript(spell_warl_ritual_of_doom_effect);
RegisterSpellScript(spell_warl_seed_of_corruption);
RegisterSpellScript(spell_warl_shadow_ward);
RegisterSpellScript(spell_warl_siphon_life);
RegisterSpellScript(spell_warl_soulshatter);
RegisterSpellScript(spell_warl_unstable_affliction);
RegisterSpellScript(spell_warl_drain_soul);
}