191 float defenseFactor = std::min(1.0f, defenseSkillValue / reqDefForMaxHeal);
198 else if (remainingHealth <
int32(allowedHealth))
203 : allowedHealth - remainingHealth;
353 switch (unitTarget->GetClass())
371 caster->
CastSpell(caster, spell_id,
true);
466 if (caster->ToPlayer()->GetGroup())
467 groupSize = caster->ToPlayer()->GetGroup()->GetMembersCount();
494 if (caster->HealthBelowPct(
minHpPct))
583 spellMod->
mask[1] = 0x200002;
608 return damageInfo && damageInfo->
GetDamage();
671 if (targets.size() > maxTargets)
674 targets.resize(maxTargets);
697 return healInfo && healInfo->
GetHeal();
711 healAmount = healInfo->
GetHeal();
739 aura->RefreshDuration();
794 amount -= aurEff->GetAmount();
836 if (!firstRankSpellInfo)
840 if (!spellInfo->
IsRankOf(firstRankSpellInfo))
911 SpellInfo const* originalSpell =
nullptr;
1081 if (spellInfo->SpellFamilyFlags[0] & 0x40000000 && spellInfo->SpellIconID == 242)
1086 if (!healInfo || !healInfo->
GetHeal())
1101 AddPct(bp0, bonus->GetAmount());
1109 else if ((spellInfo->SpellFamilyFlags[0] & 0x200000 || spellInfo->SpellFamilyFlags[1] & 0x10000) && !(eventInfo.
GetHitMask() &
PROC_HIT_CRITICAL))
1225 for (Unit::AuraEffectList::const_iterator i = auras.begin(); i != auras.end(); ++i)
1229 if (
sSpellMgr->GetSpellInfo((*i)->GetAmount()))
1231 spellId2 = (*i)->GetAmount();
1400 if (caster == target)
1458 if (!healInfo || !healInfo->
GetHeal())
1501 if (!target->IsFriendlyTo(caster) || target == caster || target->
getAttackers().empty())
1514 auto const& attackers = target->getAttackers();
1516 std::vector<Unit*> list(attackers.cbegin(), attackers.cend());
1519 for (
Unit* attacker : list)
1544 return damageInfo && damageInfo->
GetDamage();
1586 bonus *= caster->CalculateSpellpowerCoefficientLevelPenalty(
GetSpellInfo());
1588 amount +=
int32(bonus);
1592 AddPct(amount, auraEffArenaDampening->GetAmount());
1595 AddPct(amount, auraEffBattlegroudDampening->GetAmount());
1599 AddPct(amount, auraStrengthOfWrynn->GetAmount());
1601 AddPct(amount, auraHellscreamsWarsong->GetAmount());
1639 cooldown =
Seconds(bonus->GetAmount());
1679 int32 bp = std::lroundf(mws * (0.022f * ap + 0.044f * sph));
1693template <u
int32 DoTSpellId, u
int32 DamageSpellId>
1699 template <u
int32 DoTSpell, u
int32 DamageSpell>
1767 amount /= maxStacks;
1771 caster->
CastSpell(target, DamageSpell, args);
1941 caster->
CastSpell(target, spellId, aurEff);
1963 return healInfo && healInfo->
GetHeal();
std::chrono::steady_clock::time_point TimePoint
time_point shorthand typedefs
std::chrono::seconds Seconds
Seconds shorthand typedef.
bool roll_chance_i(int chance)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
#define EFFECT_FIRST_FOUND
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_UNIT_CASTER_AREA_RAID
@ SPELL_FAILED_UNIT_NOT_INFRONT
@ SPELL_FAILED_DONT_REPORT
@ SPELL_FAILED_TARGET_AURASTATE
@ 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_ADD_FLAT_MODIFIER
@ SPELL_AURA_MELEE_ATTACK_POWER_ATTACKER_BONUS
@ SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
@ SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
@ SPELL_AURA_MOD_DAMAGE_TAKEN
@ SPELL_AURA_SCHOOL_ABSORB
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ TRIGGERED_DONT_RESET_PERIODIC_TIMER
Will ignore caster aura restrictions or requirements.
@ PROC_FLAG_DONE_MELEE_AUTO_ATTACK
@ PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraCheckEffectProcFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectSplitFn(F, I)
#define AuraCheckProcFn(F)
#define AuraEffectCalcSpellModFn(F, I, N)
#define AuraCheckAreaTargetFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
T CalculatePct(T base, U pct)
SpellInfo const * GetSpellInfo() const
SpellEffIndex GetEffIndex() const
SpellEffectInfo const & GetSpellEffectInfo() const
void PreventDefaultAction()
HookList< EffectApplyHandler > AfterEffectRemove
HookList< CheckEffectProcHandler > DoCheckEffectProc
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
HookList< EffectCalcSpellModHandler > DoEffectCalcSpellMod
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
HookList< EffectAbsorbHandler > OnEffectAbsorb
HookList< CheckAreaTargetHandler > DoCheckAreaTarget
ObjectGuid GetCasterGUID() const
HookList< CheckProcHandler > DoCheckProc
void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > OnProc
HookList< EffectSplitHandler > OnEffectSplit
Unit * GetUnitOwner() const
uint8 GetStackAmount() const
uint32 GetEffectiveHeal() const
SpellInfo const * GetSpellInfo() const
static ObjectGuid GetGUID(Object const *o)
uint32 GetHitMask() const
HealInfo * GetHealInfo() const
Unit * GetActionTarget() const
uint32 GetTypeMask() const
SpellInfo const * GetSpellInfo() const
DamageInfo * GetDamageInfo() const
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
void AddCooldown(uint32 spellId, uint32 itemId, std::chrono::duration< Type, Period > cooldownDuration)
bool IsRankOf(SpellInfo const *spellInfo) const
uint32 GetMaxTicks() const
SpellInfo const * GetFirstRankSpell() const
SpellSchoolMask GetSchoolMask() const
int32 CalcPowerCost(WorldObject const *caster, SpellSchoolMask schoolMask, Spell *spell=nullptr) const
uint32 MaxAffectedTargets
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
HookList< CheckCastHandler > OnCheckCast
int32 GetHitDamage() const
HookList< HitHandler > AfterHit
Unit * GetHitUnit() const
int32 GetEffectValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
Unit * GetExplTargetUnit() const
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
void RemoveOwnedAura(AuraMap::iterator &i, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
uint32 GetDefenseSkillValue(Unit const *target=nullptr) const
Powers GetPowerType() const
uint32 GetMaxHealth() const
Aura * AddAura(uint32 spellId, Unit *target)
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
int32 GetTotalAuraModifierByMiscMask(AuraType auraType, uint32 misc_mask) const
void RemoveAurasWithMechanic(uint32 mechanicMaskToRemove, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT, uint32 exceptSpellId=0, bool withEffectMechanics=false)
AttackerSet const & getAttackers() const
AuraEffect * GetAuraEffectOfRankedSpell(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
uint32 GetAttackTime(WeaponAttackType att) const
int32 GetTotalAuraModifier(AuraType auraType) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
uint32 CountPctFromMaxHealth(int32 pct) const
SpellHistory * GetSpellHistory()
std::list< AuraEffect * > AuraEffectList
uint32 GetCreateMana() const
int32 SpellBaseDamageBonusDone(SpellSchoolMask schoolMask) const
float GetTotalAttackPowerValue(WeaponAttackType attType) const
uint32 GetMaxSkillValueForLevel(Unit const *target=nullptr) 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)
PrepareAuraScript(spell_pal_ardent_defender)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
bool Validate(SpellInfo const *) override
@ PAL_SPELL_ARDENT_DEFENDER_HEAL
void Absorb(AuraEffect *aurEff, DamageInfo &dmgInfo, uint32 &absorbAmount)
PrepareAuraScript(spell_pal_aura_mastery_immune)
bool CheckAreaTarget(Unit *target)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_pal_aura_mastery)
void HandleApply(AuraEffect const *aurEff, AuraEffectHandleModes)
PrepareAuraScript(spell_pal_avenging_wrath)
bool Validate(SpellInfo const *) override
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *spellInfo) override
void PeriodicTick(AuraEffect const *aurEff)
PrepareAuraScript(spell_pal_beacon_of_light)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pal_blessing_of_faith)
void HandleDummy(SpellEffIndex)
bool CheckProc(ProcEventInfo &)
PrepareAuraScript(spell_pal_blessing_of_sanctuary)
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool CheckProc(AuraEffect const *aurEff, ProcEventInfo &)
PrepareAuraScript(spell_pal_divine_purpose)
void HandleProc(AuraEffect const *, ProcEventInfo &eventInfo)
void Split(AuraEffect *, DamageInfo &, uint32 &splitAmount)
PrepareAuraScript(spell_pal_divine_sacrifice)
bool Validate(SpellInfo const *) override
void CountTargets(std::list< WorldObject * > &targetList)
PrepareSpellScript(spell_pal_divine_storm_dummy)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pal_divine_storm)
void HandleEffectCalcSpellMod(AuraEffect const *aurEff, SpellModifier *&spellMod)
PrepareAuraScript(spell_pal_exorcism_and_holy_wrath_damage)
PrepareAuraScript(spell_pal_eye_for_an_eye)
void OnProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void OnProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_glyph_of_divinity)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_glyph_of_holy_light_dummy)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pal_glyph_of_holy_light)
void FilterTargets(std::list< WorldObject * > &targets)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
PrepareSpellScript(spell_pal_guarded_by_the_light)
PrepareAuraScript(spell_pal_hand_of_sacrifice)
void Split(AuraEffect *, DamageInfo &, uint32 &splitAmount)
PrepareAuraScript(spell_pal_hand_of_salvation)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_heart_of_the_crusader)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
SpellCastResult CheckCast()
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_pal_holy_shock)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_illumination)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareSpellScript(spell_pal_immunities)
SpellCastResult CheckCast()
bool Validate(SpellInfo const *) override
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_pal_improved_aura)
spell_pal_improved_aura(uint32 spellId)
bool Validate(SpellInfo const *) override
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_improved_lay_of_hands)
bool Validate(SpellInfo const *spellInfo) override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_infusion_of_light)
PrepareAuraScript(spell_pal_item_healing_discount)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_item_t6_trinket)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_pal_judgement_of_command)
PrepareAuraScript(spell_pal_judgement_of_light_heal)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_judgement_of_wisdom_mana)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
PrepareSpellScript(spell_pal_judgement)
bool Validate(SpellInfo const *) override
spell_pal_judgement(uint32 spellId)
void HandleScriptEffect(SpellEffIndex)
void OnProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_judgements_of_the_just)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_judgements_of_the_wise)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pal_lay_on_hands)
SpellCastResult CheckCast()
PrepareAuraScript(spell_pal_light_s_beacon)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_pal_righteous_defense)
SpellCastResult CheckCast()
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_righteous_vengeance)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_sacred_shield_dummy)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_sacred_shield)
void CalculateAmount(AuraEffect const *aurEff, int32 &amount, bool &)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_seal_of_righteousness)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_seal_of_vengeance_AuraScript)
void HandleApplyDoT(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleSeal(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
spell_pal_seal_of_vengeance(char const *ScriptName)
AuraScript * GetAuraScript() const override
bool CheckDummyProc(AuraEffect const *, ProcEventInfo &)
PrepareAuraScript(spell_pal_seals)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_sheath_of_light)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_spiritual_attunement)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_pal_t3_6p_bonus)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_pal_t8_2p_bonus)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
TimePoint Now()
Current chrono steady_clock time point.
void RandomResize(C &container, std::size_t requestedSize)
@ SPELL_PALADIN_SEAL_OF_VENGEANCE_DAMAGE
@ SPELL_PALADIN_HOLY_POWER_MP5
@ SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE
@ SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_3
@ SPELL_PALADIN_AURA_MASTERY_IMMUNE
@ SPELL_PALADIN_HOLY_SHOCK_R1_HEALING
@ SPELL_PALADIN_HOLY_MENDING
@ SPELL_PALADIN_SANCTIFIED_RETRIBUTION_AURA
@ SPELL_PALADIN_GLYPH_OF_HOLY_LIGHT_HEAL
@ SPELL_PALADIN_HOLY_POWER_ARMOR
@ SPELL_PALADIN_SANCTIFIED_WRATH_TALENT_R1
@ SPELL_PALADIN_JUDGEMENT_OF_WISDOM_MANA
@ SPELL_PALADIN_SANCTIFIED_WRATH
@ SPELL_PALADIN_HOLY_POWER_SPELL_POWER
@ SPELL_PALADIN_AVENGING_WRATH_MARKER
@ SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF
@ SPELL_PALADIN_T9_HOLY_4P_BONUS
@ SPELL_PALADIN_EYE_FOR_AN_EYE_DAMAGE
@ SPELL_GENERIC_ARENA_DAMPENING
@ SPELL_PALADIN_GLYPH_OF_DIVINITY_PROC
@ SPELL_PALADIN_IMPROVED_CONCENTRACTION_AURA
@ SPELL_PALADIN_FLASH_OF_LIGHT_PROC
@ SPELL_PALADIN_HEART_OF_THE_CRUSADER_EFF_R1
@ SPELL_PALADIN_JUDGEMENTS_OF_THE_JUST_PROC
@ SPELL_PALADIN_BLESSING_OF_LOWER_CITY_SHAMAN
@ SPELL_PALADIN_JUDGEMENT_DAMAGE
@ SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS
@ SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PALADIN
@ SPELL_PALADIN_BLESSING_OF_LOWER_CITY_DRUID
@ SPELL_PALADIN_ILLUMINATION_ENERGIZE
@ SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT
@ SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1
@ SPELL_PALADIN_DIVINE_PLEA
@ SPELL_PALADIN_SACRED_SHIELD
@ SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_1
@ SPELL_PALADIN_SHEATH_OF_LIGHT_HEAL
@ SPELL_PALADIN_CONCENTRACTION_AURA
@ SPELL_PALADIN_FORBEARANCE
@ SPELL_PALADIN_HOLY_VENGEANCE
@ SPELL_PALADIN_ENDURING_LIGHT
@ SPELL_PALADIN_T8_HOLY_4P_BONUS
@ SPELL_PALADIN_BEACON_OF_LIGHT_HEAL_2
@ SPELL_PALADIN_BLOOD_CORRUPTION
@ SPELL_PALADIN_IMMUNE_SHIELD_MARKER
@ SPELL_PALADIN_ITEM_HEALING_TRANCE
@ SPELL_PALADIN_SWIFT_RETRIBUTION_R1
@ SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE
@ SPELL_PALADIN_HOLY_POWER_ATTACK_POWER
@ SPELL_PALADIN_DIVINE_STORM_DUMMY
@ SPELL_PALADIN_IMPROVED_DEVOTION_AURA
@ SPELL_PALADIN_JUDGEMENT_OF_JUSTICE
@ SPELL_PALADIN_SEAL_OF_CORRUPTION_DAMAGE
@ SPELL_PALADIN_BLESSING_OF_LOWER_CITY_PRIEST
@ SPELL_PALADIN_SPIRITUAL_ATTUNEMENT_MANA
@ SPELL_PALADIN_JUDGEMENT_OF_LIGHT
@ SPELL_PALADIN_GLYPH_OF_SALVATION
@ SPELL_PALADIN_DIVINE_STORM_HEAL
@ SPELL_PALADIN_SACRED_SHIELD_TRIGGER
@ SPELL_PALADIN_DIVINE_STORM
@ SPELL_PALADIN_JUDGEMENT_OF_WISDOM
@ SPELL_PALADIN_BEACON_OF_LIGHT
@ SPELL_PALADIN_ENDURING_JUDGEMENT
@ SPELL_PALADIN_RIGHTEOUS_VENGEANCE_DAMAGE
@ SPELL_PALADIN_HOLY_LIGHT
@ SPELL_PALADIN_JUDGEMENTS_OF_THE_WISE_MANA
@ SPELL_GENERIC_BATTLEGROUND_DAMPENING
@ SPELL_PALADIN_HOLY_SHOCK_R1
@ SPELL_PALADIN_JUDGEMENT_OF_LIGHT_HEAL
void AddSC_paladin_spell_scripts()
@ SPELL_ICON_ID_HELLSCREAM_WARSONG
@ SPELL_ICON_ID_STRENGTH_OF_WRYNN
@ PALADIN_ICON_ID_RETRIBUTION_AURA
@ PALADIN_ICON_ID_HAMMER_OF_THE_RIGHTEOUS