diff options
| author | KJack <kjack@electricnightowl.com> | 2023-09-28 16:39:57 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-28 22:39:57 +0200 |
| commit | c25d0b38e8c035faf1a550b42c7b67a032e4ab14 (patch) | |
| tree | 9c395e266fa878d32032c93d584a8248bd0632d8 /src/server/game/Scripting/ScriptDefines | |
| parent | 2779833768bbe9967006d6d16888dace05b4bcb6 (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.cpp | 15 |
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); |
