diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/Archipelago/player.gd | 19 |
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 | ||
| 4 | func _ready(): | 4 | func _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: |
