diff --git a/src/Ext/Techno/Hooks.Misc.cpp b/src/Ext/Techno/Hooks.Misc.cpp index 4150eb2b1a..0e3209a127 100644 --- a/src/Ext/Techno/Hooks.Misc.cpp +++ b/src/Ext/Techno/Hooks.Misc.cpp @@ -137,6 +137,25 @@ DEFINE_HOOK(0x6B7282, SpawnManagerClass_AI_PromoteSpawns, 0x5) return 0; } +DEFINE_HOOK(0x6B79BF, SpawnManagerClass_AI_CheckRepairDone, 0x5) +{ + enum { ResetTarget = 0x6B79C4, KeepTarget = 0x6B79D3 }; + GET(SpawnManagerClass*, pThis, ESI); + + if (!pThis->Target) + return ResetTarget; + + if (pThis->Owner->CombatDamage(-1) < 0) + { + auto pTarget = abstract_cast(pThis->Target); + + if (pTarget && pTarget->GetHealthPercentage() >= RulesClass::Instance->unknown_double_16F8) + return ResetTarget; + } + + return KeepTarget; +} + #pragma endregion #pragma region WakeAnims