aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellScript.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-05-13 00:38:09 +0200
committerShauren <shauren.trinity@gmail.com>2021-05-13 00:38:09 +0200
commit1a7779a6e6464d9bc5b367e02820213edd60f704 (patch)
tree75de5e4d827fdecc77388bbcdd5ad39d68c5b0ad /src/server/game/Spells/SpellScript.h
parent1b39612b333f8758af8e60b77c58f876e737e5d5 (diff)
Core/Spells: Expose number of targets selected for each spell effect to scripts to allow implementing spells that do something depending on number of targets hit
Diffstat (limited to 'src/server/game/Spells/SpellScript.h')
-rw-r--r--src/server/game/Spells/SpellScript.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Spells/SpellScript.h b/src/server/game/Spells/SpellScript.h
index 7325f75b3f6..fc665f0947a 100644
--- a/src/server/game/Spells/SpellScript.h
+++ b/src/server/game/Spells/SpellScript.h
@@ -181,9 +181,6 @@ enum SpellScriptHookType
#define HOOK_SPELL_HIT_START SPELL_SCRIPT_HOOK_EFFECT_HIT
#define HOOK_SPELL_HIT_END SPELL_SCRIPT_HOOK_AFTER_HIT + 1
-#define HOOK_SPELL_START SPELL_SCRIPT_HOOK_EFFECT
-#define HOOK_SPELL_END SPELL_SCRIPT_HOOK_CHECK_CAST + 1
-#define HOOK_SPELL_COUNT HOOK_SPELL_END - HOOK_SPELL_START
class TC_GAME_API SpellScript : public _SpellScript
{
@@ -320,6 +317,7 @@ class TC_GAME_API SpellScript : public _SpellScript
void _PrepareScriptCall(SpellScriptHookType hookType);
void _FinishScriptCall();
bool IsInCheckCastHook() const;
+ bool IsAfterTargetSelectionPhase() const;
bool IsInTargetHook() const;
bool IsInHitPhase() const;
bool IsInEffectHook() const;
@@ -444,6 +442,11 @@ class TC_GAME_API SpellScript : public _SpellScript
// returns: Item which was selected as an explicit spell target or NULL if there's no target
Item* GetExplTargetItem() const;
+ // methods usable only after spell targets have been fully selected
+ int64 GetUnitTargetCountForEffect(SpellEffIndex effect) const;
+ int64 GetGameObjectTargetCountForEffect(SpellEffIndex effect) const;
+ int64 GetItemTargetCountForEffect(SpellEffIndex effect) const;
+
// methods useable only during spell hit on target, or during spell launch on target:
// returns: target of current effect if it was Unit otherwise NULL
Unit* GetHitUnit() const;