about summary refs log tree commit diff stats
path: root/proto
Commit message (Expand)AuthorAgeFilesLines
* Add anti-collectable locationStar Rauchenberger2025-09-132-0/+5
* Added gallery painting shuffleStar Rauchenberger2025-09-121-0/+3
* [Data] Fixed connection target required door logic bugsStar Rauchenberger2025-09-111-0/+4
* [Data] Add version numberStar Rauchenberger2025-09-102-0/+3
* Added symbol shuffleStar Rauchenberger2025-09-091-0/+4
* Added lavender cubes logicStar Rauchenberger2025-09-082-2/+3
* Add cyan door behavior optionStar Rauchenberger2025-09-081-0/+3
* Added door groupsStar Rauchenberger2025-09-072-0/+34
* Added option for Daedalus roof access logicStar Rauchenberger2025-09-032-0/+6
* Added keyholder sanityStar Rauchenberger2025-09-022-0/+10
* Added progressive doorsStar Rauchenberger2025-09-012-0/+18
* Handled cyan doorsStar Rauchenberger2025-08-312-0/+2
* Changed how door location names are formattedStar Rauchenberger2025-08-302-0/+12
* Renamed Painting and Keyholder protosStar Rauchenberger2025-08-271-4/+4
* Added control_centerStar Rauchenberger2025-08-272-0/+2
* Converted puzzle symbols to an enumStar Rauchenberger2025-08-202-2/+26
* Maps have display names nowStar Rauchenberger2025-08-201-0/+1
* Added "endings" object typeStar Rauchenberger2025-08-202-0/+19
* Validate that nodes in game files are usedStar Rauchenberger2025-08-181-0/+5
* Added the_greatStar Rauchenberger2025-08-141-0/+3
* Assigned IDs for the_galleryStar Rauchenberger2025-08-131-0/+1
* Added the_galleryStar Rauchenberger2025-08-131-0/+1
* Converted to proto2Star Rauchenberger2025-08-124-165/+160
* Add gravity to paintings/portsStar Rauchenberger2025-08-113-2/+15
* Assigned IDs for the_congruentStar Rauchenberger2025-08-101-0/+18
* Added the_congruentStar Rauchenberger2025-08-101-0/+10
* Assigned IDs for the_colorfulStar Rauchenberger2025-08-102-0/+2
* Added support for masteriesStar Rauchenberger2025-08-093-6/+26
* Added the_butterflyStar Rauchenberger2025-08-091-1/+14
* Propagate complete_at to packed datafileStar Rauchenberger2025-08-091-0/+2
* Added the_betweenStar Rauchenberger2025-08-092-0/+9
* Merge branch 'main' of fourisland.com:/srv/git/lingo2-mapdataStar Rauchenberger2025-08-071-0/+6
|\
| * Added four_roomsStar Rauchenberger2025-08-071-0/+6
* | Added special IDsStar Rauchenberger2025-08-072-0/+2
|/
* Assign AP IDs to doors and panelsStar Rauchenberger2025-08-072-0/+15
* Started apworldStar Rauchenberger2025-08-072-0/+3
* Process the rest of the defined protosStar Rauchenberger2025-08-073-24/+21
* Protobuf works! Parsing connectionsStar Rauchenberger2025-08-074-13/+36
* Trying out protobuf I guessStar Rauchenberger2025-08-072-0/+251
class="o">.new() apclient_instance.name = "Archipelago" global.add_child(apclient_instance) apclient_instance.SCRIPT_doorControl = load("user://maps/Archipelago/doorControl.gd") apclient_instance.SCRIPT_effects = load("user://maps/Archipelago/effects.gd") apclient_instance.SCRIPT_location = load("user://maps/Archipelago/location.gd") apclient_instance.SCRIPT_multiplayer = load("user://maps/Archipelago/multiplayer.gd") apclient_instance.SCRIPT_mypainting = load("user://maps/Archipelago/mypainting.gd") apclient_instance.SCRIPT_notifier = load("user://maps/Archipelago/notifier.gd") apclient_instance.SCRIPT_panel = load("user://maps/Archipelago/panel.gd") var pilg_term = load("user://maps/Archipelago/pilgrimage_terminator.gd") apclient_instance.SCRIPT_pilgrimage_terminator = pilg_term apclient_instance.SCRIPT_uuid = load("user://maps/Archipelago/vendor/uuid.gd") var apdata = ResourceLoader.load("user://maps/Archipelago/gamedata.gd") var apdata_instance = apdata.new() apdata_instance.name = "Gamedata" apclient_instance.add_child(apdata_instance) var extradata = ResourceLoader.load("user://maps/Archipelago/extradata.gd") var extradata_instance = extradata.new() extradata_instance.name = "Extradata" apclient_instance.add_child(extradata_instance) # Let's also inject any scripts we need to inject now. installScriptExtension(apclient_instance.SCRIPT_doorControl) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/load.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_eye.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting_scenery.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelLevelSwitch.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelEnd.gd")) 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/settings_menu.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleport.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldTransporter.gd")) var apclient = global.get_node("Archipelago") apclient.connect("client_connected", self, "connectionSuccessful") apclient.connect("could_not_connect", self, "connectionUnsuccessful") apclient.connect("connect_status", self, "connectionStatus") # Populate textboxes with AP settings. self.get_node("Panel/server_box").text = apclient.ap_server self.get_node("Panel/player_box").text = apclient.ap_user self.get_node("Panel/password_box").text = apclient.ap_pass self.get_node("Panel/confusing_box").pressed = apclient.confusify_world self.get_node("Panel/multiplayer_box").pressed = apclient.enable_multiplayer self.get_node("Panel/position_box").pressed = apclient.track_player var history_box = get_node("Panel/connection_history") if apclient.connection_history.empty(): history_box.disabled = true else: history_box.disabled = false var i = 0 for details in apclient.connection_history: history_box.get_popup().add_item("%s (%s)" % [details[1], details[0]], i) i += 1 history_box.get_popup().connect("id_pressed", self, "historySelected") # Show client version. self.get_node("Panel/title").text = "ARCHIPELAGO (%s)" % apclient.my_version # Increase font size in text boxes. var field_font = DynamicFont.new() field_font.font_data = load("res://fonts/CutiveMono_Regular.ttf") field_font.size = 36 self.get_node("Panel/server_box").add_font_override("font", field_font) self.get_node("Panel/player_box").add_font_override("font", field_font) self.get_node("Panel/password_box").add_font_override("font", field_font) # Adapted from https://gitlab.com/Delta-V-Modding/Mods/-/blob/main/game/ModLoader.gd func installScriptExtension(childScript: Resource): # Force Godot to compile the script now. # We need to do this here to ensure that the inheritance chain is # properly set up, and multiple mods can chain-extend the same # class multiple times. # This is also needed to make Godot instantiate the extended class # when creating singletons. # The actual instance is thrown away. childScript.new() var parentScript = childScript.get_base_script() var parentScriptPath = parentScript.resource_path global._print("ModLoader: Installing script extension over %s" % parentScriptPath) childScript.take_over_path(parentScriptPath) func connectionStatus(message): var popup = self.get_node("Panel/AcceptDialog") popup.window_title = "Connecting to Archipelago" popup.dialog_text = message popup.popup_exclusive = true popup.get_ok().visible = false popup.popup_centered() func connectionSuccessful(): var apclient = global.get_node("Archipelago") # Save connection details var connection_details = [apclient.ap_server, apclient.ap_user, apclient.ap_pass] if apclient.connection_history.has(connection_details): apclient.connection_history.erase(connection_details) apclient.connection_history.push_front(connection_details) if apclient.connection_history.size() > 10: apclient.connection_history.resize(10) apclient.saveSettings() # Switch to LL1 Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) global.save_file = apclient.getSaveFileName() if Directory.new().file_exists("user://level1/%s.save" % global.save_file): global.map = "level1" else: global.map = "level1_stable" var _discard = get_tree().change_scene("res://scenes/load_screen.tscn") func connectionUnsuccessful(error_message): self.get_node("Panel/connect_button").disabled = false var popup = self.get_node("Panel/AcceptDialog") popup.window_title = "Could not connect to Archipelago" popup.dialog_text = error_message popup.popup_exclusive = true popup.get_ok().visible = true popup.popup_centered() func historySelected(index): var apclient = global.get_node("Archipelago") var details = apclient.connection_history[index] self.get_node("Panel/server_box").text = details[0] self.get_node("Panel/player_box").text = details[1] self.get_node("Panel/password_box").text = details[2]