318 int32 ragesave = aurEff->GetSpellInfo()->GetEffect(
EFFECT_1).CalcValue() * 10;
319 newRage = std::max(newRage, ragesave);
325 rageUsed += aurEff->GetAmount() * 10;
562 if (target->IsNonMeleeSpellCast(
false,
false,
true))
563 target->CastSpell(target, spellId,
true);
581 canBeRecalculated =
false;
584 float ap = caster->GetTotalAttackPowerValue(
BASE_ATTACK);
594 float mwb = ((mwbMin + mwbMax) / 2 + ap * mws / 14000) * 0.2f;
672 caster->
CastSpell(caster, spellId, aurEff);
748 SpellInfo const* spellInfo = damageInfo->GetSpellInfo();
804 if (damageInfo && damageInfo->
GetDamage())
#define MAX_ITEM_PROTO_DAMAGES
bool roll_chance_i(int chance)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_REDIRECT_THREAT
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ TARGET_UNIT_SRC_AREA_ENEMY
@ AURA_STATE_HEALTH_ABOVE_75_PERCENT
@ AURA_STATE_HEALTHLESS_20_PERCENT
@ AURA_REMOVE_BY_ENEMY_SPELL
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_MELEE_ATTACK_POWER_ATTACKER_BONUS
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define AuraEffectCalcSpellModFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FIELD_MAXOFFHANDDAMAGE
@ UNIT_FIELD_MINOFFHANDDAMAGE
T ApplyPct(T &base, U pct)
T CalculatePct(T base, U pct)
SpellInfo const * GetSpellInfo() const
SpellEffIndex GetEffIndex() const
SpellEffectInfo const & GetSpellEffectInfo() const
int32 GetMiscValue() const
void PreventDefaultAction()
SpellInfo const * GetSpellInfo() const
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
HookList< EffectCalcSpellModHandler > DoEffectCalcSpellMod
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
ObjectGuid GetCasterGUID() const
HookList< CheckProcHandler > DoCheckProc
HookList< EffectApplyHandler > OnEffectRemove
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > OnProc
HookList< EffectApplyHandler > OnEffectApply
WeaponAttackType GetAttackType() const
float GetFloatValue(uint16 index) const
Unit * GetActionTarget() const
SpellInfo const * GetSpellInfo() const
DamageInfo * GetDamageInfo() const
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
void ResetCooldowns(Predicate predicate, bool update=false)
bool IsRankOf(SpellInfo const *spellInfo) const
uint32 GetMaxTicks() const
uint32 GetCategory() const
int32 CalcPowerCost(WorldObject const *caster, SpellSchoolMask schoolMask, Spell *spell=nullptr) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
uint32 GetAllEffectsMechanicMask() const
Player * GetHitPlayer() const
void SetEffectValue(int32 value)
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
int32 GetEffectValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
WorldObject * GetExplTargetWorldObject() const
HookList< EffectHandler > OnEffectLaunchTarget
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
Unit * GetOriginalCaster() const
void UnregisterRedirectThreat(uint32 spellId)
ThreatManager & GetThreatManager()
Unit * SelectNearbyTarget(Unit *exclude=nullptr, float dist=NOMINAL_MELEE_RANGE) const
uint32 GetMaxHealth() const
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
bool HealthBelowPct(int32 pct) const
void SetPower(Powers power, uint32 val, bool withPowerUpdate=true, bool force=false)
bool HasAuraState(AuraStateType flag, SpellInfo const *spellProto=nullptr, Unit const *Caster=nullptr) const
virtual uint32 GetShieldBlockValue() const =0
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
uint32 CountPctFromMaxHealth(int32 pct) const
SpellHistory * GetSpellHistory()
uint32 GetPower(Powers power) const
float GetTotalAttackPowerValue(WeaponAttackType attType) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool isInFront(WorldObject const *target, float arc=float(M_PI)) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
void HandleHeal(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_warr_bloodthirst_heal)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_warr_bloodthirst)
void HandleDamage(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_warr_charge)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_warr_concussion_blow)
PrepareAuraScript(spell_warr_damage_shield)
void OnProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_warr_deep_wounds_aura)
void OnProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *spellInfo) override
bool CheckProc(ProcEventInfo &eventInfo)
PrepareSpellScript(spell_warr_deep_wounds)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_warr_execute)
bool Validate(SpellInfo const *) override
void HandleEffect(SpellEffIndex)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_warr_glyph_of_blocking)
void HandleEffectCalcSpellMod(AuraEffect const *aurEff, SpellModifier *&spellMod)
PrepareAuraScript(spell_warr_glyph_of_sunder_armor)
PrepareAuraScript(spell_warr_improved_spell_reflection)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleThreat(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_warr_intervene)
PrepareSpellScript(spell_warr_intimidating_shout)
void FilterTargets(std::list< WorldObject * > &unitList)
void HandleProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_warr_item_t10_prot_4p_bonus)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_warr_last_stand)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_warr_overpower)
void HandleEffect(SpellEffIndex)
PrepareAuraScript(spell_warr_rend)
void CalculateAmount(AuraEffect const *aurEff, int32 &amount, bool &canBeRecalculated)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_warr_retaliation)
void HandleEffectProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_warr_second_wind)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_warr_shattering_throw)
void HandleScript(SpellEffIndex effIndex)
PrepareSpellScript(spell_warr_slam)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_warr_sweeping_strikes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_warr_sword_and_board)
void HandleProc(AuraEffect const *, ProcEventInfo &)
PrepareAuraScript(spell_warr_t3_prot_8p_bonus)
bool CheckProc(ProcEventInfo &eventInfo)
void CheckGlyph(SpellEffIndex)
PrepareSpellScript(spell_warr_vigilance_redirect_threat)
PrepareSpellScript(spell_warr_vigilance_trigger)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
bool CheckProc(ProcEventInfo &)
PrepareAuraScript(spell_warr_vigilance)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_warr_warriors_wrath)
@ SPELL_PALADIN_BLESSING_OF_SANCTUARY
@ SPELL_CATEGORY_SHIELD_SLAM
@ SPELL_PALADIN_GREATER_BLESSING_OF_SANCTUARY
@ SPELL_PRIEST_RENEWED_HOPE
@ SPELL_GEN_DAMAGE_REDUCTION_AURA
@ SPELL_WARRIOR_DEEP_WOUNDS_RANK_1
@ SPELL_WARRIOR_RETALIATION_DAMAGE
@ SPELL_WARRIOR_SLAM_GCD_REDUCED
@ SPELL_WARRIOR_WARRIORS_WRATH
@ SPELL_WARRIOR_BLOODTHIRST
@ SPELL_WARRIOR_UNRELENTING_ASSAULT_TRIGGER_1
@ SPELL_WARRIOR_GLYPH_OF_EXECUTION
@ SPELL_WARRIOR_VIGILANCE_REDIRECT_THREAT
@ SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1
@ SPELL_WARRIOR_SECOND_WIND_TRIGGER_1
@ SPELL_WARRIOR_DEEP_WOUNDS_RANK_2
@ SPELL_WARRIOR_VIGILANCE_PROC
@ SPELL_WARRIOR_DEEP_WOUNDS_RANK_3
@ SPELL_WARRIOR_UNRELENTING_ASSAULT_RANK_1
@ SPELL_WARRIOR_DAMAGE_SHIELD_DAMAGE
@ SPELL_WARRIOR_SUDDEN_DEATH_R1
@ SPELL_WARRIOR_SECOND_WIND_TRIGGER_2
@ SPELL_WARRIOR_BLOODSURGE_R1
@ SPELL_WARRIOR_LAST_STAND_TRIGGERED
@ SPELL_WARRIOR_GLYPH_OF_BLOCKING
@ SPELL_WARRIOR_EXTRA_CHARGE
@ SPELL_WARRIOR_DEEP_WOUNDS_PERIODIC
@ SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_TALENT
@ SPELL_WARRIOR_IMPROVED_SPELL_REFLECTION_TRIGGER
@ SPELL_WARRIOR_GLYPH_OF_VIGILANCE
@ SPELL_WARRIOR_UNRELENTING_ASSAULT_TRIGGER_2
@ SPELL_WARRIOR_BLOODTHIRST_DAMAGE
@ SPELL_WARRIOR_EXECUTE_GCD_REDUCED
@ SPELL_WARRIOR_UNRELENTING_ASSAULT_RANK_2
@ SPELL_WARRIOR_INTERVENE_THREAT
@ SPELL_WARRIOR_BLADESTORM_PERIODIC_WHIRLWIND
@ SPELL_WARRIOR_SUNDER_ARMOR
@ SPELL_WARRIOR_T10_MELEE_4P_BONUS
@ SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2
@ SPELL_WARRIOR_JUGGERNAUT_CRIT_BONUS_BUFF
void AddSC_warrior_spell_scripts()
@ WARRIOR_ICON_ID_SUDDEN_DEATH