summaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptDefines
diff options
context:
space:
mode:
authorKJack <kjack@electricnightowl.com>2023-09-28 16:39:57 -0400
committerGitHub <noreply@github.com>2023-09-28 22:39:57 +0200
commitc25d0b38e8c035faf1a550b42c7b67a032e4ab14 (patch)
tree9c395e266fa878d32032c93d584a8248bd0632d8 /src/server/game/Scripting/ScriptDefines
parent2779833768bbe9967006d6d16888dace05b4bcb6 (diff)
feat(Core/GameObject): Implement `OnGameObjectModifyHealth()` hook (#17374)
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
-rw-r--r--src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp b/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp
index 07b614f9c5..54dc08228c 100644
--- a/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp
+++ b/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp
@@ -160,6 +160,21 @@ void ScriptMgr::OnGameObjectDamaged(GameObject* go, Player* player)
}
}
+void ScriptMgr::OnGameObjectModifyHealth(GameObject* go, Unit* attackerOrHealer, int32& change, SpellInfo const* spellInfo)
+{
+ ASSERT(go);
+
+ ExecuteScript<AllGameObjectScript>([&](AllGameObjectScript* script)
+ {
+ script->OnGameObjectModifyHealth(go, attackerOrHealer, change, spellInfo);
+ });
+
+ if (auto tempScript = ScriptRegistry<GameObjectScript>::GetScriptById(go->GetScriptId()))
+ {
+ tempScript->OnModifyHealth(go, attackerOrHealer, change, spellInfo);
+ }
+}
+
void ScriptMgr::OnGameObjectLootStateChanged(GameObject* go, uint32 state, Unit* unit)
{
ASSERT(go);