159 .TriggeringSpell = triggeringSpell,
228 for (
int32 spellId : spellIds)
305 auto work = [&rends, warrior = caster->
GetGUID()](
Unit const* target)
319 .TriggeringAura = aurEff
402 ignorePainAura->ChangeAmount(ignorePainAura->GetAmount() +
_damageAmount);
452 int32 fireCount = std::lround((to - from).length());
454 for (
int32 i = 0; i < fireCount; ++i)
627 enrageAura->SetDuration(enrageAura->GetDuration() + (aurEff->GetAmountAsInt() * (
IsHitCrit() ? 2 : 1)));
769 if (
GetSpell()->m_appliedMods.contains(suddenDeathAura))
771 return suddenDeathTalentAura->GetAmountAsInt() * 10;
780 return { powerCost->ManaCost, powerCost->OptionalCost };
798 .OptionalRageCost = optionalCost,
912 template <ChrSpecialization Spec>
925 .TriggeringSpell = procSpell,
926 .TriggeringAura = aurEff,
980 AddPct(pctMod, dmgIncrease->GetAmount());
1084 if (
GetCaster()->GetMap()->Instanceable())
1091 bool result = generatedPath.
CalculatePath(dest->GetPositionX(), dest->GetPositionY(), dest->GetPositionZ(),
false);
1098 else if (dest->GetPositionZ() >
GetCaster()->GetPositionZ() + 4.0f)
1199 int32 const rageGained = std::min<int32>(baseRage + (targetsHit * ragePerTarget), maxRage);
1267 if (targetIndex == 0)
1271 ApplyPct(pctMod, damageEffect->GetAmount());
1488 if (!caster || !caster->
IsAlive())
1559 if (!minTargetCount)
1564 if (targetCount < minTargetCount->GetAmountAsInt())
1568 AddPct(pctMod, aurEff->GetAmount());
1643 value += auraEffect->GetAmount();
1746 if (!minTargetCount || !cooldownReduction)
1856 targets.push_back(target);
1961 SpellInfo const* spellInfo = damageInfo->GetSpellInfo();
2014 .TriggeringAura = aurEff
2217 if (damageInfo && damageInfo->
GetDamage())
2283 AddPct(pctMod, aurEff->GetAmount());
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
std::chrono::duration< double, Seconds::period > FloatSeconds
std::chrono::duration< double, Milliseconds::period > FloatMilliseconds
std::optional< T > Optional
Optional helper class to wrap optional values within.
bool roll_chance(T chance)
#define RegisterSpellAndAuraScriptPair(script_1, script_2)
#define RegisterSpellScript(spell_script)
@ TARGET_UNIT_DEST_AREA_ENEMY
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_TRIGGER_SPELL
@ SPELL_EFFECT_KNOCK_BACK
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ SPELL_FAILED_OUT_OF_RANGE
@ SPELL_FAILED_NO_VALID_TARGETS
@ AURA_STATE_WOUNDED_20_PERCENT
@ AURA_STATE_WOUNDED_35_PERCENT
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_DISABLE_CASTING_EXCEPT_ABILITIES
@ SPELL_AURA_ADD_PCT_MODIFIER
@ SPELL_AURA_MOD_INCREASE_SPEED
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_PERIODIC_DUMMY
double SpellEffectValue
This is a double instead of float to be able to store full range of int32.
@ PeriodicHealingAndDamage
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD
Will ignore Spell and Category cooldowns.
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define SpellObjectTargetSelectFn(F, I, N)
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellOnResistAbsorbCalculateFn(F)
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraCheckEffectProcFn(F, I, N)
#define SpellCalcDamageFn(F)
#define AuraEffectAbsorbOverkillFn(F, I)
#define AuraCheckProcFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
T ApplyPct(T &base, U pct)
T CalculatePct(T base, U pct)
int32 GetAmountAsInt() const
SpellEffectValue GetAmount() const
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< CheckEffectProcHandler > DoCheckEffectProc
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectProcHandler > AfterEffectProc
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
AuraEffect * GetEffect(uint8 effIndex) const
HookList< EffectAbsorbHandler > OnEffectAbsorb
Difficulty GetCastDifficulty() const
HookList< CheckProcHandler > DoCheckProc
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > OnProc
AuraEffect * GetEffect(uint32 index) const
ObjectGuid const & GetGUID() const
Unit * GetAttacker() const
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
PathType GetPathType() const
void SetPathLengthLimit(float distance)
bool CalculatePath(float srcX, float srcY, float srcZ, float destX, float destY, float destZ, bool forceDest=false)
ChrSpecialization GetPrimarySpecialization() const
void ApplySpellMod(SpellInfo const *spellInfo, SpellModOp op, T &basevalue, Spell *spell=nullptr) const
Unit * GetActionTarget() const
Spell const * GetProcSpell() const
SpellInfo const * GetSpellInfo() const
DamageInfo * GetDamageInfo() const
Unit * GetProcTarget() const
Unit * GetUnitTarget() const
SpellEffectValue CalcValue(WorldObject const *caster=nullptr, SpellEffectValue const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
int32 CalcValueAsInt(WorldObject const *caster=nullptr, SpellEffectValue const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
SpellEffIndex EffectIndex
void ResetCooldown(uint32 spellId, bool update=false)
void RestoreCharge(uint32 chargeCategoryId)
void ModifyCooldown(uint32 spellId, Duration cooldownMod, bool withoutCategoryCooldown=false)
std::array< SpellPowerEntry const *, MAX_POWERS_PER_SPELL > PowerCosts
bool IsAffected(uint32 familyName, flag128 const &familyFlags) const
Optional< SpellPowerCost > CalcPowerCost(Powers powerType, bool optionalCost, WorldObject const *caster, SpellSchoolMask schoolMask, Spell *spell=nullptr) const
float GetMaxRange(bool positive=false, WorldObject const *caster=nullptr, Spell *spell=nullptr) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
bool HasLabel(uint32 labelId) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
static bool ValidateSpellEffect(std::initializer_list< std::pair< uint32, SpellEffIndex > > effects)
HookList< DamageAndHealingCalcHandler > CalcDamage
HookList< CastHandler > AfterCast
HookList< CheckCastHandler > OnCheckCast
SpellEffectValue GetEffectValue() const
int32 GetEffectValueAsInt() const
HookList< HitHandler > OnHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
int64 GetUnitTargetCountForEffect(SpellEffIndex effect) const
Unit * GetHitUnit() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectTargetSelectHandler > OnObjectTargetSelect
HookList< CastHandler > OnCast
HookList< OnCalculateResistAbsorbHandler > OnCalculateResistAbsorb
WorldObject * GetExplTargetWorldObject() const
HookList< EffectHandler > OnEffectLaunchTarget
Difficulty GetCastDifficulty() const
int32 GetUnitTargetIndexForEffect(ObjectGuid const &target, SpellEffIndex effect) const
WorldLocation const * GetExplTargetDest() const
HookList< EffectHandler > OnEffectLaunch
HookList< DamageAndHealingCalcHandler > CalcHealing
Unit * GetExplTargetUnit() const
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellInfo const * GetSpellInfo() const
SpellCastTargets m_targets
Optional< int32 > GetPowerTypeCostAmount(Powers power) const
int32 ModifyPower(Powers power, int32 val, bool withPowerUpdate=true)
void SetHealth(uint64 val)
uint64 CountPctFromMaxHealth(float pct) const
void SendPlaySpellVisual(Unit *target, uint32 spellVisualId, uint8 missReason, uint8 reflectStatus, float travelSpeed, bool speedAsTime=false, float launchDelay=0.0f)
bool IsWithinCombatRange(Unit const *obj, float dist2compare) const
Unit * SelectNearbyTarget(Unit *exclude=nullptr, float dist=NOMINAL_MELEE_RANGE) const
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
bool IsSplineEnabled() const
virtual bool HasSpell(uint32) const
uint64 GetMaxHealth() const
bool HasAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid caster=ObjectGuid::Empty) const
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
bool HasAuraState(AuraStateType flag, SpellInfo const *spellProto=nullptr, Unit const *Caster=nullptr) const
bool HealthBelowPct(float pct) const
std::unique_ptr< Movement::MoveSpline > movespline
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
SpellHistory * GetSpellHistory()
void RemoveMovementImpairingAuras(bool withRoot)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void HandleProc(AuraEffect const *aurEff, ProcEventInfo const &eventInfo, std::span< int32 const > spellIds) const
static bool CheckProtectionProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &eventInfo)
bool Validate(SpellInfo const *) override
void OnProcFury(AuraEffect const *aurEff, ProcEventInfo const &eventInfo) const
static bool CheckArmsProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &eventInfo)
static constexpr std::array< int32, 2 > ProtectionSpellIds
static constexpr std::array< int32, 4 > ArmsSpellIds
static bool CheckFuryProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &eventInfo)
void OnProcArms(AuraEffect const *aurEff, ProcEventInfo const &eventInfo) const
static constexpr FloatMilliseconds CooldownReduction
static constexpr std::array< int32, 3 > FurySpellIds
static bool ValidateProc(AuraEffect const *aurEff, ProcEventInfo const &eventInfo, ChrSpecialization spec)
void OnProcProtection(AuraEffect const *aurEff, ProcEventInfo const &eventInfo) const
static bool CheckProc(AuraScript const &, ProcEventInfo const &eventInfo)
void HandleRemoveImpairingAuras(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void HandlePeriodic(AuraEffect const *aurEff) const
bool Validate(SpellInfo const *) override
void CastHeal(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes) const
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleDummyTick(AuraEffect const *)
void DropFireVisual(AuraEffect const *aurEff)
void HandleCharge(SpellEffIndex) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void CastGushingWound(SpellEffIndex) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
void HandleDeftExperience(SpellEffIndex) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *spellInfo) override
void OnProc(AuraEffect const *, ProcEventInfo const &) const
static bool CheckBloodthirstProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &eventInfo)
void HandleProc(ProcEventInfo const &eventInfo)
bool Validate(SpellInfo const *) override
static bool CheckRampageProc(AuraScript const &, AuraEffect const *, ProcEventInfo const &eventInfo)
static bool IsBloodthirst(SpellInfo const *spellInfo)
void CalculateExecuteDamage(SpellEffectInfo const &, Unit const *, int32 const &, int32 const &, float &pctMod) const
void DetermineKillStatus(DamageInfo const &damageInfo, uint32 &, int32 &) const
std::pair< int32, int32 > GetRageCost() const
Optional< int32 > GetSuddenDeathRageCost() const
void HandleExecuteCast(SpellEffIndex spellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
static void HandleFrenziedEnrage(SpellScript const &, WorldObject *&target)
bool Validate(SpellInfo const *spellInfo) override
static bool CheckProc(AuraScript const &, ProcEventInfo const &eventInfo)
static void HandleProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &eventInfo)
static bool CheckSpecialization(AuraScript const &, AuraEffect const *, ProcEventInfo const &eventInfo)
bool Validate(SpellInfo const *) override
void HandlePeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
void HandleProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
SpellCastResult CheckElevation() const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *spellInfo) override
void CalculateDamage(SpellEffectInfo const &spellEffectInfo, Unit const *victim, int32 &, int32 &, float &pctMod) const
bool Validate(SpellInfo const *spellInfo) override
void HandleHit(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void HandleAura(SpellEffIndex) const
void HandleDummy(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &unitList) const
void HandleRoot(SpellEffIndex) const
bool Validate(SpellInfo const *) override
static void ClearTargets(SpellScript const &, std::list< WorldObject * > &unitList)
void FilterTargets(std::list< WorldObject * > &unitList) const
bool Validate(SpellInfo const *) override
void HandleProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *spellInfo) override
static bool CheckProc(AuraScript const &, AuraEffect const *, ProcEventInfo const &eventInfo)
static void HandleProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *aurEff, AuraEffectHandleModes) const
void HandleAbsorb(AuraEffect const *, DamageInfo const &dmgInfo, uint32 &absorbAmount) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *spellInfo) override
void HandleDamageBonus(SpellEffectInfo const &spellEffectInfo, Unit const *, int32 &, int32 &, float &pctMod) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleMortalWounds(SpellEffIndex) const
void CalculateDamage(SpellEffectInfo const &, Unit const *victim, int32 &, int32 &, float &pctMod) const
bool Validate(SpellInfo const *) override
static void CalculateHeal(SpellScript const &, SpellEffectInfo const &, Unit const *, int32 &, int32 &, float &pctMod)
static void HandlePowerfulEnrage(SpellScript const &, WorldObject *&target)
bool Validate(SpellInfo const *spellInfo) override
bool Validate(SpellInfo const *) override
void HandleResetCooldown(SpellEffIndex) const
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleCone(SpellEffIndex effIndex)
void HandleSingleTarget(SpellEffIndex effIndex)
void HandleCooldownReduction(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleStun(SpellEffIndex) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleOnHit(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets) const
static bool CheckProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &)
bool Validate(SpellInfo const *) override
void HandleCooldown(AuraEffect const *, ProcEventInfo const &) const
void HandleProc(AuraEffect const *, ProcEventInfo const &) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
static bool CheckEffectProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &eventInfo)
static void HandleProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &eventInfo)
void HandleProc(ProcEventInfo const &eventInfo) const
bool Validate(SpellInfo const *) override
void HandleEffectProc(AuraEffect const *aurEff, ProcEventInfo const &eventInfo) const
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *, ProcEventInfo const &) const
static bool CheckProc(AuraScript const &, AuraEffect const *aurEff, ProcEventInfo const &)
static void PreventDefaultTargetObject(SpellScript const &, WorldObject *&target)
bool Validate(SpellInfo const *) override
void HandleRend(SpellEffIndex) const
void HandleSlow(SpellEffIndex) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleProc(ProcEventInfo const &eventInfo) const
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *spellInfo) override
bool CheckProc(ProcEventInfo &) const
void HandleProc(ProcEventInfo &) const
bool Validate(SpellInfo const *) override
void CalculateDamage(SpellEffectInfo const &, Unit const *victim, int32 &, int32 &, float &pctMod) const
void HandleOnProc(AuraEffect *, ProcEventInfo &procInfo)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
static void ApplyWhirlwindCleaveAura(Player *caster, Difficulty difficulty, Spell const *triggeringSpell)
@ SPELL_WARRIOR_SHIELD_WALL
@ SPELL_WARRIOR_IMPROVED_HEROIC_LEAP
@ SPELL_WARRIOR_BLOODTHIRST_HEAL
@ SPELL_WARRIOR_SURGE_OF_ADRENALINE_PROC
@ SPELL_WARRIOR_BRUTAL_FINISH_BUFF
@ SPELL_WARRIOR_SUDDEN_DEATH
@ SPELL_WARRIOR_FRENZY_BUFF
@ SPELL_WARRIOR_SHIELD_BLOCK_AURA
@ SPELL_WARRIOR_BOUNDING_STRIDE
@ SPELL_WARRIOR_THUNDER_BLAST
@ SPELL_WARRIOR_RALLYING_CRY
@ SPELL_WARRIOR_GLYPH_OF_THE_BLAZING_TRAIL
@ SPELL_WARRIOR_WRATH_AND_FURY
@ SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1
@ SPELL_WARRIOR_COLD_STEEL_HOT_BLOOD_TALENT
@ SPELL_WARRIOR_OVERPOWER
@ SPELL_WARRIOR_SURGE_OF_ADRENALINE_TALENT
@ SPELL_WARRIOR_CHARGE_EFFECT
@ SPELL_WARRIOR_INTERVENE_AURA
@ SPELL_WARRIOR_GLYPH_OF_HEROIC_LEAP
@ SPELL_WARRIOR_STORM_BOLTS
@ SPELL_WARRIOR_POWERFUL_ENRAGE
@ SPELL_WARRIOR_CRITICAL_THINKING_ENERGIZE
@ SPELL_WARRIOR_INVIGORATING_FURY_TALENT
@ SPELL_WARRIOR_SHIELD_SLAM_MARKER
@ SPELL_WARRIOR_DEFT_EXPERIENCE
@ SPELL_WARRIOR_SHOCKWAVE_STUN
@ SPELL_WARRIOR_KILL_OR_BE_KILLED_COOLDOWN
@ SPELL_WARRIOR_VICTORY_RUSH_HEAL
@ SPELL_WARRIOR_FRESH_MEAT_TALENT
@ SPELL_WARRIOR_SUDDEN_DEATH_BUFF
@ SPELL_WARRIOR_KILL_OR_BE_KILLED_INSTAKILL
@ SPELL_WARRIOR_SHIELD_SLAM
@ SPELL_WARRIOR_KILL_OR_BE_KILLED_TARGET
@ SPELL_WARRIOR_SLAUGHTERING_STRIKES
@ SPELL_WARRIOR_FRESH_MEAT_DEBUFF
@ SPELL_WARRIOR_ALWAYS_ANGRY
@ SPELL_WARRIOR_FUELED_BY_VIOLENCE_HEAL
@ SPELL_WARRIOR_FROTHING_BERSERKER_ENERGIZE
@ SPELL_WARRIOR_SHIELD_CHARGE_EFFECT
@ SPELL_WARRIOR_STORM_BOLT_STUN
@ SPELL_WARRIOR_COLOSSUS_SMASH
@ SPELL_WARRIOR_INVIGORATING_FURY
@ SPELL_WARRIOR_BRUTAL_FINISH_TALENT
@ SPELL_WARRIOR_MORTAL_WOUNDS
@ SPELL_WARRIOR_CHARGE_ROOT_EFFECT
@ SPELL_WARRIOR_FRENZY_TALENT
@ SPELL_WARRIOR_STRATEGIST
@ SPELL_WARRIOR_IMPROVED_RAGING_BLOW
@ SPELL_WARRIOR_IMPENDING_VICTORY
@ SPELL_WARRIOR_IN_FOR_THE_KILL
@ SPELL_WARRIOR_TACTICIAN_ACTION_BUTTON_GLOW
@ SPELL_WARRIOR_IMPROVED_WHIRLWIND
@ SPELL_WARRIOR_HEROIC_LEAP_JUMP
@ SPELL_WARRIOR_COLOSSUS_SMASH_AURA
@ SPELL_WARRIOR_INTERVENE_CHARGE
@ SPELL_WARRIOR_KILL_OR_BE_KILLED_FULFILLED
@ SPELL_WARRIOR_WARBREAKER
@ SPELL_WARRIOR_RAMPAGING_RUIN
@ SPELL_WARRIOR_CRASHING_THUNDER
@ SPELL_WARRIOR_BOUNDING_STRIDE_AURA
@ SPELL_WARRIOR_HEROIC_LEAP_DAMAGE
@ SPELL_WARRIOR_WHIRLWIND_ENERGIZE
@ SPELL_WARRIOR_RECKLESSNESS
@ SPELL_WARRIOR_GLYPH_OF_HEROIC_LEAP_BUFF
@ SPELL_WARRIOR_REND_AURA
@ SPELL_WARRIOR_OVERPOWERING_FINISH
@ SPELL_WARRIOR_GUSHING_WOUND
@ SPELL_WARRIOR_SLAUGHTERING_STRIKES_BUFF
@ SPELL_WARRIOR_MEAT_CLEAVER_TALENT
@ SPELL_WARRIOR_KILL_OR_BE_KILLED_PROC
@ SPELL_WARRIOR_IMPENDING_VICTORY_HEAL
@ SPELL_WARRIOR_BLADESTORM_PERIODIC_WHIRLWIND
@ SPELL_WARRIOR_VICIOUS_CONTEMPT
@ SPELL_WARRIOR_WHIRLWIND_CLEAVE_AURA
@ SPELL_WARRIOR_BLOODSURGE_ENERGIZE
@ SPELL_WARRIOR_SHOCKWAVE
@ SPELL_WARRIOR_IGNORE_PAIN
@ SPELL_WARRIOR_TRAUMA_EFFECT
@ SPELL_WARRIOR_FRENZIED_ENRAGE
@ SPELL_WARRIOR_IMPROVED_EXECUTE_ARMS
@ SPELL_WARRIOR_TITANIC_RAGE
@ SPELL_WARRIOR_THUNDER_CLAP_SLOW
@ SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2
@ SPELL_WARRIOR_RUMBLING_EARTH
@ SPELL_WARRIOR_VICTORIOUS
@ SPELL_WARRIOR_BLADESTORM
@ SPELL_WARRIOR_MORTAL_STRIKE
@ SPELL_WARRIOR_CHARGE_DROP_FIRE_PERIODIC
@ SPELL_WARRIOR_IN_FOR_THE_KILL_HASTE
@ SPELL_WARRIOR_INTIMIDATING_SHOUT_MENACE_AOE
void AddSC_warrior_spell_scripts()
@ SPELL_LABEL_THUNDER_BLAST
@ SPELL_VISUAL_BLAZING_CHARGE
static void VisitAllObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)