300 Aura* aura = aurEff->GetBase();
307 if (countMin < countMax)
435 int32 healAmount = aurEff->GetAmount();
554 if (caster->GetShapeshiftForm() !=
FORM_BEAR)
586 target->UpdateAttackPowerAndDamage();
688 uint8 comboPoints = caster->GetComboPoints();
692 int32 duration = minduration +
int32((maxduration - minduration) * comboPoints / 5);
694 savageRoar->SetDuration(duration);
932 if (!
GetCaster()->ToPlayer()->GetGroup())
940 std::list<Unit*> tempTargets;
941 for (std::list<WorldObject*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr)
943 tempTargets.push_back((*itr)->ToUnit());
945 if (tempTargets.empty())
954 targets.push_back(target);
@ TALENT_TREE_DRUID_BALANCE
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_FAILED_DONT_REPORT
@ SPELL_FAILED_ONLY_SHAPESHIFT
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_MOD_INCREASE_SPEED
@ SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED
@ SPELL_AURA_MOD_INCREASE_HEALTH_2
@ SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
@ SPELL_AURA_SCHOOL_ABSORB
@ SPELL_AURA_PERIODIC_ENERGIZE
@ AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK
@ AURA_EFFECT_HANDLE_REAL
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(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)
int32 GetTotalTicks() const
void SetAmount(int32 amount)
int32 GetMaxDuration() const
Unit * GetUnitOwner() const
int32 GetDuration() const
void SetDuration(int32 duration, bool withMods=false)
SpellInfo const * GetSpellInfo() const
void SetMaxDuration(int32 duration)
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
SpellInfo const * GetSpellInfo() const
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
uint64 GetCasterGUID() const
AuraEffect * GetEffect(uint8 effIndex) const
HookList< EffectAbsorbHandler > OnEffectAbsorb
HookList< CheckProcHandler > DoCheckProc
HookList< AuraDispelHandler > AfterDispel
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
uint8 GetStackAmount() const
HookList< EffectApplyHandler > OnEffectApply
SpellInfo const * GetSpellInfo() const
uint8 GetRemovedCharges() const
uint32 GetTalentSpecialization(uint8 spec) const
uint8 GetActiveSpec() const
void RemoveSpellCooldown(uint32 spell_id, bool update=false)
HealInfo * GetHealInfo() const
DamageInfo * GetDamageInfo() const
Unit * GetProcTarget() const
int32 CalcValue(Unit const *caster=NULL, int32 const *basePoints=NULL, Unit const *target=NULL) const
SpellEffectInfo Effects[MAX_SPELL_EFFECTS]
int32 GetMaxDuration() const
int32 GetDuration() const
Unit * GetExplTargetUnit()
HookList< CheckCastHandler > OnCheckCast
void FinishCast(SpellCastResult result)
SpellInfo const * GetSpellInfo()
HookList< EffectHandler > OnEffectHitTarget
SpellInfo const * GetTriggeringSpell()
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellScriptLoader(const char *name)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
ShapeshiftForm GetShapeshiftForm() const
bool HasAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
uint32 SpellHealingBonusTaken(Unit *caster, SpellInfo const *spellProto, uint32 healamount, DamageEffectType damagetype, uint32 stack=1) const
uint32 GetCreatureType() const
int32 GetPower(Powers power) const
bool HasUnitState(const uint32 f) const
void CastCustomSpell(Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
bool IsInFeralForm() const
uint32 CountPctFromMaxHealth(int32 pct) const
Aura * GetAuraOfRankedSpell(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
PrepareAuraScript(spell_dru_dash_AuraScript)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
AuraScript * GetAuraScript() const override
void ApplyEffect(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dru_eclipse_AuraScript)
PrepareSpellScript(spell_dru_eclipse_energize_SpellScript)
void HandleEnergize(SpellEffIndex effIndex)
SpellScript * GetSpellScript() const override
spell_dru_eclipse_energize()
spell_dru_eclipse(char const *scriptName)
AuraScript * GetAuraScript() const override
void HandleEffectProc(AuraEffect const *aurEff, ProcEventInfo &)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dru_glyph_of_innervate_AuraScript)
bool Validate(SpellInfo const *) override
spell_dru_glyph_of_innervate()
AuraScript * GetAuraScript() const override
void HandleScriptEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_dru_glyph_of_starfire_SpellScript)
void HandleEffectProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dru_glyph_of_starfire_proc_AuraScript)
AuraScript * GetAuraScript() const override
spell_dru_glyph_of_starfire_proc()
spell_dru_glyph_of_starfire()
SpellScript * GetSpellScript() const override
PrepareAuraScript(spell_dru_innervate_AuraScript)
void CalculateAmount(AuraEffect const *aurEff, int32 &amount, bool &)
AuraScript * GetAuraScript() const override
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *aurEff, AuraEffectHandleModes)
void HandleDispel(DispelInfo *dispelInfo)
PrepareAuraScript(spell_dru_lifebloom_AuraScript)
AuraScript * GetAuraScript() const override
PrepareAuraScript(spell_dru_living_seed_AuraScript)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
PrepareAuraScript(spell_dru_living_seed_proc_AuraScript)
spell_dru_living_seed_proc()
AuraScript * GetAuraScript() const override
AuraScript * GetAuraScript() const override
PrepareAuraScript(spell_dru_might_of_ursoc_AuraScript)
bool Validate(SpellInfo const *) override
void CalculateAmount(AuraEffect const *aurEff, int32 &amount, bool &)
spell_dru_might_of_ursoc()
AuraScript * GetAuraScript() const
PrepareAuraScript(spell_dru_predatory_strikes_AuraScript)
void UpdateAmount(AuraEffect const *, AuraEffectHandleModes)
spell_dru_predatory_strikes()
AuraScript * GetAuraScript() const override
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_dru_savage_defense_AuraScript)
void Absorb(AuraEffect *aurEff, DamageInfo &, uint32 &absorbAmount)
AuraScript * GetAuraScript() const override
spell_dru_savage_defense()
void OnApply(AuraEffect const *aurEff, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dru_savage_roar_AuraScript)
SpellCastResult CheckCast()
PrepareSpellScript(spell_dru_savage_roar_SpellScript)
AuraScript * GetAuraScript() const override
SpellScript * GetSpellScript() const override
bool Validate(SpellInfo const *) override
void HandleEffectCatProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleEffectBearProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dru_stampede_AuraScript)
AuraScript * GetAuraScript() const override
void FilterTargets(std::list< WorldObject * > &targets)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_dru_starfall_dummy_SpellScript)
SpellScript * GetSpellScript() const override
spell_dru_starfall_dummy()
PrepareAuraScript(spell_dru_survival_instincts_AuraScript)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void AfterApply(AuraEffect const *aurEff, AuraEffectHandleModes)
SpellCastResult CheckCast()
PrepareSpellScript(spell_dru_survival_instincts_SpellScript)
AuraScript * GetAuraScript() const override
SpellScript * GetSpellScript() const override
spell_dru_survival_instincts()
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_dru_swift_flight_passive_AuraScript)
AuraScript * GetAuraScript() const override
spell_dru_swift_flight_passive()
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_dru_t10_restoration_4p_bonus_SpellScript)
spell_dru_t10_restoration_4p_bonus()
SpellScript * GetSpellScript() const override
void RandomResizeList(std::list< T > &list, uint32 size)
C::value_type const & SelectRandomContainerElement(C const &container)
void AddSC_druid_spell_scripts()
@ SPELL_DRUID_ECLIPSE_GENERAL_ENERGIZE
@ SPELL_DRUID_FERAL_CHARGE_CAT
@ SPELL_DRUID_NATURES_GRACE_TRIGGER
@ SPELL_DRUID_LIFEBLOOM_ENERGIZE
@ SPELL_DRUID_LIVING_SEED_PROC
@ SPELL_DRUID_STARSURGE_ENERGIZE
@ SPELL_DRUID_SOLAR_ECLIPSE_MARKER
@ SPELL_DRUID_LIVING_SEED_HEAL
@ SPELL_DRUID_LUNAR_ECLIPSE_MARKER
@ SPELL_DRUID_STAMPEDE_CAT_RANK_1
@ SPELL_DRUID_GLYPH_OF_STARFIRE
@ SPELL_DRUID_GLYPH_OF_INNERVATE
@ SPELL_DRUID_SAVAGE_ROAR_TRIGGER
@ SPELL_DRUID_SAVAGE_ROAR
@ SPELL_DRUID_LIFEBLOOM_FINAL_HEAL
@ SPELL_DRUID_INCREASED_MOONFIRE_DURATION
@ SPELL_DRUID_SURVIVAL_INSTINCTS
@ SPELL_DRUID_LUNAR_ECLIPSE
@ SPELL_DRUID_NATURES_GRACE
@ SPELL_DRUID_STAMPEDE_BAER_RANK_1
@ SPELL_DRUID_FERAL_CHARGE_BEAR
@ SPELL_DRUID_TIGER_S_FURY_ENERGIZE
@ SPELL_DRUID_SOLAR_ECLIPSE
@ SPELL_DRUID_STAMPEDE_CAT_STATE