71#define SPELL_CHANNEL_UPDATE_INTERVAL (1 * IN_MILLISECONDS)
72#define MAX_SPELL_RANGE_TOLERANCE 3.0f
73#define TRAJECTORY_MISSILE_SIZE 3.0f
234typedef std::vector<std::pair<uint32, ObjectGuid>>
DispelList;
245 void EffectDistract();
246 void EffectSchoolDMG();
247 void EffectEnvironmentalDMG();
248 void EffectInstaKill();
250 void EffectTeleportUnits();
251 void EffectTeleportUnitsWithVisualLoadingScreen();
252 void EffectApplyAura();
253 void EffectSendEvent();
254 void EffectPowerBurn();
255 void EffectPowerDrain();
258 void EffectTeleportToReturnPoint();
259 void EffectIncreaseCurrencyCap();
260 void EffectHealthLeech();
261 void EffectQuestComplete();
262 void EffectCreateItem();
263 void EffectCreateItem2();
264 void EffectCreateRandomItem();
265 void EffectPersistentAA();
266 void EffectEnergize();
267 void EffectOpenLock();
268 void EffectSummonChangeItem();
269 void EffectProficiency();
270 void EffectSummonType();
271 void EffectLearnSpell();
273 void EffectDualWield();
274 void EffectPickPocket();
275 void EffectAddFarsight();
276 void EffectUntrainTalents();
277 void EffectHealMechanical();
279 void EffectJumpDest();
280 void EffectLeapBack();
281 void EffectQuestClear();
282 void EffectTeleUnitsFaceCaster();
283 void EffectLearnSkill();
284 void EffectPlayMovie();
285 void EffectTradeSkill();
286 void EffectEnchantItemPerm();
287 void EffectEnchantItemTmp();
288 void EffectTameCreature();
289 void EffectSummonPet();
290 void EffectLearnPetSpell();
291 void EffectWeaponDmg();
292 void EffectForceCast();
293 void EffectTriggerSpell();
294 void EffectTriggerMissileSpell();
296 void EffectHealMaxHealth();
297 void EffectInterruptCast();
298 void EffectSummonObjectWild();
299 void EffectScriptEffect();
300 void EffectSanctuary();
303 void EffectSummonPlayer();
304 void EffectActivateObject();
305 void EffectApplyGlyph();
306 void EffectEnchantHeldItem();
307 void EffectSummonObject();
308 void EffectChangeRaidMarker();
309 void EffectResurrect();
313 void EffectTransmitted();
314 void EffectDisEnchant();
315 void EffectInebriate();
316 void EffectFeedPet();
317 void EffectDismissPet();
318 void EffectReputation();
319 void EffectForceDeselect();
320 void EffectSelfResurrect();
321 void EffectSkinning();
323 void EffectChargeDest();
324 void EffectProspecting();
325 void EffectMilling();
326 void EffectRenamePet();
327 void EffectSendTaxi();
328 void EffectKnockBack();
329 void EffectPullTowards();
330 void EffectPullTowardsDest();
331 void EffectDispelMechanic();
332 void EffectResurrectPet();
333 void EffectDestroyAllTotems();
334 void EffectDurabilityDamage();
337 void EffectDurabilityDamagePCT();
338 void EffectModifyThreatPercent();
339 void EffectResurrectNew();
340 void EffectAddExtraAttacks();
341 void EffectSpiritHeal();
342 void EffectSkinPlayerCorpse();
343 void EffectStealBeneficialBuff();
344 void EffectUnlearnSpecialization();
345 void EffectHealPct();
346 void EffectEnergizePct();
347 void EffectTriggerRitualOfSummoning();
348 void EffectSummonRaFFriend();
349 void EffectUnlockGuildVaultTab();
350 void EffectKillCreditPersonal();
351 void EffectKillCredit();
352 void EffectQuestFail();
353 void EffectQuestStart();
354 void EffectRedirectThreat();
355 void EffectGameObjectDamage();
356 void EffectGameObjectRepair();
357 void EffectGameObjectSetDestructionState();
358 void EffectCreateTamedPet();
359 void EffectDiscoverTaxi();
360 void EffectTitanGrip();
361 void EffectEnchantItemPrismatic();
362 void EffectPlayMusic();
363 void EffectActivateSpec();
364 void EffectPlaySound();
365 void EffectRemoveAura();
366 void EffectDamageFromMaxHealthPCT();
367 void EffectCastButtons();
368 void EffectRechargeItem();
369 void EffectGiveCurrency();
370 void EffectSummonPersonalGameObject();
371 void EffectResurrectWithAura();
372 void EffectCreateAreaTrigger();
373 void EffectRemoveTalent();
374 void EffectDestroyItem();
375 void EffectLearnGarrisonBuilding();
376 void EffectRemoveAuraBySpellLabel();
377 void EffectCreateGarrison();
378 void EffectCreateConversation();
379 void EffectCancelConversation();
380 void EffectAddGarrisonFollower();
381 void EffectActivateGarrisonBuilding();
382 void EffectGrantBattlePetLevel();
383 void EffectGiveExperience();
384 void EffectGiveRestedExperience();
385 void EffectHealBattlePetPct();
386 void EffectEnableBattlePets();
387 void EffectChangeBattlePetQuality();
388 void EffectLaunchQuestChoice();
389 void EffectUncageBattlePet();
390 void EffectCreateHeirloomItem();
391 void EffectUpgradeHeirloom();
392 void EffectApplyEnchantIllusion();
393 void EffectUpdatePlayerPhase();
394 void EffectUpdateZoneAurasAndPhases();
395 void EffectGiveArtifactPower();
396 void EffectGiveArtifactPowerNoBonus();
397 void EffectPlaySceneScriptPackage();
398 void EffectCreateSceneObject();
399 void EffectCreatePrivateSceneObject();
400 void EffectPlayScene();
401 void EffectGiveHonor();
402 void EffectJumpCharge();
403 void EffectLearnTransmogSet();
404 void EffectRespecAzeriteEmpoweredItem();
405 void EffectLearnAzeriteEssencePower();
406 void EffectCreatePrivateConversation();
407 void EffectSendChatMessage();
408 void EffectGrantBattlePetExperience();
409 void EffectLearnTransmogIllusion();
410 void EffectModifyAuraStacks();
411 void EffectModifyCooldown();
412 void EffectModifyCooldowns();
413 void EffectModifyCooldownsByCategory();
414 void EffectModifySpellCharges();
415 void EffectCreateTraitTreeConfig();
416 void EffectChangeActiveCombatTraitConfig();
424 void SelectExplicitTargets();
426 void SelectSpellTargets();
441 void SelectEffectTypeImplicitTargets(
SpellEffectInfo const& spellEffectInfo);
444 template<
class SEARCHER>
void SearchTargets(SEARCHER& searcher,
uint32 containerMask,
WorldObject* referer,
Position const* pos,
float radius);
454 void update(
uint32 difftime);
455 void cast(
bool skipCheck =
false);
459 void TakeRunePower(
bool didHit);
467 void handle_immediate();
470 void _handle_immediate_phase();
471 void _handle_finish_phase();
481 bool CheckSpellCancelsAuraEffect(
AuraType auraType,
int32* param1)
const;
482 bool CheckSpellCancelsCharm(
int32* param1)
const;
483 bool CheckSpellCancelsStun(
int32* param1)
const;
484 bool CheckSpellCancelsSilence(
int32* param1)
const;
485 bool CheckSpellCancelsPacify(
int32* param1)
const;
486 bool CheckSpellCancelsFear(
int32* param1)
const;
487 bool CheckSpellCancelsConfuse(
int32* param1)
const;
488 bool CheckSpellCancelsNoActions(
int32* param1)
const;
493 void DelayedChannel();
497 void DoCreateItem(
uint32 itemId,
ItemContext context = ItemContext::NONE, std::vector<int32>
const& bonusListIDs = std::vector<int32>());
502 bool CanAutoCast(
Unit* target);
510 void SendSpellStart();
512 void SendSpellCooldown();
513 void SendSpellExecuteLog();
533 void SendSpellInterruptLog(
Unit* victim,
uint32 spellId);
534 void SendInterrupted(
uint8 result);
535 void SendChannelUpdate(
uint32 time);
536 void SendChannelStart(
uint32 duration);
537 void SendResurrectRequest(
Player* target);
540 void HandleThreatSpells();
596 void ReSetTimer() { m_timer = m_casttime > 0 ? m_casttime : 0; }
597 bool IsTriggered()
const;
598 bool IsIgnoringCooldowns()
const;
599 bool IsFocusDisabled()
const;
600 bool IsProcDisabled()
const;
601 bool IsChannelActive()
const;
602 bool IsAutoActionResetSpell()
const;
603 bool IsPositive()
const;
607 bool IsDeletable()
const {
return !m_referencedFromCurrentSpell && !m_executedCurrently; }
614 uint64 CalculateDelayMomentForDst(
float launchDelay)
const;
615 void RecalculateDelayMomentForDst();
619 bool IsNeedSendToClient()
const;
628 std::vector<SpellPowerCost>
const&
GetPowerCost()
const {
return m_powerCost; }
629 bool HasPowerTypeCost(
Powers power)
const;
632 bool UpdatePointers();
634 void CleanupTargetList();
650 void CallScriptOnResistAbsorbCalculateHandlers(
DamageInfo const& damageInfo,
uint32& resistAmount,
int32& absorbAmount);
653 bool HasGlobalCooldown()
const;
654 void TriggerGlobalCooldown();
655 void CancelGlobalCooldown();
656 void _cast(
bool skipCheck =
false);
658 std::pair<float, float> GetMinMaxRange(
bool strict)
const;
682 if (m_delayAtDamageCount >= 2)
685 ++m_delayAtDamageCount;
714 Unit* GetUnitCasterForEffectHandlers()
const;
731 void prepareDataForTriggerSystem();
752 void PreprocessTarget(
Spell* spell)
override;
754 void DoDamageAndTriggers(
Spell* spell)
override;
764 bool IsAlive =
false;
771 bool Positive =
true;
775 Unit* _spellHitTarget =
nullptr;
776 bool _enablePVP =
false;
807 template <
class Container>
808 void DoProcessTargetContainer(Container& targetContainer);
812 void AddUnitTarget(
Unit* target,
uint32 effectMask,
bool checkIfValid =
true,
bool implicit =
true,
Position const* losPosition =
nullptr);
814 void AddItemTarget(
Item* item,
uint32 effectMask);
815 void AddCorpseTarget(
Corpse* target,
uint32 effectMask);
818 void PreprocessSpellLaunch(
TargetInfo& targetInfo);
822 void DoTriggersOnSpellHit(
Unit* unit);
823 bool UpdateChanneledTargetList();
824 bool IsValidDeadOrAliveTarget(
Unit const* target)
const;
825 void HandleLaunchPhase();
828 void PrepareTargetProcessing();
829 void FinishTargetProcessing();
833 void CallScriptOnPrecastHandler();
834 void CallScriptBeforeCastHandlers();
835 void CallScriptOnCastHandlers();
836 void CallScriptAfterCastHandlers();
838 int32 CallScriptCalcCastTimeHandlers(
int32 originalCastTime);
842 void CallScriptOnHitHandlers();
843 void CallScriptAfterHitHandlers();
845 void CallScriptCalcCritChanceHandlers(
Unit const* victim,
float& chance);
850 bool CheckScriptEffectImplicitTargets(
uint32 effIndex,
uint32 effIndexToCheck);
856 triggeredSpell(spellInfo), triggeredByAura(auraSpellInfo), chance(procChance) { }
864 bool CanExecuteTriggersOnHit(
Unit* unit,
SpellInfo const* triggeredByAura =
nullptr)
const;
865 void PrepareTriggersExecutedOnHit();
871 void CalculateJumpSpeeds(
SpellEffectInfo const* effInfo,
float dist,
float& speedXY,
float& speedZ);
std::vector< Condition * > ConditionContainer
Definition: ConditionMgr.h:266
Difficulty
Definition: DBCEnums.h:732
ItemContext
Definition: DBCEnums.h:922
#define MAX_SPELL_EFFECTS
Definition: DBCEnums.h:1752
#define TC_GAME_API
Definition: Define.h:124
uint8_t uint8
Definition: Define.h:145
int64_t int64
Definition: Define.h:138
int8_t int8
Definition: Define.h:141
int32_t int32
Definition: Define.h:139
uint64_t uint64
Definition: Define.h:142
uint32_t uint32
Definition: Define.h:143
std::string GetDebugInfo()
Definition: Errors.cpp:157
LootType
Definition: Loot.h:96
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:25
Spells
Definition: PlayerAI.cpp:32
Points
Definition: ScriptedEscortAI.cpp:31
SpellEffIndex
Definition: SharedDefines.h:28
MountResult
Definition: SharedDefines.h:7996
SpellMissInfo
Definition: SharedDefines.h:2729
@ SPELL_MISS_NONE
Definition: SharedDefines.h:2730
SpellSchoolMask
Definition: SharedDefines.h:318
SpellEffectName
Definition: SharedDefines.h:1128
WeaponAttackType
Definition: SharedDefines.h:6786
SpellCustomErrors
Definition: SharedDefines.h:1766
@ SPELL_CUSTOM_ERROR_NONE
Definition: SharedDefines.h:1767
Powers
Definition: SharedDefines.h:276
DiminishingGroup
Definition: SharedDefines.h:5961
@ DIMINISHING_NONE
Definition: SharedDefines.h:5962
SkillType
Definition: SharedDefines.h:5279
SpellCastResult
Definition: SharedDefines.h:1439
@ SPELL_CAST_OK
Definition: SharedDefines.h:1762
AuraType
Definition: SpellAuraDefines.h:93
TriggerCastFlags
Definition: SpellDefines.h:240
SpellValueMod
Definition: SpellDefines.h:192
SpellTargetCheckTypes
Definition: SpellInfo.h:81
SpellTargetObjectTypes
Definition: SpellInfo.h:65
ProcFlagsHit
Definition: SpellMgr.h:270
SpellCastSource
Definition: Spell.h:138
@ SPELL_CAST_SOURCE_AURA
Definition: Spell.h:144
@ SPELL_CAST_SOURCE_SPELL
Definition: Spell.h:145
@ SPELL_CAST_SOURCE_PET
Definition: Spell.h:143
@ SPELL_CAST_SOURCE_PLAYER
Definition: Spell.h:139
@ SPELL_CAST_SOURCE_PASSIVE
Definition: Spell.h:142
@ SPELL_CAST_SOURCE_NORMAL
Definition: Spell.h:140
@ SPELL_CAST_SOURCE_ITEM
Definition: Spell.h:141
SpellRangeFlag
Definition: Spell.h:149
@ SPELL_RANGE_MELEE
Definition: Spell.h:151
@ SPELL_RANGE_RANGED
Definition: Spell.h:152
@ SPELL_RANGE_DEFAULT
Definition: Spell.h:150
std::vector< std::pair< uint32, ObjectGuid > > DispelList
Definition: Spell.h:234
void(Spell::*)() SpellEffectHandlerFn
Definition: Spell.h:972
SpellEffectHandleMode
Definition: Spell.h:227
@ SPELL_EFFECT_HANDLE_LAUNCH_TARGET
Definition: Spell.h:229
@ SPELL_EFFECT_HANDLE_LAUNCH
Definition: Spell.h:228
@ SPELL_EFFECT_HANDLE_HIT
Definition: Spell.h:230
@ SPELL_EFFECT_HANDLE_HIT_TARGET
Definition: Spell.h:231
SpellState
Definition: Spell.h:217
@ SPELL_STATE_DELAYED
Definition: Spell.h:223
@ SPELL_STATE_NULL
Definition: Spell.h:218
@ SPELL_STATE_FINISHED
Definition: Spell.h:221
@ SPELL_STATE_PREPARING
Definition: Spell.h:219
@ SPELL_STATE_CASTING
Definition: Spell.h:220
@ SPELL_STATE_IDLE
Definition: Spell.h:222
static const uint32 SPELL_INTERRUPT_NONPLAYER
Definition: Spell.h:236
SpellCastFlags
Definition: Spell.h:76
@ CAST_FLAG_UNKNOWN_5
Definition: Spell.h:82
@ CAST_FLAG_UNKNOWN_10
Definition: Spell.h:87
@ CAST_FLAG_UNKNOWN_32
Definition: Spell.h:109
@ CAST_FLAG_UNKNOWN_25
Definition: Spell.h:102
@ CAST_FLAG_VISUAL_CHAIN
Definition: Spell.h:97
@ CAST_FLAG_ADJUST_MISSILE
Definition: Spell.h:95
@ CAST_FLAG_UNKNOWN_8
Definition: Spell.h:85
@ CAST_FLAG_HEAL_PREDICTION
Definition: Spell.h:108
@ CAST_FLAG_UNKNOWN_9
Definition: Spell.h:86
@ CAST_FLAG_UNKNOWN_3
Definition: Spell.h:80
@ CAST_FLAG_UNKNOWN_26
Definition: Spell.h:103
@ CAST_FLAG_UNKNOWN_11
Definition: Spell.h:88
@ CAST_FLAG_UNKNOWN_30
Definition: Spell.h:107
@ CAST_FLAG_UNKNOWN_4
Definition: Spell.h:81
@ CAST_FLAG_NO_GCD
Definition: Spell.h:96
@ CAST_FLAG_UNKNOWN_23
Definition: Spell.h:100
@ CAST_FLAG_UNKNOWN_16
Definition: Spell.h:93
@ CAST_FLAG_PROJECTILE
Definition: Spell.h:83
@ CAST_FLAG_UNKNOWN_29
Definition: Spell.h:106
@ CAST_FLAG_UNKNOWN_7
Definition: Spell.h:84
@ CAST_FLAG_POWER_LEFT_SELF
Definition: Spell.h:89
@ CAST_FLAG_UNKNOWN_13
Definition: Spell.h:90
@ CAST_FLAG_UNKNOWN_28
Definition: Spell.h:105
@ CAST_FLAG_UNKNOWN_24
Definition: Spell.h:101
@ CAST_FLAG_HAS_TRAJECTORY
Definition: Spell.h:79
@ CAST_FLAG_RUNE_LIST
Definition: Spell.h:99
@ CAST_FLAG_UNKNOWN_14
Definition: Spell.h:91
@ CAST_FLAG_UNKNOWN_15
Definition: Spell.h:92
@ CAST_FLAG_PENDING
Definition: Spell.h:78
@ CAST_FLAG_NONE
Definition: Spell.h:77
@ CAST_FLAG_UNKNOWN_17
Definition: Spell.h:94
@ CAST_FLAG_IMMUNITY
Definition: Spell.h:104
@ CAST_FLAG_UNKNOWN_21
Definition: Spell.h:98
SpellCastFlagsEx
Definition: Spell.h:113
@ CAST_FLAG_EX_UNKNOWN_5
Definition: Spell.h:119
@ CAST_FLAG_EX_UNKNOWN_15
Definition: Spell.h:129
@ CAST_FLAG_EX_UNKNOWN_7
Definition: Spell.h:121
@ CAST_FLAG_EX_UNKNOWN_17
Definition: Spell.h:131
@ CAST_FLAG_EX_UNKNOWN_2
Definition: Spell.h:116
@ CAST_FLAG_EX_UNKNOWN_9
Definition: Spell.h:123
@ CAST_FLAG_EX_UNKNOWN_3
Definition: Spell.h:117
@ CAST_FLAG_EX_USE_TOY_SPELL
Definition: Spell.h:130
@ CAST_FLAG_EX_UNKNOWN_11
Definition: Spell.h:125
@ CAST_FLAG_EX_UNKNOWN_14
Definition: Spell.h:128
@ CAST_FLAG_EX_UNKNOWN_12
Definition: Spell.h:126
@ CAST_FLAG_EX_UNKNOWN_19
Definition: Spell.h:133
@ CAST_FLAG_EX_UNKNOWN_8
Definition: Spell.h:122
@ CAST_FLAG_EX_IGNORE_COOLDOWN
Definition: Spell.h:124
@ CAST_FLAG_EX_UNKNOWN_13
Definition: Spell.h:127
@ CAST_FLAG_EX_UNKNOWN_4
Definition: Spell.h:118
@ CAST_FLAG_EX_UNKNOWN_18
Definition: Spell.h:132
@ CAST_FLAG_EX_UNKNOWN_6
Definition: Spell.h:120
@ CAST_FLAG_EX_UNKNOWN_1
Definition: Spell.h:115
@ CAST_FLAG_EX_NONE
Definition: Spell.h:114
@ CAST_FLAG_EX_UNKNOWN_20
Definition: Spell.h:134
CurrentSpellTypes
Definition: Unit.h:577
PowerType
Definition: VehicleDefines.h:31
Data
Definition: boss_garothi_worldbreaker.cpp:111
Definition: SpellAuraEffects.h:29
Definition: SpellAuras.h:123
Definition: EventProcessor.h:32
Definition: SpellAuras.h:390
Definition: DynamicObject.h:37
Definition: GameObject.h:125
Definition: ObjectGuid.h:258
static ObjectGuid const Empty
Definition: ObjectGuid.h:264
Definition: PathGenerator.h:56
Definition: Player.h:1125
Definition: SpellDefines.h:500
Definition: SpellDefines.h:324
Definition: SpellInfo.h:213
Definition: Spell.cpp:482
Definition: SpellInfo.h:178
Definition: SpellInfo.h:322
Definition: SpellScript.h:227
SpellInfo const * GetSpellInfo() const
Definition: Spell.h:626
std::vector< HitTriggerSpell > HitTriggerSpellList
Definition: Spell.h:866
bool m_fromClient
Definition: Spell.h:550
int8 m_comboPointGain
Definition: Spell.h:588
std::vector< SpellPowerCost > m_powerCost
Definition: Spell.h:672
uint32 m_castFlagsEx
Definition: Spell.h:551
std::vector< SpellScript * > m_loadedScripts
Definition: Spell.h:851
GameObject * gameObjTarget
Definition: Spell.h:705
SpellMissInfo targetMissInfo
Definition: Spell.h:709
bool m_referencedFromCurrentSpell
Definition: Spell.h:696
bool m_canReflect
Definition: Spell.h:675
Unit * m_originalCaster
Definition: Spell.h:666
DynObjAura * _dynObjAura
Definition: Spell.h:716
uint32 m_channelTargetEffectMask
Definition: Spell.h:779
bool m_needComboPoints
Definition: Spell.h:698
uint64 m_delayStart
Definition: Spell.h:690
SpellCastTargets m_targets
Definition: Spell.h:587
void setState(uint32 state)
Definition: Spell.h:495
std::unique_ptr< PathGenerator > m_preGeneratedPath
Definition: Spell.h:890
TriggerCastFlags _triggeredCastFlags
Definition: Spell.h:883
bool IsAutoRepeat() const
Definition: Spell.h:594
int32 damage
Definition: Spell.h:708
SpellEffectHandleMode effectHandleMode
Definition: Spell.h:711
int32 m_channeledDuration
Definition: Spell.h:674
uint32 Id
Definition: Spell.h:570
std::vector< TargetInfo > m_UniqueTargetInfo
Definition: Spell.h:778
bool IsInterruptable() const
Definition: Spell.h:609
void SetExecutedCurrently(bool yes)
Definition: Spell.h:610
ObjectGuid m_originalCastId
Definition: Spell.h:549
uint8 m_delayAtDamageCount
Definition: Spell.h:679
uint64 m_delayMoment
Definition: Spell.h:691
uint32 SpecializationId
Definition: Spell.h:561
WeaponAttackType m_attackType
Definition: Spell.h:670
bool m_immediateHandled
Definition: Spell.h:693
uint32 m_spellState
Definition: Spell.h:879
uint32 AbilityId
Definition: Spell.h:571
std::any m_customArg
Definition: Spell.h:585
ObjectGuid m_originalCasterGUID
Definition: Spell.h:664
WorldObject *const m_caster
Definition: Spell.h:660
int32 GetCastTime() const
Definition: Spell.h:593
bool IsDeletable() const
Definition: Spell.h:607
int32 m_timer
Definition: Spell.h:880
int32 m_casttime
Definition: Spell.h:673
Item * itemTarget
Definition: Spell.h:704
uint32 TalentId
Definition: Spell.h:555
float variance
Definition: Spell.h:710
int32 m_damage
Definition: Spell.h:722
std::vector< CorpseTargetInfo > m_UniqueCorpseTargetInfo
Definition: Spell.h:805
uint32 getState() const
Definition: Spell.h:494
bool m_executedCurrently
Definition: Spell.h:697
std::unordered_set< Aura * > UsedSpellMods
Definition: Spell.h:418
ObjectGuid GetOriginalCasterGUID() const
Definition: Spell.h:624
SpellCustomErrors m_customError
Definition: Spell.h:589
Spell(Spell const &right)=delete
std::vector< GOTargetInfo > m_UniqueGOTargetInfo
Definition: Spell.h:788
HitTriggerSpellList m_hitTriggerSpells
Definition: Spell.h:867
uint32 ItemId
Definition: Spell.h:578
int32 m_healing
Definition: Spell.h:723
void SetDelayStart(uint64 m_time)
Definition: Spell.h:612
SpellEffectInfo const * effectInfo
Definition: Spell.h:712
SpellInfo const * m_triggeredByAuraSpell
Definition: Spell.h:888
int32 m_castItemLevel
Definition: Spell.h:547
UnitAura * _spellAura
Definition: Spell.h:715
uint32 m_applyMultiplierMask
Definition: Spell.h:699
Unit * unitTarget
Definition: Spell.h:703
SpellSchoolMask m_spellSchoolMask
Definition: Spell.h:669
WorldObject * GetCaster() const
Definition: Spell.h:623
SpellEvent * _spellEvent
Definition: Spell.h:882
uint32 SpellId
Definition: Spell.h:558
Unit * GetOriginalCaster() const
Definition: Spell.h:625
Corpse * m_corpseTarget
Definition: Spell.h:706
void ReSetTimer()
Definition: Spell.h:596
void SetAutoRepeat(bool rep)
Definition: Spell.h:595
WorldLocation * destTarget
Definition: Spell.h:707
Spell ** m_selfContainer
Definition: Spell.h:638
uint32 GarrMissionId
Definition: Spell.h:575
std::vector< SpellPowerCost > const & GetPowerCost() const
Definition: Spell.h:628
bool IsTriggeredByAura(SpellInfo const *auraSpellInfo) const
Definition: Spell.h:605
void SetReferencedFromCurrent(bool yes)
Definition: Spell.h:608
bool IsDelayableNoMore()
Definition: Spell.h:680
uint64 GetDelayStart() const
Definition: Spell.h:611
ProcFlagsInit m_procVictim
Definition: Spell.h:729
void SetRuneState(uint8 value)
Definition: Spell.h:617
Item * m_CastItem
Definition: Spell.h:544
std::vector< SpellLogEffect > _executeLogEffects
Definition: Spell.h:892
uint32 m_castItemEntry
Definition: Spell.h:546
uint64 GetDelayMoment() const
Definition: Spell.h:613
UsedSpellMods m_appliedMods
Definition: Spell.h:591
SpellValue *const m_spellValue
Definition: Spell.h:662
uint8 GetRuneState() const
Definition: Spell.h:616
int32 GetTimer() const
Definition: Spell.h:642
std::vector< ItemTargetInfo > m_UniqueItemInfo
Definition: Spell.h:796
SpellInfo const * GetTriggeredByAuraSpell() const
Definition: Spell.h:640
ProcFlagsInit m_procAttacker
Definition: Spell.h:728
ObjectGuid m_castItemGUID
Definition: Spell.h:545
SpellCastVisual m_SpellVisual
Definition: Spell.h:586
GameObject * focusObject
Definition: Spell.h:719
ProcFlagsHit m_hitMask
Definition: Spell.h:730
Spell & operator=(Spell const &right)=delete
ObjectGuid m_castId
Definition: Spell.h:548
bool m_launchHandled
Definition: Spell.h:692
SpellInfo const *const m_spellInfo
Definition: Spell.h:543
std::vector< T > & GetExecuteLogEffectTargets(SpellEffectName effect, Optional< std::vector< T > > SpellLogEffect::*member)
Definition: Spell.h:516
uint8 m_runesState
Definition: Spell.h:677
bool m_autoRepeat
Definition: Spell.h:676
Definition: SpellAuras.h:366
Definition: Position.h:164
Definition: AsioHacksFwd.h:53
void SelectRandomInjuredTargets(std::list< WorldObject * > &targets, size_t maxTargets, bool prioritizePlayers)
Definition: Spell.cpp:9020
Definition: GameObjectAI.h:36
Definition: Position.h:28
Definition: SpellDefines.h:491
Definition: SpellDefines.h:308
int32 Amount
Definition: Spell.h:173
int32 ItemID
Definition: Spell.h:172
ObjectGuid Victim
Definition: Spell.h:171
int32 ItemID
Definition: Spell.h:188
ObjectGuid Victim
Definition: Spell.h:178
ObjectGuid Victim
Definition: Spell.h:157
float Amplitude
Definition: Spell.h:160
int32 ItemID
Definition: Spell.h:183
Optional< std::vector< SpellLogEffectTradeSkillItemParams > > TradeSkillTargets
Definition: Spell.h:199
Optional< std::vector< SpellLogEffectFeedPetParams > > FeedPetTargets
Definition: Spell.h:200
Optional< std::vector< SpellLogEffectPowerDrainParams > > PowerDrainTargets
Definition: Spell.h:195
Optional< std::vector< SpellLogEffectDurabilityDamageParams > > DurabilityDamageTargets
Definition: Spell.h:197
int32 Effect
Definition: Spell.h:193
Optional< std::vector< SpellLogEffectGenericVictimParams > > GenericVictimTargets
Definition: Spell.h:198
Optional< std::vector< SpellLogEffectExtraAttacksParams > > ExtraAttacksTargets
Definition: Spell.h:196
Definition: SpellInfo.h:316
float RadiusMod
Definition: Spell.h:209
Optional< int32 > Duration
Definition: Spell.h:213
int32 EffectBasePoints[MAX_SPELL_EFFECTS]
Definition: Spell.h:206
uint32 CustomBasePointsMask
Definition: Spell.h:207
uint32 MaxAffectedTargets
Definition: Spell.h:208
int32 AuraStackAmount
Definition: Spell.h:210
float CriticalChance
Definition: Spell.h:212
float DurationMul
Definition: Spell.h:211
ObjectGuid TargetGUID
Definition: Spell.h:802
ObjectGuid TargetGUID
Definition: Spell.h:785
SpellInfo const * triggeredSpell
Definition: Spell.h:858
HitTriggerSpell(SpellInfo const *spellInfo, SpellInfo const *auraSpellInfo, int32 procChance)
Definition: Spell.h:855
int32 chance
Definition: Spell.h:861
SpellInfo const * triggeredByAura
Definition: Spell.h:859
virtual void DoTargetSpellHit(Spell *spell, SpellEffectInfo const &spellEffectInfo)=0
virtual void PreprocessTarget(Spell *)
Definition: Spell.h:739
TargetInfoBase()
Definition: Spell.h:746
virtual ~TargetInfoBase()
Definition: Spell.h:747
virtual void DoDamageAndTriggers(Spell *)
Definition: Spell.h:741
ObjectGuid TargetGUID
Definition: Spell.h:756
Definition: DB2Structure.h:3833
Position const * _position
Definition: Spell.h:931
float _range
Definition: Spell.h:930
Position _coneSrc
Definition: Spell.h:940
float _coneAngle
Definition: Spell.h:941
float _lineWidth
Definition: Spell.h:942
float _lineWidth
Definition: Spell.h:962
Position _position
Definition: Spell.h:961
float _range
Definition: Spell.h:920
Position const * _position
Definition: Spell.h:921
WorldObject * _caster
Definition: Spell.h:903
SpellTargetCheckTypes _targetSelectionType
Definition: Spell.h:906
WorldObject * _referer
Definition: Spell.h:904
std::unique_ptr< ConditionSourceInfo > _condSrcInfo
Definition: Spell.h:907
SpellInfo const * _spellInfo
Definition: Spell.h:905
ConditionContainer const * _condList
Definition: Spell.h:908
SpellTargetObjectTypes _objectType
Definition: Spell.h:909
Position const * _position
Definition: Spell.h:952
float _range
Definition: Spell.h:951
Definition: SpellPackets.h:366
Definition: SpellPackets.h:385