diff options
| -rw-r--r-- | Archipelago/client.gd | 20 | ||||
| -rw-r--r-- | Archipelago/load.gd | 3 |
2 files changed, 21 insertions, 2 deletions
| diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 06fb3a6..05294d5 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd | |||
| @@ -115,6 +115,7 @@ var _puzzle_skips = 0 | |||
| 115 | var _cached_slowness = 0 | 115 | 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 | 119 | ||
| 119 | signal could_not_connect | 120 | signal could_not_connect |
| 120 | signal connect_status | 121 | signal connect_status |
| @@ -300,7 +301,7 @@ func _on_data(): | |||
| 300 | 301 | ||
| 301 | if localdata.size() > 1: | 302 | if localdata.size() > 1: |
| 302 | _puzzle_skips = localdata[1] | 303 | _puzzle_skips = localdata[1] |
| 303 | 304 | ||
| 304 | if localdata.size() > 2: | 305 | if localdata.size() > 2: |
| 305 | _cached_slowness = localdata[2] | 306 | _cached_slowness = localdata[2] |
| 306 | else: | 307 | else: |
| @@ -316,6 +317,11 @@ func _on_data(): | |||
| 316 | else: | 317 | else: |
| 317 | _cached_atbash = 0 | 318 | _cached_atbash = 0 |
| 318 | 319 | ||
| 320 | if localdata.size() > 5: | ||
| 321 | _geronimo_skip = localdata[5] | ||
| 322 | else: | ||
| 323 | _geronimo_skip = false | ||
| 324 | |||
| 319 | requestSync() | 325 | requestSync() |
| 320 | 326 | ||
| 321 | emit_signal("client_connected") | 327 | emit_signal("client_connected") |
| @@ -475,7 +481,8 @@ func saveLocaldata(): | |||
| 475 | _puzzle_skips, | 481 | _puzzle_skips, |
| 476 | effects_node.slowness_remaining, | 482 | effects_node.slowness_remaining, |
| 477 | effects_node.iceland_remaining, | 483 | effects_node.iceland_remaining, |
| 478 | effects_node.atbash_remaining | 484 | effects_node.atbash_remaining, |
| 485 | _geronimo_skip | ||
| 479 | ] | 486 | ] |
| 480 | file.store_var(data, true) | 487 | file.store_var(data, true) |
| 481 | file.close() | 488 | file.close() |
| @@ -720,6 +727,15 @@ func usePuzzleSkip(): | |||
| 720 | saveLocaldata() | 727 | saveLocaldata() |
| 721 | 728 | ||
| 722 | 729 | ||
| 730 | func geronimo(): | ||
| 731 | if !_geronimo_skip: | ||
| 732 | messages.showMessage("Geronimo! You found a puzzle skip.") | ||
| 733 | |||
| 734 | _puzzle_skips += 1 | ||
| 735 | _geronimo_skip = true | ||
| 736 | saveLocaldata() | ||
| 737 | |||
| 738 | |||
| 723 | func colorForItemType(flags): | 739 | func colorForItemType(flags): |
| 724 | var int_flags = int(flags) | 740 | var int_flags = int(flags) |
| 725 | if int_flags & 1: # progression | 741 | if int_flags & 1: # progression |
| diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 66c9b8a..207550b 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd | |||
| @@ -577,6 +577,9 @@ func _load(): | |||
| 577 | var multiplayer_node = apclient.SCRIPT_multiplayer.new() | 577 | var multiplayer_node = apclient.SCRIPT_multiplayer.new() |
| 578 | multiplayer_node.ghost_mode = true | 578 | multiplayer_node.ghost_mode = true |
| 579 | add_child(multiplayer_node) | 579 | add_child(multiplayer_node) |
| 580 | |||
| 581 | # Hook up Geronimo handler. | ||
| 582 | $player.connect("player_jumped", apclient, "geronimo") | ||
| 580 | 583 | ||
| 581 | # Hook up the scene to be able to handle connection failures. | 584 | # Hook up the scene to be able to handle connection failures. |
| 582 | apclient.connect("could_not_connect", self, "archipelago_disconnected") | 585 | apclient.connect("could_not_connect", self, "archipelago_disconnected") |
