124 return target->GetPowerType() !=
_power;
166 return healInfo && healInfo->
GetHeal();
213 target->
CastSpell(target, triggerSpell, args);
285 if (targets.size() > maxTargets)
288 targets.resize(maxTargets);
342 return healInfo && healInfo->
GetHeal();
353 absorb += aegis->GetAmount();
378 uint32 const maxTargets = 3;
380 if (targets.size() > maxTargets)
383 targets.resize(maxTargets);
441 return healInfo && healInfo->
GetHeal();
541 uint32 const maxTargets = 3;
543 if (targets.size() > maxTargets)
546 targets.resize(maxTargets);
668 uint32 lightwellRenew = 0;
697 if (chargesAura->ModCharges(-1))
719 AddPct(amount, modHealing->GetAmount());
831 aur->ChangeAmount(aur->CalculateAmount(aur->GetCaster()),
false);
832 aur->CalculatePeriodic(caster,
false,
false);
833 aur->GetBase()->RefreshDuration();
857 if (!firstRankSpellInfo)
861 if (!spellInfo->
IsRankOf(firstRankSpellInfo))
878 if (!unitTarget->IsAlive())
948 canBeRecalculated =
false;
952 float bonus = 0.8068f;
958 bonus *= caster->SpellBaseHealingBonusDone(
GetSpellInfo()->GetSchoolMask());
963 bonus *= caster->CalculateSpellpowerCoefficientLevelPenalty(
GetSpellInfo());
965 amount +=
int32(bonus);
969 AddPct(amount, twinDisciplines->GetAmount());
973 AddPct(amount, focusedPower->GetAmount());
977 AddPct(amount, auraEffArenaDampening->GetAmount());
980 AddPct(amount, auraEffBattlegroudDampening->GetAmount());
984 AddPct(amount, auraStrengthOfWrynn->GetAmount());
986 AddPct(amount, auraHellscreamsWarsong->GetAmount());
1037 AddPct(heal, aurEff->GetAmount());
1040 AddPct(heal, aurEff->GetAmount());
1043 AddPct(heal, aurEff->GetAmount());
1046 AddPct(heal, aurEff->GetAmount());
1110 if (!damageInfo || !damageInfo->
GetDamage())
1145 AddPct(damage, aurEff->GetAmount());
1172 if (!damageInfo || !damageInfo->
GetDamage())
1176 int32 partyHeal = selfHeal / 5;
1217 int32 bp = aurEff->GetAmount();
1218 bp = target->SpellDamageBonusTaken(caster, aurEff->GetSpellInfo(), bp,
DOT);
1280 if (healInfo->GetEffectiveHeal())
1281 if (healTarget->GetHealth() >= healTarget->GetMaxHealth())
1313 return healInfo && healInfo->
GetHeal();
bool roll_chance_i(int chance)
#define RegisterSpellAndAuraScriptPair(script_1, script_2)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_UNIT_DEST_AREA_ENEMY
@ TARGET_UNIT_SRC_AREA_ALLY
@ SPELL_FAILED_UNIT_NOT_INFRONT
@ SPELL_FAILED_AURA_BOUNCED
@ SPELL_FAILED_BAD_TARGETS
@ AURA_REMOVE_BY_ENEMY_SPELL
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_ADD_PCT_MODIFIER
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_MOD_HEALING_DONE_PERCENT
@ SPELL_AURA_PERIODIC_HEAL
@ SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
@ SPELL_AURA_SCHOOL_ABSORB
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ TRIGGERED_DISALLOW_PROC_EVENTS
Will ignore caster aura states including combat requirements and death state.
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraCheckEffectProcFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
T CalculatePct(T base, U pct)
SpellInfo const * GetSpellInfo() const
SpellEffIndex GetEffIndex() const
uint32 GetTotalTicks() const
void PreventDefaultAction()
HookList< EffectApplyHandler > AfterEffectRemove
HookList< CheckEffectProcHandler > DoCheckEffectProc
SpellInfo const * GetSpellInfo() const
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectAbsorbHandler > AfterEffectAbsorb
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
AuraEffect * GetEffect(uint8 effIndex) const
HookList< EffectAbsorbHandler > OnEffectAbsorb
ObjectGuid GetCasterGUID() const
HookList< CheckProcHandler > DoCheckProc
HookList< AuraDispelHandler > AfterDispel
void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > DoPrepareProc
HookList< EffectApplyHandler > OnEffectApply
Unit * GetAttacker() const
SpellInfo const * GetSpellInfo() const
static Creature * ToCreature(Object *o)
static Unit * ToUnit(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
bool operator()(WorldObject *obj) const
PowerCheck(Powers const power)
HealInfo * GetHealInfo() const
Unit * GetActionTarget() const
uint32 GetSpellTypeMask() const
SpellInfo const * GetSpellInfo() const
DamageInfo * GetDamageInfo() const
RaidCheck(Unit const *caster)
bool operator()(WorldObject *obj) const
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
bool IsRankOf(SpellInfo const *spellInfo) const
uint32 GetMaxTicks() const
uint32 ExcludeTargetAuraSpell
HookList< CastHandler > AfterCast
HookList< CheckCastHandler > OnCheckCast
void SetEffectValue(int32 value)
int32 GetHitDamage() const
HookList< HitHandler > AfterHit
HookList< HitHandler > OnHit
Unit * GetHitUnit() const
int32 GetEffectValue() const
HookList< EffectHandler > OnEffectHitTarget
HookList< EffectHandler > OnEffectLaunchTarget
Unit * GetExplTargetUnit() const
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
Unit * GetOriginalCaster() const
virtual void UnSummon(uint32 msTime=0)
ObjectGuid GetSummonerGUID() const
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
TempSummon * ToTempSummon()
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
AuraEffect * GetAuraEffectOfRankedSpell(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool IsInRaidWith(Unit const *unit) const
uint32 CountPctFromMaxHealth(int32 pct) const
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
AuraEffect * GetDummyAuraEffect(SpellFamilyNames name, uint32 iconId, uint8 effIndex) const
void RemoveMovementImpairingAuras(bool withRoot)
ObjectGuid GetTarget() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool IsValidAttackTarget(WorldObject const *target, SpellInfo const *bySpell=nullptr) const
bool isInFront(WorldObject const *target, float arc=float(M_PI)) const
bool IsFriendlyTo(WorldObject const *target) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pri_aq_3p_bonus)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_blessed_recovery)
bool Validate(SpellInfo const *) override
void HandleProcDummy(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool CheckProcDummy(AuraEffect const *, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_body_and_soul)
bool CheckProcTriggerSpell(AuraEffect const *, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pri_circle_of_healing)
void FilterTargets(std::list< WorldObject * > &targets)
PrepareAuraScript(spell_pri_dispersion)
bool Validate(SpellInfo const *) override
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_divine_aegis)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
PrepareSpellScript(spell_pri_divine_hymn)
void FilterTargets(std::list< WorldObject * > &targets)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_glyph_of_dispel_magic)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_glyph_of_prayer_of_healing)
PrepareAuraScript(spell_pri_guardian_spirit)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pri_holy_nova)
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_pri_hymn_of_hope)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pri_improved_spirit_tap)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_item_t6_trinket)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void InitializeAmount(AuraEffect const *, AuraEffectHandleModes)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
void CheckDropCharge(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_lightwell_renew)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
PrepareSpellScript(spell_pri_lightwell)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pri_mana_leech)
bool CheckProc(ProcEventInfo &)
void FilterTargets(std::list< WorldObject * > &unitList)
PrepareSpellScript(spell_pri_mind_sear)
PrepareAuraScript(spell_pri_pain_and_suffering_dummy)
bool CheckDummy(AuraEffect const *, ProcEventInfo &)
void HandleEffectScriptEffect(SpellEffIndex)
PrepareSpellScript(spell_pri_pain_and_suffering_proc)
PrepareSpellScript(spell_pri_penance)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
SpellCastResult CheckCast()
SpellCastResult CheckCast()
PrepareSpellScript(spell_pri_power_infusion)
void CalculateAmount(AuraEffect const *aurEff, int32 &amount, bool &canBeRecalculated)
PrepareAuraScript(spell_pri_power_word_shield_aura)
void ReflectDamage(AuraEffect *aurEff, DamageInfo &dmgInfo, uint32 &absorbAmount)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_pri_power_word_shield)
void HandleHeal(SpellEffIndex)
PrepareSpellScript(spell_pri_prayer_of_mending_heal)
bool Validate(SpellInfo const *) override
void HandleApplyEffect(AuraEffect const *aurEff, AuraEffectHandleModes)
PrepareAuraScript(spell_pri_renew)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pri_shadow_word_death)
PrepareAuraScript(spell_pri_shadowfiend_death)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pri_t10_heal_2p_bonus)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_t3_4p_bonus)
PrepareAuraScript(spell_pri_t5_heal_2p_bonus)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pri_vampiric_embrace)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDispel(DispelInfo *)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckDummy(AuraEffect const *, ProcEventInfo &)
PrepareAuraScript(spell_pri_vampiric_touch)
void AddSC_priest_spell_scripts()
@ SPELL_GENERIC_ARENA_DAMPENING
@ SPELL_MAGE_ARCANE_POWER
@ SPELL_GENERIC_BATTLEGROUND_DAMPENING
@ SPELL_ICON_ID_HELLSCREAM_WARSONG
@ SPELL_ICON_ID_STRENGTH_OF_WRYNN
@ SPELL_PRIEST_BLESSED_RECOVERY_R1
@ SPELL_PRIEST_DIVINE_BLESSING
@ SPELL_PRIEST_GLYPH_OF_LIGHTWELL
@ SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL
@ SPELL_PRIEST_MIND_FLAY_DAMAGE
@ SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED
@ SPELL_PRIEST_REFLECTIVE_SHIELD_R1
@ SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA
@ SPELL_PRIEST_ARMOR_OF_FAITH
@ SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL
@ SPELL_PRIEST_LIGHTWELL_RENEW_R4
@ SPELL_PRIEST_LIGHTWELL_RENEW_R5
@ SPELL_PRIEST_BODY_AND_SOUL_POISON_TRIGGER
@ SPELL_PRIEST_DISPERSION_IMMUNITY
@ SPELL_PRIEST_DIVINE_AEGIS
@ SPELL_PRIEST_MANA_LEECH_PROC
@ SPELL_PRIEST_HOLY_NOVA_HEAL_R1
@ SPELL_PRIEST_TWIN_DISCIPLINE_R1
@ SPELL_PRIEST_ORACULAR_HEAL
@ SPELL_PRIEST_LIGHTWELL_RENEW_R3
@ SPELL_PRIEST_VAMPIRIC_EMBRACE_HEAL
@ SPELL_PRIEST_DISPERSION_MOD_POWER
@ SPELL_PRIEST_PENANCE_R1_DAMAGE
@ SPELL_PRIEST_DIVINE_WRATH
@ SPELL_PRIEST_SHADOW_WORD_DEATH_R1
@ SPELL_PRIEST_LIGHTWELL_RENEW_R1
@ SPELL_PRIEST_PENANCE_R1
@ SPELL_PRIEST_LIGHTWELL_CHARGES
@ SPELL_PRIEST_GLYPH_OF_CIRCLE_OF_HEALING
@ SPELL_PRIEST_GLYPH_OF_DISPEL_MAGIC_HEAL
@ SPELL_PRIEST_LIGHTWELL_RENEW_R6
@ SPELL_PRIEST_ITEM_EFFICIENCY
@ SPELL_PRIEST_SHADOW_WORD_DEATH
@ SPELL_PRIEST_EMPOWERED_RENEW
@ SPELL_PRIEST_BLESSED_HEALING
@ SPELL_PRIEST_LIGHTWELL_RENEW_R2
@ SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL
@ SPELL_PRIEST_ABOLISH_DISEASE
@ SPELL_PRIEST_DIVINE_PROVIDENCE_R1
@ SPELL_PRIEST_T9_HEALING_2P
@ SPELL_PRIEST_SPIRITUAL_HEALING_R1
@ SPELL_PRIEST_MIND_BLAST_R1
@ SPELL_PRIEST_PENANCE_R1_HEAL
@ PRIEST_ICON_ID_FOCUSED_POWER
@ PRIEST_ICON_ID_BORROWED_TIME
@ PRIEST_ICON_ID_EMPOWERED_RENEW_TALENT
@ PRIEST_ICON_ID_PAIN_AND_SUFFERING