159 switch (spellEffectInfo.Effect)
173 caster->
CastSpell(
nullptr, spellId, args);
195template <u
int8 StackAmount>
201 template <u
int8 Stacks>
233 caster->
CastSpell(target, spellId, aurEff);
314 static std::vector<uint32>
const triggeredSpells[
MAX_CLASSES] =
345 caster->
CastSpell(caster, spellId, aurEff);
422 return healInfo && healInfo->
GetHeal();
433 protEff->SetAmount(std::min<int32>(protEff->GetAmount() + absorb, 20000));
436 protEff->GetBase()->RefreshDuration();
535template <u
int32 StrengthSpellId, u
int32 AgilitySpellId, u
int32 APSpellId, u
int32 CriticalSpellId, u
int32 HasteSpellId>
541 template <u
int32 Strength, u
int32 Agility, u
int32 AttackPower, u
int32 Critical, u
int32 Haste>
560 static std::vector<uint32>
const triggeredSpells[
MAX_CLASSES] =
565 { Strength, Critical, Haste },
567 { Strength, Critical, Haste },
569 { Agility, Critical, AttackPower },
571 { Agility, Haste, AttackPower },
575 { Strength, Critical, Haste },
577 { Agility, Haste, AttackPower },
585 { Strength, Agility, Haste }
590 std::vector<uint32>
const& randomSpells = triggeredSpells[caster->
GetClass()];
591 if (randomSpells.empty())
595 caster->
CastSpell(caster, spellId, aurEff);
636 static uint32 const minimum = 1;
637 static uint32 const maximum = 100;
695 target->
CastSpell(target, spellId,
true);
817 caster->
CastSpell(caster, spellId,
true);
961 if (targets.size() < 2)
968 targets.push_back(target);
1065 caster->Unit::TextEmote(
_text, caster,
false);
1097 std::vector<uint32> possibleSpells;
1124 caster->
CastSpell(caster, possibleSpells[
urand(0, (possibleSpells.size() - 1))],
true);
1153 if (!damageInfo || !damageInfo->
GetDamage())
1190 if (
urand(0, 99) < 15)
1276template <u
int32 EnergySpellId, u
int32 ManaSpellId, u
int32 RageSpellId, u
int32 RPSpellId>
1282 template <u
int32 Energy, u
int32 Mana, u
int32 Rage, u
int32 RunicPower>
1317 spellId = RunicPower;
1323 caster->
CastSpell(
nullptr, spellId, aurEff);
1374 if (healTarget->GetHealth() - healInfo->GetEffectiveHeal() <= healTarget->CountPctFromMaxHealth(pct))
1422 switch (
urand(1, 5))
1429 caster->
CastSpell(caster, spellId,
true);
1568 return damageInfo && damageInfo->
GetDamage();
1663 switch (
urand(1, 3))
1669 caster->
CastSpell(caster, spellId,
true);
1686 return spellInfo->PowerType ==
POWER_MANA || (spellInfo->ManaCost != 0 && spellInfo->ManaCostPercentage != 0 && spellInfo->ManaCostPerlevel != 0);
1725 if (shield->GetAmount() > bp0)
1761 if (!damageInfo || !damageInfo->
GetDamage())
1868 switch (
urand(1, 2))
1875 caster->
CastSpell(caster, spellId,
true);
1909 uint8 maxSafeLevel = 0;
1925 if (caster->
GetLevel() > maxSafeLevel)
2027 switch (
urand(0, 6))
2057 caster->
CastSpell(caster, spellId,
true);
2096 switch (
urand(0, 3))
2117 caster->
CastSpell(caster, spellId,
true);
2166 if (!caster || !target)
2216 if (soulFragments->GetStackAmount() >= 10)
2219 soulFragments->Remove();
2332 if (
urand(0, 100) <= 30)
2461 switch (
urand(1, 3))
2466 caster->
CastSpell(caster, spellId,
true);
2501 static uint32 const minimum = 1;
2502 static uint32 const maximum = 6;
2545 player->GetSpellHistory()->CancelGlobalCooldown(
GetSpellInfo());
2586 caster->
LearnSpell(discoveredSpellId,
false);
2608 std::list<Creature*> ghouls;
2679 caster->
CastSpell(caster, spellId,
true);
2722 if (
urand(0, 60) < 1)
2751 switch (
urand(0, 5))
2876 if (creature->isDead())
2940 if (target->GetEntry() ==
NPC_LEVIROTH && !target->HealthBelowPct(95))
2943 target->ResetPlayerDamageReq();
3009 bool success =
true;
3081 bg->EventPlayerDroppedFlag(caster);
3142 aura->RefreshDuration();
3146 if (!aura || aura->GetStackAmount() < 5 || !
roll_chance_i(50))
3262 if (target->isDead())
3263 target->DespawnOrUnsummon();
3306template <u
int32 HealProcSpellId, u
int32 DamageProcSpellId>
3312 template <u
int32 HealProc, u
int32 DamageProc>
3333 caster->
CastSpell(target, HealProc, aurEff);
3336 caster->
CastSpell(target, DamageProc, aurEff);
3434template <u
int32 AldorSpellId, u
int32 ScryersSpellId>
3440 template <u
int32 Aldors, u
int32 Scryers>
3465 player->
CastSpell(target, Aldors, aurEff);
3468 player->
CastSpell(target, Scryers, aurEff);
3494 target->PlayDistanceSound(soundEntry->SoundID);
3543 switch (aurEff->
GetId())
3717 caster->
CastSpell(caster, spellTrigger, aurEff);
3790 if (target && target->
IsAlive())
3825 if (targets.empty())
3865 switch (
urand(1, 6))
3962 else if (chance < 25)
4043 std::vector<uint32> availableElixirs =
4071 availableElixirs.push_back(28509);
4075 bool useElixir =
true;
4086 for (
auto itr = auraMap.begin(); itr != auraMap.end(); ++itr)
4088 uint32 spellId = itr->second->GetBase()->GetId();
4089 if (
sSpellMgr->IsSpellMemberOfSpellGroup(spellId, chosenSpellGroup) && spellId != chosenElixir)
4114 std::vector<uint32> availableElixirs =
4132 availableElixirs.push_back(53753);
4134 availableElixirs.push_back(43186);
First const & RAND(First const &first, Second const &second, Rest const &... rest)
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
EmotesTextSoundEntry const * FindTextSoundEmoteFor(uint32 emote, uint32 race, uint32 gender)
DBCStorage< AreaTableEntry > sAreaTableStore(AreaTableEntryfmt)
LootStore LootTemplates_Skinning("skinning_loot_template", "creature skinning id", true)
@ QUEST_STATUS_INCOMPLETE
float frand(float min, float max)
int32 irand(int32 min, int32 max)
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_TRIGGER_MISSILE
@ SPELL_EFFECT_TELEPORT_UNITS
@ SPELL_EFFECT_APPLY_AURA
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_CORPSE_SRC_AREA_ENEMY
@ TARGET_UNIT_SRC_AREA_ALLY
@ EMOTE_ONESHOT_DANCESPECIAL
@ CREATURE_TYPE_GAS_CLOUD
@ SPELL_CUSTOM_ERROR_TOO_MANY_GHOULS
@ SPELL_CUSTOM_ERROR_MUST_BE_CLOSE_TO_SINKHOLE
@ SPELL_CUSTOM_ERROR_LEARNED_EVERYTHING
@ SPELL_FAILED_CUSTOM_ERROR
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ SPELL_FAILED_ONLY_ABOVEWATER
@ SPELL_FAILED_NO_VALID_TARGETS
uint32 GetExplicitDiscoverySpell(uint32 spellId, Player *player)
bool HasDiscoveredAllSpells(uint32 spellId, Player *player)
@ AURA_EFFECT_HANDLE_REAPPLY
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_SCHOOL_ABSORB
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ SPELL_GROUP_ELIXIR_BATTLE
@ SPELL_GROUP_ELIXIR_GUARDIAN
@ PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS
@ PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS
@ PROC_FLAG_DONE_RANGED_AUTO_ATTACK
@ PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG
#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 SpellDestinationTargetSelectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define AuraCheckAreaTargetFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
T CalculatePct(T base, U pct)
SpellInfo const * GetSpellInfo() const
void PreventDefaultAction()
int32 GetDuration() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
WorldObject * GetOwner() const
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
HookList< CheckAreaTargetHandler > DoCheckAreaTarget
ObjectGuid GetCasterGUID() const
HookList< CheckProcHandler > DoCheckProc
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > OnProc
uint8 GetStackAmount() const
HookList< EffectApplyHandler > OnEffectApply
uint8 GetStackAmount() const
virtual void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)=0
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
CreatureTemplate const * GetCreatureTemplate() const
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
uint32 GetEffectiveHeal() const
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
PartyTimeEmoteEvent(Player *player)
bool Execute(uint64, uint32) override
void LearnSpell(uint32 spell_id, bool dependent, uint32 fromSkill=0)
uint32 DoRandomRoll(uint32 minimum, uint32 maximum)
Battleground * GetBattleground() const
void AutoStoreLoot(uint8 bag, uint8 slot, uint32 loot_id, LootStore const &store, bool broadcast=false, bool createdByPlayer=false)
QuestStatus GetQuestStatus(uint32 quest_id) const
ReputationRank GetReputationRank(uint32 faction_id) 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 ResetCooldown(uint32 spellId, bool update=false)
bool HasCooldown(SpellInfo const *spellInfo, uint32 itemId=0, bool ignoreCategoryCooldown=false) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
std::array< SpellEffectInfo, MAX_SPELL_EFFECTS > const & GetEffects() const
HookList< CastHandler > AfterCast
HookList< CheckCastHandler > OnCheckCast
Creature * GetHitCreature() const
Player * GetHitPlayer() const
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
int64 GetUnitTargetCountForEffect(SpellEffIndex effect) const
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
Item * GetCastItem() const
void SetCustomCastResultMessage(SpellCustomErrors result)
HookList< EffectHandler > OnEffectLaunch
void SetHitHeal(int32 heal)
SpellInfo const * GetSpellInfo() const
void FinishCast(SpellCastResult result, uint32 *param1=nullptr, uint32 *param2=nullptr)
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
std::multimap< uint32, AuraApplication * > AuraApplicationMap
Powers GetPowerType() 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
virtual Gender GetNativeGender() const
virtual void TextEmote(std::string_view text, WorldObject const *target=nullptr, bool isBossEmote=false)
void RemoveAuraFromStack(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
virtual void SetDisplayId(uint32 modelId)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void HandleEmoteCommand(Emote emoteId)
void SetFacingTo(float ori, bool force=true, uint32 movementId=EVENT_FACE)
uint32 CountPctFromMaxHealth(int32 pct) const
float GetStat(Stats stat) const
SpellHistory * GetSpellHistory()
AuraApplicationMap & GetAppliedAuras()
void GetAllMinionsByEntry(std::list< Creature * > &Minions, uint32 entry)
ObjectGuid GetTarget() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void PlayDirectSound(uint32 soundId, Player *target=nullptr)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
PrepareAuraScript(spell_item_aegis_of_preservation)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_alchemists_stone)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_anger_capacitor_AuraScript)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
spell_item_anger_capacitor(char const *ScriptName)
AuraScript * GetAuraScript() const override
PrepareAuraScript(spell_item_arcane_shroud)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareSpellScript(spell_item_ashbringer)
void OnDummyEffect(SpellEffIndex effIndex)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_aura_of_madness)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_blessing_of_ancient_kings)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
SpellCastResult CheckRequirement()
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_item_book_of_glyph_mastery)
PrepareSpellScript(spell_item_brittle_armor)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_charm_witch_doctor)
PrepareSpellScript(spell_item_chicken_cover)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_complete_raptor_capture)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_crazy_alchemists_potion)
PrepareAuraScript(spell_item_crystal_spire_of_karabor)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_darkmoon_card_greatness)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_darkmoon_card_illusion)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareSpellScript(spell_item_deadly_precision_dummy)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleStackDrop(AuraEffect const *, ProcEventInfo &)
PrepareAuraScript(spell_item_deadly_precision)
PrepareAuraScript(spell_item_death_choice)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_deathbringers_will_AuraScript)
AuraScript * GetAuraScript() const override
spell_item_deathbringers_will(char const *ScriptName)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
@ TEXT_DECAHEDRAL_DWARVEN_DICE
PrepareSpellScript(spell_item_decahedral_dwarven_dice)
spell_item_defibrillate_SpellScript(uint8 chance, uint32 failSpell)
void HandleScript(SpellEffIndex effIndex)
PrepareSpellScript(spell_item_defibrillate_SpellScript)
bool Validate(SpellInfo const *) override
SpellScript * GetSpellScript() const override
spell_item_defibrillate(char const *name, uint8 chance, uint32 failSpell=0)
PrepareAuraScript(spell_item_dementia)
bool Validate(SpellInfo const *) override
void HandlePeriodicDummy(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_demon_broiled_surprise)
void HandleDummy(SpellEffIndex)
SpellCastResult CheckRequirement()
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_desperate_defense)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_deviate_fish)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_item_dimensional_ripper_area52)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_dimensional_ripper_everlook)
void HandleScript(SpellEffIndex)
PrepareAuraScript(spell_item_dire_brew)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_discerning_eye_beast_dummy)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_disco_ball_listening_to_music_check)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_disco_ball_listening_to_music_parent)
bool Validate(SpellInfo const *) override
void OnPeriodic(AuraEffect const *)
PrepareAuraScript(spell_item_disco_ball_listening_to_music_periodic)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_item_drums_of_forgotten_kings)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_item_drums_of_the_wild)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_echoes_of_light)
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_item_eggnog)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareAuraScript(spell_item_fate_rune_of_unsurpassed_vigor)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *, ProcEventInfo &)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_item_feast)
spell_item_feast(uint32 text)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_flask_of_the_north)
void HandleDummy(SpellEffIndex)
PrepareAuraScript(spell_item_frozen_shadoweave)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
SpellCastResult CheckRequirement()
PrepareSpellScript(spell_item_gift_of_the_harvester)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_gnomish_death_ray)
PrepareSpellScript(spell_item_goblin_bomb_dispenser)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_goblin_weather_machine)
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_greatmothers_soulcatcher)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_harm_prevention_belt)
void HandleProc(ProcEventInfo &)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_healing_touch_refund)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_heartpierce_AuraScript)
bool Validate(SpellInfo const *) override
AuraScript * GetAuraScript() const override
spell_item_heartpierce(char const *ScriptName)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_hourglass_sand)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_impale_leviroth)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_lifegiving_gem)
PrepareSpellScript(spell_item_mad_alchemists_potion)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_make_a_wish)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_mana_drain)
PrepareSpellScript(spell_item_map_of_the_geyser_fields)
SpellCastResult CheckSinkholes()
PrepareAuraScript(spell_item_mark_of_conquest)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareSpellScript(spell_item_mercurial_shield)
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_mind_control_cap)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_mingos_fortune_generator)
void HandleDummy(SpellEffIndex)
void HandleScriptEffect(SpellEffIndex)
PrepareSpellScript(spell_item_mirrens_drinking_hat)
PrepareSpellScript(spell_item_muisek_vessel)
void HandleDummy(SpellEffIndex)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_necrotic_touch)
PrepareSpellScript(spell_item_net_o_matic)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_nigh_invulnerability)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
void HandlePeriodicDummy(AuraEffect const *effect)
PrepareAuraScript(spell_item_nitro_boosts_backfire)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_nitro_boosts)
PrepareSpellScript(spell_item_noggenfogger_elixir)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareAuraScript(spell_item_party_time)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_item_pendant_of_the_violet_eye)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_persistent_shield)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_pet_healing)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleScript(SpellEffIndex effIndex)
PrepareSpellScript(spell_item_piccolo_of_the_flaming_fire)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_poultryizer)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_item_power_circle)
bool CheckCaster(Unit *target)
PrepareSpellScript(spell_item_pygmy_oil)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_red_rider_air_rifle)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_refocus)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_rocket_boots)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
SpellCastResult CheckCast()
void HandleHeal(SpellEffIndex)
PrepareSpellScript(spell_item_runic_healing_injector)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_savory_deviate_delight)
PrepareAuraScript(spell_item_shadowmourne_soul_fragment)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnStackChange(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_item_shadowmourne)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleProc(ProcEventInfo &procInfo)
PrepareAuraScript(spell_item_shadows_fate)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_shard_of_the_scale_AuraScript)
AuraScript * GetAuraScript() const override
spell_item_shard_of_the_scale(char const *ScriptName)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_six_demon_bag)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_soul_preserver)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_sunwell_neck_AuraScript)
spell_item_sunwell_neck(char const *ScriptName)
AuraScript * GetAuraScript() const override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_swift_hand_justice_dummy)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_taunt_flag_targeting)
void HandleDummy(SpellEffIndex)
void FilterTargets(std::list< WorldObject * > &targets)
PrepareAuraScript(spell_item_the_eye_of_diminution)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_item_thrallmar_and_honor_hold_favor)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void TriggerEmote(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_titanium_seal_of_dalaran_catch)
void TriggerEmote(SpellEffIndex)
void RelocateHeight(SpellDestination &dest)
PrepareSpellScript(spell_item_titanium_seal_of_dalaran_toss)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_item_totem_of_flowing_water)
void HandleTargets(std::list< WorldObject * > &targetList)
PrepareSpellScript(spell_item_toy_train_set_pulse)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_trigger_spell_SpellScript)
spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId)
SpellScript * GetSpellScript() const override
spell_item_trigger_spell(char const *name, uint32 triggeredSpellId)
PrepareAuraScript(spell_item_trinket_stack_AuraScript)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
spell_item_trinket_stack_AuraScript(uint32 stackSpell, uint32 triggerSpell)
spell_item_trinket_stack(char const *scriptName, uint32 stackSpell, uint32 triggerSpell)
AuraScript * GetAuraScript() const override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_item_ultrasafe_transporter)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_underbelly_elixir)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_universal_remote)
void HandleDummy(SpellEffIndex)
PrepareAuraScript(spell_item_unsated_craving)
bool CheckProc(ProcEventInfo &procInfo)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_item_unusual_compass)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_item_valanyr_hammer_of_ancient_kings)
PrepareSpellScript(spell_item_vanquished_clutches)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_item_worn_troll_dice)
void HandleScript(SpellEffIndex)
spell_item_zandalarian_charm_AuraScript(uint32 SpellId)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleStackDrop(AuraEffect const *, ProcEventInfo &)
PrepareAuraScript(spell_item_zandalarian_charm_AuraScript)
bool Validate(SpellInfo const *) override
AuraScript * GetAuraScript() const override
spell_item_zandalarian_charm(char const *ScriptName, uint32 SpellId)
void HandleTriggerSpell(AuraEffect const *)
PrepareAuraScript(spell_magic_eater_food)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
void RandomResize(C &container, std::size_t requestedSize)
@ SPELL_DARKMOON_CARD_STRENGTH
@ SPELL_DARKMOON_CARD_SPIRIT
@ SPELL_DARKMOON_CARD_AGILITY
@ SPELL_DARKMOON_CARD_INTELLECT
@ SPELL_GNOMISH_DEATH_RAY_SELF
@ SPELL_GNOMISH_DEATH_RAY_TARGET
TitaniumSealOfDalaranTexts
@ TEXT_TSOD_FLIPPED_HEADS
@ TEXT_TSOD_FLIPPED_TAILS
@ SPELL_SCROLL_OF_RECALL_III
@ SPELL_SCROLL_OF_RECALL_FAIL_ALLIANCE_1
@ SPELL_SCROLL_OF_RECALL_I
@ SPELL_SCROLL_OF_RECALL_II
@ SPELL_SCROLL_OF_RECALL_FAIL_HORDE_1
@ SPELL_INVIGORATION_RP_HERO
@ SPELL_INVIGORATION_MANA
@ SPELL_INVIGORATION_ENERGY_HERO
@ SPELL_INVIGORATION_MANA_HERO
@ SPELL_INVIGORATION_RAGE_HERO
@ SPELL_INVIGORATION_RAGE
@ SPELL_INVIGORATION_ENERGY
@ SPELL_PROTECTION_OF_ANCIENT_KINGS
@ SPELL_NITRO_BOOSTS_SUCCESS
@ SPELL_NITRO_BOOSTS_PARACHUTE
@ SPELL_NITRO_BOOSTS_BACKFIRE
ThrallmarAndHonorHoldFavor
@ SPELL_BUFFBOT_BUFF_EFFECT
@ SPELL_FLASK_OF_THE_NORTH_SP
@ SPELL_FLASK_OF_THE_NORTH_STR
@ SPELL_FLASK_OF_THE_NORTH_AP
@ SPELL_DARKMOON_CARD_ILLUSION
@ SPELL_FORCEFIELD_COLLAPSE
@ SPELL_MECHANICAL_DRAGONLING
@ SPELL_MITHRIL_MECHANICAL_DRAGONLING
@ SPELL_ARCANITE_DRAGONLING
@ SPELL_UNDERBELLY_ELIXIR_TRIGGERED2
@ SPELL_UNDERBELLY_ELIXIR_TRIGGERED1
@ SPELL_UNDERBELLY_ELIXIR_TRIGGERED3
@ SPELL_POULTRYIZER_SUCCESS
@ SPELL_POULTRYIZER_BACKFIRE
@ SPELL_MANA_DRAIN_ENERGIZE
@ SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1
@ SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2
@ SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3
@ SPELL_HEALING_TOUCH_MANA
@ SPELL_GOBLIN_JUMPER_CABLES_XL_FAIL
@ SPELL_GOBLIN_JUMPER_CABLES_FAIL
@ SPELL_SWIFT_HAND_OF_JUSTICE_HEAL
@ SPELL_ROCKET_BOOTS_PROC
@ NPC_ABYSSAL_FLAMEBRINGER
@ SPELL_CREATE_DEMON_BROILED_SURPRISE
@ SPELL_LISTENING_TO_MUSIC_CHECK
@ SPELL_LISTENING_TO_MUSIC
@ SPELL_GNOMISH_MIND_CONTROL_CAP
@ ROLL_CHANCE_NO_BACKFIRE
@ SPELL_LESSER_HEALING_WAVE_MANA
@ SPELL_ITEM_NECROTIC_TOUCH_PROC
@ SPELL_RESTLESS_STRENGTH_AURA_STACK
@ SPELL_UNSTABLE_POWER_AURA_STACK
@ SPELL_CREATE_FORTUNE_10
@ SPELL_CREATE_FORTUNE_19
@ SPELL_CREATE_FORTUNE_20
@ SPELL_CREATE_FORTUNE_17
@ SPELL_CREATE_FORTUNE_12
@ SPELL_CREATE_FORTUNE_18
@ SPELL_CREATE_FORTUNE_16
@ SPELL_CREATE_FORTUNE_13
@ SPELL_CREATE_FORTUNE_15
@ SPELL_CREATE_FORTUNE_14
@ SPELL_CREATE_FORTUNE_11
@ SPELL_AIR_RIFLE_SHOOT_SELF
@ SPELL_AIR_RIFLE_HOLD_VISUAL
@ SPELL_MOBILITY_MALFUNCTION
@ MODEL_CLASS_MAIL_FEMALE
@ MODEL_CLASS_LEATHER_FEMALE
@ MODEL_CLASS_CLOTH_FEMALE
@ MODEL_CLASS_LEATHER_MALE
@ MODEL_CLASS_PLATE_FEMALE
@ SPELL_SUMMON_FURIOUS_MR_PINCHY
@ SPELL_TINY_MAGICAL_CRAWDAD
@ SPELL_SUMMON_MIGHTY_MR_PINCHY
@ SPELL_MR_PINCHYS_BLESSING
@ SPELL_COMPLETE_VULNERABILITY
@ SPELL_NIGH_INVULNERABILITY
@ SPELL_FORCE_CAST_SUMMON_GNOME_SOUL
void AddSC_item_spell_scripts()
@ SPELL_TRANSFORM_ALLIANCE
@ SPELL_TRANSPORTER_MALFUNCTION_CHICKEN
@ SPELL_TRANSPORTER_MALFUNCTION_SMALLER
@ SPELL_TRANSPORTER_MALFUNCTION_FIRE
@ SPELL_TRANSPORTER_MALFUNCTION_BIGGER
@ SPELL_DEATH_CHOICE_HEROIC_AURA
@ SPELL_DEATH_CHOICE_HEROIC_STRENGTH
@ SPELL_DEATH_CHOICE_NORMAL_AURA
@ SPELL_DEATH_CHOICE_NORMAL_STRENGTH
@ SPELL_DEATH_CHOICE_NORMAL_AGILITY
@ SPELL_DEATH_CHOICE_HEROIC_AGILITY
FateRuneOfUnsurpassedVigor
@ SPELL_UNSURPASSED_VIGOR
@ SPELL_RAPTOR_CAPTURE_CREDIT
@ SPELL_SOUL_PRESERVER_PALADIN
@ SPELL_SOUL_PRESERVER_SHAMAN
@ SPELL_SOUL_PRESERVER_DRUID
@ SPELL_SOUL_PRESERVER_PRIEST
@ SPELL_PERSONALIZED_WEATHER2
@ SPELL_PERSONALIZED_WEATHER1
@ SPELL_PERSONALIZED_WEATHER4
@ SPELL_PERSONALIZED_WEATHER3
@ SPELL_ALCHEMISTS_STONE_EXTRA_MANA
@ SPELL_ALCHEMISTS_STONE_EXTRA_HEAL
@ SPELL_CAPTURE_CHICKEN_ESCAPE
@ SPELL_AGILITY_OF_THE_VRYKUL_HERO
@ SPELL_STRENGTH_OF_THE_TAUNKA_HERO
@ SPELL_POWER_OF_THE_TAUNKA
@ SPELL_POWER_OF_THE_TAUNKA_HERO
@ SPELL_SPEED_OF_THE_VRYKUL
@ SPELL_STRENGTH_OF_THE_TAUNKA
@ SPELL_AIM_OF_THE_IRON_DWARVES
@ SPELL_SPEED_OF_THE_VRYKUL_HERO
@ SPELL_AIM_OF_THE_IRON_DWARVES_HERO
@ SPELL_AGILITY_OF_THE_VRYKUL
@ SPELL_SHADOWMOURNE_VISUAL_HIGH
@ SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF
@ SPELL_SHADOWMOURNE_SOUL_FRAGMENT
@ SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE
@ SPELL_SHADOWMOURNE_VISUAL_LOW
@ SPELL_MANIFEST_ANGER_OFF_HAND
@ SPELL_MANIFEST_ANGER_MAIN_HAND
@ SPELL_PURIFIED_CAUTERIZING_HEAL
@ SPELL_PURIFIED_SEARING_FLAMES
@ SPELL_SHINY_SEARING_FLAMES
@ SPELL_SHINY_CAUTERIZING_HEAL
@ SPELL_PERSISTENT_SHIELD_TRIGGERED
@ SPELL_CHARM_WITCH_DOCTOR_PROC
@ SPELL_BROOD_AFFLICTION_BRONZE
@ SPELL_MALFUNCTION_EXPLOSION
@ SPELL_SUMMON_GOBLIN_BOMB
@ SPELL_BLESSING_OF_FORGOTTEN_KINGS
@ SPELL_MARK_OF_CONQUEST_ENERGIZE
@ SPELL_SUMMON_FELHOUND_MINION
@ SPELL_PYGMY_OIL_SMALLER_AURA
@ SPELL_PYGMY_OIL_PYGMY_AURA
@ SPELL_NET_O_MATIC_TRIGGERED2
@ SPELL_NET_O_MATIC_TRIGGERED1
@ SPELL_NET_O_MATIC_TRIGGERED3
@ SPELL_LEVIROTH_SELF_IMPALE
std::array< uint32, 20 > const CreateFortuneSpells
@ SPELL_LIGHTNING_CAPACITOR_AURA
@ SPELL_THUNDER_CAPACITOR_AURA
@ SPELL_TOC25_CASTER_TRINKET_HEROIC_TRIGGER
@ SPELL_LIGHTNING_CAPACITOR_TRIGGER
@ SPELL_TOC25_CASTER_TRINKET_HEROIC_STACK
@ SPELL_TOC25_CASTER_TRINKET_NORMAL_TRIGGER
@ SPELL_TOC25_CASTER_TRINKET_NORMAL_AURA
@ SPELL_THUNDER_CAPACITOR_TRIGGER
@ SPELL_TOC25_CASTER_TRINKET_NORMAL_STACK
@ SPELL_THUNDER_CAPACITOR_STACK
@ SPELL_LIGHTNING_CAPACITOR_STACK
@ SPELL_TOC25_CASTER_TRINKET_HEROIC_AURA
@ SPELL_AERIE_PEAK_PALE_ALE
@ SPELL_DISCERNING_EYE_BEAST
float GetPositionZ() const
void RelocateOffset(Position const &offset)