Scripts/Spells: Fix Odyn's Fury target cap & Titanic Rage talent (#31043)

This commit is contained in:
Jeremy
2025-06-09 21:24:47 +02:00
committed by GitHub
parent 10e9386ab9
commit 0ba78eb4c4
3 changed files with 51 additions and 0 deletions

View File

@@ -78,9 +78,11 @@ enum WarriorSpells
SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1 = 12723,
SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2 = 26654,
SPELL_WARRIOR_TAUNT = 355,
SPELL_WARRIOR_TITANIC_RAGE = 394329,
SPELL_WARRIOR_TRAUMA_EFFECT = 215537,
SPELL_WARRIOR_VICTORIOUS = 32216,
SPELL_WARRIOR_VICTORY_RUSH_HEAL = 118779,
SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA = 85739,
SPELL_WARRIOR_WRATH_AND_FURY = 392936
};
@@ -953,6 +955,41 @@ class spell_warr_sweeping_strikes : public AuraScript
Unit* _procTarget = nullptr;
};
// 394329 - Titanic Rage
class spell_warr_titanic_rage : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA });
}
void HandleProc(ProcEventInfo const& eventInfo) const
{
Player* target = GetTarget()->ToPlayer();
if (!target)
return;
target->CastSpell(nullptr, SPELL_WARRIOR_ENRAGE, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringSpell = eventInfo.GetProcSpell()
});
SpellInfo const* whirlwindCleaveAuraInfo = sSpellMgr->AssertSpellInfo(SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA, GetCastDifficulty());
int32 stackAmount = static_cast<int32>(whirlwindCleaveAuraInfo->StackAmount);
target->ApplySpellMod(whirlwindCleaveAuraInfo, SpellModOp::MaxAuraStacks, stackAmount);
target->CastSpell(nullptr, SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.SpellValueOverrides = { { SPELLVALUE_AURA_STACK, stackAmount } }
});
}
void Register() override
{
OnProc += AuraProcFn(spell_warr_titanic_rage::HandleProc);
}
};
// 215538 - Trauma
class spell_warr_trauma : public AuraScript
{
@@ -1079,6 +1116,7 @@ void AddSC_warrior_spell_scripts()
RegisterSpellScript(spell_warr_storm_bolts);
RegisterSpellScript(spell_warr_strategist);
RegisterSpellScript(spell_warr_sweeping_strikes);
RegisterSpellScript(spell_warr_titanic_rage);
RegisterSpellScript(spell_warr_trauma);
RegisterSpellScript(spell_warr_t3_prot_8p_bonus);
RegisterSpellScript(spell_warr_victorious_state);