From 92892af0dfefadd00f7681811fd20aaefed1e59f Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 4 Feb 2026 13:32:05 -0500 Subject: Start with Sun Symbol if doing daed only symbol shuffle --- apworld/__init__.py | 3 +++ apworld/player_logic.py | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apworld/__init__.py b/apworld/__init__.py index 27ed95a..5bad63e 100644 --- a/apworld/__init__.py +++ b/apworld/__init__.py @@ -120,6 +120,9 @@ class Lingo2World(World): self.multiworld.itempool += pool + for name in self.player_logic.starting_items: + self.push_precollected(self.create_item(name)) + def create_item(self, name: str) -> Item: return Lingo2Item(name, ItemClassification.filler if name == self.get_filler_item_name() else ItemClassification.trap if name in ANTI_COLLECTABLE_TRAPS else diff --git a/apworld/player_logic.py b/apworld/player_logic.py index d3518d9..d498f0f 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py @@ -216,6 +216,7 @@ class Lingo2PlayerLogic: door_reqs: dict[int, AccessRequirements] real_items: list[str] + starting_items: list[str] double_letter_amount: dict[str, int] goal_room_id: int @@ -231,6 +232,7 @@ class Lingo2PlayerLogic: self.proxy_reqs = dict() self.door_reqs = dict() self.real_items = list() + self.starting_items = list() self.double_letter_amount = dict() def should_shuffle_map(game_map) -> bool | set[int]: @@ -431,7 +433,10 @@ class Lingo2PlayerLogic: if self.world.options.shuffle_symbols: for symbol_name in SYMBOL_ITEMS.values(): - self.real_items.append(symbol_name) + if self.world.options.daedalus_only and symbol_name == "Sun Symbol": + self.starting_items.append(symbol_name) + else: + self.real_items.append(symbol_name) def get_panel_reqs(self, panel_id: int, answer: str | None) -> AccessRequirements: if answer is None: -- cgit 1.4.1