Skip to content

Archipelago Implementation#33

Merged
minous27 merged 43 commits intominous27:masterfrom
alwaysintreble:archipelago
Mar 5, 2023
Merged

Archipelago Implementation#33
minous27 merged 43 commits intominous27:masterfrom
alwaysintreble:archipelago

Conversation

@alwaysintreble
Copy link
Contributor

@alwaysintreble alwaysintreble commented Dec 31, 2022

Putting this in draft status as it isn't quite finished. Currently this will allow the user to connect to an AP server and then the randomizer mappings are pulled and saved from the slot data of the connected server. Items for other players have the dialog text overwritten to display what the item is and who it's for. Player is also able to Close the game and reconnect to the server with the same save by simply loading the file (no text entry required!), but the logic around this is currently buggy, likely due to me passing around save data too frequently, plus the fact that connecting to the server is a thread task possibly muddying up the order of operations though this shouldn't matter. Logic/no logic and basic/advanced seeds are done server side here. No logic has logic on all of the locations, but the accessibility is set to minimal and the goal is considered always reachable, so items can be self-locking and nothing is guaranteed. Other players' items will still be accessible in this mode to facilitate multiworld play.

Issues:

  • Using the game's text entry to enter the connection info for AP is... bad. Limited to alphanumeric characters and -. Current solution is to replace in the provided url with . and inform the player about the limitation.
  • I'm honestly not sure why, but the astral seed and astral tea leaves dialogs are always being played instead of skipped currently. I couldn't get the astral seed and tea leaves to work as items, but the dialogsreward actual items now and add some time shards to the pool.

The connection itself is stable. Checks will still happen and get queued up if the player disconnects at any point, and it will attempt to reconnect to the server every 5 seconds. Loop to check if items should be unlocked is currently executed every second, and received time shards currently always grant a quantity of 69.

Honestly didn't expect I would make this much progress this quickly, even if it does need some work still.

@alwaysintreble alwaysintreble marked this pull request as ready for review January 1, 2023 19:57
@minous27 minous27 self-assigned this Feb 4, 2023
Copy link
Owner

@minous27 minous27 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Questions about the merged rando code

@minous27
Copy link
Owner

minous27 commented Feb 6, 2023

This looks great! I wouldn't mind testing this with ya sometime to see how setup goes and do a runthrough.

@alwaysintreble
Copy link
Contributor Author

docs and ap implementation is all here https://github.com/alwaysintreble/Archipelago/tree/messenger/worlds/messenger. to run it you can just download the linked folder, zip it, rename the extension to apworld and put it in the lib/worlds/ folder of the main ap installation then you can generate and host games with it. Let me know when you have time and we can do a run!

@minous27 minous27 merged commit 325257b into minous27:master Mar 5, 2023
@alwaysintreble alwaysintreble deleted the archipelago branch March 7, 2023 09:05
minous27 added a commit that referenced this pull request Apr 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants