diff options
Diffstat (limited to 'Archipelago')
| -rw-r--r-- | Archipelago/client.gd | 46 | ||||
| -rw-r--r-- | Archipelago/load.gd | 87 | ||||
| -rw-r--r-- | Archipelago/mypainting.gd | 5 | ||||
| -rw-r--r-- | Archipelago/painting.gd | 10 | ||||
| -rw-r--r-- | Archipelago/painting_eye.gd | 16 | ||||
| -rw-r--r-- | Archipelago/painting_scenery.gd | 10 | ||||
| -rw-r--r-- | Archipelago/panel.gd | 4 | ||||
| -rw-r--r-- | Archipelago/pilgrimage_terminator.gd | 11 | ||||
| -rw-r--r-- | Archipelago/settings_screen.gd | 5 | ||||
| -rw-r--r-- | Archipelago/teleport.gd | 27 |
10 files changed, 215 insertions, 6 deletions
| diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 3541016..b3668d7 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 = "" |
| @@ -40,7 +41,7 @@ const progressive_items = { | |||
| 40 | ], | 41 | ], |
| 41 | "Progressive Hallway Room": | 42 | "Progressive Hallway Room": |
| 42 | [ | 43 | [ |
| 43 | {"item": "Outside The Agreeable - Hallway Door", "display": "First Door"}, | 44 | {"item": "Hallway Room (1) - Exit", "display": "First Door"}, |
| 44 | {"item": "Hallway Room (2) - Exit", "display": "Second Door"}, | 45 | {"item": "Hallway Room (2) - Exit", "display": "Second Door"}, |
| 45 | {"item": "Hallway Room (3) - Exit", "display": "Third Door"}, | 46 | {"item": "Hallway Room (3) - Exit", "display": "Third Door"}, |
| 46 | {"item": "Hallway Room (4) - Exit", "display": "Fourth Door"}, | 47 | {"item": "Hallway Room (4) - Exit", "display": "Fourth Door"}, |
| @@ -62,12 +63,22 @@ const progressive_items = { | |||
| 62 | {"item": "The Colorful - Green Door", "display": "Green"}, | 63 | {"item": "The Colorful - Green Door", "display": "Green"}, |
| 63 | {"item": "The Colorful - Brown Door", "display": "Brown"}, | 64 | {"item": "The Colorful - Brown Door", "display": "Brown"}, |
| 64 | {"item": "The Colorful - Gray Door", "display": "Gray"}, | 65 | {"item": "The Colorful - Gray Door", "display": "Gray"}, |
| 66 | ], | ||
| 67 | "Progressive Pilgrimage": | ||
| 68 | [ | ||
| 69 | {"item": "1 Sunwarp", "display": "1 Sunwarp"}, | ||
| 70 | {"item": "2 Sunwarp", "display": "2 Sunwarp"}, | ||
| 71 | {"item": "3 Sunwarp", "display": "3 Sunwarp"}, | ||
| 72 | {"item": "4 Sunwarp", "display": "4 Sunwarp"}, | ||
| 73 | {"item": "5 Sunwarp", "display": "5 Sunwarp"}, | ||
| 74 | {"item": "6 Sunwarp", "display": "6 Sunwarp"}, | ||
| 65 | ] | 75 | ] |
| 66 | } | 76 | } |
| 67 | 77 | ||
| 68 | const kTHE_END = 0 | 78 | const kTHE_END = 0 |
| 69 | const kTHE_MASTER = 1 | 79 | const kTHE_MASTER = 1 |
| 70 | const kLEVEL_2 = 2 | 80 | const kLEVEL_2 = 2 |
| 81 | const kPILGRIMAGE = 3 | ||
| 71 | 82 | ||
| 72 | const kNO_PANEL_SHUFFLE = 0 | 83 | const kNO_PANEL_SHUFFLE = 0 |
| 73 | const kREARRANGE_PANELS = 1 | 84 | const kREARRANGE_PANELS = 1 |
| @@ -80,6 +91,12 @@ const kCLASSIFICATION_REMOTE_NORMAL = 0 | |||
| 80 | const kCLASSIFICATION_REMOTE_REDUCED = 1 | 91 | const kCLASSIFICATION_REMOTE_REDUCED = 1 |
| 81 | const kCLASSIFICATION_REMOTE_INSANITY = 2 | 92 | const kCLASSIFICATION_REMOTE_INSANITY = 2 |
| 82 | 93 | ||
| 94 | const kSUNWARP_ACCESS_NORMAL = 0 | ||
| 95 | const kSUNWARP_ACCESS_DISABLED = 1 | ||
| 96 | const kSUNWARP_ACCESS_UNLOCK = 2 | ||
| 97 | const kSUNWARP_ACCESS_INDIVIDUAL = 3 | ||
| 98 | const kSUNWARP_ACCESS_PROGRESSIVE = 4 | ||
| 99 | |||
| 83 | var _client = WebSocketClient.new() | 100 | var _client = WebSocketClient.new() |
| 84 | var _should_process = false | 101 | var _should_process = false |
| 85 | var _initiated_disconnect = false | 102 | var _initiated_disconnect = false |
| @@ -111,10 +128,16 @@ var _door_shuffle = false | |||
| 111 | var _color_shuffle = false | 128 | var _color_shuffle = false |
| 112 | var _panel_shuffle = 0 # none, rearrange | 129 | var _panel_shuffle = 0 # none, rearrange |
| 113 | var _painting_shuffle = false | 130 | var _painting_shuffle = false |
| 131 | var _sunwarp_access = 0 # normal, disabled, unlock, progressive | ||
| 114 | var _mastery_achievements = 21 | 132 | var _mastery_achievements = 21 |
| 115 | var _level_2_requirement = 223 | 133 | var _level_2_requirement = 223 |
| 116 | var _location_classification_bit = 0 | 134 | var _location_classification_bit = 0 |
| 117 | var _early_color_hallways = false | 135 | var _early_color_hallways = false |
| 136 | var _pilgrimage_enabled = false | ||
| 137 | var _pilgrimage_allows_roof_access = false | ||
| 138 | var _pilgrimage_allows_paintings = false | ||
| 139 | var _sunwarp_shuffle = false | ||
| 140 | var _sunwarp_mapping = [] | ||
| 118 | var _slot_seed = 0 | 141 | var _slot_seed = 0 |
| 119 | 142 | ||
| 120 | var _map_loaded = false | 143 | var _map_loaded = false |
| @@ -276,6 +299,8 @@ func _on_data(): | |||
| 276 | _painting_shuffle = _slot_data["shuffle_paintings"] | 299 | _painting_shuffle = _slot_data["shuffle_paintings"] |
| 277 | if _slot_data.has("shuffle_panels"): | 300 | if _slot_data.has("shuffle_panels"): |
| 278 | _panel_shuffle = _slot_data["shuffle_panels"] | 301 | _panel_shuffle = _slot_data["shuffle_panels"] |
| 302 | if _slot_data.has("sunwarp_access"): | ||
| 303 | _sunwarp_access = _slot_data["sunwarp_access"] | ||
| 279 | if _slot_data.has("seed"): | 304 | if _slot_data.has("seed"): |
| 280 | _slot_seed = _slot_data["seed"] | 305 | _slot_seed = _slot_data["seed"] |
| 281 | if _slot_data.has("painting_entrance_to_exit"): | 306 | if _slot_data.has("painting_entrance_to_exit"): |
| @@ -293,6 +318,16 @@ func _on_data(): | |||
| 293 | _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY | 318 | _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY |
| 294 | if _slot_data.has("early_color_hallways"): | 319 | if _slot_data.has("early_color_hallways"): |
| 295 | _early_color_hallways = _slot_data["early_color_hallways"] | 320 | _early_color_hallways = _slot_data["early_color_hallways"] |
| 321 | if _slot_data.has("enable_pilgrimage"): | ||
| 322 | _pilgrimage_enabled = _slot_data["enable_pilgrimage"] | ||
| 323 | if _slot_data.has("pilgrimage_allows_roof_access"): | ||
| 324 | _pilgrimage_allows_roof_access = _slot_data["pilgrimage_allows_roof_access"] | ||
| 325 | if _slot_data.has("pilgrimage_allows_paintings"): | ||
| 326 | _pilgrimage_allows_paintings = _slot_data["pilgrimage_allows_paintings"] | ||
| 327 | if _slot_data.has("shuffle_sunwarps"): | ||
| 328 | _sunwarp_shuffle = _slot_data["shuffle_sunwarps"] | ||
| 329 | if _slot_data.has("sunwarp_permutation"): | ||
| 330 | _sunwarp_mapping = _slot_data["sunwarp_permutation"] | ||
| 296 | 331 | ||
| 297 | _puzzle_skips = 0 | 332 | _puzzle_skips = 0 |
| 298 | 333 | ||
| @@ -633,6 +668,11 @@ func processItem(item, index, from, flags): | |||
| 633 | if painting_node != null: | 668 | if painting_node != null: |
| 634 | painting_node.get_node("Script").movePainting() | 669 | painting_node.get_node("Script").movePainting() |
| 635 | 670 | ||
| 671 | if gamedata.warp_ids_by_item_id.has(int(item)): | ||
| 672 | var warpsNode = get_tree().get_root().get_node("Spatial/Warps") | ||
| 673 | for warp_id in gamedata.warp_ids_by_item_id[int(item)]: | ||
| 674 | warpsNode.get_node(warp_id).unlock_warp() | ||
| 675 | |||
| 636 | # Handle progressive items. | 676 | # Handle progressive items. |
| 637 | if item_name in progressive_items.keys(): | 677 | if item_name in progressive_items.keys(): |
| 638 | if not item_name in _progressive_progress: | 678 | if not item_name in _progressive_progress: |
| @@ -693,6 +733,10 @@ func paintingIsVanilla(painting): | |||
| 693 | return !$Gamedata.mentioned_paintings.has(painting) | 733 | return !$Gamedata.mentioned_paintings.has(painting) |
| 694 | 734 | ||
| 695 | 735 | ||
| 736 | func warpIsVanilla(warp): | ||
| 737 | return !$Gamedata.mentioned_warps.has(warp) | ||
| 738 | |||
| 739 | |||
| 696 | func evaluateSolvability(): | 740 | func evaluateSolvability(): |
| 697 | emit_signal("evaluate_solvability") | 741 | emit_signal("evaluate_solvability") |
| 698 | 742 | ||
| diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 2d5f7c6..0750247 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd | |||
| @@ -334,6 +334,8 @@ func _load(): | |||
| 334 | victory_condition = "the master" | 334 | victory_condition = "the master" |
| 335 | elif apclient._victory_condition == apclient.kLEVEL_2: | 335 | elif apclient._victory_condition == apclient.kLEVEL_2: |
| 336 | victory_condition = "level 2" | 336 | victory_condition = "level 2" |
| 337 | elif apclient._victory_condition == apclient.kPILGRIMAGE: | ||
| 338 | victory_condition = "pilgrimage" | ||
| 337 | 339 | ||
| 338 | set_static_panel("Entry Room/Panel_this_this", victory_condition) | 340 | set_static_panel("Entry Room/Panel_this_this", victory_condition) |
| 339 | set_static_panel("Entry Room/Panel_hidden_hidden", "hewwo") | 341 | set_static_panel("Entry Room/Panel_hidden_hidden", "hewwo") |
| @@ -538,11 +540,84 @@ func _load(): | |||
| 538 | level_2.get_node("Viewport/GUI/Panel/TextEdit").connect( | 540 | level_2.get_node("Viewport/GUI/Panel/TextEdit").connect( |
| 539 | "answer_correct", apclient, "completedGoal" | 541 | "answer_correct", apclient, "completedGoal" |
| 540 | ) | 542 | ) |
| 543 | elif apclient._victory_condition == apclient.kPILGRIMAGE: | ||
| 544 | var pilgrim_panel = self.get_node("Panels/Lingo Room/Panel_pilgrim") | ||
| 545 | pilgrim_panel.get_node("Viewport/GUI/Panel/TextEdit").connect( | ||
| 546 | "answer_correct", apclient, "completedGoal" | ||
| 547 | ) | ||
| 541 | else: | 548 | else: |
| 542 | var the_end = self.get_node("Decorations/EndPanel/Panel_end_end") | 549 | var the_end = self.get_node("Decorations/EndPanel/Panel_end_end") |
| 543 | the_end.get_node("Viewport/GUI/Panel/TextEdit").connect( | 550 | the_end.get_node("Viewport/GUI/Panel/TextEdit").connect( |
| 544 | "answer_correct", apclient, "completedGoal" | 551 | "answer_correct", apclient, "completedGoal" |
| 545 | ) | 552 | ) |
| 553 | |||
| 554 | # If pilgrimage does not allow roof access, add a node on the Crossroads | ||
| 555 | # Roof Access stairs that disables it. | ||
| 556 | if !apclient._pilgrimage_allows_roof_access: | ||
| 557 | var terminator = apclient.SCRIPT_pilgrimage_terminator.new() | ||
| 558 | terminator.name = "RoofAccessPilgrimageTerminator" | ||
| 559 | terminator.translation.x = -36 | ||
| 560 | terminator.translation.y = 3 | ||
| 561 | terminator.translation.z = -35 | ||
| 562 | |||
| 563 | var terminator_shape = CollisionShape.new() | ||
| 564 | terminator_shape.shape = BoxShape.new() | ||
| 565 | terminator_shape.shape.extents.x = 0.1 | ||
| 566 | |||
| 567 | terminator.add_child(terminator_shape) | ||
| 568 | get_node("Decorations").add_child(terminator) | ||
| 569 | |||
| 570 | if apclient._sunwarp_shuffle: | ||
| 571 | # Sunwarps 1 and 6 are rotated differently from the rest, so we have to fix that. | ||
| 572 | get_node("Decorations/Teleporter Windows/localmap").rotation_degrees.y = 0 | ||
| 573 | get_node("Decorations/Teleporter Windows/localmap2").rotation_degrees.y = 0 | ||
| 574 | get_node("Decorations/Teleporter Windows/localmap11").rotation_degrees.y = 0 | ||
| 575 | get_node("Decorations/Teleporter Windows/localmap12").rotation_degrees.y = 0 | ||
| 576 | get_node("Decorations/Teleporter Windows/localmap13").rotation_degrees.y = -90 | ||
| 577 | |||
| 578 | get_node("Warps/Teleporter Warps/Sunwarp_enter_1").translation.x = 19.5 | ||
| 579 | get_node("Warps/Teleporter Warps/Sunwarp_exit_1").translation.x = -15.5 | ||
| 580 | get_node("Warps/Teleporter Warps/Sunwarp_enter_6").translation.x = 4.5 | ||
| 581 | get_node("Warps/Teleporter Warps/Sunwarp_exit_6").translation.x = -37.5 | ||
| 582 | get_node("Warps/Teleporter Warps/Sunwarp_exit_7").translation.z = 23.5 | ||
| 583 | |||
| 584 | # Change the sunwarps in accordance with the mapping. | ||
| 585 | var sw_orig_translations = [] | ||
| 586 | var sw_text_translations = [] | ||
| 587 | var sw_text_rotations = [] | ||
| 588 | for i in range(1,7): | ||
| 589 | sw_orig_translations.append(get_node("Warps/Teleporter Warps/Sunwarp_enter_%d" % i).translation) | ||
| 590 | sw_text_translations.append(get_node("Decorations/Signs/Sunwarp Numbers/enter_%d" % i).translation) | ||
| 591 | sw_text_rotations.append(get_node("Decorations/Signs/Sunwarp Numbers/enter_%d" % i).rotation_degrees) | ||
| 592 | for i in range(1,7): | ||
| 593 | sw_orig_translations.append(get_node("Warps/Teleporter Warps/Sunwarp_exit_%d" % i).translation) | ||
| 594 | sw_text_translations.append(get_node("Decorations/Signs/Sunwarp Numbers/exit_%d" % i).translation) | ||
| 595 | sw_text_rotations.append(get_node("Decorations/Signs/Sunwarp Numbers/exit_%d" % i).rotation_degrees) | ||
| 596 | |||
| 597 | var sw_enter_indicators = [4, 5, 6, 12, 7, 10] | ||
| 598 | for i in range(1,7): | ||
| 599 | get_node("Warps/Teleporter Warps/Sunwarp_enter_%d" % i).translation = sw_orig_translations[apclient._sunwarp_mapping[i-1]] | ||
| 600 | get_node("Warps/Teleporter Warps/Sunwarp_exit_%d" % i).translation = sw_orig_translations[apclient._sunwarp_mapping[i+5]] | ||
| 601 | |||
| 602 | get_node("Decorations/Signs/Sunwarp Numbers/enter_%d" % i).translation = sw_text_translations[apclient._sunwarp_mapping[i-1]] | ||
| 603 | get_node("Decorations/Signs/Sunwarp Numbers/enter_%d" % i).rotation_degrees = sw_text_rotations[apclient._sunwarp_mapping[i-1]] | ||
| 604 | |||
| 605 | get_node("Decorations/Signs/Sunwarp Numbers/exit_%d" % i).translation = sw_text_translations[apclient._sunwarp_mapping[i+5]] | ||
| 606 | get_node("Decorations/Signs/Sunwarp Numbers/exit_%d" % i).rotation_degrees = sw_text_rotations[apclient._sunwarp_mapping[i+5]] | ||
| 607 | |||
| 608 | var enter_rot = _dir_to_int(gamedata.sunwarps[apclient._sunwarp_mapping[i-1]]["orientation"]) * 90 | ||
| 609 | var exit_rot = _dir_to_int(gamedata.sunwarps[apclient._sunwarp_mapping[i+5]]["orientation"]) * 90 | ||
| 610 | var final_rot = enter_rot - exit_rot | ||
| 611 | if final_rot < 0: | ||
| 612 | final_rot += 360 | ||
| 613 | get_node("Warps/Teleporter Warps/Sunwarp_enter_%d" % i).rotate = str(final_rot) | ||
| 614 | |||
| 615 | var sw_enter_indicator_pos = gamedata.sunwarps[apclient._sunwarp_mapping[i-1]]["entrance_indicator_pos"] | ||
| 616 | var sw_enter_indicator = get_node("Decorations/Signs/Welcome Back Signs/Sign%d" % sw_enter_indicators[i-1]) | ||
| 617 | sw_enter_indicator.translation.x = sw_enter_indicator_pos[0] | ||
| 618 | sw_enter_indicator.translation.y = sw_enter_indicator_pos[1] | ||
| 619 | sw_enter_indicator.translation.z = sw_enter_indicator_pos[2] | ||
| 620 | sw_enter_indicator.rotation_degrees.y = (enter_rot * -1) + 180 | ||
| 546 | 621 | ||
| 547 | # Create the effects node. | 622 | # Create the effects node. |
| 548 | var effects_script = apclient.SCRIPT_effects | 623 | var effects_script = apclient.SCRIPT_effects |
| @@ -643,3 +718,15 @@ func set_small_gridmap_tile(x, y, z, tile): | |||
| 643 | 718 | ||
| 644 | func archipelago_disconnected(reason): | 719 | func archipelago_disconnected(reason): |
| 645 | messages.showMessage(reason) | 720 | messages.showMessage(reason) |
| 721 | |||
| 722 | |||
| 723 | func _dir_to_int(dir): | ||
| 724 | if dir == "north": | ||
| 725 | return 0 | ||
| 726 | elif dir == "west": | ||
| 727 | return 1 | ||
| 728 | elif dir == "south": | ||
| 729 | return 2 | ||
| 730 | elif dir == "east": | ||
| 731 | return 3 | ||
| 732 | return 4 | ||
| diff --git a/Archipelago/mypainting.gd b/Archipelago/mypainting.gd index 5e9c703..999b122 100644 --- a/Archipelago/mypainting.gd +++ b/Archipelago/mypainting.gd | |||
| @@ -86,6 +86,11 @@ func _looked_at(body, painting): | |||
| 86 | body.rotate_y(3 * PI / 2) | 86 | body.rotate_y(3 * PI / 2) |
| 87 | body.velocity = body.velocity.rotated(Vector3(0, 1, 0), 3 * PI / 2) | 87 | body.velocity = body.velocity.rotated(Vector3(0, 1, 0), 3 * PI / 2) |
| 88 | 88 | ||
| 89 | var apclient = global.get_node("Archipelago") | ||
| 90 | if !apclient._pilgrimage_allows_paintings: | ||
| 91 | global.sunwarp = 1 | ||
| 92 | body.get_node("pivot/camera/sunwarp_background").visible = false | ||
| 93 | |||
| 89 | 94 | ||
| 90 | func _dir_to_int(dir): | 95 | func _dir_to_int(dir): |
| 91 | if dir == "north": | 96 | if dir == "north": |
| diff --git a/Archipelago/painting.gd b/Archipelago/painting.gd new file mode 100644 index 0000000..adc8337 --- /dev/null +++ b/Archipelago/painting.gd | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | extends "res://scripts/painting.gd" | ||
| 2 | |||
| 3 | func _looked_at(var body, var painting): | ||
| 4 | ._looked_at(body, painting) | ||
| 5 | |||
| 6 | if body.is_in_group("player") && (painting.get_name() == self.get_name()): | ||
| 7 | var apclient = global.get_node("Archipelago") | ||
| 8 | if !apclient._pilgrimage_allows_paintings: | ||
| 9 | global.sunwarp = 1 | ||
| 10 | body.get_node("pivot/camera/sunwarp_background").visible = false | ||
| diff --git a/Archipelago/painting_eye.gd b/Archipelago/painting_eye.gd index 53d42b5..c6994b1 100644 --- a/Archipelago/painting_eye.gd +++ b/Archipelago/painting_eye.gd | |||
| @@ -3,9 +3,23 @@ extends "res://scripts/painting_eye.gd" | |||
| 3 | 3 | ||
| 4 | func _answer_correct(): | 4 | func _answer_correct(): |
| 5 | var apclient = global.get_node("Archipelago") | 5 | var apclient = global.get_node("Archipelago") |
| 6 | if not apclient._door_shuffle or apclient.paintingIsVanilla(self.name): | 6 | if get_name() == "pilgrim_painting2": |
| 7 | # When pilgrimage is enabled, the HOT CRUST panel should actually move the sun painting. | ||
| 8 | if apclient._pilgrimage_enabled: | ||
| 9 | movePainting() | ||
| 10 | elif not apclient._door_shuffle or apclient.paintingIsVanilla(self.name): | ||
| 7 | ._answer_correct() | 11 | ._answer_correct() |
| 8 | 12 | ||
| 9 | 13 | ||
| 10 | func movePainting(): | 14 | func movePainting(): |
| 11 | ._answer_correct() | 15 | ._answer_correct() |
| 16 | |||
| 17 | |||
| 18 | func _looked_at(var body, var painting): | ||
| 19 | ._looked_at(body, painting) | ||
| 20 | |||
| 21 | if body.is_in_group("player") && (painting.get_name() == self.get_name()): | ||
| 22 | var apclient = global.get_node("Archipelago") | ||
| 23 | if !apclient._pilgrimage_allows_paintings: | ||
| 24 | global.sunwarp = 1 | ||
| 25 | body.get_node("pivot/camera/sunwarp_background").visible = false | ||
| diff --git a/Archipelago/painting_scenery.gd b/Archipelago/painting_scenery.gd index f49d602..1186e2f 100644 --- a/Archipelago/painting_scenery.gd +++ b/Archipelago/painting_scenery.gd | |||
| @@ -9,3 +9,13 @@ func _answer_correct(): | |||
| 9 | 9 | ||
| 10 | func movePainting(): | 10 | func movePainting(): |
| 11 | ._answer_correct() | 11 | ._answer_correct() |
| 12 | |||
| 13 | |||
| 14 | func _looked_at(var body, var painting): | ||
| 15 | ._looked_at(body, painting) | ||
| 16 | |||
| 17 | if body.is_in_group("player") && (painting.get_name() == self.get_name()): | ||
| 18 | var apclient = global.get_node("Archipelago") | ||
| 19 | if !apclient._pilgrimage_allows_paintings: | ||
| 20 | global.sunwarp = 1 | ||
| 21 | body.get_node("pivot/camera/sunwarp_background").visible = false | ||
| diff --git a/Archipelago/panel.gd b/Archipelago/panel.gd index da5b572..ce5a642 100644 --- a/Archipelago/panel.gd +++ b/Archipelago/panel.gd | |||
| @@ -22,10 +22,6 @@ func _ready(): | |||
| 22 | else: | 22 | else: |
| 23 | atbash_text += old_char | 23 | atbash_text += old_char |
| 24 | 24 | ||
| 25 | self.get_parent().get_node("Viewport/GUI/Panel/TextEdit").connect( | ||
| 26 | "answer_correct", self, "answer_correct" | ||
| 27 | ) | ||
| 28 | |||
| 29 | 25 | ||
| 30 | func answer_correct(): | 26 | func answer_correct(): |
| 31 | var effects = get_tree().get_root().get_node("Spatial/AP_Effects") | 27 | var effects = get_tree().get_root().get_node("Spatial/AP_Effects") |
| diff --git a/Archipelago/pilgrimage_terminator.gd b/Archipelago/pilgrimage_terminator.gd new file mode 100644 index 0000000..29db2ee --- /dev/null +++ b/Archipelago/pilgrimage_terminator.gd | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | extends Area | ||
| 2 | |||
| 3 | |||
| 4 | func _ready(): | ||
| 5 | var _connected = self.connect("body_entered", self, "_body_entered") | ||
| 6 | |||
| 7 | |||
| 8 | func _body_entered(body): | ||
| 9 | if body.is_in_group("player"): | ||
| 10 | global.sunwarp = 1 | ||
| 11 | body.get_node("pivot/camera/sunwarp_background").visible = false | ||
| diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 2cabe09..1a1f5cc 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd | |||
| @@ -24,6 +24,9 @@ func _ready(): | |||
| 24 | apclient_instance.SCRIPT_mypainting = load("user://maps/Archipelago/mypainting.gd") | 24 | apclient_instance.SCRIPT_mypainting = load("user://maps/Archipelago/mypainting.gd") |
| 25 | apclient_instance.SCRIPT_notifier = load("user://maps/Archipelago/notifier.gd") | 25 | apclient_instance.SCRIPT_notifier = load("user://maps/Archipelago/notifier.gd") |
| 26 | apclient_instance.SCRIPT_panel = load("user://maps/Archipelago/panel.gd") | 26 | apclient_instance.SCRIPT_panel = load("user://maps/Archipelago/panel.gd") |
| 27 | apclient_instance.SCRIPT_pilgrimage_terminator = load( | ||
| 28 | "user://maps/Archipelago/pilgrimage_terminator.gd" | ||
| 29 | ) | ||
| 27 | apclient_instance.SCRIPT_uuid = load("user://maps/Archipelago/vendor/uuid.gd") | 30 | apclient_instance.SCRIPT_uuid = load("user://maps/Archipelago/vendor/uuid.gd") |
| 28 | 31 | ||
| 29 | var apdata = ResourceLoader.load("user://maps/Archipelago/gamedata.gd") | 32 | var apdata = ResourceLoader.load("user://maps/Archipelago/gamedata.gd") |
| @@ -39,6 +42,7 @@ func _ready(): | |||
| 39 | # Let's also inject any scripts we need to inject now. | 42 | # Let's also inject any scripts we need to inject now. |
| 40 | installScriptExtension(apclient_instance.SCRIPT_doorControl) | 43 | installScriptExtension(apclient_instance.SCRIPT_doorControl) |
| 41 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/load.gd")) | 44 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/load.gd")) |
| 45 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting.gd")) | ||
| 42 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_eye.gd")) | 46 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_eye.gd")) |
| 43 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_scenery.gd")) | 47 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_scenery.gd")) |
| 44 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelLevelSwitch.gd")) | 48 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelLevelSwitch.gd")) |
| @@ -46,6 +50,7 @@ func _ready(): | |||
| 46 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelInput.gd")) | 50 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelInput.gd")) |
| 47 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/pause_menu.gd")) | 51 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/pause_menu.gd")) |
| 48 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) | 52 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) |
| 53 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleport.gd")) | ||
| 49 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldTransporter.gd")) | 54 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldTransporter.gd")) |
| 50 | 55 | ||
| 51 | var apclient = global.get_node("Archipelago") | 56 | var apclient = global.get_node("Archipelago") |
| diff --git a/Archipelago/teleport.gd b/Archipelago/teleport.gd new file mode 100644 index 0000000..532f081 --- /dev/null +++ b/Archipelago/teleport.gd | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | extends "res://scripts/teleport.gd" | ||
| 2 | |||
| 3 | var _unlocked = true | ||
| 4 | |||
| 5 | |||
| 6 | func _ready(): | ||
| 7 | var apclient = global.get_node("Archipelago") | ||
| 8 | if self.get_parent().name == "Teleporter Warps": | ||
| 9 | if apclient._sunwarp_access != apclient.kSUNWARP_ACCESS_NORMAL: | ||
| 10 | _unlocked = false | ||
| 11 | elif apclient._door_shuffle and !apclient.warpIsVanilla(self.get_parent().name + "/" + self.name): | ||
| 12 | _unlocked = false | ||
| 13 | |||
| 14 | |||
| 15 | func _body_entered(body): | ||
| 16 | if _unlocked: | ||
| 17 | ._body_entered(body) | ||
| 18 | |||
| 19 | if body.is_in_group("player"): | ||
| 20 | var apclient = global.get_node("Archipelago") | ||
| 21 | if !apclient._pilgrimage_enabled: | ||
| 22 | global.sunwarp = 1 | ||
| 23 | body.get_node("pivot/camera/sunwarp_background").visible = false | ||
| 24 | |||
| 25 | |||
| 26 | func unlock_warp(): | ||
| 27 | _unlocked = true | ||
