diff options
author | Ovah <dreadkiller@gmx.de> | 2022-10-07 20:56:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-07 20:56:46 +0200 |
commit | 3be76db592033828ed0e56cb08cdc5a2df5be8b0 (patch) | |
tree | 59920a2ef58156bfbf763a98aa5f7878e1533b25 | |
parent | 8f6ce648366099aecb966a57049371bfa4b19e56 (diff) |
Scripts/DK: Fixed Rime talent (#28333)
-rw-r--r-- | sql/updates/world/master/2022_10_07_01_world.sql | 9 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 27 |
2 files changed, 36 insertions, 0 deletions
diff --git a/sql/updates/world/master/2022_10_07_01_world.sql b/sql/updates/world/master/2022_10_07_01_world.sql new file mode 100644 index 00000000000..0f74584a992 --- /dev/null +++ b/sql/updates/world/master/2022_10_07_01_world.sql @@ -0,0 +1,9 @@ +-- +DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_dk_rime'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(59057, 'spell_dk_rime'); + +DELETE FROM `spell_proc` WHERE `SpellId` IN (59057, 59052); +INSERT INTO `spell_proc` (`SpellId`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellTypeMask`, `SpellPhaseMask`, `DisableEffectsMask`, `Charges`) VALUES +(59057, 15, 0x8000 | 0x80, 0, 1, 1, 0x2, 0), +(59052, 15, 0x0, 0x2, 1, 1, 0, 1); diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 72577473715..0d7f9f3da31 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -52,6 +52,7 @@ enum DeathKnightSpells SPELL_DK_DEATH_STRIKE_OFFHAND = 66188, SPELL_DK_FESTERING_WOUND = 194310, SPELL_DK_FROST = 137006, + SPELL_DK_FROST_SCYTHE = 207230, SPELL_DK_GLYPH_OF_FOUL_MENAGERIE = 58642, SPELL_DK_GLYPH_OF_THE_GEIST = 58640, SPELL_DK_GLYPH_OF_THE_SKELETON = 146652, @@ -795,6 +796,31 @@ class spell_dk_raise_dead : public SpellScript } }; +// 59057 - Rime +class spell_dk_rime : public AuraScript +{ + PrepareAuraScript(spell_dk_rime); + + bool Validate(SpellInfo const* spellInfo) override + { + return spellInfo->GetEffects().size() > EFFECT_1 && ValidateSpellInfo({ SPELL_DK_FROST_SCYTHE }); + } + + bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) + { + float chance = static_cast<float>(GetSpellInfo()->GetEffect(EFFECT_1).CalcValue(GetTarget())); + if (eventInfo.GetSpellInfo()->Id == SPELL_DK_FROST_SCYTHE) + chance /= 2.f; + + return roll_chance_f(chance); + } + + void Register() override + { + DoCheckEffectProc += AuraCheckEffectProcFn(spell_dk_rime::CheckProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); + } +}; + // 55233 - Vampiric Blood class spell_dk_vampiric_blood : public AuraScript { @@ -834,5 +860,6 @@ void AddSC_deathknight_spell_scripts() RegisterSpellScript(spell_dk_pet_skeleton_transform); RegisterSpellScript(spell_dk_pvp_4p_bonus); RegisterSpellScript(spell_dk_raise_dead); + RegisterSpellScript(spell_dk_rime); RegisterSpellScript(spell_dk_vampiric_blood); } |