diff options
| -rw-r--r-- | apworld/__init__.py | 3 | ||||
| -rw-r--r-- | apworld/player_logic.py | 7 |
2 files changed, 9 insertions, 1 deletions
| 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): | |||
| 120 | 120 | ||
| 121 | self.multiworld.itempool += pool | 121 | self.multiworld.itempool += pool |
| 122 | 122 | ||
| 123 | for name in self.player_logic.starting_items: | ||
| 124 | self.push_precollected(self.create_item(name)) | ||
| 125 | |||
| 123 | def create_item(self, name: str) -> Item: | 126 | def create_item(self, name: str) -> Item: |
| 124 | return Lingo2Item(name, ItemClassification.filler if name == self.get_filler_item_name() else | 127 | return Lingo2Item(name, ItemClassification.filler if name == self.get_filler_item_name() else |
| 125 | ItemClassification.trap if name in ANTI_COLLECTABLE_TRAPS else | 128 | 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: | |||
| 216 | door_reqs: dict[int, AccessRequirements] | 216 | door_reqs: dict[int, AccessRequirements] |
| 217 | 217 | ||
| 218 | real_items: list[str] | 218 | real_items: list[str] |
| 219 | starting_items: list[str] | ||
| 219 | 220 | ||
| 220 | double_letter_amount: dict[str, int] | 221 | double_letter_amount: dict[str, int] |
| 221 | goal_room_id: int | 222 | goal_room_id: int |
| @@ -231,6 +232,7 @@ class Lingo2PlayerLogic: | |||
| 231 | self.proxy_reqs = dict() | 232 | self.proxy_reqs = dict() |
| 232 | self.door_reqs = dict() | 233 | self.door_reqs = dict() |
| 233 | self.real_items = list() | 234 | self.real_items = list() |
| 235 | self.starting_items = list() | ||
| 234 | self.double_letter_amount = dict() | 236 | self.double_letter_amount = dict() |
| 235 | 237 | ||
| 236 | def should_shuffle_map(game_map) -> bool | set[int]: | 238 | def should_shuffle_map(game_map) -> bool | set[int]: |
| @@ -431,7 +433,10 @@ class Lingo2PlayerLogic: | |||
| 431 | 433 | ||
| 432 | if self.world.options.shuffle_symbols: | 434 | if self.world.options.shuffle_symbols: |
| 433 | for symbol_name in SYMBOL_ITEMS.values(): | 435 | for symbol_name in SYMBOL_ITEMS.values(): |
| 434 | self.real_items.append(symbol_name) | 436 | if self.world.options.daedalus_only and symbol_name == "Sun Symbol": |
| 437 | self.starting_items.append(symbol_name) | ||
| 438 | else: | ||
| 439 | self.real_items.append(symbol_name) | ||
| 435 | 440 | ||
| 436 | def get_panel_reqs(self, panel_id: int, answer: str | None) -> AccessRequirements: | 441 | def get_panel_reqs(self, panel_id: int, answer: str | None) -> AccessRequirements: |
| 437 | if answer is None: | 442 | if answer is None: |
