about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Archipelago/client.gd40
-rw-r--r--Archipelago/load.gd3
-rw-r--r--Archipelago/player.gd2
-rw-r--r--CHANGELOG.md19
4 files changed, 50 insertions, 14 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 0625c82..19fcee1 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -18,7 +18,7 @@ var enable_multiplayer = false
18var track_player = false 18var track_player = false
19var connection_history = [] 19var connection_history = []
20 20
21const my_version = "3.0.1" 21const my_version = "3.0.3"
22const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"} 22const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"}
23const color_items = [ 23const color_items = [
24 "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" 24 "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow"
@@ -80,6 +80,7 @@ var _team = 0
80var _slot = 0 80var _slot = 0
81var _players = [] 81var _players = []
82var _player_name_by_slot = {} 82var _player_name_by_slot = {}
83var _game_by_player = {}
83var _checked_locations = [] 84var _checked_locations = []
84var _slot_data = {} 85var _slot_data = {}
85var _paintings_mapping = {} 86var _paintings_mapping = {}
@@ -133,6 +134,10 @@ func _init():
133 var data = file.get_var(true) 134 var data = file.get_var(true)
134 file.close() 135 file.close()
135 136
137 if typeof(data) != TYPE_ARRAY:
138 global._print("AP settings file is corrupted")
139 data = []
140
136 if data.size() > 0: 141 if data.size() > 0:
137 ap_server = data[0] 142 ap_server = data[0]
138 if data.size() > 1: 143 if data.size() > 1:
@@ -257,6 +262,7 @@ func _on_data():
257 262
258 for player in _players: 263 for player in _players:
259 _player_name_by_slot[player["slot"]] = player["alias"] 264 _player_name_by_slot[player["slot"]] = player["alias"]
265 _game_by_player[player["slot"]] = message["slot_info"][str(player["slot"])]["game"]
260 266
261 _death_link = _slot_data.has("death_link") and _slot_data["death_link"] 267 _death_link = _slot_data.has("death_link") and _slot_data["death_link"]
262 if _death_link: 268 if _death_link:
@@ -327,6 +333,10 @@ func _on_data():
327 var localdata = ap_file.get_var(true) 333 var localdata = ap_file.get_var(true)
328 ap_file.close() 334 ap_file.close()
329 335
336 if typeof(localdata) != TYPE_ARRAY:
337 global._print("AP localdata file is corrupted")
338 localdata = []
339
330 if localdata.size() > 0: 340 if localdata.size() > 0:
331 _last_new_item = localdata[0] 341 _last_new_item = localdata[0]
332 else: 342 else:
@@ -436,12 +446,14 @@ func _on_data():
436 continue 446 continue
437 447
438 var item_name = "Unknown" 448 var item_name = "Unknown"
439 if _item_id_to_name.has(message["item"]["item"]): 449 var item_player_game = _game_by_player[message["receiving"]]
440 item_name = _item_id_to_name[message["item"]["item"]] 450 if _item_id_to_name[item_player_game].has(message["item"]["item"]):
451 item_name = _item_id_to_name[item_player_game][message["item"]["item"]]
441 452
442 var location_name = "Unknown" 453 var location_name = "Unknown"
443 if _location_id_to_name.has(message["item"]["location"]): 454 var location_player_game = _game_by_player[message["item"]["player"]]
444 location_name = _location_id_to_name[message["item"]["location"]] 455 if _location_id_to_name[location_player_game].has(message["item"]["location"]):
456 location_name = _location_id_to_name[location_player_game][message["item"]["location"]]
445 457
446 var player_name = "Unknown" 458 var player_name = "Unknown"
447 if _player_name_by_slot.has(message["receiving"]): 459 if _player_name_by_slot.has(message["receiving"]):
@@ -595,12 +607,16 @@ func requestDatapackages(games):
595func processDatapackages(): 607func processDatapackages():
596 _item_id_to_name = {} 608 _item_id_to_name = {}
597 _location_id_to_name = {} 609 _location_id_to_name = {}
598 for package in _datapackages.values(): 610 for game in _datapackages.keys():
611 var package = _datapackages[game]
612
613 _item_id_to_name[game] = {}
599 for name in package["item_name_to_id"].keys(): 614 for name in package["item_name_to_id"].keys():
600 _item_id_to_name[package["item_name_to_id"][name]] = name 615 _item_id_to_name[game][package["item_name_to_id"][name]] = name
601 616
617 _location_id_to_name[game] = {}
602 for name in package["location_name_to_id"].keys(): 618 for name in package["location_name_to_id"].keys():
603 _location_id_to_name[package["location_name_to_id"][name]] = name 619 _location_id_to_name[game][package["location_name_to_id"][name]] = name
604 620
605 if _datapackages.has("Lingo"): 621 if _datapackages.has("Lingo"):
606 _item_name_to_id = _datapackages["Lingo"]["item_name_to_id"] 622 _item_name_to_id = _datapackages["Lingo"]["item_name_to_id"]
@@ -690,8 +706,8 @@ func processItem(item, index, from, flags):
690 706
691 var gamedata = $Gamedata 707 var gamedata = $Gamedata
692 var item_name = "Unknown" 708 var item_name = "Unknown"
693 if _item_id_to_name.has(item): 709 if _item_id_to_name["Lingo"].has(item):
694 item_name = _item_id_to_name[item] 710 item_name = _item_id_to_name["Lingo"][item]
695 711
696 if gamedata.door_ids_by_item_id.has(int(item)): 712 if gamedata.door_ids_by_item_id.has(int(item)):
697 var doorsNode = get_tree().get_root().get_node("Spatial/Doors") 713 var doorsNode = get_tree().get_root().get_node("Spatial/Doors")
@@ -729,8 +745,8 @@ func processItem(item, index, from, flags):
729 processItem(subitem_id, null, null, null) 745 processItem(subitem_id, null, null, null)
730 _progressive_progress[int(item)] += 1 746 _progressive_progress[int(item)] += 1
731 747
732 if _color_shuffle and color_items.has(_item_id_to_name[item]): 748 if _color_shuffle and color_items.has(_item_id_to_name["Lingo"][item]):
733 var lcol = _item_id_to_name[item].to_lower() 749 var lcol = _item_id_to_name["Lingo"][item].to_lower()
734 if not _has_colors.has(lcol): 750 if not _has_colors.has(lcol):
735 _has_colors.append(lcol) 751 _has_colors.append(lcol)
736 emit_signal("evaluate_solvability") 752 emit_signal("evaluate_solvability")
diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 0ed978a..abe2b03 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd
@@ -263,6 +263,9 @@ func _load():
263 hidden_parent.get_node("hidden_door_58").translation.x = 48 263 hidden_parent.get_node("hidden_door_58").translation.x = 48
264 hidden_parent.get_node("hidden_door_58")._setReference("whiteBlock") 264 hidden_parent.get_node("hidden_door_58")._setReference("whiteBlock")
265 265
266 # Remove Fearless entrance indicator.
267 get_node("Decorations/Signs/Miscellaneous/Sign14").queue_free()
268
266 if apclient._panel_shuffle != apclient.kNO_PANEL_SHUFFLE: 269 if apclient._panel_shuffle != apclient.kNO_PANEL_SHUFFLE:
267 # Make The Wondrous's FIRE solely midred. 270 # Make The Wondrous's FIRE solely midred.
268 clear_gridmap_tile(-76.5, 1.5, -73.5) 271 clear_gridmap_tile(-76.5, 1.5, -73.5)
diff --git a/Archipelago/player.gd b/Archipelago/player.gd index 49d907d..52d743a 100644 --- a/Archipelago/player.gd +++ b/Archipelago/player.gd
@@ -44,8 +44,6 @@ func _solvingEnd():
44 44
45 45
46func _unhandled_input(event): 46func _unhandled_input(event):
47 ._unhandled_input(event)
48
49 if event is InputEventKey: 47 if event is InputEventKey:
50 if event.pressed and event.scancode == KEY_P: 48 if event.pressed and event.scancode == KEY_P:
51 var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects") 49 var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
diff --git a/CHANGELOG.md b/CHANGELOG.md index de47cb0..90c8e22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -1,5 +1,24 @@
1# lingo-archipelago Releases 1# lingo-archipelago Releases
2 2
3## v3.0.3 - 2024-06-02
4
5- Fixed issue with mouse sensitivity being doubled.
6
7Download:
8[lingo-archipelago-v3.0.3.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v3.0.3.zip)<br/>
9Source: [v3.0.3](https://code.fourisland.com/lingo-archipelago/tag/?h=v3.0.3)
10
11## v3.0.2 - 2024-05-30
12
13- Fixed a crash that could happen if the local data got corrupted.
14- Added compatibility for
15 [non universally unique datapackage IDs](https://github.com/ArchipelagoMW/Archipelago/issues/3394).
16- Removed the arrows pointing at The Fearless when confusify world is enabled.
17
18Download:
19[lingo-archipelago-v3.0.2.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v3.0.2.zip)<br/>
20Source: [v3.0.2](https://code.fourisland.com/lingo-archipelago/tag/?h=v3.0.2)
21
3## v3.0.1 - 2024-04-22 22## v3.0.1 - 2024-04-22
4 23
5- Fixed issue where Progressive Hallway Room did not work properly on worlds 24- Fixed issue where Progressive Hallway Room did not work properly on worlds