Improve AI garrisons, player recovery and mission administration
This commit is contained in:
@@ -5,7 +5,7 @@ from policy_harness import ROOT,body,run
|
||||
spec=importlib.util.spec_from_file_location('import_settings',BASE/'tools/import_settings.py')
|
||||
m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m)
|
||||
result,deferred=m.merge({'configVersion':1,'reportIntervalSeconds':20.0,'supportSquadLimit':2,'responseRadiusMetres':1500,'convoyCount':3},{'aiIntelChancePercent':0,'intelRevealChancePercent':100})
|
||||
assert result==dict(reportIntervalSeconds=20,supportSquadLimit=2,responseRadiusMetres=1500,aiIntelChancePercent=0,intelRevealChancePercent=100,radioDefenceSeconds=180,startTimeMinutes=840,timeMultiplier=1,startDateCode=0,weatherProfile=0,stingerChanceOneIn=15,automaticConvoyEnabled=1,convoyCount=3,heliTimerMinutes=15)
|
||||
assert result==dict(keepWeaponOnUnconscious=1,reportIntervalSeconds=20,supportSquadLimit=2,responseRadiusMetres=1500,aiIntelChancePercent=0,intelRevealChancePercent=100,radioDefenceSeconds=180,startTimeMinutes=840,timeMultiplier=1,startDateCode=0,weatherProfile=0,antiAirChancePercent=7,antiPersonnelMineChancePercent=60,automaticConvoyEnabled=1,convoyCount=3,heliTimerMinutes=15)
|
||||
assert deferred==[]
|
||||
for count in (0,1,3,20):
|
||||
values,notes=m.merge(ai={'convoyCount':count})
|
||||
@@ -18,8 +18,14 @@ for invalid in (-1,21,True,False,None,'1',1.5,float('nan'),float('inf')):
|
||||
try:m.merge(ai={'convoyCount':0,'automaticConvoyEnabled':1})
|
||||
except ValueError:pass
|
||||
else:raise AssertionError('Ambiguous old/new settings accepted')
|
||||
assert m.merge(ai={'stingerChanceOneIn':37})[0]['stingerChanceOneIn']==37
|
||||
assert m.merge(ai={'stingerChanceOneIn':0})[0]['stingerChanceOneIn']==0
|
||||
for old,percent in [(0,0),(1,100),(15,7),(37,3),(10000,0)]:
|
||||
assert m.merge(ai={'stingerChanceOneIn':old})[0]['antiAirChancePercent']==percent
|
||||
assert m.merge(ai={'stingerChanceOneIn':15,'antiAirChancePercent':100})[0]['antiAirChancePercent']==100
|
||||
for invalid in (-1,10001,True,None,'15',1.5,float('nan')):
|
||||
try:m.merge(ai={'stingerChanceOneIn':invalid})
|
||||
except ValueError:pass
|
||||
else:raise AssertionError(invalid)
|
||||
assert m.merge(ai={'stingerChanceOneIn':0})[0]['antiAirChancePercent']==0
|
||||
assert m.merge()[0]=={k:v[0] for k,v in m.SCHEMA.items()}
|
||||
for key,(_,lo,hi) in m.SCHEMA.items():
|
||||
if key not in m.AI_KEYS and key not in m.INTEL_KEYS:continue
|
||||
|
||||
Reference in New Issue
Block a user