diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-02 14:50:55 -0400 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-02 14:50:55 -0400 |
| commit | c5edb28bd91936ede3c7d31a9d934ef5428fba40 (patch) | |
| tree | 0e5101843558e01d5dff584f863c55fb2cd38b6a /client/Archipelago/player.gd | |
| parent | 7f82beb120e222ace6c258fc3982b5988f9ae070 (diff) | |
| download | lingo2-archipelago-c5edb28bd91936ede3c7d31a9d934ef5428fba40.tar.gz lingo2-archipelago-c5edb28bd91936ede3c7d31a9d934ef5428fba40.tar.bz2 lingo2-archipelago-c5edb28bd91936ede3c7d31a9d934ef5428fba40.zip | |
[Client] Handle keyholder sanity
Diffstat (limited to 'client/Archipelago/player.gd')
| -rw-r--r-- | client/Archipelago/player.gd | 24 |
1 files changed, 24 insertions, 0 deletions
| diff --git a/client/Archipelago/player.gd b/client/Archipelago/player.gd index 7a1f5db..93eb14f 100644 --- a/client/Archipelago/player.gd +++ b/client/Archipelago/player.gd | |||
| @@ -114,6 +114,30 @@ func _ready(): | |||
| 114 | 114 | ||
| 115 | get_parent().add_child.call_deferred(victoryListener) | 115 | get_parent().add_child.call_deferred(victoryListener) |
| 116 | 116 | ||
| 117 | # Set up keyholder locations, in keyholder sanity. | ||
| 118 | if ap.keyholder_sanity: | ||
| 119 | for keyholder in gamedata.objects.get_keyholders(): | ||
| 120 | if not keyholder.has_key(): | ||
| 121 | continue | ||
| 122 | |||
| 123 | var room = gamedata.objects.get_rooms()[keyholder.get_room_id()] | ||
| 124 | if room.get_map_id() != map_id: | ||
| 125 | continue | ||
| 126 | |||
| 127 | var locationListener = ap.SCRIPT_locationListener.new() | ||
| 128 | locationListener.location_id = keyholder.get_ap_id() | ||
| 129 | locationListener.name = "locationListener_%d" % keyholder.get_ap_id() | ||
| 130 | |||
| 131 | var khl = khl_script.new() | ||
| 132 | khl.name = "location_%d_keyholder" % keyholder.get_ap_id() | ||
| 133 | khl.answer = keyholder.get_key() | ||
| 134 | khl.senders.append(NodePath("/root/scene/" + keyholder.get_path())) | ||
| 135 | get_parent().add_child.call_deferred(khl) | ||
| 136 | |||
| 137 | locationListener.senders.append(NodePath("../" + khl.name)) | ||
| 138 | |||
| 139 | get_parent().add_child.call_deferred(locationListener) | ||
| 140 | |||
| 117 | # Block off roof access in Daedalus. | 141 | # Block off roof access in Daedalus. |
| 118 | if global.map == "daedalus": | 142 | if global.map == "daedalus": |
| 119 | _set_up_invis_wall(75.5, 11, -24.5, 1, 10, 49) | 143 | _set_up_invis_wall(75.5, 11, -24.5, 1, 10, 49) |
