aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAqua Deus <95978183+aquadeus@users.noreply.github.com>2022-01-17 20:56:31 +0100
committerGitHub <noreply@github.com>2022-01-17 20:56:31 +0100
commit92335bf900021a8d9fb70e44ef9a2458e37b3468 (patch)
tree795652bacf5fdfedf90cad62e01b7e79a92e03dd /src
parentd342be8c79a126ef01db9423484449d3ba7d97c7 (diff)
Scripts/Spells: Fix warlock chaos bolt damage (#27616)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index 767d78c63f3..03c1c2d2a29 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -110,6 +110,33 @@ class spell_warl_banish : public SpellScriptLoader
}
};
+// 116858 - Chaos Bolt
+class spell_warl_chaos_bolt : public SpellScript
+{
+ PrepareSpellScript(spell_warl_chaos_bolt);
+
+ bool Load() override
+ {
+ return GetCaster()->GetTypeId() == TYPEID_PLAYER;
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ SetHitDamage(GetHitDamage() + CalculatePct(GetHitDamage(), GetCaster()->ToPlayer()->m_activePlayerData->SpellCritPercentage));
+ }
+
+ void CalcCritChance(Unit const* /*victim*/, float& critChance)
+ {
+ critChance = 100.0f;
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_warl_chaos_bolt::HandleDummy, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ OnCalcCritChance += SpellOnCalcCritChanceFn(spell_warl_chaos_bolt::CalcCritChance);
+ }
+};
+
// 77220 - Mastery: Chaotic Energies
class spell_warl_chaotic_energies : public AuraScript
{
@@ -1042,6 +1069,7 @@ public:
void AddSC_warlock_spell_scripts()
{
new spell_warl_banish();
+ RegisterSpellScript(spell_warl_chaos_bolt);
RegisterAuraScript(spell_warl_chaotic_energies);
new spell_warl_create_healthstone();
new spell_warl_demonic_circle_summon();