aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2023_04_23_02_world.sql27
-rw-r--r--src/server/scripts/Spells/spell_azerite.cpp33
-rw-r--r--src/server/scripts/Spells/spell_item.cpp22
3 files changed, 82 insertions, 0 deletions
diff --git a/sql/updates/world/master/2023_04_23_02_world.sql b/sql/updates/world/master/2023_04_23_02_world.sql
new file mode 100644
index 00000000000..81410b573fd
--- /dev/null
+++ b/sql/updates/world/master/2023_04_23_02_world.sql
@@ -0,0 +1,27 @@
+DELETE FROM `spell_proc` WHERE `SpellId` IN (288880,288882,289391,292650,292824,292975,292991,295157,295175,295391,295430,296141,296207,296963,298564,299388,299906,299939,299940);
+INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
+(288880,0x00,107,0x00100000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x2,0x2,0x403,0x0,0x0,0,0,0,0), -- Hour of Reaping
+(288882,0x00,107,0x00000000,0x00000004,0x00000000,0x00000000,0x0,0x0,0x1,0x1,0x403,0x0,0x0,0,0,0,0), -- Hour of Reaping
+(289391,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Buster Shot
+(292650,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x3,0x0,0x0,0,0,0,0), -- Custody of the Deep
+(292824,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Petrified Willow
+(292975,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Blackhand Doomcutter
+(292991,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Bleakblade of Shahram
+(295157,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x3,0x2,0x403,0x0,0x0,0,0,0,0), -- Storm Nimbus
+(295175,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Spiteful Binding
+(295391,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Oblivion Spear
+(295430,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x3,0x2,0x403,0x0,0x0,0,0,0,0), -- Ephemeral Vigor
+(296141,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Knowledge of Mortality
+(296207,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x2,0x2,0x403,0x0,0x0,0,0,0,0), -- Seed of Eonar
+(296963,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Conductive Ink
+(298564,0x00,11,0x00000000,0x00000000,0x00002000,0x00000000,0x0,0x0,0x4,0x2,0x0,0x0,0x0,0,0,0,0), -- Might of the Worldsplitter
+(299388,0x00,11,0x00000003,0x80000000,0x00000000,0x00000001,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Galvanizing Nimbus
+(299906,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,0,0,0), -- Fusion Burn
+(299939,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x2,0x2,0x403,0x0,0x0,0,0,0,0), -- Seed of Eonar
+(299940,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x2,0x2,0x403,0x0,0x0,0,0,0,0); -- Seed of Eonar
+
+
+DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_item_hour_of_reaping','spell_item_grips_of_forsaken_sanity');
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(288882,'spell_item_hour_of_reaping'),
+(295175,'spell_item_grips_of_forsaken_sanity');
diff --git a/src/server/scripts/Spells/spell_azerite.cpp b/src/server/scripts/Spells/spell_azerite.cpp
index f3c44809adc..add0174d0b5 100644
--- a/src/server/scripts/Spells/spell_azerite.cpp
+++ b/src/server/scripts/Spells/spell_azerite.cpp
@@ -481,6 +481,38 @@ class spell_item_echoing_blades_damage : public SpellScript
}
};
+// 288882 - Hour of Reaping
+class spell_item_hour_of_reaping : public AuraScript
+{
+ PrepareAuraScript(spell_item_hour_of_reaping);
+
+ enum
+ {
+ SPELL_DH_SOUL_BARRIER = 263648
+ };
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_DH_SOUL_BARRIER });
+ }
+
+ bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
+ {
+ return GetStackAmount() == GetAura()->CalcMaxStackAmount();
+ }
+
+ void TriggerSoulBarrier(AuraEffect* aurEff, ProcEventInfo& /*procInfo*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_DH_SOUL_BARRIER, aurEff);
+ }
+
+ void Register() override
+ {
+ DoCheckEffectProc += AuraCheckEffectProcFn(spell_item_hour_of_reaping::CheckProc, EFFECT_0, SPELL_AURA_DUMMY);
+ AfterEffectProc += AuraEffectProcFn(spell_item_hour_of_reaping::TriggerSoulBarrier, EFFECT_0, SPELL_AURA_DUMMY);
+ }
+};
+
// 277253 - Heart of Azeroth
class spell_item_heart_of_azeroth : public AuraScript
{
@@ -533,6 +565,7 @@ void AddSC_azerite_item_spell_scripts()
RegisterSpellScript(spell_item_bastion_of_might);
RegisterSpellScript(spell_item_echoing_blades);
RegisterSpellScript(spell_item_echoing_blades_damage);
+ RegisterSpellScript(spell_item_hour_of_reaping);
RegisterSpellScript(spell_item_heart_of_azeroth);
}
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 5c03f59f492..1dca1784067 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -4727,6 +4727,27 @@ class spell_item_seeping_scourgewing_aoe_check : public SpellScript
}
};
+// 295175 - Spiteful Binding
+class spell_item_grips_of_forsaken_sanity : public AuraScript
+{
+ PrepareAuraScript(spell_item_grips_of_forsaken_sanity);
+
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ return spellInfo->GetEffects().size() > EFFECT_1;
+ }
+
+ bool CheckHealth(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
+ {
+ return eventInfo.GetActor()->GetHealthPct() >= float(GetEffectInfo(EFFECT_1).CalcValue());
+ }
+
+ void Register() override
+ {
+ DoCheckEffectProc += AuraCheckEffectProcFn(spell_item_grips_of_forsaken_sanity::CheckHealth, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+};
+
void AddSC_item_spell_scripts()
{
// 23074 Arcanite Dragonling
@@ -4875,4 +4896,5 @@ void AddSC_item_spell_scripts()
RegisterSpellScript(spell_item_highfathers_machination);
RegisterSpellScript(spell_item_seeping_scourgewing);
RegisterSpellScript(spell_item_seeping_scourgewing_aoe_check);
+ RegisterSpellScript(spell_item_grips_of_forsaken_sanity);
}