summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2024-05-02 02:52:16 -0500
committerGitHub <noreply@github.com>2024-05-02 09:52:16 +0200
commit9c3bdec26936e8ea56c4c332acd1ca8f16a73327 (patch)
tree9a3f318712c559c19d0bf237ae5c50b16d38aa9f
parent392fe65313a94ebfd7e0f70c8f7c3c7365bcff1c (diff)
downloadlingo-apworld-9c3bdec26936e8ea56c4c332acd1ca8f16a73327.tar.gz
lingo-apworld-9c3bdec26936e8ea56c4c332acd1ca8f16a73327.tar.bz2
lingo-apworld-9c3bdec26936e8ea56c4c332acd1ca8f16a73327.zip
Lingo: Expand sphere 1 under restrictive conditions (#3190)
-rw-r--r--locations.py4
-rw-r--r--player_logic.py5
2 files changed, 8 insertions, 1 deletions
diff --git a/locations.py b/locations.py index a6e53e7..5ffedee 100644 --- a/locations.py +++ b/locations.py
@@ -10,6 +10,7 @@ class LocationClassification(Flag):
10 normal = auto() 10 normal = auto()
11 reduced = auto() 11 reduced = auto()
12 insanity = auto() 12 insanity = auto()
13 small_sphere_one = auto()
13 14
14 15
15class LocationData(NamedTuple): 16class LocationData(NamedTuple):
@@ -47,6 +48,9 @@ def load_location_data():
47 if not panel.exclude_reduce: 48 if not panel.exclude_reduce:
48 classification |= LocationClassification.reduced 49 classification |= LocationClassification.reduced
49 50
51 if room_name == "Starting Room":
52 classification |= LocationClassification.small_sphere_one
53
50 ALL_LOCATION_TABLE[location_name] = \ 54 ALL_LOCATION_TABLE[location_name] = \
51 LocationData(get_panel_location_id(room_name, panel_name), room_name, 55 LocationData(get_panel_location_id(room_name, panel_name), room_name,
52 [RoomAndPanel(None, panel_name)], classification) 56 [RoomAndPanel(None, panel_name)], classification)
diff --git a/player_logic.py b/player_logic.py index 96e9869..f7bf1ac 100644 --- a/player_logic.py +++ b/player_logic.py
@@ -236,9 +236,12 @@ class LingoPlayerLogic:
236 elif location_checks == LocationChecks.option_insanity: 236 elif location_checks == LocationChecks.option_insanity:
237 location_classification = LocationClassification.insanity 237 location_classification = LocationClassification.insanity
238 238
239 if door_shuffle != ShuffleDoors.option_none and not early_color_hallways:
240 location_classification |= LocationClassification.small_sphere_one
241
239 for location_name, location_data in ALL_LOCATION_TABLE.items(): 242 for location_name, location_data in ALL_LOCATION_TABLE.items():
240 if location_name != self.victory_condition: 243 if location_name != self.victory_condition:
241 if location_classification not in location_data.classification: 244 if not (location_classification & location_data.classification):
242 continue 245 continue
243 246
244 self.add_location(location_data.room, location_name, location_data.code, location_data.panels, world) 247 self.add_location(location_data.room, location_name, location_data.code, location_data.panels, world)