diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-10-23 15:43:20 -0400 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-10-23 15:43:20 -0400 |
| commit | 8b1edac5dbc3a5524fe0317102d6ba30623f2111 (patch) | |
| tree | 0ed5293d02dda5543d3c81bddb3d5a4d0a47e471 | |
| parent | 7cbadc54777fc537191c0e18d88754dd4caaf591 (diff) | |
| download | lingo2-archipelago-8b1edac5dbc3a5524fe0317102d6ba30623f2111.tar.gz lingo2-archipelago-8b1edac5dbc3a5524fe0317102d6ba30623f2111.tar.bz2 lingo2-archipelago-8b1edac5dbc3a5524fe0317102d6ba30623f2111.zip | |
| -rw-r--r-- | apworld/client/manager.gd | 2 | ||||
| -rw-r--r-- | apworld/client/player.gd | 28 | ||||
| -rw-r--r-- | data/ids.yaml | 3 | ||||
| -rw-r--r-- | data/maps/icarus/connections.txtpb | 5 | ||||
| -rw-r--r-- | data/maps/icarus/doors.txtpb | 60 | ||||
| -rw-r--r-- | data/maps/icarus/metadata.txtpb | 2 | ||||
| -rw-r--r-- | data/maps/icarus/rooms/Mastery.txtpb | 5 |
7 files changed, 105 insertions, 0 deletions
| diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index 91797b2..41ab648 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd | |||
| @@ -64,6 +64,7 @@ var apworld_version = [0, 0, 0] | |||
| 64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 | 64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 |
| 65 | var daedalus_roof_access = false | 65 | var daedalus_roof_access = false |
| 66 | var enable_gift_maps = [] | 66 | var enable_gift_maps = [] |
| 67 | var enable_icarus = false | ||
| 67 | var keyholder_sanity = false | 68 | var keyholder_sanity = false |
| 68 | var port_pairings = {} | 69 | var port_pairings = {} |
| 69 | var shuffle_control_center_colors = false | 70 | var shuffle_control_center_colors = false |
| @@ -441,6 +442,7 @@ func _client_connected(slot_data): | |||
| 441 | cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) | 442 | cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) |
| 442 | daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) | 443 | daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) |
| 443 | enable_gift_maps = slot_data.get("enable_gift_maps", []) | 444 | enable_gift_maps = slot_data.get("enable_gift_maps", []) |
| 445 | enable_icarus = bool(slot_data.get("enable_icarus", false)) | ||
| 444 | keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) | 446 | keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) |
| 445 | shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) | 447 | shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) |
| 446 | shuffle_doors = bool(slot_data.get("shuffle_doors", false)) | 448 | shuffle_doors = bool(slot_data.get("shuffle_doors", false)) |
| diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 9aac5a6..8aee21a 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd | |||
| @@ -261,6 +261,34 @@ func _ready(): | |||
| 261 | var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea") | 261 | var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea") |
| 262 | rte_trigger.position.z = 0 | 262 | rte_trigger.position.z = 0 |
| 263 | 263 | ||
| 264 | # Add the mastery to Icarus. | ||
| 265 | if global.map == "icarus" and ap.enable_icarus: | ||
| 266 | var collectable_prefab = preload("res://objects/nodes/collectable.tscn") | ||
| 267 | var saver_prefab = preload("res://objects/nodes/saver.tscn") | ||
| 268 | var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn") | ||
| 269 | |||
| 270 | var mastery = collectable_prefab.instantiate() | ||
| 271 | mastery.name = "collectable" | ||
| 272 | mastery.position = Vector3(0, -2000, 0) | ||
| 273 | mastery.unlock_type = "smiley" | ||
| 274 | mastery.material_override = load("res://assets/materials/gold.material") | ||
| 275 | get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery) | ||
| 276 | |||
| 277 | var tpl = tpl_prefab.instantiate() | ||
| 278 | tpl.teleport_point = Vector3(56.25, 0, -5.5) | ||
| 279 | tpl.teleport_rotate = Vector3(0, 0, 0) | ||
| 280 | tpl.target_path = mastery | ||
| 281 | tpl.name = "Teleport" | ||
| 282 | tpl.senderGroup.append(NodePath("/root/scene/Panels")) | ||
| 283 | tpl.nested = true | ||
| 284 | mastery.add_child.call_deferred(tpl) | ||
| 285 | |||
| 286 | var saver = saver_prefab.instantiate() | ||
| 287 | saver.name = "saver_collectables" | ||
| 288 | saver.type = "collectables" | ||
| 289 | saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) | ||
| 290 | get_node("/root/scene").add_child.call_deferred(saver) | ||
| 291 | |||
| 264 | # Add the mastery to The Advanced. | 292 | # Add the mastery to The Advanced. |
| 265 | if global.map == "the_advanced": | 293 | if global.map == "the_advanced": |
| 266 | var collectable_prefab = preload("res://objects/nodes/collectable.tscn") | 294 | var collectable_prefab = preload("res://objects/nodes/collectable.tscn") |
| diff --git a/data/ids.yaml b/data/ids.yaml index 42f886f..dc57d10 100644 --- a/data/ids.yaml +++ b/data/ids.yaml | |||
| @@ -1229,6 +1229,9 @@ maps: | |||
| 1229 | panels: | 1229 | panels: |
| 1230 | DIAGNOSIS: 2882 | 1230 | DIAGNOSIS: 2882 |
| 1231 | QUEEN: 2883 | 1231 | QUEEN: 2883 |
| 1232 | Mastery: | ||
| 1233 | masteries: | ||
| 1234 | MASTERY: 2994 | ||
| 1232 | Maze: | 1235 | Maze: |
| 1233 | panels: | 1236 | panels: |
| 1234 | ANALYSIS: 2887 | 1237 | ANALYSIS: 2887 |
| diff --git a/data/maps/icarus/connections.txtpb b/data/maps/icarus/connections.txtpb index b42a660..a963424 100644 --- a/data/maps/icarus/connections.txtpb +++ b/data/maps/icarus/connections.txtpb | |||
| @@ -617,6 +617,11 @@ connections { | |||
| 617 | to_room: "Trans Rights Panels" | 617 | to_room: "Trans Rights Panels" |
| 618 | oneway: true | 618 | oneway: true |
| 619 | } | 619 | } |
| 620 | connections { | ||
| 621 | from_room: "Welcome Spine (Obverse)" | ||
| 622 | to_room: "Mastery" | ||
| 623 | door { name: "Mastery" } | ||
| 624 | } | ||
| 620 | # It is possible to fall out of the map from every room, which always sends you | 625 | # It is possible to fall out of the map from every room, which always sends you |
| 621 | # back to the beginning. | 626 | # back to the beginning. |
| 622 | connections { | 627 | connections { |
| diff --git a/data/maps/icarus/doors.txtpb b/data/maps/icarus/doors.txtpb index 8cd54fc..a333dea 100644 --- a/data/maps/icarus/doors.txtpb +++ b/data/maps/icarus/doors.txtpb | |||
| @@ -224,3 +224,63 @@ doors { | |||
| 224 | panels { room: "Spiral Ramp" name: "FIREMAN" } | 224 | panels { room: "Spiral Ramp" name: "FIREMAN" } |
| 225 | location_room: "Spiral Ramp" | 225 | location_room: "Spiral Ramp" |
| 226 | } | 226 | } |
| 227 | doors { | ||
| 228 | name: "Mastery" | ||
| 229 | type: EVENT | ||
| 230 | panels { room: "Above Trans Rights" name: "ANT" } | ||
| 231 | panels { room: "Big U" name: "DECK" } | ||
| 232 | panels { room: "Big U" name: "COLONY" } | ||
| 233 | panels { room: "Big U" name: "MANOR" } | ||
| 234 | panels { room: "Fatherland" name: "FATHERLAND" } | ||
| 235 | panels { room: "Highest Point" name: "DIAGNOSIS" } | ||
| 236 | panels { room: "Highest Point" name: "QUEEN" } | ||
| 237 | panels { room: "Maze Back" name: "THESE" } | ||
| 238 | panels { room: "Maze King Panel" name: "KING (2)" } | ||
| 239 | panels { room: "Maze" name: "KING (1)" } | ||
| 240 | panels { room: "Maze" name: "ANALYSIS" } | ||
| 241 | panels { room: "Maze" name: "MANSLAUGHTER" } | ||
| 242 | panels { room: "Maze" name: "MEDIUMS" } | ||
| 243 | panels { room: "Maze" name: "BOOKS" } | ||
| 244 | panels { room: "Mini Icarus 2" name: "BATTERY" } | ||
| 245 | panels { room: "Mini Icarus 2" name: "TROUPE" } | ||
| 246 | panels { room: "Mini Icarus 2" name: "ANIMALS" } | ||
| 247 | panels { room: "Mini Icarus 2" name: "ARROWS" } | ||
| 248 | panels { room: "Mini Icarus 2" name: "SQUAD" } | ||
| 249 | panels { room: "Pillar Ramp" name: "ASTEROID" } | ||
| 250 | panels { room: "Pillar Ramp" name: "BUNCH" } | ||
| 251 | panels { room: "Pillar Ramp" name: "PRINCES" } | ||
| 252 | panels { room: "Pillar Ramp" name: "PATRICIDE" } | ||
| 253 | panels { room: "Pillar Ramp" name: "DRONE" } | ||
| 254 | panels { room: "Pillar Ramp" name: "PEA (1)" } | ||
| 255 | panels { room: "Spiral Ramp" name: "FIREMAN" } | ||
| 256 | panels { room: "The Orb" name: "ADDERS" } | ||
| 257 | panels { room: "The Orb" name: "PUPPY" } | ||
| 258 | panels { room: "The Orb" name: "NEEDLE" } | ||
| 259 | panels { room: "The Orb" name: "US" } | ||
| 260 | panels { room: "The Orb" name: "FISH" } | ||
| 261 | panels { room: "The Orb" name: "DEADLINE" } | ||
| 262 | panels { room: "The Orb" name: "PEA (2)" } | ||
| 263 | panels { room: "The Orb" name: "THESIS" } | ||
| 264 | panels { room: "The Orb" name: "CLUTCH (1)" } | ||
| 265 | panels { room: "The Orb" name: "BASIS (2)" } | ||
| 266 | panels { room: "The Orb" name: "AXIS" } | ||
| 267 | panels { room: "The Orb" name: "STRAIGHT" } | ||
| 268 | panels { room: "The Orb" name: "HISS" } | ||
| 269 | panels { room: "The Orb" name: "DISCUS" } | ||
| 270 | panels { room: "The Orb" name: "SON" } | ||
| 271 | panels { room: "The Orb" name: "CLUTCH (2)" } | ||
| 272 | panels { room: "Through Woman (Obverse)" name: "HUMAN (2)" } | ||
| 273 | panels { room: "Through Woman (Obverse)" name: "COW" } | ||
| 274 | panels { room: "Through Woman (Reverse)" name: "PRINCE" } | ||
| 275 | panels { room: "Through Woman (Reverse)" name: "BASIS (1)" } | ||
| 276 | panels { room: "Trans Rights" name: "SERVANT (1)" } | ||
| 277 | panels { room: "Trans Rights" name: "SERVANT (2)" } | ||
| 278 | panels { room: "Trans Rights Panels" name: "AGENDER" } | ||
| 279 | panels { room: "Trans Rights Panels" name: "HUMAN (3)" } | ||
| 280 | panels { room: "Trans Rights Panels" name: "HUMAN (4)" } | ||
| 281 | panels { room: "Welcome Spine (Obverse)" name: "FISHWIFE" } | ||
| 282 | panels { room: "Welcome Spine (Obverse)" name: "HUMAN (1)" } | ||
| 283 | panels { room: "Welcome Spine (Reverse)" name: "FATHER" } | ||
| 284 | panels { room: "Welcome Spine (Reverse)" name: "TERMITE" } | ||
| 285 | panels { room: "Welcome Spine (Reverse)" name: "SISTER" } | ||
| 286 | } | ||
| diff --git a/data/maps/icarus/metadata.txtpb b/data/maps/icarus/metadata.txtpb index 83afad7..8512d8e 100644 --- a/data/maps/icarus/metadata.txtpb +++ b/data/maps/icarus/metadata.txtpb | |||
| @@ -1,2 +1,4 @@ | |||
| 1 | display_name: "Icarus" | 1 | display_name: "Icarus" |
| 2 | type: ICARUS | 2 | type: ICARUS |
| 3 | # The map's mastery is created at runtime. | ||
| 4 | custom_nodes: "Components/Collectables/collectable" | ||
| diff --git a/data/maps/icarus/rooms/Mastery.txtpb b/data/maps/icarus/rooms/Mastery.txtpb new file mode 100644 index 0000000..bbe8742 --- /dev/null +++ b/data/maps/icarus/rooms/Mastery.txtpb | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | name: "Mastery" | ||
| 2 | masteries { | ||
| 3 | name: "MASTERY" | ||
| 4 | path: "Components/Collectables/collectable" | ||
| 5 | } | ||
