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