aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp46
1 files changed, 22 insertions, 24 deletions
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index 356ce7e955a..b4cedfca9d3 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -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