summaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptDefines
diff options
context:
space:
mode:
authorNathan Handley <NathanHandley@users.noreply.github.com>2024-02-09 03:27:02 -0600
committerGitHub <noreply@github.com>2024-02-09 06:27:02 -0300
commit425a490a7be2ab7bef02d50a45fe17254179bb3b (patch)
treedf093384dd9abe157dfe59afd98136f997a1dcd9 /src/server/game/Scripting/ScriptDefines
parented53ac2febf8cc6009e55150e307a5025df2d8b6 (diff)
feat(Core/Unit): New helper HasActivePowerType and script hook OnPlayerHasActivePowerType (#18293)
* Create HasActivePower for script intercept * Replace relevant player-related getPowerType() comparators with HasActivePowerType * Change OnPlayerHasActivePowerType to regular bool instead of optional --------- Co-authored-by: NathanHandley <nathanhandley@protonmail.com>
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
-rw-r--r--src/server/game/Scripting/ScriptDefines/PlayerScript.cpp15
-rw-r--r--src/server/game/Scripting/ScriptDefines/PlayerScript.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp
index ed24656953..c9574106d6 100644
--- a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp
+++ b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp
@@ -1046,6 +1046,21 @@ void ScriptMgr::OnGetMaxSkillValue(Player* player, uint32 skill, int32& result,
});
}
+bool ScriptMgr::OnPlayerHasActivePowerType(Player const* player, Powers power)
+{
+ auto ret = IsValidBoolScript<PlayerScript>([&](PlayerScript* script)
+ {
+ return script->OnPlayerHasActivePowerType(player, power);
+ });
+
+ if (ret && *ret)
+ {
+ return true;
+ }
+
+ return false;
+}
+
void ScriptMgr::OnUpdateGatheringSkill(Player *player, uint32 skillId, uint32 currentLevel, uint32 gray, uint32 green, uint32 yellow, uint32 &gain) {
ExecuteScript<PlayerScript>([&](PlayerScript* script)
{
diff --git a/src/server/game/Scripting/ScriptDefines/PlayerScript.h b/src/server/game/Scripting/ScriptDefines/PlayerScript.h
index 7884743901..68c67fa00a 100644
--- a/src/server/game/Scripting/ScriptDefines/PlayerScript.h
+++ b/src/server/game/Scripting/ScriptDefines/PlayerScript.h
@@ -324,6 +324,8 @@ public:
virtual void OnGetMaxSkillValue(Player* /*player*/, uint32 /*skill*/, int32& /*result*/, bool /*IsPure*/) { }
+ [[nodiscard]] virtual bool OnPlayerHasActivePowerType(Player const* /*player*/, Powers /*power*/) { return false; }
+
/**
* @brief This hook called before gathering skill gain is applied to the character.
*