Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
30 lines
1.9 KiB
Diff
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'],
|