about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--apworld/context.py2
-rw-r--r--apworld/regions.py3
-rw-r--r--data/maps/the_entry/connections.txtpb2
-rw-r--r--data/maps/the_repetitive/connections.txtpb2
-rw-r--r--proto/data.proto1
-rw-r--r--proto/human.proto3
-rw-r--r--tools/datapacker/main.cpp5
8 files changed, 15 insertions, 6 deletions
diff --git a/README.md b/README.md index 9af22a3..2899e4a 100644 --- a/README.md +++ b/README.md
@@ -34,9 +34,6 @@ part of an Archipelago multiworld game.
34 34
35To continue an earlier game, you can perform the exact same steps as above. 35To continue an earlier game, you can perform the exact same steps as above.
36 36
37**Note**: Running the randomizer modifies the game's memory. If you want to play
38the base game after playing the randomizer, you need to restart Lingo 2 first.
39
40## Frequently Asked Questions 37## Frequently Asked Questions
41 38
42### Why aren't the starting room letters shuffled? 39### Why aren't the starting room letters shuffled?
diff --git a/apworld/context.py b/apworld/context.py index ffe2acd..c367b6c 100644 --- a/apworld/context.py +++ b/apworld/context.py
@@ -277,7 +277,7 @@ class Lingo2ClientContext(CommonContext):
277 "operations": [{"operation": "default", "value": 0}] 277 "operations": [{"operation": "default", "value": 0}]
278 }] 278 }]
279 279
280 if self.slot_data["shuffle_worldports"]: 280 if self.slot_data.get("shuffle_worldports", False):
281 self.set_notify(self.get_datastorage_key("worldports")) 281 self.set_notify(self.get_datastorage_key("worldports"))
282 msg_batch.append({ 282 msg_batch.append({
283 "cmd": "Set", 283 "cmd": "Set",
diff --git a/apworld/regions.py b/apworld/regions.py index 64302f6..3735858 100644 --- a/apworld/regions.py +++ b/apworld/regions.py
@@ -75,6 +75,9 @@ def create_regions(world: "Lingo2World"):
75 if connection.roof_access and not world.options.daedalus_roof_access: 75 if connection.roof_access and not world.options.daedalus_roof_access:
76 continue 76 continue
77 77
78 if connection.vanilla_only and world.options.shuffle_doors:
79 continue
80
78 from_region = world.static_logic.get_room_region_name(connection.from_room) 81 from_region = world.static_logic.get_room_region_name(connection.from_room)
79 to_region = world.static_logic.get_room_region_name(connection.to_room) 82 to_region = world.static_logic.get_room_region_name(connection.to_room)
80 83
diff --git a/data/maps/the_entry/connections.txtpb b/data/maps/the_entry/connections.txtpb index 5fe279c..7ab15ff 100644 --- a/data/maps/the_entry/connections.txtpb +++ b/data/maps/the_entry/connections.txtpb
@@ -183,12 +183,12 @@ connections {
183 from_room: "Starting Room" 183 from_room: "Starting Room"
184 to_room: "Digital Entrance" 184 to_room: "Digital Entrance"
185 door { name: "Second Room Left Door" } 185 door { name: "Second Room Left Door" }
186 oneway: true
187} 186}
188connections { 187connections {
189 from_room: "Digital Entrance" 188 from_room: "Digital Entrance"
190 to_room: "Starting Room" 189 to_room: "Starting Room"
191 oneway: true 190 oneway: true
191 vanilla_only: true
192} 192}
193connections { 193connections {
194 from_room: "Starting Room" 194 from_room: "Starting Room"
diff --git a/data/maps/the_repetitive/connections.txtpb b/data/maps/the_repetitive/connections.txtpb index 0afe72d..f4c06f2 100644 --- a/data/maps/the_repetitive/connections.txtpb +++ b/data/maps/the_repetitive/connections.txtpb
@@ -7,12 +7,12 @@ connections {
7 from_room: "Main Room" 7 from_room: "Main Room"
8 to_room: "Plaza Connector" 8 to_room: "Plaza Connector"
9 door { name: "Black Hallway" } 9 door { name: "Black Hallway" }
10 oneway: true
11} 10}
12connections { 11connections {
13 from_room: "Plaza Connector" 12 from_room: "Plaza Connector"
14 to_room: "Main Room" 13 to_room: "Main Room"
15 oneway: true 14 oneway: true
15 vanilla_only: true
16} 16}
17connections { 17connections {
18 from_room: "Main Room" 18 from_room: "Main Room"
diff --git a/proto/data.proto b/proto/data.proto index 808198e..d79f47d 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -123,6 +123,7 @@ message Connection {
123 optional bool roof_access = 7; 123 optional bool roof_access = 7;
124 optional bool purple_ending = 8; 124 optional bool purple_ending = 8;
125 optional bool cyan_ending = 9; 125 optional bool cyan_ending = 9;
126 optional bool vanilla_only = 10;
126} 127}
127 128
128message Door { 129message Door {
diff --git a/proto/human.proto b/proto/human.proto index 99c1fd7..8e7767a 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -78,6 +78,9 @@ message HumanConnection {
78 // This means that the connection should additionally require all cyan letters 78 // This means that the connection should additionally require all cyan letters
79 // when the Strict Cyan Ending option is on. 79 // when the Strict Cyan Ending option is on.
80 optional bool cyan_ending = 10; 80 optional bool cyan_ending = 10;
81
82 // This means that the connection only exists when doors are not shuffled.
83 optional bool vanilla_only = 11;
81} 84}
82 85
83message HumanConnections { 86message HumanConnections {
diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 005361d..e807d74 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp
@@ -490,6 +490,11 @@ class DataPacker {
490 r_connection.set_cyan_ending(human_connection.cyan_ending()); 490 r_connection.set_cyan_ending(human_connection.cyan_ending());
491 } 491 }
492 492
493 if (human_connection.has_vanilla_only()) {
494 f_connection.set_vanilla_only(human_connection.vanilla_only());
495 r_connection.set_vanilla_only(human_connection.vanilla_only());
496 }
497
493 container_.AddConnection(f_connection); 498 container_.AddConnection(f_connection);
494 if (!human_connection.oneway()) { 499 if (!human_connection.oneway()) {
495 container_.AddConnection(r_connection); 500 container_.AddConnection(r_connection);