Combine Workshop addon and fix prison startup
Merge owned systems into one addon while preserving resource identities. Gate player admission on the replicated prison scene, restore the original framed door, and hold enemy AI until escape. Correct scenario branding and author metadata, include publishing assets, and retain regression and native verification evidence.
This commit is contained in:
@@ -2,10 +2,10 @@
|
||||
import re,os
|
||||
from pathlib import Path
|
||||
from policy_harness import ROOT, body, run
|
||||
intel=ROOT/'addons/intel/Scripts/Game/ERR/ERR_IntelService.c'
|
||||
hq=Path(os.environ.get('ERR_HQ_SOURCE',ROOT/'addons/ai/Scripts/Game/ERR/ERR_HQ.c'))
|
||||
ready=ROOT/'addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c'
|
||||
system=ROOT/'addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c'
|
||||
intel=ROOT/'addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c'
|
||||
hq=Path(os.environ.get('ERR_HQ_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c'))
|
||||
ready=ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c'
|
||||
system=ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c'
|
||||
def adapt(s):
|
||||
s=s.replace('override ', '').replace('protected ', '').replace('null','nullptr')
|
||||
s=re.sub(r'array<([^>]+)> (\w+) = \{\};',r'Array<\1> \2;',s)
|
||||
@@ -40,7 +40,7 @@ assert poll.count('mode.RegisterGroup(group)')==1
|
||||
prepare=body(system,'bool Prepare(')
|
||||
assert 'mode.RegisterGroup(group)' not in prepare
|
||||
assert prepare.index('mode.Own(group)')<prepare.index('m_HQ.RegisterGroup(group)')<prepare.index('m_HQ.ReserveGroup(group)')
|
||||
site=body(ROOT/'addons/core/Scripts/Game/ERR/ERR_SiteService.c','void Activate(')
|
||||
site=body(ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c','void Activate(')
|
||||
assert site.index('m_State != ERR_PrepareResult.READY')<site.index('m_Mode.RegisterGroup(site.Group)')
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
@@ -143,7 +143,7 @@ observer_region=intel_source.split('#ifdef WORKBENCH',1)[1].split('#endif',1)[0]
|
||||
assert 'bool ERR_ProbeWasRolled(IEntity actor)' in observer_region
|
||||
assert 'ERR_Mortar' not in intel_source and 'ERR_HQ' not in intel_source
|
||||
assert 'Insert(' not in observation and 'RandomInt' not in observation and 'TrySpawn' not in observation
|
||||
smoke=(ROOT/'addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c').read_text()
|
||||
smoke=(ROOT/'addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c').read_text()
|
||||
step=smoke.split('else if (m_ERRSmokeStep == 120)',1)[1].split('else if (m_ERRSmokeStep == 121)',1)[0]
|
||||
assert step.index('!battery.StartupActivated') < step.index('ERR_ProbeWasRolled(intelActor)') < step.index('DeleteEntityAndChildren(item)')
|
||||
assert '!intelCrew.Contains(intelActor)' in step and 'intelCrew.Count() == 4' in step
|
||||
|
||||
Reference in New Issue
Block a user