Files
EscapistsReintroduced/docs/evidence/convoy-fixture-admission-2026-10-02/convoy-fixture.patch
T
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

30 lines
1.9 KiB
Diff

--- a/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c
+++ b/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c
@@ -726,11 +726,13 @@
{
DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false);
string convoyOutcome; System.GetCLIParam("errSmokeOutcome", convoyOutcome);
+ // Isolate this legacy finite-convoy fixture before prison escape can start
+ // unrelated opening hunters. Stop preserves already-created crew bodies.
+ if (ERR_HQ.Get().Hunters()) ERR_HQ.Get().Hunters().Stop();
// Both variants await HQ/mortar ticks, enabled by normal prison escape.
if (!ERR_Check(UnlockPrison(m_ERRSmokePlayer), "convoy fixture unlocks prison to start normal mission AI")) return;
if (convoyOutcome == "supply-convoys")
{
- if (ERR_HQ.Get().Hunters()) ERR_HQ.Get().Hunters().Stop();
m_ERRSmokePlayer.SetOrigin(ERR_Actors.Ground("8800 0 2700"));
PerceivableComponent convoyObserver = PerceivableComponent.Cast(m_ERRSmokePlayer.FindComponent(PerceivableComponent));
if (!ERR_Check(convoyObserver != null, "convoy fixture observer has native perception component")) return;
--- a/tests/test_native_convoy_probe.py
+++ b/tests/test_native_convoy_probe.py
@@ -34,6 +34,9 @@
branch=smoke[smoke.index('if (m_ERRTestConvoy)', smoke.index('if (m_ERRSmokeStep == 0)')):]
branch=branch[:branch.index('m_ERRSmokeStep = 106;')]
assert branch.count('UnlockPrison(m_ERRSmokePlayer)')==1
+# Prevent unrelated opening hunters before the capped legacy convoy is admitted.
+assert branch.count('ERR_HQ.Get().Hunters().Stop()') == 1
+assert branch.index('ERR_HQ.Get().Hunters().Stop()') < branch.index('UnlockPrison(m_ERRSmokePlayer)')
assert branch.index('UnlockPrison(m_ERRSmokePlayer)') < branch.index('if (convoyOutcome == "supply-convoys")')
runner=ROOT/'tools/headless_workbench.py'
for extra in (['--project','core','--rounds','1','--timeout','600'],