about summary refs log tree commit diff stats
path: root/Archipelago/client.gd
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2024-06-06 16:14:37 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2024-06-06 16:14:37 -0400
commitdf04df9364b5537e0e8c862ca5f25826ba3ed0a9 (patch)
tree695975790f0586d66692b48924c708eb1d13ddbc /Archipelago/client.gd
parent25d422064f01e7f9dcd3941e99b529e4d86b7ef6 (diff)
parent17d2b39d0dd2d94065fbe848e0dbf85e4a80ca66 (diff)
downloadlingo-archipelago-df04df9364b5537e0e8c862ca5f25826ba3ed0a9.tar.gz
lingo-archipelago-df04df9364b5537e0e8c862ca5f25826ba3ed0a9.tar.bz2
lingo-archipelago-df04df9364b5537e0e8c862ca5f25826ba3ed0a9.zip
Merge branch 'subway'
Diffstat (limited to 'Archipelago/client.gd')
-rw-r--r--Archipelago/client.gd31
1 files changed, 29 insertions, 2 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 5840550..19fcee1 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -116,6 +116,7 @@ var _cached_slowness = 0
116var _cached_iceland = 0 116var _cached_iceland = 0
117var _cached_atbash = 0 117var _cached_atbash = 0
118var _geronimo_skip = false 118var _geronimo_skip = false
119var _checked_paintings = []
119 120
120signal could_not_connect 121signal could_not_connect
121signal connect_status 122signal connect_status
@@ -366,6 +367,18 @@ func _on_data():
366 367
367 requestSync() 368 requestSync()
368 369
370 sendMessage(
371 [
372 {
373 "cmd": "Set",
374 "key": "Lingo_%d_Paintings" % [_slot],
375 "default": [],
376 "want_reply": true,
377 "operations": [{"operation": "default", "value": []}]
378 }
379 ]
380 )
381
369 emit_signal("client_connected") 382 emit_signal("client_connected")
370 383
371 elif cmd == "ConnectionRefused": 384 elif cmd == "ConnectionRefused":
@@ -483,6 +496,10 @@ func _on_data():
483 # Return the player home. 496 # Return the player home.
484 get_tree().get_root().get_node("Spatial/player/pause_menu")._reload() 497 get_tree().get_root().get_node("Spatial/player/pause_menu")._reload()
485 498
499 elif cmd == "SetReply":
500 if message.has("key") and message["key"] == ("Lingo_%d_Paintings" % _slot):
501 _checked_paintings = message["value"]
502
486 503
487func _process(_delta): 504func _process(_delta):
488 if _should_process: 505 if _should_process:
@@ -641,13 +658,14 @@ func sendLocation(loc_id):
641 _held_locations.append(loc_id) 658 _held_locations.append(loc_id)
642 659
643 660
644func setValue(key, value): 661func setValue(key, value, operation = "replace"):
645 sendMessage( 662 sendMessage(
646 [ 663 [
647 { 664 {
648 "cmd": "Set", 665 "cmd": "Set",
649 "key": "Lingo_%d_%s" % [_slot, key], 666 "key": "Lingo_%d_%s" % [_slot, key],
650 "operations": [{"operation": "replace", "value": value}] 667 "want_reply": false,
668 "operations": [{"operation": operation, "value": value}]
651 } 669 }
652 ] 670 ]
653 ) 671 )
@@ -803,6 +821,15 @@ func geronimo():
803 saveLocaldata() 821 saveLocaldata()
804 822
805 823
824func checkPainting(painting_id):
825 if _checked_paintings.has(painting_id):
826 return
827
828 _checked_paintings.append(painting_id)
829
830 setValue("Paintings", [painting_id], "add")
831
832
806func colorForItemType(flags): 833func colorForItemType(flags):
807 var int_flags = int(flags) 834 var int_flags = int(flags)
808 if int_flags & 1: # progression 835 if int_flags & 1: # progression