From 78789475f9cbbfc4015219fbf218e24599809c91 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 12 Jan 2024 14:24:55 -0500 Subject: Turn THE COLORFUL into a cdp --- Archipelago/load.gd | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Archipelago') diff --git a/Archipelago/load.gd b/Archipelago/load.gd index a2051c3..7dda51b 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd @@ -81,9 +81,20 @@ func _load(): wanderer_achieve.translation = Vector3(-51, -33, 35) # way under the map + # Turn THE COLORFUL into a cdp. + var real_colorful = panels_parent.get_node("Countdown Panels/Panel_colorful_colorful") + var cdp_auto_scene = load("res://nodes/panel_countdown_auto.tscn") + var colorful_cdp = cdp_auto_scene.instance() + colorful_cdp.name = "CountdownPanel_colorful" + colorful_cdp.replace_with = "../../Panels/Countdown Panels/Panel_colorful_colorful" + colorful_cdp.panels = "../../Panels/Doorways Room" + colorful_cdp.translation = real_colorful.translation + colorful_cdp.rotation = real_colorful.rotation + get_node("CountdownPanels").add_child(colorful_cdp) + real_colorful.translation = Vector3(-51, -35, 35) # way under the map + # Set up The Master to be variable. var old_master_cdp = get_node("CountdownPanels/CountdownPanel_countdown_16") - var cdp_auto_scene = load("res://nodes/panel_countdown_auto.tscn") var new_master_cdp = cdp_auto_scene.instance() new_master_cdp.name = "AP_variable_master" new_master_cdp.replace_with = old_master_cdp.replace_with -- cgit 1.4.1 From f6cb14330aedd0b06bca712db9fa0090ae52a7e9 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 12 Jan 2024 14:33:51 -0500 Subject: Add progressive colorful --- Archipelago/client.gd | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Archipelago') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 788f6ca..3541016 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -49,6 +49,19 @@ const progressive_items = { [ {"item": "The Fearless (First Floor) - Second Floor", "display": "Second Floor"}, {"item": "The Fearless (Second Floor) - Third Floor", "display": "Third Floor"}, + ], + "Progressive Colorful": + [ + {"item": "The Colorful - White Door", "display": "White"}, + {"item": "The Colorful - Black Door", "display": "Black"}, + {"item": "The Colorful - Red Door", "display": "Red"}, + {"item": "The Colorful - Yellow Door", "display": "Yellow"}, + {"item": "The Colorful - Blue Door", "display": "Blue"}, + {"item": "The Colorful - Purple Door", "display": "Purple"}, + {"item": "The Colorful - Orange Door", "display": "Orange"}, + {"item": "The Colorful - Green Door", "display": "Green"}, + {"item": "The Colorful - Brown Door", "display": "Brown"}, + {"item": "The Colorful - Gray Door", "display": "Gray"}, ] } -- cgit 1.4.1 From 005f63b0842352c073dcd29acf4759b6f211ecc4 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 19 Jan 2024 15:36:23 -0500 Subject: Need to delete door blocking Colorful cdp --- Archipelago/load.gd | 1 + 1 file changed, 1 insertion(+) (limited to 'Archipelago') diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 7dda51b..2d5f7c6 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd @@ -92,6 +92,7 @@ func _load(): colorful_cdp.rotation = real_colorful.rotation get_node("CountdownPanels").add_child(colorful_cdp) real_colorful.translation = Vector3(-51, -35, 35) # way under the map + get_node("Doors/Doorway Room Doors/Door_gray2").queue_free() # Set up The Master to be variable. var old_master_cdp = get_node("CountdownPanels/CountdownPanel_countdown_16") -- cgit 1.4.1 From b2b098573ef5bcd03d61e827d11b969460d992af Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 31 Jan 2024 15:23:08 -0500 Subject: Added support for warp items (including sunwarps) --- Archipelago/client.gd | 26 ++++++++++++++++++++++++++ Archipelago/settings_screen.gd | 1 + Archipelago/teleport.gd | 24 ++++++++++++++++++++++++ util/generate_gamedata.rb | 24 ++++++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 Archipelago/teleport.gd (limited to 'Archipelago') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 3541016..db79e15 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -62,6 +62,15 @@ const progressive_items = { {"item": "The Colorful - Green Door", "display": "Green"}, {"item": "The Colorful - Brown Door", "display": "Brown"}, {"item": "The Colorful - Gray Door", "display": "Gray"}, + ], + "Progressive Pilgrimage": + [ + {"item": "Hub Room - 1 Sunwarp", "display": "1 Sunwarp"}, + {"item": "Orange Tower Fourth Floor - 2 Sunwarp", "display": "2 Sunwarp"}, + {"item": "Orange Tower Third Floor - 3 Sunwarp", "display": "3 Sunwarp"}, + {"item": "Orange Tower First Floor - 4 Sunwarp", "display": "4 Sunwarp"}, + {"item": "Orange Tower Fourth Floor - 5 Sunwarp", "display": "5 Sunwarp"}, + {"item": "Outside The Agreeable - 6 Sunwarp", "display": "6 Sunwarp"}, ] } @@ -80,6 +89,11 @@ const kCLASSIFICATION_REMOTE_NORMAL = 0 const kCLASSIFICATION_REMOTE_REDUCED = 1 const kCLASSIFICATION_REMOTE_INSANITY = 2 +const kSUNWARP_ACCESS_NORMAL = 0 +const kSUNWARP_ACCESS_DISABLED = 1 +const kSUNWARP_ACCESS_UNLOCK = 2 +const kSUNWARP_ACCESS_PROGRESSIVE = 3 + var _client = WebSocketClient.new() var _should_process = false var _initiated_disconnect = false @@ -111,6 +125,7 @@ var _door_shuffle = false var _color_shuffle = false var _panel_shuffle = 0 # none, rearrange var _painting_shuffle = false +var _sunwarp_access = 0 # normal, disabled, unlock, progressive var _mastery_achievements = 21 var _level_2_requirement = 223 var _location_classification_bit = 0 @@ -276,6 +291,8 @@ func _on_data(): _painting_shuffle = _slot_data["shuffle_paintings"] if _slot_data.has("shuffle_panels"): _panel_shuffle = _slot_data["shuffle_panels"] + if _slot_data.has("sunwarp_access"): + _sunwarp_access = _slot_data["sunwarp_access"] if _slot_data.has("seed"): _slot_seed = _slot_data["seed"] if _slot_data.has("painting_entrance_to_exit"): @@ -632,6 +649,11 @@ func processItem(item, index, from, flags): painting_node = fake_parent_node.get_node_or_null(painting_id) if painting_node != null: painting_node.get_node("Script").movePainting() + + if gamedata.warp_ids_by_item_id.has(int(item)): + var warpsNode = get_tree().get_root().get_node("Spatial/Warps") + for warp_id in gamedata.warp_ids_by_item_id[int(item)]: + warpsNode.get_node(warp_id).unlock_warp() # Handle progressive items. if item_name in progressive_items.keys(): @@ -693,6 +715,10 @@ func paintingIsVanilla(painting): return !$Gamedata.mentioned_paintings.has(painting) +func warpIsVanilla(warp): + return !$Gamedata.mentioned_warps.has(warp) + + func evaluateSolvability(): emit_signal("evaluate_solvability") diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 2cabe09..0ae218e 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -46,6 +46,7 @@ func _ready(): installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelInput.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/pause_menu.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) + installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleport.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldTransporter.gd")) var apclient = global.get_node("Archipelago") diff --git a/Archipelago/teleport.gd b/Archipelago/teleport.gd new file mode 100644 index 0000000..d322722 --- /dev/null +++ b/Archipelago/teleport.gd @@ -0,0 +1,24 @@ +extends "res://scripts/teleport.gd" + +var _unlocked = true + + +func _ready(): + var apclient = global.get_node("Archipelago") + if apclient._door_shuffle and !apclient.warpIsVanilla(self.get_parent().name + "/" + self.name): + if self.get_parent().name == "Teleporter Warps": + if apclient._sunwarp_access != apclient.kSUNWARP_ACCESS_NORMAL: + _unlocked = false + else: + _unlocked = false + + ._ready() + + +func _body_entered(var body): + if _unlocked: + ._body_entered(body) + + +func unlock_warp(): + _unlocked = true diff --git a/util/generate_gamedata.rb b/util/generate_gamedata.rb index 5e03655..1cce003 100644 --- a/util/generate_gamedata.rb +++ b/util/generate_gamedata.rb @@ -15,10 +15,12 @@ door_groups = {} panel_output = [] door_ids_by_item_id = {} painting_ids_by_item_id = {} +warp_ids_by_item_id = {} panel_ids_by_location_id = {} classification_by_location_id = {} mentioned_doors = Set[] mentioned_paintings = Set[] +mentioned_warps = Set[] painting_output = {} ids_config = YAML.load_file(idspath) @@ -152,6 +154,18 @@ config.each do |room_name, room_data| painting_ids_by_item_id[item_id] = internal_painting_ids mentioned_paintings.merge(internal_painting_ids) end + + if door.include? "warp_id" + internal_warp_ids = [] + if door["warp_id"].kind_of? String + internal_warp_ids = [door["warp_id"]] + else + internal_warp_ids = door["warp_id"] + end + + warp_ids_by_item_id[item_id] = internal_warp_ids + mentioned_warps.merge(internal_warp_ids) + end end end end @@ -181,6 +195,12 @@ File.open(outputpath, "w") do |f| "\"#{painting_id}\"" end.join(",") + "]" end.join(",")) + f.write "}\nvar warp_ids_by_item_id = {" + f.write(warp_ids_by_item_id.map do |item_id, warp_ids| + "#{item_id}:[" + warp_ids.map do |warp_id| + "\"#{warp_id}\"" + end.join(",") + "]" + end.join(",")) f.write "}\nvar panel_ids_by_location_id = {" f.write(panel_ids_by_location_id.map do |location_id, panel_ids| "#{location_id}:[" + panel_ids.map do |panel_id| @@ -195,6 +215,10 @@ File.open(outputpath, "w") do |f| f.write(mentioned_paintings.map do |painting_id| "\"#{painting_id}\"" end.join(",")) + f.write "]\nvar mentioned_warps = [" + f.write(mentioned_warps.map do |warp_id| + "\"#{warp_id}\"" + end.join(",")) f.write "]\nvar paintings = {" f.write(painting_output.map do |painting_id, painting| "\"#{painting_id}\":{\"orientation\":\"#{painting["orientation"]}\",\"move\":#{painting.include? "move" and painting["move"]}}" -- cgit 1.4.1 From 17572f8cd5945536eccffbbe832517d75993c03f Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 20 Feb 2024 10:09:57 -0500 Subject: Revert "Added support for warp items (including sunwarps)" This reverts commit b2b098573ef5bcd03d61e827d11b969460d992af. --- Archipelago/client.gd | 26 -------------------------- Archipelago/settings_screen.gd | 1 - Archipelago/teleport.gd | 24 ------------------------ util/generate_gamedata.rb | 24 ------------------------ 4 files changed, 75 deletions(-) delete mode 100644 Archipelago/teleport.gd (limited to 'Archipelago') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index db79e15..3541016 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -62,15 +62,6 @@ const progressive_items = { {"item": "The Colorful - Green Door", "display": "Green"}, {"item": "The Colorful - Brown Door", "display": "Brown"}, {"item": "The Colorful - Gray Door", "display": "Gray"}, - ], - "Progressive Pilgrimage": - [ - {"item": "Hub Room - 1 Sunwarp", "display": "1 Sunwarp"}, - {"item": "Orange Tower Fourth Floor - 2 Sunwarp", "display": "2 Sunwarp"}, - {"item": "Orange Tower Third Floor - 3 Sunwarp", "display": "3 Sunwarp"}, - {"item": "Orange Tower First Floor - 4 Sunwarp", "display": "4 Sunwarp"}, - {"item": "Orange Tower Fourth Floor - 5 Sunwarp", "display": "5 Sunwarp"}, - {"item": "Outside The Agreeable - 6 Sunwarp", "display": "6 Sunwarp"}, ] } @@ -89,11 +80,6 @@ const kCLASSIFICATION_REMOTE_NORMAL = 0 const kCLASSIFICATION_REMOTE_REDUCED = 1 const kCLASSIFICATION_REMOTE_INSANITY = 2 -const kSUNWARP_ACCESS_NORMAL = 0 -const kSUNWARP_ACCESS_DISABLED = 1 -const kSUNWARP_ACCESS_UNLOCK = 2 -const kSUNWARP_ACCESS_PROGRESSIVE = 3 - var _client = WebSocketClient.new() var _should_process = false var _initiated_disconnect = false @@ -125,7 +111,6 @@ var _door_shuffle = false var _color_shuffle = false var _panel_shuffle = 0 # none, rearrange var _painting_shuffle = false -var _sunwarp_access = 0 # normal, disabled, unlock, progressive var _mastery_achievements = 21 var _level_2_requirement = 223 var _location_classification_bit = 0 @@ -291,8 +276,6 @@ func _on_data(): _painting_shuffle = _slot_data["shuffle_paintings"] if _slot_data.has("shuffle_panels"): _panel_shuffle = _slot_data["shuffle_panels"] - if _slot_data.has("sunwarp_access"): - _sunwarp_access = _slot_data["sunwarp_access"] if _slot_data.has("seed"): _slot_seed = _slot_data["seed"] if _slot_data.has("painting_entrance_to_exit"): @@ -649,11 +632,6 @@ func processItem(item, index, from, flags): painting_node = fake_parent_node.get_node_or_null(painting_id) if painting_node != null: painting_node.get_node("Script").movePainting() - - if gamedata.warp_ids_by_item_id.has(int(item)): - var warpsNode = get_tree().get_root().get_node("Spatial/Warps") - for warp_id in gamedata.warp_ids_by_item_id[int(item)]: - warpsNode.get_node(warp_id).unlock_warp() # Handle progressive items. if item_name in progressive_items.keys(): @@ -715,10 +693,6 @@ func paintingIsVanilla(painting): return !$Gamedata.mentioned_paintings.has(painting) -func warpIsVanilla(warp): - return !$Gamedata.mentioned_warps.has(warp) - - func evaluateSolvability(): emit_signal("evaluate_solvability") diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 0ae218e..2cabe09 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -46,7 +46,6 @@ func _ready(): installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelInput.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/pause_menu.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) - installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleport.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldTransporter.gd")) var apclient = global.get_node("Archipelago") diff --git a/Archipelago/teleport.gd b/Archipelago/teleport.gd deleted file mode 100644 index d322722..0000000 --- a/Archipelago/teleport.gd +++ /dev/null @@ -1,24 +0,0 @@ -extends "res://scripts/teleport.gd" - -var _unlocked = true - - -func _ready(): - var apclient = global.get_node("Archipelago") - if apclient._door_shuffle and !apclient.warpIsVanilla(self.get_parent().name + "/" + self.name): - if self.get_parent().name == "Teleporter Warps": - if apclient._sunwarp_access != apclient.kSUNWARP_ACCESS_NORMAL: - _unlocked = false - else: - _unlocked = false - - ._ready() - - -func _body_entered(var body): - if _unlocked: - ._body_entered(body) - - -func unlock_warp(): - _unlocked = true diff --git a/util/generate_gamedata.rb b/util/generate_gamedata.rb index 1cce003..5e03655 100644 --- a/util/generate_gamedata.rb +++ b/util/generate_gamedata.rb @@ -15,12 +15,10 @@ door_groups = {} panel_output = [] door_ids_by_item_id = {} painting_ids_by_item_id = {} -warp_ids_by_item_id = {} panel_ids_by_location_id = {} classification_by_location_id = {} mentioned_doors = Set[] mentioned_paintings = Set[] -mentioned_warps = Set[] painting_output = {} ids_config = YAML.load_file(idspath) @@ -154,18 +152,6 @@ config.each do |room_name, room_data| painting_ids_by_item_id[item_id] = internal_painting_ids mentioned_paintings.merge(internal_painting_ids) end - - if door.include? "warp_id" - internal_warp_ids = [] - if door["warp_id"].kind_of? String - internal_warp_ids = [door["warp_id"]] - else - internal_warp_ids = door["warp_id"] - end - - warp_ids_by_item_id[item_id] = internal_warp_ids - mentioned_warps.merge(internal_warp_ids) - end end end end @@ -195,12 +181,6 @@ File.open(outputpath, "w") do |f| "\"#{painting_id}\"" end.join(",") + "]" end.join(",")) - f.write "}\nvar warp_ids_by_item_id = {" - f.write(warp_ids_by_item_id.map do |item_id, warp_ids| - "#{item_id}:[" + warp_ids.map do |warp_id| - "\"#{warp_id}\"" - end.join(",") + "]" - end.join(",")) f.write "}\nvar panel_ids_by_location_id = {" f.write(panel_ids_by_location_id.map do |location_id, panel_ids| "#{location_id}:[" + panel_ids.map do |panel_id| @@ -215,10 +195,6 @@ File.open(outputpath, "w") do |f| f.write(mentioned_paintings.map do |painting_id| "\"#{painting_id}\"" end.join(",")) - f.write "]\nvar mentioned_warps = [" - f.write(mentioned_warps.map do |warp_id| - "\"#{warp_id}\"" - end.join(",")) f.write "]\nvar paintings = {" f.write(painting_output.map do |painting_id, painting| "\"#{painting_id}\":{\"orientation\":\"#{painting["orientation"]}\",\"move\":#{painting.include? "move" and painting["move"]}}" -- cgit 1.4.1 From 0e1c0f8c4643ddf972f03922df9152b737ef4641 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 20 Feb 2024 10:17:29 -0500 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Archipelago') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 3541016..a7cfa23 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -15,7 +15,7 @@ var ap_pass = "" var confusify_world = false var enable_multiplayer = false -const my_version = "1.1.0" +const my_version = "2.0.0-beta1" const ap_version = {"major": 0, "minor": 4, "build": 4, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From db26ac332b91b473feb16ecf6a651413be906612 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 15 Mar 2024 14:13:26 -0400 Subject: Bump beta version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Archipelago') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 24c8134..17cb48a 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -15,7 +15,7 @@ var ap_pass = "" var confusify_world = false var enable_multiplayer = false -const my_version = "2.0.0-beta1" +const my_version = "2.0.0-beta2" const ap_version = {"major": 0, "minor": 4, "build": 4, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From 38004bc2cd3d27b40ab9942488ed0257751337e0 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 15 Mar 2024 14:19:02 -0400 Subject: Bump AP version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Archipelago') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 17cb48a..58a099c 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -16,7 +16,7 @@ var confusify_world = false var enable_multiplayer = false const my_version = "2.0.0-beta2" -const ap_version = {"major": 0, "minor": 4, "build": 4, "class": "Version"} +const ap_version = {"major": 0, "minor": 4, "build": 5, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" ] -- cgit 1.4.1