diff options
Diffstat (limited to 'apworld/player_logic.py')
| -rw-r--r-- | apworld/player_logic.py | 18 |
1 files changed, 13 insertions, 5 deletions
| diff --git a/apworld/player_logic.py b/apworld/player_logic.py index e21e2c3..d7b18c2 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py | |||
| @@ -241,6 +241,8 @@ class Lingo2PlayerLogic: | |||
| 241 | return "The Charismatic" in world.options.enable_gift_maps.value | 241 | return "The Charismatic" in world.options.enable_gift_maps.value |
| 242 | elif game_map.name == "the_crystalline": | 242 | elif game_map.name == "the_crystalline": |
| 243 | return "The Crystalline" in world.options.enable_gift_maps.value | 243 | return "The Crystalline" in world.options.enable_gift_maps.value |
| 244 | elif game_map.name == "the_fuzzy": | ||
| 245 | return "The Fuzzy" in world.options.enable_gift_maps.value | ||
| 244 | elif game_map.name == "the_stellar": | 246 | elif game_map.name == "the_stellar": |
| 245 | return "The Stellar" in world.options.enable_gift_maps.value | 247 | return "The Stellar" in world.options.enable_gift_maps.value |
| 246 | 248 | ||
| @@ -256,6 +258,9 @@ class Lingo2PlayerLogic: | |||
| 256 | if world.options.masteries_requirement > maximum_masteries: | 258 | if world.options.masteries_requirement > maximum_masteries: |
| 257 | world.options.masteries_requirement.value = maximum_masteries | 259 | world.options.masteries_requirement.value = maximum_masteries |
| 258 | 260 | ||
| 261 | if "The Fuzzy" in world.options.enable_gift_maps.value: | ||
| 262 | self.real_items.append("Numbers") | ||
| 263 | |||
| 259 | if self.world.options.shuffle_doors: | 264 | if self.world.options.shuffle_doors: |
| 260 | for progressive in world.static_logic.objects.progressives: | 265 | for progressive in world.static_logic.objects.progressives: |
| 261 | for i in range(0, len(progressive.doors)): | 266 | for i in range(0, len(progressive.doors)): |
| @@ -384,14 +389,14 @@ class Lingo2PlayerLogic: | |||
| 384 | self.locations_by_room.setdefault(ending.room_id, []).append(PlayerLocation(ending.ap_id, | 389 | self.locations_by_room.setdefault(ending.room_id, []).append(PlayerLocation(ending.ap_id, |
| 385 | AccessRequirements())) | 390 | AccessRequirements())) |
| 386 | 391 | ||
| 387 | event_name = f"{ending.name.capitalize()} Ending (Achieved)" | ||
| 388 | item_name = "Ending" | ||
| 389 | |||
| 390 | if world.options.victory_condition.current_key.removesuffix("_ending").upper() == ending.name: | 392 | if world.options.victory_condition.current_key.removesuffix("_ending").upper() == ending.name: |
| 391 | item_name = "Victory" | 393 | event_name = f"{ending.name.capitalize()} Ending (Goal)" |
| 394 | self.event_loc_item_by_room.setdefault(ending.room_id, {})[event_name] = "Victory" | ||
| 392 | self.goal_room_id = ending.room_id | 395 | self.goal_room_id = ending.room_id |
| 393 | 396 | ||
| 394 | self.event_loc_item_by_room.setdefault(ending.room_id, {})[event_name] = item_name | 397 | if ending.name != "WHITE": |
| 398 | event_name = f"{ending.name.capitalize()} Ending (Achieved)" | ||
| 399 | self.event_loc_item_by_room.setdefault(ending.room_id, {})[event_name] = "Ending" | ||
| 395 | 400 | ||
| 396 | if self.world.options.keyholder_sanity: | 401 | if self.world.options.keyholder_sanity: |
| 397 | for keyholder in world.static_logic.objects.keyholders: | 402 | for keyholder in world.static_logic.objects.keyholders: |
| @@ -599,3 +604,6 @@ class Lingo2PlayerLogic: | |||
| 599 | 604 | ||
| 600 | if needed > 0: | 605 | if needed > 0: |
| 601 | reqs.letters[l] = max(reqs.letters.get(l, 0), needed) | 606 | reqs.letters[l] = max(reqs.letters.get(l, 0), needed) |
| 607 | |||
| 608 | if any(l.isnumeric() for l in solution): | ||
| 609 | reqs.items.add("Numbers") | ||
