diff options
Diffstat (limited to 'player_logic.py')
| -rw-r--r-- | player_logic.py | 38 |
1 files changed, 26 insertions, 12 deletions
| diff --git a/player_logic.py b/player_logic.py index 0ae3035..3a6eedf 100644 --- a/player_logic.py +++ b/player_logic.py | |||
| @@ -248,30 +248,44 @@ class LingoPlayerLogic: | |||
| 248 | "kind of logic error.") | 248 | "kind of logic error.") |
| 249 | 249 | ||
| 250 | if door_shuffle != ShuffleDoors.option_none and location_classification != LocationClassification.insanity \ | 250 | if door_shuffle != ShuffleDoors.option_none and location_classification != LocationClassification.insanity \ |
| 251 | and not early_color_hallways: | 251 | and not early_color_hallways and world.multiworld.players > 1: |
| 252 | # If shuffle doors is on, force a useful item onto the HI panel. This may not necessarily get you out of BK, | 252 | # Under the combination of door shuffle, normal location checks, and no early color hallways, sphere 1 is |
| 253 | # but the goal is to allow you to reach at least one more check. The non-painting ones are hardcoded right | 253 | # only three checks. In a multiplayer situation, this can be frustrating for the player because they are |
| 254 | # now. We only allow the entrance to the Pilgrim Room if color shuffle is off, because otherwise there are | 254 | # more likely to be stuck in the starting room for a long time. To remedy this, we will force a useful item |
| 255 | # no extra checks in there. We only include the entrance to the Rhyme Room when color shuffle is off and | 255 | # onto the GOOD LUCK check under these circumstances. The goal is to expand sphere 1 to at least four |
| 256 | # door shuffle is on simple, because otherwise there are no extra checks in there. | 256 | # checks (and likely more than that). |
| 257 | # | ||
| 258 | # Note: A very low LEVEL 2 requirement would naturally expand sphere 1 to four checks, but this is a very | ||
| 259 | # uncommon configuration, so we will ignore it and force a good item anyway. | ||
| 260 | |||
| 261 | # Starting Room - Back Right Door gives access to OPEN and DEAD END. | ||
| 262 | # Starting Room - Exit Door gives access to OPEN and TRACE. | ||
| 257 | good_item_options: List[str] = ["Starting Room - Back Right Door", "Second Room - Exit Door"] | 263 | good_item_options: List[str] = ["Starting Room - Back Right Door", "Second Room - Exit Door"] |
| 258 | 264 | ||
| 259 | if not color_shuffle: | 265 | if not color_shuffle: |
| 266 | # HOT CRUST and THIS. | ||
| 260 | good_item_options.append("Pilgrim Room - Sun Painting") | 267 | good_item_options.append("Pilgrim Room - Sun Painting") |
| 261 | 268 | ||
| 262 | if door_shuffle == ShuffleDoors.option_simple: | 269 | if door_shuffle == ShuffleDoors.option_simple: |
| 263 | good_item_options += ["Welcome Back Doors"] | 270 | # WELCOME BACK, CLOCKWISE, and DRAWL + RUNS. |
| 271 | good_item_options.append("Welcome Back Doors") | ||
| 272 | else: | ||
| 273 | # WELCOME BACK and CLOCKWISE. | ||
| 274 | good_item_options.append("Welcome Back Area - Shortcut to Starting Room") | ||
| 264 | 275 | ||
| 265 | if not color_shuffle: | 276 | if door_shuffle == ShuffleDoors.option_simple: |
| 266 | good_item_options.append("Rhyme Room Doors") | 277 | # Color hallways access (NOTE: reconsider when sunwarp shuffling exists). |
| 267 | else: | 278 | good_item_options.append("Rhyme Room Doors") |
| 268 | good_item_options += ["Welcome Back Area - Shortcut to Starting Room"] | ||
| 269 | 279 | ||
| 280 | # When painting shuffle is off, most Starting Room paintings give color hallways access. The Wondrous's | ||
| 281 | # painting does not, but it gives access to SHRINK and WELCOME BACK. | ||
| 270 | for painting_obj in PAINTINGS_BY_ROOM["Starting Room"]: | 282 | for painting_obj in PAINTINGS_BY_ROOM["Starting Room"]: |
| 271 | if not painting_obj.enter_only or painting_obj.required_door is None: | 283 | if not painting_obj.enter_only or painting_obj.required_door is None: |
| 272 | continue | 284 | continue |
| 273 | 285 | ||
| 274 | # If painting shuffle is on, we only want to consider paintings that actually go somewhere. | 286 | # If painting shuffle is on, we only want to consider paintings that actually go somewhere. |
| 287 | # | ||
| 288 | # NOTE: This does not guarantee that there will be any checks on the other side. | ||
| 275 | if painting_shuffle and painting_obj.id not in self.painting_mapping.keys(): | 289 | if painting_shuffle and painting_obj.id not in self.painting_mapping.keys(): |
| 276 | continue | 290 | continue |
| 277 | 291 | ||
