diff options
-rw-r--r-- | apworld/__init__.py | 6 | ||||
-rw-r--r-- | apworld/client/worldportListener.gd | 2 | ||||
-rw-r--r-- | data/ids.yaml | 26 | ||||
-rw-r--r-- | data/maps/the_great/connections.txtpb | 4 | ||||
-rw-r--r-- | data/maps/the_great/doors.txtpb | 40 | ||||
-rw-r--r-- | data/maps/the_great/rooms/Back Area.txtpb | 86 | ||||
-rw-r--r-- | data/maps/the_great/rooms/The Landscapes.txtpb | 88 | ||||
-rw-r--r-- | data/maps/the_great/rooms/Whole Room.txtpb | 2 |
8 files changed, 137 insertions, 117 deletions
diff --git a/apworld/__init__.py b/apworld/__init__.py index 9e445c7..57e3d9b 100644 --- a/apworld/__init__.py +++ b/apworld/__init__.py | |||
@@ -4,6 +4,7 @@ Archipelago init file for Lingo 2 | |||
4 | from typing import ClassVar | 4 | from typing import ClassVar |
5 | 5 | ||
6 | from BaseClasses import ItemClassification, Item, Tutorial | 6 | from BaseClasses import ItemClassification, Item, Tutorial |
7 | from Options import OptionError | ||
7 | from settings import Group, UserFilePath | 8 | from settings import Group, UserFilePath |
8 | from worlds.AutoWorld import WebWorld, World | 9 | from worlds.AutoWorld import WebWorld, World |
9 | from .items import Lingo2Item, ANTI_COLLECTABLE_TRAPS | 10 | from .items import Lingo2Item, ANTI_COLLECTABLE_TRAPS |
@@ -109,6 +110,11 @@ class Lingo2World(World): | |||
109 | for i in range(0, item_difference): | 110 | for i in range(0, item_difference): |
110 | pool.append(self.create_item(self.get_filler_item_name())) | 111 | pool.append(self.create_item(self.get_filler_item_name())) |
111 | 112 | ||
113 | if not any(ItemClassification.progression in item.classification for item in pool): | ||
114 | raise OptionError(f"Lingo 2 player {self.player} has no progression items. Please enable at least one " | ||
115 | f"option that would add progression gating to your world, such as Shuffle Doors or " | ||
116 | f"Shuffle Letters.") | ||
117 | |||
112 | self.multiworld.itempool += pool | 118 | self.multiworld.itempool += pool |
113 | 119 | ||
114 | def create_item(self, name: str) -> Item: | 120 | def create_item(self, name: str) -> Item: |
diff --git a/apworld/client/worldportListener.gd b/apworld/client/worldportListener.gd index 5c2faff..4cff8e9 100644 --- a/apworld/client/worldportListener.gd +++ b/apworld/client/worldportListener.gd | |||
@@ -2,7 +2,7 @@ extends "res://scripts/nodes/listeners/worldportListener.gd" | |||
2 | 2 | ||
3 | 3 | ||
4 | func handleTriggered(): | 4 | func handleTriggered(): |
5 | if exit == "menus/credits": | 5 | if exit.begins_with("menus/credits"): |
6 | return | 6 | return |
7 | 7 | ||
8 | super.handleTriggered() | 8 | super.handleTriggered() |
diff --git a/data/ids.yaml b/data/ids.yaml index be5c0f8..45c9ea0 100644 --- a/data/ids.yaml +++ b/data/ids.yaml | |||
@@ -1851,22 +1851,10 @@ maps: | |||
1851 | rooms: | 1851 | rooms: |
1852 | Back Area: | 1852 | Back Area: |
1853 | panels: | 1853 | panels: |
1854 | Left Landscape Bottom: 482 | ||
1855 | Left Landscape Left: 483 | ||
1856 | Left Landscape Right: 481 | ||
1857 | Left Landscape Top: 480 | ||
1858 | PAINTING: 474 | 1854 | PAINTING: 474 |
1859 | PLANT: 472 | 1855 | PLANT: 472 |
1860 | Right Landscape Bottom: 486 | ||
1861 | Right Landscape Left: 487 | ||
1862 | Right Landscape Right: 485 | ||
1863 | Right Landscape Top: 484 | ||
1864 | TOWEL: 475 | 1856 | TOWEL: 475 |
1865 | TREE: 473 | 1857 | TREE: 473 |
1866 | Top Landscape Bottom: 478 | ||
1867 | Top Landscape Left: 479 | ||
1868 | Top Landscape Right: 477 | ||
1869 | Top Landscape Top: 476 | ||
1870 | Behind Question Area: | 1858 | Behind Question Area: |
1871 | panels: | 1859 | panels: |
1872 | DEW: 488 | 1860 | DEW: 488 |
@@ -2024,6 +2012,20 @@ maps: | |||
2024 | Question Room Who: | 2012 | Question Room Who: |
2025 | panels: | 2013 | panels: |
2026 | QUESTION: 587 | 2014 | QUESTION: 587 |
2015 | The Landscapes: | ||
2016 | panels: | ||
2017 | Left Landscape Bottom: 482 | ||
2018 | Left Landscape Left: 483 | ||
2019 | Left Landscape Right: 481 | ||
2020 | Left Landscape Top: 480 | ||
2021 | Right Landscape Bottom: 486 | ||
2022 | Right Landscape Left: 487 | ||
2023 | Right Landscape Right: 485 | ||
2024 | Right Landscape Top: 484 | ||
2025 | Top Landscape Bottom: 478 | ||
2026 | Top Landscape Left: 479 | ||
2027 | Top Landscape Right: 477 | ||
2028 | Top Landscape Top: 476 | ||
2027 | Under Question Room: | 2029 | Under Question Room: |
2028 | panels: | 2030 | panels: |
2029 | QUESTION: 588 | 2031 | QUESTION: 588 |
diff --git a/data/maps/the_great/connections.txtpb b/data/maps/the_great/connections.txtpb index f1a7e25..171e809 100644 --- a/data/maps/the_great/connections.txtpb +++ b/data/maps/the_great/connections.txtpb | |||
@@ -256,3 +256,7 @@ connections { | |||
256 | to_room: "Zero Room" | 256 | to_room: "Zero Room" |
257 | door { name: "Lavender Cube" } | 257 | door { name: "Lavender Cube" } |
258 | } | 258 | } |
259 | connections { | ||
260 | from_room: "Back Area" | ||
261 | to_room: "The Landscapes" | ||
262 | } | ||
diff --git a/data/maps/the_great/doors.txtpb b/data/maps/the_great/doors.txtpb index 628715f..bf28421 100644 --- a/data/maps/the_great/doors.txtpb +++ b/data/maps/the_great/doors.txtpb | |||
@@ -124,6 +124,7 @@ doors { | |||
124 | panels { room: "Magnet Room" name: "SAW" } | 124 | panels { room: "Magnet Room" name: "SAW" } |
125 | panels { room: "Magnet Room" name: "BLENDER" } | 125 | panels { room: "Magnet Room" name: "BLENDER" } |
126 | location_room: "Magnet Room" | 126 | location_room: "Magnet Room" |
127 | location_name: "Gravestone" | ||
127 | } | 128 | } |
128 | doors { | 129 | doors { |
129 | name: "Hive Entrance" | 130 | name: "Hive Entrance" |
@@ -205,23 +206,25 @@ doors { | |||
205 | panels { room: "Jail Part 2" name: "GRIMACE" } | 206 | panels { room: "Jail Part 2" name: "GRIMACE" } |
206 | panels { room: "Jail Part 2" name: "COMMENCE" } | 207 | panels { room: "Jail Part 2" name: "COMMENCE" } |
207 | location_room: "Jail Part 2" | 208 | location_room: "Jail Part 2" |
209 | location_name: "Gravestone" | ||
208 | } | 210 | } |
209 | doors { | 211 | doors { |
210 | name: "The Landscapes Gravestone" | 212 | name: "The Landscapes Gravestone" |
211 | type: GRAVESTONE | 213 | type: GRAVESTONE |
212 | panels { room: "Back Area" name: "Top Landscape Top" } | 214 | panels { room: "The Landscapes" name: "Top Landscape Top" } |
213 | panels { room: "Back Area" name: "Top Landscape Right" } | 215 | panels { room: "The Landscapes" name: "Top Landscape Right" } |
214 | panels { room: "Back Area" name: "Top Landscape Bottom" } | 216 | panels { room: "The Landscapes" name: "Top Landscape Bottom" } |
215 | panels { room: "Back Area" name: "Top Landscape Left" } | 217 | panels { room: "The Landscapes" name: "Top Landscape Left" } |
216 | panels { room: "Back Area" name: "Left Landscape Top" } | 218 | panels { room: "The Landscapes" name: "Left Landscape Top" } |
217 | panels { room: "Back Area" name: "Left Landscape Right" } | 219 | panels { room: "The Landscapes" name: "Left Landscape Right" } |
218 | panels { room: "Back Area" name: "Left Landscape Bottom" } | 220 | panels { room: "The Landscapes" name: "Left Landscape Bottom" } |
219 | panels { room: "Back Area" name: "Left Landscape Left" } | 221 | panels { room: "The Landscapes" name: "Left Landscape Left" } |
220 | panels { room: "Back Area" name: "Right Landscape Top" } | 222 | panels { room: "The Landscapes" name: "Right Landscape Top" } |
221 | panels { room: "Back Area" name: "Right Landscape Right" } | 223 | panels { room: "The Landscapes" name: "Right Landscape Right" } |
222 | panels { room: "Back Area" name: "Right Landscape Bottom" } | 224 | panels { room: "The Landscapes" name: "Right Landscape Bottom" } |
223 | panels { room: "Back Area" name: "Right Landscape Left" } | 225 | panels { room: "The Landscapes" name: "Right Landscape Left" } |
224 | location_room: "Back Area" | 226 | location_room: "The Landscapes" |
227 | location_name: "Gravestone" | ||
225 | } | 228 | } |
226 | doors { | 229 | doors { |
227 | name: "Tower Entrance" | 230 | name: "Tower Entrance" |
@@ -318,6 +321,7 @@ doors { | |||
318 | panels { room: "Maze Up Area" name: "UP" } | 321 | panels { room: "Maze Up Area" name: "UP" } |
319 | panels { room: "Maze Wreck Area" name: "WRECK" } | 322 | panels { room: "Maze Wreck Area" name: "WRECK" } |
320 | location_room: "Maze Slice Area" | 323 | location_room: "Maze Slice Area" |
324 | location_name: "Gravestone" | ||
321 | } | 325 | } |
322 | doors { | 326 | doors { |
323 | name: "Courtyard Side Door" | 327 | name: "Courtyard Side Door" |
@@ -419,10 +423,10 @@ doors { | |||
419 | name: "Invisible Entrance" | 423 | name: "Invisible Entrance" |
420 | type: STANDARD | 424 | type: STANDARD |
421 | receivers: "Components/Doors/entry_36" | 425 | receivers: "Components/Doors/entry_36" |
422 | panels { room: "Back Area" name: "Right Landscape Top" answer: "tell" } | 426 | panels { room: "The Landscapes" name: "Right Landscape Top" answer: "tell" } |
423 | panels { room: "Back Area" name: "Right Landscape Left" answer: "eyes" } | 427 | panels { room: "The Landscapes" name: "Right Landscape Left" answer: "eyes" } |
424 | location_room: "Back Area" | 428 | location_room: "The Landscapes" |
425 | location_name: "Landscapes Room Alternate Answers" | 429 | location_name: "Alternate Answers" |
426 | } | 430 | } |
427 | doors { | 431 | doors { |
428 | name: "Nature Room Door" | 432 | name: "Nature Room Door" |
@@ -468,6 +472,7 @@ doors { | |||
468 | panels { room: "Whole Room" name: "CHIPS" } | 472 | panels { room: "Whole Room" name: "CHIPS" } |
469 | panels { room: "Whole Room" name: "TOWER" } | 473 | panels { room: "Whole Room" name: "TOWER" } |
470 | location_room: "Whole Room" | 474 | location_room: "Whole Room" |
475 | location_name: "Gravestone" | ||
471 | } | 476 | } |
472 | doors { | 477 | doors { |
473 | name: "Lavender Cube" | 478 | name: "Lavender Cube" |
@@ -494,6 +499,7 @@ doors { | |||
494 | panels { room: "Zero Room" name: "MANY" } | 499 | panels { room: "Zero Room" name: "MANY" } |
495 | panels { room: "Zero Room" name: "REMAINING" } | 500 | panels { room: "Zero Room" name: "REMAINING" } |
496 | location_room: "Zero Room" | 501 | location_room: "Zero Room" |
502 | location_name: "Panels" | ||
497 | } | 503 | } |
498 | doors { | 504 | doors { |
499 | name: "Spiral Painting" | 505 | name: "Spiral Painting" |
diff --git a/data/maps/the_great/rooms/Back Area.txtpb b/data/maps/the_great/rooms/Back Area.txtpb index c57a76f..33da394 100644 --- a/data/maps/the_great/rooms/Back Area.txtpb +++ b/data/maps/the_great/rooms/Back Area.txtpb | |||
@@ -28,92 +28,6 @@ panels { | |||
28 | answer: "tower" | 28 | answer: "tower" |
29 | symbols: SPARKLES | 29 | symbols: SPARKLES |
30 | } | 30 | } |
31 | panels { | ||
32 | name: "Top Landscape Top" | ||
33 | path: "Panels/Kiwi Room/kiwi_1" | ||
34 | clue: "" | ||
35 | answer: "one" | ||
36 | symbols: QUESTION | ||
37 | } | ||
38 | panels { | ||
39 | name: "Top Landscape Right" | ||
40 | path: "Panels/Kiwi Room/kiwi_2" | ||
41 | clue: "" | ||
42 | answer: "road" | ||
43 | symbols: QUESTION | ||
44 | } | ||
45 | panels { | ||
46 | name: "Top Landscape Bottom" | ||
47 | path: "Panels/Kiwi Room/kiwi_3" | ||
48 | clue: "" | ||
49 | answer: "many" | ||
50 | symbols: QUESTION | ||
51 | } | ||
52 | panels { | ||
53 | name: "Top Landscape Left" | ||
54 | path: "Panels/Kiwi Room/kiwi_4" | ||
55 | clue: "" | ||
56 | answer: "turns" | ||
57 | symbols: QUESTION | ||
58 | } | ||
59 | panels { | ||
60 | name: "Left Landscape Top" | ||
61 | path: "Panels/Kiwi Room/kiwi_5" | ||
62 | clue: "" | ||
63 | answer: "find" | ||
64 | symbols: QUESTION | ||
65 | } | ||
66 | panels { | ||
67 | name: "Left Landscape Right" | ||
68 | path: "Panels/Kiwi Room/kiwi_6" | ||
69 | clue: "" | ||
70 | answer: "keys" | ||
71 | symbols: QUESTION | ||
72 | } | ||
73 | panels { | ||
74 | name: "Left Landscape Bottom" | ||
75 | path: "Panels/Kiwi Room/kiwi_7" | ||
76 | clue: "" | ||
77 | answer: "write" | ||
78 | symbols: QUESTION | ||
79 | } | ||
80 | panels { | ||
81 | name: "Left Landscape Left" | ||
82 | path: "Panels/Kiwi Room/kiwi_8" | ||
83 | clue: "" | ||
84 | answer: "words" | ||
85 | symbols: QUESTION | ||
86 | } | ||
87 | panels { | ||
88 | name: "Right Landscape Top" | ||
89 | path: "Panels/Kiwi Room/kiwi_9" | ||
90 | clue: "" | ||
91 | answer: "hear" | ||
92 | symbols: QUESTION | ||
93 | proxies { answer: "tell" path: "Panels/Kiwi Proxies/kiwi_9_proxy_1" } | ||
94 | } | ||
95 | panels { | ||
96 | name: "Right Landscape Right" | ||
97 | path: "Panels/Kiwi Room/kiwi_10" | ||
98 | clue: "" | ||
99 | answer: "lies" | ||
100 | symbols: QUESTION | ||
101 | } | ||
102 | panels { | ||
103 | name: "Right Landscape Bottom" | ||
104 | path: "Panels/Kiwi Room/kiwi_11" | ||
105 | clue: "" | ||
106 | answer: "the" | ||
107 | symbols: QUESTION | ||
108 | } | ||
109 | panels { | ||
110 | name: "Right Landscape Left" | ||
111 | path: "Panels/Kiwi Room/kiwi_12" | ||
112 | clue: "" | ||
113 | answer: "ears" | ||
114 | symbols: QUESTION | ||
115 | proxies { answer: "eyes" path: "Panels/Kiwi Proxies/kiwi_12_proxy_1" } | ||
116 | } | ||
117 | paintings { | 31 | paintings { |
118 | name: "SPIRAL" | 32 | name: "SPIRAL" |
119 | path: "Components/Paintings/spiral" | 33 | path: "Components/Paintings/spiral" |
diff --git a/data/maps/the_great/rooms/The Landscapes.txtpb b/data/maps/the_great/rooms/The Landscapes.txtpb new file mode 100644 index 0000000..2912843 --- /dev/null +++ b/data/maps/the_great/rooms/The Landscapes.txtpb | |||
@@ -0,0 +1,88 @@ | |||
1 | name: "The Landscapes" | ||
2 | panel_display_name: "The Landscapes" | ||
3 | panels { | ||
4 | name: "Top Landscape Top" | ||
5 | path: "Panels/Kiwi Room/kiwi_1" | ||
6 | clue: "" | ||
7 | answer: "one" | ||
8 | symbols: QUESTION | ||
9 | } | ||
10 | panels { | ||
11 | name: "Top Landscape Right" | ||
12 | path: "Panels/Kiwi Room/kiwi_2" | ||
13 | clue: "" | ||
14 | answer: "road" | ||
15 | symbols: QUESTION | ||
16 | } | ||
17 | panels { | ||
18 | name: "Top Landscape Bottom" | ||
19 | path: "Panels/Kiwi Room/kiwi_3" | ||
20 | clue: "" | ||
21 | answer: "many" | ||
22 | symbols: QUESTION | ||
23 | } | ||
24 | panels { | ||
25 | name: "Top Landscape Left" | ||
26 | path: "Panels/Kiwi Room/kiwi_4" | ||
27 | clue: "" | ||
28 | answer: "turns" | ||
29 | symbols: QUESTION | ||
30 | } | ||
31 | panels { | ||
32 | name: "Left Landscape Top" | ||
33 | path: "Panels/Kiwi Room/kiwi_5" | ||
34 | clue: "" | ||
35 | answer: "find" | ||
36 | symbols: QUESTION | ||
37 | } | ||
38 | panels { | ||
39 | name: "Left Landscape Right" | ||
40 | path: "Panels/Kiwi Room/kiwi_6" | ||
41 | clue: "" | ||
42 | answer: "keys" | ||
43 | symbols: QUESTION | ||
44 | } | ||
45 | panels { | ||
46 | name: "Left Landscape Bottom" | ||
47 | path: "Panels/Kiwi Room/kiwi_7" | ||
48 | clue: "" | ||
49 | answer: "write" | ||
50 | symbols: QUESTION | ||
51 | } | ||
52 | panels { | ||
53 | name: "Left Landscape Left" | ||
54 | path: "Panels/Kiwi Room/kiwi_8" | ||
55 | clue: "" | ||
56 | answer: "words" | ||
57 | symbols: QUESTION | ||
58 | } | ||
59 | panels { | ||
60 | name: "Right Landscape Top" | ||
61 | path: "Panels/Kiwi Room/kiwi_9" | ||
62 | clue: "" | ||
63 | answer: "hear" | ||
64 | symbols: QUESTION | ||
65 | proxies { answer: "tell" path: "Panels/Kiwi Proxies/kiwi_9_proxy_1" } | ||
66 | } | ||
67 | panels { | ||
68 | name: "Right Landscape Right" | ||
69 | path: "Panels/Kiwi Room/kiwi_10" | ||
70 | clue: "" | ||
71 | answer: "lies" | ||
72 | symbols: QUESTION | ||
73 | } | ||
74 | panels { | ||
75 | name: "Right Landscape Bottom" | ||
76 | path: "Panels/Kiwi Room/kiwi_11" | ||
77 | clue: "" | ||
78 | answer: "the" | ||
79 | symbols: QUESTION | ||
80 | } | ||
81 | panels { | ||
82 | name: "Right Landscape Left" | ||
83 | path: "Panels/Kiwi Room/kiwi_12" | ||
84 | clue: "" | ||
85 | answer: "ears" | ||
86 | symbols: QUESTION | ||
87 | proxies { answer: "eyes" path: "Panels/Kiwi Proxies/kiwi_12_proxy_1" } | ||
88 | } | ||
diff --git a/data/maps/the_great/rooms/Whole Room.txtpb b/data/maps/the_great/rooms/Whole Room.txtpb index daa174c..989241a 100644 --- a/data/maps/the_great/rooms/Whole Room.txtpb +++ b/data/maps/the_great/rooms/Whole Room.txtpb | |||
@@ -1,5 +1,5 @@ | |||
1 | name: "Whole Room" | 1 | name: "Whole Room" |
2 | panel_display_name: "North Landscape" | 2 | panel_display_name: "Building Building" |
3 | panels { | 3 | panels { |
4 | name: "VAULT" | 4 | name: "VAULT" |
5 | path: "Panels/Whole Room/whole_1" | 5 | path: "Panels/Whole Room/whole_1" |