mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Removed unused warlock spell scripts (#26159)
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
-- Remove old unused spell scripts
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
|
||||
('spell_warl_bane_of_doom',
|
||||
'spell_warl_conflagrate',
|
||||
'spell_warl_demonic_empowerment',
|
||||
'spell_warl_demon_soul',
|
||||
'spell_warl_everlasting_affliction',
|
||||
'spell_warl_fel_synergy',
|
||||
'spell_warl_glyph_of_shadowflame',
|
||||
'spell_warl_improved_soul_fire',
|
||||
'spell_warl_nether_ward_overrride',
|
||||
'spell_warl_shadow_ward',
|
||||
'spell_warl_soul_leech');
|
||||
@@ -35,43 +35,22 @@
|
||||
|
||||
enum WarlockSpells
|
||||
{
|
||||
SPELL_WARLOCK_BANE_OF_DOOM_EFFECT = 18662,
|
||||
SPELL_WARLOCK_CREATE_HEALTHSTONE = 23517,
|
||||
SPELL_WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST = 62388,
|
||||
SPELL_WARLOCK_DEMONIC_CIRCLE_SUMMON = 48018,
|
||||
SPELL_WARLOCK_DEMONIC_CIRCLE_TELEPORT = 48020,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD = 54508,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER = 54509,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP = 54444,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS = 54435,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER = 54443,
|
||||
SPELL_WARLOCK_DEMON_SOUL_IMP = 79459,
|
||||
SPELL_WARLOCK_DEMON_SOUL_FELHUNTER = 79460,
|
||||
SPELL_WARLOCK_DEMON_SOUL_FELGUARD = 79452,
|
||||
SPELL_WARLOCK_DEMON_SOUL_SUCCUBUS = 79453,
|
||||
SPELL_WARLOCK_DEMON_SOUL_VOIDWALKER = 79454,
|
||||
SPELL_WARLOCK_DEVOUR_MAGIC_HEAL = 19658,
|
||||
SPELL_WARLOCK_FEL_SYNERGY_HEAL = 54181,
|
||||
SPELL_WARLOCK_GLYPH_OF_DEMON_TRAINING = 56249,
|
||||
SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME = 63311,
|
||||
SPELL_WARLOCK_GLYPH_OF_SOUL_SWAP = 56226,
|
||||
SPELL_WARLOCK_GLYPH_OF_SUCCUBUS = 56250,
|
||||
SPELL_WARLOCK_HAUNT_HEAL = 48210,
|
||||
SPELL_WARLOCK_IMMOLATE = 348,
|
||||
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R1 = 60955,
|
||||
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2 = 60956,
|
||||
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R1 = 18703,
|
||||
SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R2 = 18704,
|
||||
SPELL_WARLOCK_IMPROVED_SOUL_FIRE_PCT = 85383,
|
||||
SPELL_WARLOCK_IMPROVED_SOUL_FIRE_STATE = 85385,
|
||||
SPELL_WARLOCK_NETHER_WARD = 91711,
|
||||
SPELL_WARLOCK_NETHER_TALENT = 91713,
|
||||
SPELL_WARLOCK_RAIN_OF_FIRE = 5740,
|
||||
SPELL_WARLOCK_RAIN_OF_FIRE_DAMAGE = 42223,
|
||||
SPELL_WARLOCK_SEED_OF_CORRUPTION_DAMAGE = 27285,
|
||||
SPELL_WARLOCK_SEED_OF_CORRUPTION_GENERIC = 32865,
|
||||
SPELL_WARLOCK_SHADOW_TRANCE = 17941,
|
||||
SPELL_WARLOCK_SHADOW_WARD = 6229,
|
||||
SPELL_WARLOCK_SOULSHATTER = 32835,
|
||||
SPELL_WARLOCK_SOUL_SWAP_CD_MARKER = 94229,
|
||||
SPELL_WARLOCK_SOUL_SWAP_OVERRIDE = 86211,
|
||||
@@ -128,40 +107,6 @@ class spell_warl_banish : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// 17962 - Conflagrate - Updated to 4.3.4
|
||||
class spell_warl_conflagrate : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_warl_conflagrate() : SpellScriptLoader("spell_warl_conflagrate") { }
|
||||
|
||||
class spell_warl_conflagrate_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_warl_conflagrate_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_WARLOCK_IMMOLATE });
|
||||
}
|
||||
|
||||
// 6.x dmg formula in tooltip
|
||||
// void HandleHit(SpellEffIndex /*effIndex*/)
|
||||
// {
|
||||
// if (AuraEffect const* aurEff = GetHitUnit()->GetAuraEffect(SPELL_WARLOCK_IMMOLATE, EFFECT_2, GetCaster()->GetGUID()))
|
||||
// SetHitDamage(CalculatePct(aurEff->GetAmount(), GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster())));
|
||||
// }
|
||||
|
||||
void Register() override
|
||||
{
|
||||
//OnEffectHitTarget += SpellEffectFn(spell_warl_conflagrate_SpellScript::HandleHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_warl_conflagrate_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 77220 - Mastery: Chaotic Energies
|
||||
class spell_warl_chaotic_energies : public AuraScript
|
||||
{
|
||||
@@ -227,52 +172,6 @@ class spell_warl_create_healthstone : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// 603 - Bane of Doom
|
||||
/// Updated 4.3.4
|
||||
class spell_warl_bane_of_doom : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_warl_bane_of_doom() : SpellScriptLoader("spell_warl_bane_of_doom") { }
|
||||
|
||||
class spell_warl_curse_of_doom_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_warl_curse_of_doom_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_WARLOCK_BANE_OF_DOOM_EFFECT });
|
||||
}
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (!GetCaster())
|
||||
return;
|
||||
|
||||
AuraRemoveMode removeMode = GetTargetApplication()->GetRemoveMode();
|
||||
if (removeMode != AURA_REMOVE_BY_DEATH || !IsExpired())
|
||||
return;
|
||||
|
||||
if (GetCaster()->ToPlayer()->isHonorOrXPTarget(GetTarget()))
|
||||
GetCaster()->CastSpell(GetTarget(), SPELL_WARLOCK_BANE_OF_DOOM_EFFECT, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
};
|
||||
|
||||
// 48018 - Demonic Circle: Summon
|
||||
/// Updated 4.3.4
|
||||
class spell_warl_demonic_circle_summon : public SpellScriptLoader
|
||||
@@ -361,142 +260,6 @@ class spell_warl_demonic_circle_teleport : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// 77801 - Demon Soul - Updated to 4.3.4
|
||||
class spell_warl_demon_soul : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_warl_demon_soul() : SpellScriptLoader("spell_warl_demon_soul") { }
|
||||
|
||||
class spell_warl_demon_soul_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_warl_demon_soul_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_WARLOCK_DEMON_SOUL_IMP,
|
||||
SPELL_WARLOCK_DEMON_SOUL_FELHUNTER,
|
||||
SPELL_WARLOCK_DEMON_SOUL_FELGUARD,
|
||||
SPELL_WARLOCK_DEMON_SOUL_SUCCUBUS,
|
||||
SPELL_WARLOCK_DEMON_SOUL_VOIDWALKER
|
||||
});
|
||||
}
|
||||
|
||||
void OnHitTarget(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (Creature* targetCreature = GetHitCreature())
|
||||
{
|
||||
if (targetCreature->IsPet())
|
||||
{
|
||||
CreatureTemplate const* ci = targetCreature->GetCreatureTemplate();
|
||||
switch (ci->family)
|
||||
{
|
||||
case CREATURE_FAMILY_SUCCUBUS:
|
||||
caster->CastSpell(caster, SPELL_WARLOCK_DEMON_SOUL_SUCCUBUS);
|
||||
break;
|
||||
case CREATURE_FAMILY_VOIDWALKER:
|
||||
caster->CastSpell(caster, SPELL_WARLOCK_DEMON_SOUL_VOIDWALKER);
|
||||
break;
|
||||
case CREATURE_FAMILY_FELGUARD:
|
||||
caster->CastSpell(caster, SPELL_WARLOCK_DEMON_SOUL_FELGUARD);
|
||||
break;
|
||||
case CREATURE_FAMILY_FELHUNTER:
|
||||
caster->CastSpell(caster, SPELL_WARLOCK_DEMON_SOUL_FELHUNTER);
|
||||
break;
|
||||
case CREATURE_FAMILY_IMP:
|
||||
caster->CastSpell(caster, SPELL_WARLOCK_DEMON_SOUL_IMP);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_warl_demon_soul_SpellScript::OnHitTarget, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_warl_demon_soul_SpellScript;
|
||||
}
|
||||
};
|
||||
|
||||
// 47193 - Demonic Empowerment
|
||||
/// Updated 4.3.4
|
||||
class spell_warl_demonic_empowerment : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
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
|
||||
{
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER,
|
||||
SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP
|
||||
});
|
||||
}
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Creature* targetCreature = GetHitCreature())
|
||||
{
|
||||
if (targetCreature->IsPet())
|
||||
{
|
||||
CreatureTemplate const* ci = targetCreature->GetCreatureTemplate();
|
||||
switch (ci->family)
|
||||
{
|
||||
case CREATURE_FAMILY_SUCCUBUS:
|
||||
targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_SUCCUBUS, true);
|
||||
break;
|
||||
case CREATURE_FAMILY_VOIDWALKER:
|
||||
{
|
||||
SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER, GetCastDifficulty());
|
||||
int32 hp = int32(targetCreature->CountPctFromMaxHealth(GetCaster()->CalculateSpellDamage(targetCreature, spellInfo, 0)));
|
||||
targetCreature->CastCustomSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_VOIDWALKER, &hp, nullptr, nullptr, true);
|
||||
break;
|
||||
}
|
||||
case CREATURE_FAMILY_FELGUARD:
|
||||
targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELGUARD, true);
|
||||
break;
|
||||
case CREATURE_FAMILY_FELHUNTER:
|
||||
targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_FELHUNTER, true);
|
||||
break;
|
||||
case CREATURE_FAMILY_IMP:
|
||||
targetCreature->CastSpell(targetCreature, SPELL_WARLOCK_DEMONIC_EMPOWERMENT_IMP, true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
};
|
||||
|
||||
// 67518, 19505 - Devour Magic
|
||||
class spell_warl_devour_magic : public SpellScriptLoader
|
||||
{
|
||||
@@ -540,124 +303,6 @@ class spell_warl_devour_magic : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// 47422 - Everlasting Affliction
|
||||
/// Updated 4.3.4
|
||||
class spell_warl_everlasting_affliction : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
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)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (Unit* target = GetHitUnit())
|
||||
{
|
||||
// Refresh corruption on target
|
||||
if (AuraEffect* aurEff = target->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_WARLOCK, flag128(0x2, 0, 0), caster->GetGUID()))
|
||||
{
|
||||
uint32 damage = std::max(aurEff->GetAmount(), 0);
|
||||
sScriptMgr->ModifyPeriodicDamageAurasTick(target, caster, damage);
|
||||
aurEff->SetDamage(caster->SpellDamageBonusDone(target, aurEff->GetSpellInfo(), damage, DOT, GetEffectInfo(effIndex)) * aurEff->GetDonePct());
|
||||
aurEff->CalculatePeriodic(caster, false, false);
|
||||
aurEff->GetBase()->RefreshDuration(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
};
|
||||
|
||||
// -47230 - Fel Synergy
|
||||
class spell_warl_fel_synergy : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
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
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_WARLOCK_FEL_SYNERGY_HEAL });
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& eventInfo)
|
||||
{
|
||||
DamageInfo* damageInfo = eventInfo.GetDamageInfo();
|
||||
if (!damageInfo || !damageInfo->GetDamage())
|
||||
return false;
|
||||
|
||||
return GetTarget()->GetGuardianPet() != nullptr;
|
||||
}
|
||||
|
||||
void OnProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
|
||||
int32 heal = CalculatePct(static_cast<int32>(eventInfo.GetDamageInfo()->GetDamage()), aurEff->GetAmount());
|
||||
GetTarget()->CastCustomSpell(SPELL_WARLOCK_FEL_SYNERGY_HEAL, SPELLVALUE_BASE_POINT0, heal, nullptr, true, nullptr, aurEff); // TARGET_UNIT_PET
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
};
|
||||
|
||||
// 63310 - Glyph of Shadowflame
|
||||
class spell_warl_glyph_of_shadowflame : public SpellScriptLoader
|
||||
{
|
||||
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);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME });
|
||||
}
|
||||
|
||||
void OnProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_WARLOCK_GLYPH_OF_SHADOWFLAME, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_warl_glyph_of_shadowflame_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_warl_glyph_of_shadowflame_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 48181 - Haunt
|
||||
/// Updated 4.3.4
|
||||
class spell_warl_haunt : public SpellScriptLoader
|
||||
@@ -682,39 +327,10 @@ class spell_warl_haunt : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_warl_haunt_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_warl_haunt_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_WARLOCK_HAUNT_HEAL });
|
||||
}
|
||||
|
||||
void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (Unit* caster = GetCaster())
|
||||
{
|
||||
int32 amount = aurEff->GetAmount();
|
||||
GetTarget()->CastCustomSpell(caster, SPELL_WARLOCK_HAUNT_HEAL, &amount, nullptr, nullptr, true, nullptr, aurEff, GetCasterGUID());
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectRemove += AuraEffectApplyFn(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();
|
||||
}
|
||||
};
|
||||
|
||||
// 755 - Health Funnel
|
||||
@@ -808,81 +424,6 @@ class spell_warl_healthstone_heal : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// -18119 - Improved Soul Fire
|
||||
class spell_warl_improved_soul_fire : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_warl_improved_soul_fire() : SpellScriptLoader("spell_warl_improved_soul_fire") { }
|
||||
|
||||
class spell_warl_improved_soul_fire_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_warl_improved_soul_fire_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_WARLOCK_IMPROVED_SOUL_FIRE_PCT, SPELL_WARLOCK_IMPROVED_SOUL_FIRE_STATE });
|
||||
}
|
||||
|
||||
void OnProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
GetTarget()->CastCustomSpell(SPELL_WARLOCK_IMPROVED_SOUL_FIRE_PCT, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), GetTarget(), true, nullptr, aurEff);
|
||||
GetTarget()->CastSpell(GetTarget(), SPELL_WARLOCK_IMPROVED_SOUL_FIRE_STATE, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_warl_improved_soul_fire_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_warl_improved_soul_fire_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 687 - Demon Armor
|
||||
// 28176 - Fel Armor
|
||||
class spell_warl_nether_ward_overrride : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_warl_nether_ward_overrride() : SpellScriptLoader("spell_warl_nether_ward_overrride") { }
|
||||
|
||||
class spell_warl_nether_ward_overrride_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_warl_nether_ward_overrride_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_WARLOCK_NETHER_TALENT,
|
||||
SPELL_WARLOCK_NETHER_WARD,
|
||||
SPELL_WARLOCK_SHADOW_WARD
|
||||
});
|
||||
}
|
||||
|
||||
void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
|
||||
{
|
||||
if (GetUnitOwner()->HasAura(SPELL_WARLOCK_NETHER_TALENT))
|
||||
amount = SPELL_WARLOCK_NETHER_WARD;
|
||||
else
|
||||
amount = SPELL_WARLOCK_SHADOW_WARD;
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_warl_nether_ward_overrride_AuraScript::CalculateAmount, EFFECT_2, SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_warl_nether_ward_overrride_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 6358 - Seduction (Special Ability)
|
||||
class spell_warl_seduction : public SpellScriptLoader
|
||||
{
|
||||
@@ -1060,74 +601,6 @@ class spell_warl_seed_of_corruption_generic : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// -7235 - Shadow Ward
|
||||
class spell_warl_shadow_ward : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
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)
|
||||
{
|
||||
canBeRecalculated = false;
|
||||
if (Unit* caster = GetCaster())
|
||||
{
|
||||
// +80.68% from sp bonus
|
||||
float bonus = 0.8068f;
|
||||
|
||||
bonus *= caster->SpellBaseHealingBonusDone(GetSpellInfo()->GetSchoolMask());
|
||||
|
||||
amount += int32(bonus);
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
};
|
||||
|
||||
// -30293 - Soul Leech
|
||||
class spell_warl_soul_leech : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_warl_soul_leech() : SpellScriptLoader("spell_warl_soul_leech") { }
|
||||
|
||||
class spell_warl_soul_leech_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_warl_soul_leech_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_GEN_REPLENISHMENT });
|
||||
}
|
||||
|
||||
void OnProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
GetTarget()->CastSpell(nullptr, SPELL_GEN_REPLENISHMENT, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_warl_soul_leech_AuraScript::OnProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_warl_soul_leech_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 86121 - Soul Swap
|
||||
class spell_warl_soul_swap : public SpellScriptLoader
|
||||
{
|
||||
@@ -1481,30 +954,19 @@ public:
|
||||
|
||||
void AddSC_warlock_spell_scripts()
|
||||
{
|
||||
new spell_warl_bane_of_doom();
|
||||
new spell_warl_banish();
|
||||
RegisterAuraScript(spell_warl_chaotic_energies);
|
||||
new spell_warl_conflagrate();
|
||||
new spell_warl_create_healthstone();
|
||||
new spell_warl_demonic_circle_summon();
|
||||
new spell_warl_demonic_circle_teleport();
|
||||
new spell_warl_demonic_empowerment();
|
||||
new spell_warl_demon_soul();
|
||||
new spell_warl_devour_magic();
|
||||
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_healthstone_heal();
|
||||
new spell_warl_improved_soul_fire();
|
||||
new spell_warl_nether_ward_overrride();
|
||||
new spell_warl_seduction();
|
||||
new spell_warl_seed_of_corruption();
|
||||
new spell_warl_seed_of_corruption_dummy();
|
||||
new spell_warl_seed_of_corruption_generic();
|
||||
new spell_warl_shadow_ward();
|
||||
new spell_warl_soul_leech();
|
||||
new spell_warl_soul_swap();
|
||||
new spell_warl_soul_swap_dot_marker();
|
||||
new spell_warl_soul_swap_exhale();
|
||||
|
||||
Reference in New Issue
Block a user