Lingo: Fix number hunt issues on panels mode (#4342)
This commit is contained in:
parent
5dd19fccd0
commit
925fb967d3
Binary file not shown.
|
@ -1,7 +1,7 @@
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from ..static_logic import HASHES
|
from ..static_logic import HASHES, PANELS_BY_ROOM
|
||||||
from ..utils.pickle_static_data import hash_file
|
from ..utils.pickle_static_data import hash_file
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,3 +14,8 @@ class TestDatafile(unittest.TestCase):
|
||||||
"LL1.yaml hash does not match generated.dat. Please regenerate using 'python worlds/lingo/utils/pickle_static_data.py'")
|
"LL1.yaml hash does not match generated.dat. Please regenerate using 'python worlds/lingo/utils/pickle_static_data.py'")
|
||||||
self.assertEqual(ids_file_hash, HASHES["ids.yaml"],
|
self.assertEqual(ids_file_hash, HASHES["ids.yaml"],
|
||||||
"ids.yaml hash does not match generated.dat. Please regenerate using 'python worlds/lingo/utils/pickle_static_data.py'")
|
"ids.yaml hash does not match generated.dat. Please regenerate using 'python worlds/lingo/utils/pickle_static_data.py'")
|
||||||
|
|
||||||
|
def test_panel_doors_are_set(self) -> None:
|
||||||
|
# This panel is defined earlier in the file than the panel door, so we want to check that the panel door is
|
||||||
|
# correctly applied.
|
||||||
|
self.assertNotEqual(PANELS_BY_ROOM["Outside The Agreeable"]["FIVE (1)"].panel_door, None)
|
||||||
|
|
|
@ -111,6 +111,16 @@ def load_static_data(ll1_path, ids_path):
|
||||||
with open(ll1_path, "r") as file:
|
with open(ll1_path, "r") as file:
|
||||||
config = Utils.parse_yaml(file)
|
config = Utils.parse_yaml(file)
|
||||||
|
|
||||||
|
# We have to process all panel doors first so that panels can see what panel doors they're in even if they're
|
||||||
|
# defined earlier in the file than the panel door.
|
||||||
|
for room_name, room_data in config.items():
|
||||||
|
if "panel_doors" in room_data:
|
||||||
|
PANEL_DOORS_BY_ROOM[room_name] = dict()
|
||||||
|
|
||||||
|
for panel_door_name, panel_door_data in room_data["panel_doors"].items():
|
||||||
|
process_panel_door(room_name, panel_door_name, panel_door_data)
|
||||||
|
|
||||||
|
# Process the rest of the room.
|
||||||
for room_name, room_data in config.items():
|
for room_name, room_data in config.items():
|
||||||
process_room(room_name, room_data)
|
process_room(room_name, room_data)
|
||||||
|
|
||||||
|
@ -515,12 +525,6 @@ def process_room(room_name, room_data):
|
||||||
for source_room, doors in room_data["entrances"].items():
|
for source_room, doors in room_data["entrances"].items():
|
||||||
process_entrance(source_room, doors, room_obj)
|
process_entrance(source_room, doors, room_obj)
|
||||||
|
|
||||||
if "panel_doors" in room_data:
|
|
||||||
PANEL_DOORS_BY_ROOM[room_name] = dict()
|
|
||||||
|
|
||||||
for panel_door_name, panel_door_data in room_data["panel_doors"].items():
|
|
||||||
process_panel_door(room_name, panel_door_name, panel_door_data)
|
|
||||||
|
|
||||||
if "panels" in room_data:
|
if "panels" in room_data:
|
||||||
PANELS_BY_ROOM[room_name] = dict()
|
PANELS_BY_ROOM[room_name] = dict()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue