diff options
Diffstat (limited to 'apworld/client')
| -rw-r--r-- | apworld/client/gamedata.gd | 4 | ||||
| -rw-r--r-- | apworld/client/manager.gd | 4 | ||||
| -rw-r--r-- | apworld/client/player.gd | 15 |
3 files changed, 19 insertions, 4 deletions
| diff --git a/apworld/client/gamedata.gd b/apworld/client/gamedata.gd index 3a35125..d7e3136 100644 --- a/apworld/client/gamedata.gd +++ b/apworld/client/gamedata.gd | |||
| @@ -15,6 +15,7 @@ var symbol_item_ids = [] | |||
| 15 | var anti_trap_ids = {} | 15 | var anti_trap_ids = {} |
| 16 | var location_name_by_id = {} | 16 | var location_name_by_id = {} |
| 17 | var ending_display_name_by_name = {} | 17 | var ending_display_name_by_name = {} |
| 18 | var port_id_by_ap_id = {} | ||
| 18 | 19 | ||
| 19 | var kSYMBOL_ITEMS | 20 | var kSYMBOL_ITEMS |
| 20 | 21 | ||
| @@ -99,6 +100,9 @@ func load(data_bytes): | |||
| 99 | var map_data = port_id_by_map_node_path[map.get_name()] | 100 | var map_data = port_id_by_map_node_path[map.get_name()] |
| 100 | map_data[port.get_path()] = port.get_id() | 101 | map_data[port.get_path()] = port.get_id() |
| 101 | 102 | ||
| 103 | if port.has_ap_id(): | ||
| 104 | port_id_by_ap_id[port.get_ap_id()] = port.get_id() | ||
| 105 | |||
| 102 | for progressive in objects.get_progressives(): | 106 | for progressive in objects.get_progressives(): |
| 103 | progressive_id_by_ap_id[progressive.get_ap_id()] = progressive.get_id() | 107 | progressive_id_by_ap_id[progressive.get_ap_id()] = progressive.get_id() |
| 104 | 108 | ||
| diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index aa07559..727d17a 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd | |||
| @@ -472,7 +472,9 @@ func _client_connected(slot_data): | |||
| 472 | var raw_pp = slot_data.get("port_pairings") | 472 | var raw_pp = slot_data.get("port_pairings") |
| 473 | 473 | ||
| 474 | for p1 in raw_pp.keys(): | 474 | for p1 in raw_pp.keys(): |
| 475 | port_pairings[int(p1)] = int(raw_pp[p1]) | 475 | port_pairings[gamedata.port_id_by_ap_id[int(p1)]] = gamedata.port_id_by_ap_id[int( |
| 476 | raw_pp[p1] | ||
| 477 | )] | ||
| 476 | 478 | ||
| 477 | # Set up item locks. | 479 | # Set up item locks. |
| 478 | _item_locks = {} | 480 | _item_locks = {} |
| diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 712a59b..35fd793 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd | |||
| @@ -586,6 +586,12 @@ func _ready(): | |||
| 586 | saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) | 586 | saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) |
| 587 | get_node("/root/scene").add_child.call_deferred(saver) | 587 | get_node("/root/scene").add_child.call_deferred(saver) |
| 588 | 588 | ||
| 589 | # Shrink the painting trigger in The Unyielding. | ||
| 590 | if global.map == "the_unyielding": | ||
| 591 | var trigger_area = get_node("/root/scene/Components/PaintingUnlocker/triggerArea") | ||
| 592 | trigger_area.position = Vector3(0, 0, -6) | ||
| 593 | trigger_area.scale = Vector3(6, 1, 6) | ||
| 594 | |||
| 589 | ap.update_job_well_done_sign() | 595 | ap.update_job_well_done_sign() |
| 590 | 596 | ||
| 591 | # Set up door locations. | 597 | # Set up door locations. |
| @@ -598,9 +604,12 @@ func _ready(): | |||
| 598 | continue | 604 | continue |
| 599 | 605 | ||
| 600 | if ( | 606 | if ( |
| 601 | door.get_type() == gamedata.SCRIPT_proto.DoorType.ITEM_ONLY | 607 | not (door.has_legacy_location() and door.get_legacy_location()) |
| 602 | or door.get_type() == gamedata.SCRIPT_proto.DoorType.GALLERY_PAINTING | 608 | and ( |
| 603 | or door.get_type() == gamedata.SCRIPT_proto.DoorType.CONTROL_CENTER_COLOR | 609 | door.get_type() == gamedata.SCRIPT_proto.DoorType.ITEM_ONLY |
| 610 | or door.get_type() == gamedata.SCRIPT_proto.DoorType.GALLERY_PAINTING | ||
| 611 | or door.get_type() == gamedata.SCRIPT_proto.DoorType.CONTROL_CENTER_COLOR | ||
| 612 | ) | ||
| 604 | ): | 613 | ): |
| 605 | continue | 614 | continue |
| 606 | 615 | ||
