mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Fix warrior charge (#31017)
This commit is contained in:
@@ -37,11 +37,9 @@ enum WarriorSpells
|
||||
SPELL_WARRIOR_BLADESTORM_PERIODIC_WHIRLWIND = 50622,
|
||||
SPELL_WARRIOR_BLOODTHIRST_HEAL = 117313,
|
||||
SPELL_WARRIOR_CHARGE = 34846,
|
||||
SPELL_WARRIOR_CHARGE_EFFECT = 218104,
|
||||
SPELL_WARRIOR_CHARGE_EFFECT_BLAZING_TRAIL = 198337,
|
||||
SPELL_WARRIOR_CHARGE_PAUSE_RAGE_DECAY = 109128,
|
||||
SPELL_WARRIOR_CHARGE_DROP_FIRE_PERIODIC = 126661,
|
||||
SPELL_WARRIOR_CHARGE_EFFECT = 198337,
|
||||
SPELL_WARRIOR_CHARGE_ROOT_EFFECT = 105771,
|
||||
SPELL_WARRIOR_CHARGE_SLOW_EFFECT = 236027,
|
||||
SPELL_WARRIOR_COLOSSUS_SMASH = 167105,
|
||||
SPELL_WARRIOR_COLOSSUS_SMASH_AURA = 208086,
|
||||
SPELL_WARRIOR_CRITICAL_THINKING_ENERGIZE = 392776,
|
||||
@@ -156,20 +154,15 @@ class spell_warr_charge : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo
|
||||
({
|
||||
SPELL_WARRIOR_CHARGE_EFFECT,
|
||||
SPELL_WARRIOR_CHARGE_EFFECT_BLAZING_TRAIL
|
||||
});
|
||||
return ValidateSpellInfo({ SPELL_WARRIOR_CHARGE_EFFECT });
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/) const
|
||||
{
|
||||
uint32 spellId = SPELL_WARRIOR_CHARGE_EFFECT;
|
||||
if (GetCaster()->HasAura(SPELL_WARRIOR_GLYPH_OF_THE_BLAZING_TRAIL))
|
||||
spellId = SPELL_WARRIOR_CHARGE_EFFECT_BLAZING_TRAIL;
|
||||
|
||||
GetCaster()->CastSpell(GetHitUnit(), spellId, true);
|
||||
GetCaster()->CastSpell(GetHitUnit(), SPELL_WARRIOR_CHARGE_EFFECT, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
|
||||
.TriggeringSpell = GetSpell()
|
||||
});
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@@ -197,31 +190,36 @@ class spell_warr_charge_drop_fire_periodic : public AuraScript
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warr_charge_drop_fire_periodic::DropFireVisual, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_warr_charge_drop_fire_periodic::DropFireVisual, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 198337 - Charge Effect (dropping Blazing Trail)
|
||||
// 218104 - Charge Effect
|
||||
// 198337 - Charge Effect
|
||||
class spell_warr_charge_effect : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo
|
||||
({
|
||||
SPELL_WARRIOR_CHARGE_PAUSE_RAGE_DECAY,
|
||||
SPELL_WARRIOR_CHARGE_ROOT_EFFECT,
|
||||
SPELL_WARRIOR_CHARGE_SLOW_EFFECT
|
||||
SPELL_WARRIOR_CHARGE_DROP_FIRE_PERIODIC
|
||||
});
|
||||
}
|
||||
|
||||
void HandleCharge(SpellEffIndex /*effIndex*/)
|
||||
void HandleCharge(SpellEffIndex /*effIndex*/) const
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
Unit* target = GetHitUnit();
|
||||
caster->CastSpell(caster, SPELL_WARRIOR_CHARGE_PAUSE_RAGE_DECAY, CastSpellExtraArgs(TRIGGERED_FULL_MASK).AddSpellMod(SPELLVALUE_BASE_POINT0, 0));
|
||||
caster->CastSpell(target, SPELL_WARRIOR_CHARGE_ROOT_EFFECT, true);
|
||||
caster->CastSpell(target, SPELL_WARRIOR_CHARGE_SLOW_EFFECT, true);
|
||||
|
||||
CastSpellExtraArgs const args = CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_FULL_MASK & ~TRIGGERED_CAST_DIRECTLY,
|
||||
.TriggeringSpell = GetSpell()
|
||||
};
|
||||
|
||||
if (caster->HasAura(SPELL_WARRIOR_GLYPH_OF_THE_BLAZING_TRAIL))
|
||||
caster->CastSpell(target, SPELL_WARRIOR_CHARGE_DROP_FIRE_PERIODIC, args);
|
||||
|
||||
caster->CastSpell(target, SPELL_WARRIOR_CHARGE_ROOT_EFFECT, args);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
Reference in New Issue
Block a user