diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-01-16 07:11:20 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-16 13:11:20 +0100 |
| commit | 77bdbe6b3f9fc3bc397f4ec2bad7061fd1d11a55 (patch) | |
| tree | 3c382fcae2e98d4b68c7c3ce213207407f5525dc | |
| parent | ecddff93e5bb2df0c565f626c97e6f704d834646 (diff) | |
| download | lingo-apworld-77bdbe6b3f9fc3bc397f4ec2bad7061fd1d11a55.tar.gz lingo-apworld-77bdbe6b3f9fc3bc397f4ec2bad7061fd1d11a55.tar.bz2 lingo-apworld-77bdbe6b3f9fc3bc397f4ec2bad7061fd1d11a55.zip | |
Lingo: Make The Colorful optionally progressive (#2711)
| -rw-r--r-- | data/LL1.yaml | 22 | ||||
| -rw-r--r-- | data/ids.yaml | 1 | ||||
| -rw-r--r-- | items.py | 6 | ||||
| -rw-r--r-- | options.py | 8 | ||||
| -rw-r--r-- | player_logic.py | 3 |
5 files changed, 39 insertions, 1 deletions
| diff --git a/data/LL1.yaml b/data/LL1.yaml index cc46677..d7d4630 100644 --- a/data/LL1.yaml +++ b/data/LL1.yaml | |||
| @@ -2670,6 +2670,28 @@ | |||
| 2670 | paintings: | 2670 | paintings: |
| 2671 | - id: arrows_painting_12 | 2671 | - id: arrows_painting_12 |
| 2672 | orientation: north | 2672 | orientation: north |
| 2673 | progression: | ||
| 2674 | Progressive Colorful: | ||
| 2675 | - room: The Colorful (White) | ||
| 2676 | door: Progress Door | ||
| 2677 | - room: The Colorful (Black) | ||
| 2678 | door: Progress Door | ||
| 2679 | - room: The Colorful (Red) | ||
| 2680 | door: Progress Door | ||
| 2681 | - room: The Colorful (Yellow) | ||
| 2682 | door: Progress Door | ||
| 2683 | - room: The Colorful (Blue) | ||
| 2684 | door: Progress Door | ||
| 2685 | - room: The Colorful (Purple) | ||
| 2686 | door: Progress Door | ||
| 2687 | - room: The Colorful (Orange) | ||
| 2688 | door: Progress Door | ||
| 2689 | - room: The Colorful (Green) | ||
| 2690 | door: Progress Door | ||
| 2691 | - room: The Colorful (Brown) | ||
| 2692 | door: Progress Door | ||
| 2693 | - room: The Colorful (Gray) | ||
| 2694 | door: Progress Door | ||
| 2673 | Welcome Back Area: | 2695 | Welcome Back Area: |
| 2674 | entrances: | 2696 | entrances: |
| 2675 | Starting Room: | 2697 | Starting Room: |
| diff --git a/data/ids.yaml b/data/ids.yaml index 3239f21..2b9e7f3 100644 --- a/data/ids.yaml +++ b/data/ids.yaml | |||
| @@ -1452,3 +1452,4 @@ progression: | |||
| 1452 | Progressive Fearless: 444470 | 1452 | Progressive Fearless: 444470 |
| 1453 | Progressive Orange Tower: 444482 | 1453 | Progressive Orange Tower: 444482 |
| 1454 | Progressive Art Gallery: 444563 | 1454 | Progressive Art Gallery: 444563 |
| 1455 | Progressive Colorful: 444580 | ||
| diff --git a/items.py b/items.py index af24570..7b1a650 100644 --- a/items.py +++ b/items.py | |||
| @@ -28,6 +28,10 @@ class ItemData(NamedTuple): | |||
| 28 | # door shuffle is on and tower isn't progressive | 28 | # door shuffle is on and tower isn't progressive |
| 29 | return world.options.shuffle_doors != ShuffleDoors.option_none \ | 29 | return world.options.shuffle_doors != ShuffleDoors.option_none \ |
| 30 | and not world.options.progressive_orange_tower | 30 | and not world.options.progressive_orange_tower |
| 31 | elif self.mode == "the colorful": | ||
| 32 | # complex door shuffle is on and colorful isn't progressive | ||
| 33 | return world.options.shuffle_doors == ShuffleDoors.option_complex \ | ||
| 34 | and not world.options.progressive_colorful | ||
| 31 | elif self.mode == "complex door": | 35 | elif self.mode == "complex door": |
| 32 | return world.options.shuffle_doors == ShuffleDoors.option_complex | 36 | return world.options.shuffle_doors == ShuffleDoors.option_complex |
| 33 | elif self.mode == "door group": | 37 | elif self.mode == "door group": |
| @@ -70,6 +74,8 @@ def load_item_data(): | |||
| 70 | if room_name in PROGRESSION_BY_ROOM and door_name in PROGRESSION_BY_ROOM[room_name]: | 74 | if room_name in PROGRESSION_BY_ROOM and door_name in PROGRESSION_BY_ROOM[room_name]: |
| 71 | if room_name == "Orange Tower": | 75 | if room_name == "Orange Tower": |
| 72 | door_mode = "orange tower" | 76 | door_mode = "orange tower" |
| 77 | elif room_name == "The Colorful": | ||
| 78 | door_mode = "the colorful" | ||
| 73 | else: | 79 | else: |
| 74 | door_mode = "special" | 80 | door_mode = "special" |
| 75 | 81 | ||
| diff --git a/options.py b/options.py index c002086..ec6158f 100644 --- a/options.py +++ b/options.py | |||
| @@ -21,6 +21,13 @@ class ProgressiveOrangeTower(DefaultOnToggle): | |||
| 21 | display_name = "Progressive Orange Tower" | 21 | display_name = "Progressive Orange Tower" |
| 22 | 22 | ||
| 23 | 23 | ||
| 24 | class ProgressiveColorful(DefaultOnToggle): | ||
| 25 | """When "Shuffle Doors" is on "complex", this setting governs the manner in which The Colorful opens up. | ||
| 26 | If off, there is an item for each room of The Colorful, meaning that random rooms in the middle of the sequence can open up without giving you access to them. | ||
| 27 | If on, there are ten progressive items, which open up the sequence from White forward.""" | ||
| 28 | display_name = "Progressive Colorful" | ||
| 29 | |||
| 30 | |||
| 24 | class LocationChecks(Choice): | 31 | class LocationChecks(Choice): |
| 25 | """On "normal", there will be a location check for each panel set that would ordinarily open a door, as well as for | 32 | """On "normal", there will be a location check for each panel set that would ordinarily open a door, as well as for |
| 26 | achievement panels and a small handful of other panels. | 33 | achievement panels and a small handful of other panels. |
| @@ -117,6 +124,7 @@ class DeathLink(Toggle): | |||
| 117 | class LingoOptions(PerGameCommonOptions): | 124 | class LingoOptions(PerGameCommonOptions): |
| 118 | shuffle_doors: ShuffleDoors | 125 | shuffle_doors: ShuffleDoors |
| 119 | progressive_orange_tower: ProgressiveOrangeTower | 126 | progressive_orange_tower: ProgressiveOrangeTower |
| 127 | progressive_colorful: ProgressiveColorful | ||
| 120 | location_checks: LocationChecks | 128 | location_checks: LocationChecks |
| 121 | shuffle_colors: ShuffleColors | 129 | shuffle_colors: ShuffleColors |
| 122 | shuffle_panels: ShufflePanels | 130 | shuffle_panels: ShufflePanels |
| diff --git a/player_logic.py b/player_logic.py index fa497c5..57bcc4b 100644 --- a/player_logic.py +++ b/player_logic.py | |||
| @@ -83,7 +83,8 @@ class LingoPlayerLogic: | |||
| 83 | 83 | ||
| 84 | def handle_non_grouped_door(self, room_name: str, door_data: Door, world: "LingoWorld"): | 84 | def handle_non_grouped_door(self, room_name: str, door_data: Door, world: "LingoWorld"): |
| 85 | if room_name in PROGRESSION_BY_ROOM and door_data.name in PROGRESSION_BY_ROOM[room_name]: | 85 | if room_name in PROGRESSION_BY_ROOM and door_data.name in PROGRESSION_BY_ROOM[room_name]: |
| 86 | if room_name == "Orange Tower" and not world.options.progressive_orange_tower: | 86 | if (room_name == "Orange Tower" and not world.options.progressive_orange_tower)\ |
| 87 | or (room_name == "The Colorful" and not world.options.progressive_colorful): | ||
| 87 | self.set_door_item(room_name, door_data.name, door_data.item_name) | 88 | self.set_door_item(room_name, door_data.name, door_data.item_name) |
| 88 | else: | 89 | else: |
| 89 | progressive_item_name = PROGRESSION_BY_ROOM[room_name][door_data.name].item_name | 90 | progressive_item_name = PROGRESSION_BY_ROOM[room_name][door_data.name].item_name |
