summary refs log tree commit diff stats
path: root/client
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-08-31 18:37:01 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-08-31 18:37:01 -0400
commit9e023e65e171a40fc72b34700260e3b8e6a80228 (patch)
tree06bdeab7318d21f5eaa0bd1c44bf12ee94d62b4f /client
parenta2aad95469e541dcefcbf0af01698c96ceac2052 (diff)
downloadlingo2-archipelago-9e023e65e171a40fc72b34700260e3b8e6a80228.tar.gz
lingo2-archipelago-9e023e65e171a40fc72b34700260e3b8e6a80228.tar.bz2
lingo2-archipelago-9e023e65e171a40fc72b34700260e3b8e6a80228.zip
[Client] Keyholders in locations
Diffstat (limited to 'client')
-rw-r--r--client/Archipelago/player.gd19
1 files changed, 19 insertions, 0 deletions
diff --git a/client/Archipelago/player.gd b/client/Archipelago/player.gd index 46b5940..37cabc6 100644 --- a/client/Archipelago/player.gd +++ b/client/Archipelago/player.gd
@@ -2,9 +2,12 @@ extends "res://scripts/nodes/player.gd"
2 2
3 3
4func _ready(): 4func _ready():
5 var khl_script = load("res://scripts/nodes/keyHolderListener.gd")
6
5 var ap = global.get_node("Archipelago") 7 var ap = global.get_node("Archipelago")
6 var gamedata = global.get_node("Gamedata") 8 var gamedata = global.get_node("Gamedata")
7 9
10 # Set up door locations.
8 var map_id = gamedata.map_id_by_name.get(global.map) 11 var map_id = gamedata.map_id_by_name.get(global.map)
9 for door in gamedata.objects.get_doors(): 12 for door in gamedata.objects.get_doors():
10 if door.get_map_id() != map_id: 13 if door.get_map_id() != map_id:
@@ -32,8 +35,22 @@ func _ready():
32 35
33 locationListener.senders.append(NodePath("/root/scene/" + panel_path)) 36 locationListener.senders.append(NodePath("/root/scene/" + panel_path))
34 37
38 for keyholder_ref in door.get_keyholders():
39 var keyholder_data = gamedata.objects.get_keyholders()[keyholder_ref.get_keyholder()]
40
41 var khl = khl_script.new()
42 khl.name = (
43 "location_%d_keyholder_%d" % [door.get_ap_id(), keyholder_ref.get_keyholder()]
44 )
45 khl.answer = keyholder_ref.get_key()
46 khl.senders.append(NodePath("/root/scene/" + keyholder_data.get_path()))
47 get_parent().add_child.call_deferred(khl)
48
49 locationListener.senders.append(NodePath("../" + khl.name))
50
35 get_parent().add_child.call_deferred(locationListener) 51 get_parent().add_child.call_deferred(locationListener)
36 52
53 # Set up letter locations.
37 for letter in gamedata.objects.get_letters(): 54 for letter in gamedata.objects.get_letters():
38 var room = gamedata.objects.get_rooms()[letter.get_room_id()] 55 var room = gamedata.objects.get_rooms()[letter.get_room_id()]
39 if room.get_map_id() != map_id: 56 if room.get_map_id() != map_id:
@@ -46,6 +63,7 @@ func _ready():
46 63
47 get_parent().add_child.call_deferred(locationListener) 64 get_parent().add_child.call_deferred(locationListener)
48 65
66 # Set up mastery locations.
49 for mastery in gamedata.objects.get_masteries(): 67 for mastery in gamedata.objects.get_masteries():
50 var room = gamedata.objects.get_rooms()[mastery.get_room_id()] 68 var room = gamedata.objects.get_rooms()[mastery.get_room_id()]
51 if room.get_map_id() != map_id: 69 if room.get_map_id() != map_id:
@@ -58,6 +76,7 @@ func _ready():
58 76
59 get_parent().add_child.call_deferred(locationListener) 77 get_parent().add_child.call_deferred(locationListener)
60 78
79 # Set up ending locations.
61 for ending in gamedata.objects.get_endings(): 80 for ending in gamedata.objects.get_endings():
62 var room = gamedata.objects.get_rooms()[ending.get_room_id()] 81 var room = gamedata.objects.get_rooms()[ending.get_room_id()]
63 if room.get_map_id() != map_id: 82 if room.get_map_id() != map_id: