From 59a1f9e9c96d6ce89cffcb93e567b5ee601ed4ab Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 18 Aug 2025 17:17:27 -0400 Subject: Added the_relentless --- data/connections.txtpb | 1 + data/ids.txtpb | 262 +++++++++++++++++++++ data/maps/the_relentless/README | 25 ++ data/maps/the_relentless/connections.txtpb | 41 ++++ data/maps/the_relentless/doors.txtpb | 79 +++++++ data/maps/the_relentless/rooms/All.txtpb | 58 +++++ data/maps/the_relentless/rooms/Left And Turn.txtpb | 63 +++++ data/maps/the_relentless/rooms/Left Room.txtpb | 23 ++ data/maps/the_relentless/rooms/Mastery.txtpb | 6 + data/maps/the_relentless/rooms/Shop Room.txtpb | 36 +++ data/maps/the_relentless/rooms/Turn And Shop.txtpb | 56 +++++ data/maps/the_relentless/rooms/Turn Room.txtpb | 22 ++ 12 files changed, 672 insertions(+) create mode 100644 data/maps/the_relentless/README create mode 100644 data/maps/the_relentless/connections.txtpb create mode 100644 data/maps/the_relentless/doors.txtpb create mode 100644 data/maps/the_relentless/rooms/All.txtpb create mode 100644 data/maps/the_relentless/rooms/Left And Turn.txtpb create mode 100644 data/maps/the_relentless/rooms/Left Room.txtpb create mode 100644 data/maps/the_relentless/rooms/Mastery.txtpb create mode 100644 data/maps/the_relentless/rooms/Shop Room.txtpb create mode 100644 data/maps/the_relentless/rooms/Turn And Shop.txtpb create mode 100644 data/maps/the_relentless/rooms/Turn Room.txtpb (limited to 'data') diff --git a/data/connections.txtpb b/data/connections.txtpb index 5b07752..8c25813 100644 --- a/data/connections.txtpb +++ b/data/connections.txtpb @@ -55,6 +55,7 @@ # the_plaza/Symbolic Entrance/SYMBOLIC # the_plaza/Sirenic Entrance/SIRENIC # the_quiet/Main Area/DAEDALUS +# cc -> relentless (don't use port objects) connections { from { port { diff --git a/data/ids.txtpb b/data/ids.txtpb index eb5786c..43ba64b 100644 --- a/data/ids.txtpb +++ b/data/ids.txtpb @@ -4854,6 +4854,264 @@ maps { } } } +maps { + key: "the_quiet" + value { + doors { + key: "Side Door" + value: 976 + } + rooms { + key: "Main Area" + value { + panels { + key: "BEE" + value: 985 + } + panels { + key: "COIN" + value: 979 + } + panels { + key: "CRUSH" + value: 988 + } + panels { + key: "DEMAND" + value: 983 + } + panels { + key: "DISAGREE" + value: 982 + } + panels { + key: "DUO" + value: 986 + } + panels { + key: "FLOWER" + value: 984 + } + panels { + key: "LINGO 2" + value: 987 + } + panels { + key: "PORCUPINE" + value: 981 + } + panels { + key: "RODENT" + value: 978 + } + panels { + key: "RULE" + value: 980 + } + panels { + key: "SOLID" + value: 977 + } + } + } + } +} +maps { + key: "the_relentless" + value { + doors { + key: "Left/Turn Door" + value: 990 + } + doors { + key: "Turn/Shop Door" + value: 991 + } + rooms { + key: "All" + value { + panels { + key: "EXIT (1)" + value: 993 + } + panels { + key: "EXIT (2)" + value: 994 + } + panels { + key: "EXIT (3)" + value: 995 + } + panels { + key: "HIDE" + value: 996 + } + panels { + key: "LEFT (1)" + value: 992 + } + panels { + key: "LEFT (2)" + value: 997 + } + panels { + key: "MORE (1)" + value: 998 + } + panels { + key: "MORE (2)" + value: 999 + } + } + } + rooms { + key: "Left And Turn" + value { + panels { + key: "HIDE (1)" + value: 1000 + } + panels { + key: "HIDE (2)" + value: 1001 + } + panels { + key: "HIDE (3)" + value: 1005 + } + panels { + key: "LEFT (1)" + value: 1002 + } + panels { + key: "LEFT (2)" + value: 1006 + } + panels { + key: "MORE (1)" + value: 1003 + } + panels { + key: "MORE (2)" + value: 1004 + } + panels { + key: "MORE (3)" + value: 1007 + } + panels { + key: "MORE (4)" + value: 1008 + } + } + } + rooms { + key: "Left Room" + value { + panels { + key: "HIDE" + value: 1009 + } + panels { + key: "LEFT" + value: 1010 + } + panels { + key: "MORE" + value: 1011 + } + } + } + rooms { + key: "Mastery" + value { + masteries { + key: "MASTERY" + value: 1012 + } + } + } + rooms { + key: "Shop Room" + value { + panels { + key: "EXIT (1)" + value: 1015 + } + panels { + key: "EXIT (2)" + value: 1016 + } + panels { + key: "EXIT (3)" + value: 1017 + } + panels { + key: "LEFT (1)" + value: 1013 + } + panels { + key: "LEFT (2)" + value: 1014 + } + } + } + rooms { + key: "Turn And Shop" + value { + panels { + key: "EXIT (1)" + value: 1020 + } + panels { + key: "EXIT (2)" + value: 1021 + } + panels { + key: "EXIT (3)" + value: 1022 + } + panels { + key: "HIDE (1)" + value: 1023 + } + panels { + key: "HIDE (2)" + value: 1024 + } + panels { + key: "LEFT (1)" + value: 1018 + } + panels { + key: "LEFT (2)" + value: 1019 + } + panels { + key: "MORE" + value: 1025 + } + } + } + rooms { + key: "Turn Room" + value { + panels { + key: "HIDE (1)" + value: 1026 + } + panels { + key: "HIDE (2)" + value: 1027 + } + panels { + key: "MORE" + value: 1028 + } + } + } + } +} special { key: "Nothing" value: 975 @@ -4962,6 +5220,10 @@ letters { key: "p2" value: 32 } +letters { + key: "q1" + value: 989 +} letters { key: "q2" value: 45 diff --git a/data/maps/the_relentless/README b/data/maps/the_relentless/README new file mode 100644 index 0000000..a3a4ecd --- /dev/null +++ b/data/maps/the_relentless/README @@ -0,0 +1,25 @@ +The Relentless is complicated because it makes heavy use of the keyholder +mechanic. There are three rooms, and you are expected to enter each room missing +certain letters. Solving the available puzzles in each room opens the doors +between the rooms, which lets you cross into them with a different set of +missing letters. + +There currently isn't a way to represent "is missing certain letters" in our map +data or randomizer state. Instead, we use rooms to emulate knowing which letters +are available. There is a room for each of the three entrances, containing the +puzzles solvable with the expected missing letters. There's a room for each of +the inner pairs of rooms, representing what becomes available when one of the +doors is opened, and a room representing what is solvable when both doors are +opened. + +This is all done with the expectation that you are always entering The +Relentless with the correct letters in the Control Center's keyholders. Because +of this, the warps to The Relentless are not randomizable. The Control Center +keywords that open these warps are also not randomizable. It'd be nice to find a +way to randomize this at a later point. + +Also note that in order to keep this functioning properly, if the player +receives a letter item while in The Relentless, the mod should hold off on +adding it to the player's keyboard. We may want to overhaul how keyholders work +entirely and just have some kind of thing in the Archipelago client's global +state. diff --git a/data/maps/the_relentless/connections.txtpb b/data/maps/the_relentless/connections.txtpb new file mode 100644 index 0000000..8c56b0a --- /dev/null +++ b/data/maps/the_relentless/connections.txtpb @@ -0,0 +1,41 @@ +connections { + from_room: "Left Room" + to_room: "Left And Turn" + door { name: "Left/Turn Door" } + oneway: true +} +connections { + from_room: "Turn Room" + to_room: "Left And Turn" + door { name: "Left/Turn Door" } + oneway: true +} +connections { + from_room: "Turn Room" + to_room: "Turn And Shop" + door { name: "Turn/Shop Door" } + oneway: true +} +connections { + from_room: "Shop Room" + to_room: "Turn And Shop" + door { name: "Turn/Shop Door" } + oneway: true +} +connections { + from_room: "Left And Turn" + to_room: "All" + door { name: "All Doors" } + oneway: true +} +connections { + from_room: "Turn And Shop" + to_room: "All" + door { name: "All Doors" } + oneway: true +} +connections { + from_room: "Left Room" + to_room: "Mastery" + door { name: "All Panels" } +} diff --git a/data/maps/the_relentless/doors.txtpb b/data/maps/the_relentless/doors.txtpb new file mode 100644 index 0000000..11f6369 --- /dev/null +++ b/data/maps/the_relentless/doors.txtpb @@ -0,0 +1,79 @@ +doors { + name: "Left/Turn Door" + type: LOCATION_ONLY + panels { room: "Left Room" name: "HIDE" } + panels { room: "Left Room" name: "LEFT" } + panels { room: "Left Room" name: "MORE" } + panels { room: "Turn Room" name: "HIDE (1)" } + panels { room: "Turn Room" name: "HIDE (2)" } + panels { room: "Turn Room" name: "MORE" } + location_room: "Turn Room" +} +doors { + name: "Turn/Shop Door" + type: LOCATION_ONLY + panels { room: "Turn Room" name: "HIDE (1)" } + panels { room: "Turn Room" name: "HIDE (2)" } + panels { room: "Turn Room" name: "MORE" } + panels { room: "Shop Room" name: "LEFT (1)" } + panels { room: "Shop Room" name: "LEFT (2)" } + panels { room: "Shop Room" name: "EXIT (1)" } + panels { room: "Shop Room" name: "EXIT (2)" } + panels { room: "Shop Room" name: "EXIT (3)" } + location_room: "Turn Room" +} +doors { + name: "All Doors" + type: EVENT + panels { room: "Left Room" name: "HIDE" } + panels { room: "Left Room" name: "LEFT" } + panels { room: "Left Room" name: "MORE" } + panels { room: "Turn Room" name: "HIDE (1)" } + panels { room: "Turn Room" name: "HIDE (2)" } + panels { room: "Turn Room" name: "MORE" } + panels { room: "Shop Room" name: "LEFT (1)" } + panels { room: "Shop Room" name: "LEFT (2)" } + panels { room: "Shop Room" name: "EXIT (1)" } + panels { room: "Shop Room" name: "EXIT (2)" } + panels { room: "Shop Room" name: "EXIT (3)" } +} +doors { + name: "All Panels" + type: EVENT + panels { room: "Left Room" name: "HIDE" } + panels { room: "Left Room" name: "LEFT" } + panels { room: "Left Room" name: "MORE" } + panels { room: "Turn Room" name: "HIDE (1)" } + panels { room: "Turn Room" name: "HIDE (2)" } + panels { room: "Turn Room" name: "MORE" } + panels { room: "Shop Room" name: "LEFT (1)" } + panels { room: "Shop Room" name: "LEFT (2)" } + panels { room: "Shop Room" name: "EXIT (1)" } + panels { room: "Shop Room" name: "EXIT (2)" } + panels { room: "Shop Room" name: "EXIT (3)" } + panels { room: "All" name: "LEFT (1)" } + panels { room: "All" name: "LEFT (2)" } + panels { room: "All" name: "EXIT (1)" } + panels { room: "All" name: "EXIT (2)" } + panels { room: "All" name: "EXIT (3)" } + panels { room: "All" name: "MORE (1)" } + panels { room: "All" name: "MORE (2)" } + panels { room: "All" name: "HIDE" } + panels { room: "Left And Turn" name: "HIDE (1)" } + panels { room: "Left And Turn" name: "HIDE (2)" } + panels { room: "Left And Turn" name: "HIDE (3)" } + panels { room: "Left And Turn" name: "LEFT (1)" } + panels { room: "Left And Turn" name: "LEFT (2)" } + panels { room: "Left And Turn" name: "MORE (1)" } + panels { room: "Left And Turn" name: "MORE (2)" } + panels { room: "Left And Turn" name: "MORE (3)" } + panels { room: "Left And Turn" name: "MORE (4)" } + panels { room: "Turn And Shop" name: "LEFT (1)" } + panels { room: "Turn And Shop" name: "LEFT (2)" } + panels { room: "Turn And Shop" name: "EXIT (1)" } + panels { room: "Turn And Shop" name: "EXIT (2)" } + panels { room: "Turn And Shop" name: "EXIT (3)" } + panels { room: "Turn And Shop" name: "HIDE (1)" } + panels { room: "Turn And Shop" name: "HIDE (2)" } + panels { room: "Turn And Shop" name: "MORE" } +} diff --git a/data/maps/the_relentless/rooms/All.txtpb b/data/maps/the_relentless/rooms/All.txtpb new file mode 100644 index 0000000..62a2ba1 --- /dev/null +++ b/data/maps/the_relentless/rooms/All.txtpb @@ -0,0 +1,58 @@ +name: "All" +display_name: "Relentless" +panels { + name: "LEFT (1)" + path: "Panels/Room_1/panel_6" + clue: "left" + answer: "write" + symbols: "sun" + symbols: "zero" +} +panels { + name: "EXIT (1)" + path: "Panels/Room_1/panel_10" + clue: "exit" + answer: "quit" + symbols: "sun" +} +panels { + name: "EXIT (2)" + path: "Panels/Room_1/panel_11" + clue: "exit" + answer: "exit" +} +panels { + name: "EXIT (3)" + path: "Panels/Room_1/panel_12" + clue: "exit" + answer: "enter" + symbols: "sun" +} +panels { + name: "HIDE" + path: "Panels/Room_3/panel_1" + clue: "hide" + answer: "unmask" + symbols: "sun" +} +panels { + name: "LEFT (2)" + path: "Panels/Room_3/panel_4" + clue: "left" + answer: "wrong" + symbols: "sun" +} +panels { + name: "MORE (1)" + path: "Panels/Room_3/panel_7" + clue: "more" + answer: "your" + symbols: "zero" +} +panels { + name: "MORE (2)" + path: "Panels/Room_3/panel_8" + clue: "more" + answer: "or" + symbols: "sparkles" +} diff --git a/data/maps/the_relentless/rooms/Left And Turn.txtpb b/data/maps/the_relentless/rooms/Left And Turn.txtpb new file mode 100644 index 0000000..7bc6a60 --- /dev/null +++ b/data/maps/the_relentless/rooms/Left And Turn.txtpb @@ -0,0 +1,63 @@ +name: "Left And Turn" +display_name: "Relentless" +panels { + name: "HIDE (1)" + path: "Panels/Room_1/panel_2" + clue: "hide" + answer: "hide" +} +panels { + name: "HIDE (2)" + path: "Panels/Room_1/panel_3" + clue: "hide" + answer: "seek" + symbols: "sun" +} +panels { + name: "LEFT (1)" + path: "Panels/Room_1/panel_5" + clue: "left" + answer: "left" +} +panels { + name: "MORE (1)" + path: "Panels/Room_1/panel_8" + clue: "more" + answer: "me" + symbols: "sparkles" +} +panels { + name: "MORE (2)" + path: "Panels/Room_1/panel_9" + clue: "more" + answer: "less" + symbols: "sun" +} +panels { + name: "HIDE (3)" + path: "Panels/Room_2/panel_1" + clue: "hide" + answer: "unmask" + symbols: "sun" +} +panels { + name: "LEFT (2)" + path: "Panels/Room_2/panel_4" + clue: "left" + answer: "wrong" + symbols: "sun" +} +panels { + name: "MORE (3)" + path: "Panels/Room_2/panel_7" + clue: "more" + answer: "your" + symbols: "zero" +} +panels { + name: "MORE (4)" + path: "Panels/Room_2/panel_8" + clue: "more" + answer: "or" + symbols: "sparkles" +} diff --git a/data/maps/the_relentless/rooms/Left Room.txtpb b/data/maps/the_relentless/rooms/Left Room.txtpb new file mode 100644 index 0000000..b67e829 --- /dev/null +++ b/data/maps/the_relentless/rooms/Left Room.txtpb @@ -0,0 +1,23 @@ +name: "Left Room" +display_name: "Relentless" +panels { + name: "HIDE" + path: "Panels/Room_1/panel_1" + clue: "hide" + answer: "unmask" + symbols: "sun" +} +panels { + name: "LEFT" + path: "Panels/Room_1/panel_4" + clue: "left" + answer: "wrong" + symbols: "sun" +} +panels { + name: "MORE" + path: "Panels/Room_1/panel_7" + clue: "more" + answer: "your" + symbols: "zero" +} diff --git a/data/maps/the_relentless/rooms/Mastery.txtpb b/data/maps/the_relentless/rooms/Mastery.txtpb new file mode 100644 index 0000000..8b12c56 --- /dev/null +++ b/data/maps/the_relentless/rooms/Mastery.txtpb @@ -0,0 +1,6 @@ +name: "Mastery" +display_name: "Relentless" +masteries { + name: "MASTERY" + path: "Components/Collectables/smiley" +} diff --git a/data/maps/the_relentless/rooms/Shop Room.txtpb b/data/maps/the_relentless/rooms/Shop Room.txtpb new file mode 100644 index 0000000..c0f9cd0 --- /dev/null +++ b/data/maps/the_relentless/rooms/Shop Room.txtpb @@ -0,0 +1,36 @@ +name: "Shop Room" +display_name: "Relentless" +panels { + name: "LEFT (1)" + path: "Panels/Room_3/panel_5" + clue: "left" + answer: "left" +} +panels { + name: "LEFT (2)" + path: "Panels/Room_3/panel_6" + clue: "left" + answer: "write" + symbols: "sun" + symbols: "zero" +} +panels { + name: "EXIT (1)" + path: "Panels/Room_3/panel_10" + clue: "exit" + answer: "quit" + symbols: "sun" +} +panels { + name: "EXIT (2)" + path: "Panels/Room_3/panel_11" + clue: "exit" + answer: "exit" +} +panels { + name: "EXIT (3)" + path: "Panels/Room_3/panel_12" + clue: "exit" + answer: "enter" + symbols: "sun" +} diff --git a/data/maps/the_relentless/rooms/Turn And Shop.txtpb b/data/maps/the_relentless/rooms/Turn And Shop.txtpb new file mode 100644 index 0000000..d5b4d5d --- /dev/null +++ b/data/maps/the_relentless/rooms/Turn And Shop.txtpb @@ -0,0 +1,56 @@ +name: "Turn And Shop" +display_name: "Relentless" +panels { + name: "LEFT (1)" + path: "Panels/Room_2/panel_5" + clue: "left" + answer: "left" +} +panels { + name: "LEFT (2)" + path: "Panels/Room_2/panel_6" + clue: "left" + answer: "write" + symbols: "sun" + symbols: "zero" +} +panels { + name: "EXIT (1)" + path: "Panels/Room_2/panel_10" + clue: "exit" + answer: "quit" + symbols: "sun" +} +panels { + name: "EXIT (2)" + path: "Panels/Room_2/panel_11" + clue: "exit" + answer: "exit" +} +panels { + name: "EXIT (3)" + path: "Panels/Room_2/panel_12" + clue: "exit" + answer: "enter" + symbols: "sun" +} +panels { + name: "HIDE (1)" + path: "Panels/Room_3/panel_2" + clue: "hide" + answer: "hide" +} +panels { + name: "HIDE (2)" + path: "Panels/Room_3/panel_3" + clue: "hide" + answer: "seek" + symbols: "sun" +} +panels { + name: "MORE" + path: "Panels/Room_3/panel_9" + clue: "more" + answer: "less" + symbols: "sun" +} diff --git a/data/maps/the_relentless/rooms/Turn Room.txtpb b/data/maps/the_relentless/rooms/Turn Room.txtpb new file mode 100644 index 0000000..ad368e2 --- /dev/null +++ b/data/maps/the_relentless/rooms/Turn Room.txtpb @@ -0,0 +1,22 @@ +name: "Turn Room" +display_name: "Relentless" +panels { + name: "HIDE (1)" + path: "Panels/Room_2/panel_2" + clue: "hide" + answer: "hide" +} +panels { + name: "HIDE (2)" + path: "Panels/Room_2/panel_3" + clue: "hide" + answer: "seek" + symbols: "sun" +} +panels { + name: "MORE" + path: "Panels/Room_2/panel_9" + clue: "more" + answer: "less" + symbols: "sun" +} -- cgit 1.4.1