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) |