diff options
| author | Nathan Handley <NathanHandley@users.noreply.github.com> | 2024-02-09 03:27:02 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-09 06:27:02 -0300 |
| commit | 425a490a7be2ab7bef02d50a45fe17254179bb3b (patch) | |
| tree | df093384dd9abe157dfe59afd98136f997a1dcd9 /src/server/game/Scripting/ScriptDefines | |
| parent | ed53ac2febf8cc6009e55150e307a5025df2d8b6 (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.cpp | 15 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/PlayerScript.h | 2 |
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. * |
