diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-06-06 16:14:37 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-06-06 16:14:37 -0400 |
commit | df04df9364b5537e0e8c862ca5f25826ba3ed0a9 (patch) | |
tree | 695975790f0586d66692b48924c708eb1d13ddbc /Archipelago/client.gd | |
parent | 25d422064f01e7f9dcd3941e99b529e4d86b7ef6 (diff) | |
parent | 17d2b39d0dd2d94065fbe848e0dbf85e4a80ca66 (diff) | |
download | lingo-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.gd | 31 |
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 | |||
116 | var _cached_iceland = 0 | 116 | var _cached_iceland = 0 |
117 | var _cached_atbash = 0 | 117 | var _cached_atbash = 0 |
118 | var _geronimo_skip = false | 118 | var _geronimo_skip = false |
119 | var _checked_paintings = [] | ||
119 | 120 | ||
120 | signal could_not_connect | 121 | signal could_not_connect |
121 | signal connect_status | 122 | signal 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 | ||
487 | func _process(_delta): | 504 | func _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 | ||
644 | func setValue(key, value): | 661 | func 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 | ||
824 | func 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 | |||
806 | func colorForItemType(flags): | 833 | func 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 |