aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorAqua Deus <95978183+aquadeus@users.noreply.github.com>2025-08-23 00:54:05 +0200
committerGitHub <noreply@github.com>2025-08-23 00:54:05 +0200
commitae0602e23fa82293e543ae980ad41623f1e6f235 (patch)
tree6415ca47e51d9548f1ab40d4773bf80434000344 /src/server/scripts
parent6f574a2bfcf6669aee52a68cfaf5c999b7473d76 (diff)
Scripts/Spells: Implement druid talent Ursoc's Fury (#30776)
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index abba7934f48..46fc1d6c0a4 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -141,6 +141,7 @@ enum DruidSpells
SPELL_DRUID_THRASH_BEAR = 77758,
SPELL_DRUID_THRASH_BEAR_AURA = 192090,
SPELL_DRUID_THRASH_CAT = 106830,
+ SPELL_DRUID_URSOCS_FURY_SHIELD = 372505,
SPELL_DRUID_YSERAS_GIFT_HEAL_PARTY = 145110,
SPELL_DRUID_YSERAS_GIFT_HEAL_SELF = 145109
};
@@ -2313,6 +2314,35 @@ class spell_dru_tiger_dash_aura : public AuraScript
}
};
+// 377210 - Ursoc's Fury
+class spell_dru_ursocs_fury : public AuraScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_DRUID_URSOCS_FURY_SHIELD });
+ }
+
+ static void HandleProc(AuraScript const&, AuraEffect const* aurEff, ProcEventInfo const& eventInfo)
+ {
+ DamageInfo* damageInfo = eventInfo.GetDamageInfo();
+ if (!damageInfo || !damageInfo->GetDamage())
+ return;
+
+ Unit* caster = eventInfo.GetActor();
+ int32 amount = CalculatePct(damageInfo->GetDamage(), aurEff->GetAmount());
+
+ caster->CastSpell(caster, SPELL_DRUID_URSOCS_FURY_SHIELD, CastSpellExtraArgsInit{
+ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
+ .SpellValueOverrides = { { SPELLVALUE_BASE_POINT0, amount } }
+ });
+ }
+
+ void Register() override
+ {
+ OnEffectProc += AuraEffectProcFn(spell_dru_ursocs_fury::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
+};
+
// 48438 - Wild Growth
class spell_dru_wild_growth : public SpellScript
{
@@ -2487,6 +2517,7 @@ void AddSC_druid_spell_scripts()
RegisterSpellScript(spell_dru_travel_form);
RegisterSpellAndAuraScriptPair(spell_dru_travel_form_dummy, spell_dru_travel_form_dummy_aura);
RegisterSpellAndAuraScriptPair(spell_dru_tiger_dash, spell_dru_tiger_dash_aura);
+ RegisterSpellScript(spell_dru_ursocs_fury);
RegisterSpellAndAuraScriptPair(spell_dru_wild_growth, spell_dru_wild_growth_aura);
RegisterSpellScript(spell_dru_yseras_gift);
RegisterSpellScript(spell_dru_yseras_gift_group_heal);