Skip to content

Commit 13a7b73

Browse files
committed
try again
1 parent 5a17b65 commit 13a7b73

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

tests/asserts/keywords.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def process_keyvalue(k, v, metadata):
149149
"type", # validated by schema in 'resourceAvailable', 'resourceCapacity'
150150
"position", # validated by schema
151151
"environment", # validated by schema
152+
"bypassesDoorShell", # validated by schema
152153
]
153154

154155
# check if it's a key we want to check
@@ -290,11 +291,11 @@ def find_door_unlocked_nodes(strat, node_subtype, nodes_without_implicit_unlocks
290291
nodes = find_door_unlocked_nodes_rec(strat["requires"])
291292
from_node = strat["link"][0]
292293
to_node = strat["link"][1]
293-
if "exitCondition" in strat and strat.get("bypassesDoorShell") == False and node_subtype not in ["elevator", "doorway", "sandpit", "passage"]:
294+
if "exitCondition" in strat and strat.get("bypassesDoorShell") not in [True, "free"] and node_subtype not in ["elevator", "doorway", "sandpit", "passage"]:
294295
nodes.add(to_node)
295296
if "entranceCondition" not in strat and from_node in nodes:
296297
nodes.remove(from_node)
297-
if to_node in nodes_without_implicit_unlocks and strat.get("bypassesDoorShell") == False and "gModeRegainMobility" not in strat:
298+
if to_node in nodes_without_implicit_unlocks and strat.get("bypassesDoorShell") not in [True, "free"] and "gModeRegainMobility" not in strat:
298299
nodes.add(to_node)
299300
return nodes
300301

@@ -1082,7 +1083,7 @@ def strat_err_fn(msg):
10821083
# Regain mobility strats also take place entirely in G-mode.
10831084
pass
10841085
elif "comeInWithGrappleTeleport" in strat.get("entranceCondition", []) and \
1085-
strat.get("bypassesDoorShell") is not False:
1086+
strat.get("bypassesDoorShell") is in [True, "free"]:
10861087
# Strats that use a grapple teleport to bypass a door lock can be done without heat damage,
10871088
# since the door transition is touched immediately.
10881089
pass
@@ -1204,7 +1205,7 @@ def speed_err_fn(msg):
12041205
msg = f"🔴ERROR: Door unlocked requirement for node {node}, type {t}, is not covered in `unlocksDoors`:{stratRef}"
12051206
messages["reds"].append(msg)
12061207
messages["counts"]["reds"] += 1
1207-
if strat.get("bypassesDoorShell") != False:
1208+
if strat.get("bypassesDoorShell") in [True, "free"]:
12081209
if node_lookup[toNode]["nodeType"] != "door":
12091210
msg = f"🔴ERROR: Strat has bypassesDoorShell but To Node is not door:{stratRef}"
12101211
messages["reds"].append(msg)

0 commit comments

Comments
 (0)