diff options
Diffstat (limited to 'Archipelago/client.gd')
-rw-r--r-- | Archipelago/client.gd | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index d93b2ed..2aa4697 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd | |||
@@ -7,6 +7,7 @@ var SCRIPT_multiplayer | |||
7 | var SCRIPT_mypainting | 7 | var SCRIPT_mypainting |
8 | var SCRIPT_notifier | 8 | var SCRIPT_notifier |
9 | var SCRIPT_panel | 9 | var SCRIPT_panel |
10 | var SCRIPT_pilgrimage_terminator | ||
10 | var SCRIPT_uuid | 11 | var SCRIPT_uuid |
11 | 12 | ||
12 | var ap_server = "" | 13 | var ap_server = "" |
@@ -42,7 +43,7 @@ const progressive_items = { | |||
42 | ], | 43 | ], |
43 | "Progressive Hallway Room": | 44 | "Progressive Hallway Room": |
44 | [ | 45 | [ |
45 | {"item": "Outside The Agreeable - Hallway Door", "display": "First Door"}, | 46 | {"item": "Hallway Room (1) - Exit", "display": "First Door"}, |
46 | {"item": "Hallway Room (2) - Exit", "display": "Second Door"}, | 47 | {"item": "Hallway Room (2) - Exit", "display": "Second Door"}, |
47 | {"item": "Hallway Room (3) - Exit", "display": "Third Door"}, | 48 | {"item": "Hallway Room (3) - Exit", "display": "Third Door"}, |
48 | {"item": "Hallway Room (4) - Exit", "display": "Fourth Door"}, | 49 | {"item": "Hallway Room (4) - Exit", "display": "Fourth Door"}, |
@@ -67,18 +68,19 @@ const progressive_items = { | |||
67 | ], | 68 | ], |
68 | "Progressive Pilgrimage": | 69 | "Progressive Pilgrimage": |
69 | [ | 70 | [ |
70 | {"item": "Hub Room - 1 Sunwarp", "display": "1 Sunwarp"}, | 71 | {"item": "1 Sunwarp", "display": "1 Sunwarp"}, |
71 | {"item": "Orange Tower Fourth Floor - 2 Sunwarp", "display": "2 Sunwarp"}, | 72 | {"item": "2 Sunwarp", "display": "2 Sunwarp"}, |
72 | {"item": "Orange Tower Third Floor - 3 Sunwarp", "display": "3 Sunwarp"}, | 73 | {"item": "3 Sunwarp", "display": "3 Sunwarp"}, |
73 | {"item": "Orange Tower First Floor - 4 Sunwarp", "display": "4 Sunwarp"}, | 74 | {"item": "4 Sunwarp", "display": "4 Sunwarp"}, |
74 | {"item": "Orange Tower Fourth Floor - 5 Sunwarp", "display": "5 Sunwarp"}, | 75 | {"item": "5 Sunwarp", "display": "5 Sunwarp"}, |
75 | {"item": "Outside The Agreeable - 6 Sunwarp", "display": "6 Sunwarp"}, | 76 | {"item": "6 Sunwarp", "display": "6 Sunwarp"}, |
76 | ] | 77 | ] |
77 | } | 78 | } |
78 | 79 | ||
79 | const kTHE_END = 0 | 80 | const kTHE_END = 0 |
80 | const kTHE_MASTER = 1 | 81 | const kTHE_MASTER = 1 |
81 | const kLEVEL_2 = 2 | 82 | const kLEVEL_2 = 2 |
83 | const kPILGRIMAGE = 3 | ||
82 | 84 | ||
83 | const kNO_PANEL_SHUFFLE = 0 | 85 | const kNO_PANEL_SHUFFLE = 0 |
84 | const kREARRANGE_PANELS = 1 | 86 | const kREARRANGE_PANELS = 1 |
@@ -94,7 +96,8 @@ const kCLASSIFICATION_REMOTE_INSANITY = 2 | |||
94 | const kSUNWARP_ACCESS_NORMAL = 0 | 96 | const kSUNWARP_ACCESS_NORMAL = 0 |
95 | const kSUNWARP_ACCESS_DISABLED = 1 | 97 | const kSUNWARP_ACCESS_DISABLED = 1 |
96 | const kSUNWARP_ACCESS_UNLOCK = 2 | 98 | const kSUNWARP_ACCESS_UNLOCK = 2 |
97 | const kSUNWARP_ACCESS_PROGRESSIVE = 3 | 99 | const kSUNWARP_ACCESS_INDIVIDUAL = 3 |
100 | const kSUNWARP_ACCESS_PROGRESSIVE = 4 | ||
98 | 101 | ||
99 | var _client = WebSocketClient.new() | 102 | var _client = WebSocketClient.new() |
100 | var _should_process = false | 103 | var _should_process = false |
@@ -133,6 +136,12 @@ var _mastery_achievements = 21 | |||
133 | var _level_2_requirement = 223 | 136 | var _level_2_requirement = 223 |
134 | var _location_classification_bit = 0 | 137 | var _location_classification_bit = 0 |
135 | var _early_color_hallways = false | 138 | var _early_color_hallways = false |
139 | var _pilgrimage_compatibility = false # set to true for pre-0.4.6 | ||
140 | var _pilgrimage_enabled = false | ||
141 | var _pilgrimage_allows_roof_access = false | ||
142 | var _pilgrimage_allows_paintings = false | ||
143 | var _sunwarp_shuffle = false | ||
144 | var _sunwarp_mapping = [] | ||
136 | var _slot_seed = 0 | 145 | var _slot_seed = 0 |
137 | 146 | ||
138 | var _map_loaded = false | 147 | var _map_loaded = false |
@@ -305,6 +314,8 @@ func _on_data(): | |||
305 | _panel_shuffle = _slot_data["shuffle_panels"] | 314 | _panel_shuffle = _slot_data["shuffle_panels"] |
306 | if _slot_data.has("sunwarp_access"): | 315 | if _slot_data.has("sunwarp_access"): |
307 | _sunwarp_access = _slot_data["sunwarp_access"] | 316 | _sunwarp_access = _slot_data["sunwarp_access"] |
317 | else: | ||
318 | _sunwarp_access = kSUNWARP_ACCESS_NORMAL | ||
308 | if _slot_data.has("seed"): | 319 | if _slot_data.has("seed"): |
309 | _slot_seed = _slot_data["seed"] | 320 | _slot_seed = _slot_data["seed"] |
310 | if _slot_data.has("painting_entrance_to_exit"): | 321 | if _slot_data.has("painting_entrance_to_exit"): |
@@ -322,6 +333,25 @@ func _on_data(): | |||
322 | _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY | 333 | _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY |
323 | if _slot_data.has("early_color_hallways"): | 334 | if _slot_data.has("early_color_hallways"): |
324 | _early_color_hallways = _slot_data["early_color_hallways"] | 335 | _early_color_hallways = _slot_data["early_color_hallways"] |
336 | if _slot_data.has("enable_pilgrimage"): | ||
337 | _pilgrimage_enabled = _slot_data["enable_pilgrimage"] | ||
338 | else: | ||
339 | _pilgrimage_compatibility = true | ||
340 | _pilgrimage_enabled = true | ||
341 | if _slot_data.has("pilgrimage_allows_roof_access"): | ||
342 | _pilgrimage_allows_roof_access = _slot_data["pilgrimage_allows_roof_access"] | ||
343 | else: | ||
344 | _pilgrimage_allows_roof_access = true | ||
345 | if _slot_data.has("pilgrimage_allows_paintings"): | ||
346 | _pilgrimage_allows_paintings = _slot_data["pilgrimage_allows_paintings"] | ||
347 | else: | ||
348 | _pilgrimage_allows_paintings = true | ||
349 | if _slot_data.has("shuffle_sunwarps"): | ||
350 | _sunwarp_shuffle = _slot_data["shuffle_sunwarps"] | ||
351 | else: | ||
352 | _sunwarp_shuffle = false | ||
353 | if _slot_data.has("sunwarp_permutation"): | ||
354 | _sunwarp_mapping = _slot_data["sunwarp_permutation"] | ||
325 | 355 | ||
326 | if track_player: | 356 | if track_player: |
327 | setValue("PlayerPos", {"x": 0, "z": 0}) | 357 | setValue("PlayerPos", {"x": 0, "z": 0}) |
@@ -704,7 +734,12 @@ func processItem(item, index, from, flags): | |||
704 | painting_node = fake_parent_node.get_node_or_null(painting_id) | 734 | painting_node = fake_parent_node.get_node_or_null(painting_id) |
705 | if painting_node != null: | 735 | if painting_node != null: |
706 | painting_node.get_node("Script").movePainting() | 736 | painting_node.get_node("Script").movePainting() |
707 | 737 | ||
738 | if gamedata.warp_ids_by_item_id.has(int(item)): | ||
739 | var warpsNode = get_tree().get_root().get_node("Spatial/Warps") | ||
740 | for warp_id in gamedata.warp_ids_by_item_id[int(item)]: | ||
741 | warpsNode.get_node(warp_id).unlock_warp() | ||
742 | |||
708 | if gamedata.warp_ids_by_item_id.has(int(item)): | 743 | if gamedata.warp_ids_by_item_id.has(int(item)): |
709 | var warpsNode = get_tree().get_root().get_node("Spatial/Warps") | 744 | var warpsNode = get_tree().get_root().get_node("Spatial/Warps") |
710 | for warp_id in gamedata.warp_ids_by_item_id[int(item)]: | 745 | for warp_id in gamedata.warp_ids_by_item_id[int(item)]: |