Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Muse Dash: Add New Game #1723

Merged
merged 88 commits into from
Jun 29, 2023
Merged

Conversation

DeamonHunter
Copy link
Collaborator

@DeamonHunter DeamonHunter commented Apr 16, 2023

What is this fixing or adding?

Adds Muse Dash as a core game.

New Game Checklist

Credits

  • DeamonHunter (Discord: deamonhunter)

Links

Client + APWorld: https://github.com/DeamonHunter/ArchipelagoMuseDash/releases/
Discord thread: https://discord.com/channels/731205301247803413/1063302131978862602

How was this tested?

Tested over a decent period of time with games ran with unsupported syncs and asyncs.

No dedicated beta tests have been performed, but due to the amount of testing within unsupported games, I haven't felt the need to.

@DeamonHunter
Copy link
Collaborator Author

That should be the last feature added to this PR unless something comes up.

More recent changes of note:

  • Trap loading changed a little bit.
  • Slightly changed the data file. (And a little bit on reading it.)
  • Some doc changes.

- Windows 8 or Newer.
- Muse Dash: [Available on Steam](https://store.steampowered.com/app/774171/Muse_Dash/)
- \[Optional\] Just As Planned DLC: [Also Available on Steam](https://store.steampowered.com/app/1055810/Muse_Dash__Just_as_planned/)
- Melon Loader: [GitHub](https://github.com/LavaGang/MelonLoader/releases/latest)
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm not sure if you should add that you need multiple .NET Runtimes for Melon loader or a link to its requirements

Copy link
Collaborator

Choose a reason for hiding this comment

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

I believe it should just be .NET 6 now for MelonLoader? Might be useful to include

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good point.

  • Automated installer requires .net 4.8 installed.
  • Melon loader requires .net 6 for this game in particular.
    I'll update it so that these are mentioned.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I've added the needed .net frameworks. Please check out if it makes sense.

@kindasneaki
Copy link
Collaborator

I ran a few tests to try and break things, and the only things I found was if the DLC is turned off and Master difficulty is selected there aren't enough songs in the pool to generate. I already posted this in discord but figured I should put it here.
Others things I noticed in the code but aren't extremely important are that there are a bunch of if statements in __init.py__ with parenthesis that aren't necessary for python.

@DeamonHunter
Copy link
Collaborator Author

DeamonHunter commented Jun 20, 2023

I've updated generation such that even the worst settings possible won't cause it to crash. I've also added tests for these cases.

Some stats:

  • Streamer Mode on + DLC off leaves only 25 songs left to choose from.
  • With the worst possibly starting setting, this gives 10 starting songs. I've forced it to try and get 2 * starting songs + 1 at a minimum. (Or 21 songs at the worst.)
  • Thus it should always be possible to generate with the new logic to increase difficulty range.

@DeamonHunter
Copy link
Collaborator Author

A player ended up finding a bug where included songs would add on top of the requested number of songs. (They ended up with a 200~ song game when requesting 50.) So the recent changes were to address the oversight with the included song system.

Copy link
Member

@ThePhar ThePhar left a comment

Choose a reason for hiding this comment

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

Most of my complaints are some style nitpicks, but mostly looks good. We get this cleaned up a bit, it should be good to go. :)

worlds/musedash/__init__.py Outdated Show resolved Hide resolved
worlds/musedash/__init__.py Outdated Show resolved Hide resolved
worlds/musedash/__init__.py Outdated Show resolved Hide resolved
worlds/musedash/__init__.py Outdated Show resolved Hide resolved
worlds/musedash/__init__.py Show resolved Hide resolved
worlds/musedash/docs/setup_en.md Outdated Show resolved Hide resolved
worlds/musedash/docs/setup_en.md Outdated Show resolved Hide resolved
worlds/musedash/test/__init__.py Outdated Show resolved Hide resolved
worlds/musedash/test/__init__.py Outdated Show resolved Hide resolved
worlds/musedash/test/__init__.py Show resolved Hide resolved
@ThePhar ThePhar self-assigned this Jun 28, 2023
@DeamonHunter
Copy link
Collaborator Author

Thanks Phar! That should be most of the changes, including a couple more pep8 changes picked up by the flake8 action.

@ThePhar ThePhar merged commit 77b0852 into ArchipelagoMW:main Jun 29, 2023
11 checks passed
@DeamonHunter DeamonHunter deleted the Deamon/MuseDashRegions branch June 30, 2023 09:28
FlySniper pushed a commit to FlySniper/Archipelago that referenced this pull request Nov 14, 2023
* Alpha 1 Muse dash stuff.

* Add in an option to limit to only base game songs.

* Make all items progression instead of progression_skip_balancing.

* Add in extra_goal_song_items to help make runs less about completing every song.

* Change ID range to be in a more open area, and add some comments.

* Add in Streamer Mode and difficulty range options. Rearrange data files so its easier to get all data at once.

* Fix generation issues.

* Fix up the maximum and remove old option.

* Remove empty items and the option to make filler songs empty.

* Support emerald hunt mode. Make difficulties an option rather than 2 sliders.

* Fix DLC Song option being inverted.

* Fix item counting being broken if there was more than 1 world.

* Make compatible with .apworld specification.

* Make All item names ASCII compatible.

* Add in the additional_item_percentage option.

* Add a test to ensure the item names are within the normal ascii range.

* Add in death link.

* Remove the album from the item name. Not really needed anymore.

* Add the 2 budget is burning albums under the free songs heading. Adds a couple more songs without dlc.

* Sanitise Album names.

* Added the grade needed choice.

* Update songs to v3.1.0

* Adjust difficulty ranges. Add Expert and Master.

* Fix setup_en.md being out of date.

* Add a manual override.

* Add testing for diff ranges. Fix bugs introduced there. Limit option to 11 to not generate an impossible seed.

* Remove regions from Muse Dash.

* Some Oops...

* Attempt to make tests happy.

* Remove supports weighting false to stop webhost test failing.

* Adjusted settings

* Adjust music sheets to use percentages. Various cleanups.

* Fixes to new code.

* Add Ola Dash Album. Add support for overriding song difficulty. Other stylisation changes.

* Attempt fix tests.

* Ooops missed one.

* flake8 suggestions.

* Remove FM 17314 SUGAR RADIO as that song is a bit weird.

* Update document pages.

* Add trap support

* Lower additional song count by 10.

* Tests broke on my end. Using github to test this.

* Looks like I was accidentally adding ~.

* Fix the one song that crashes OoT hint generation

* Various documentation changes.

* Website documents fixup.

* Doc updates part 2.

* Oops. Doc updates part 3.

* Add Muse Dash to the apworld list.

* Add trailing comma.

* Add a couple plando options.

* Set data_version to 1.

* Add in some handling incase someone decides a song is both starter and included.

* Remove brackets around ifs.

* Oops. Accidentally removed a necessary bracket.

* Fix filtering crash due to me mixing up c# and python .remove().

* Add Happy Otaku Pack Vol.17. Also increment data version.

* Update links to melon loader to be the latest.

* Clean up song selection code by shuffling once then popping.

* Add UID to the Data text file, so the same file can be used client and server.

* Increment Data Version because some names have changed.

* Correct some names.

* Update data to v3.4.0 (Addition of Muse Radio FM104)

* Add support for SFX traps. Adjusted how traps were setup a bit.

* Update the docs to include a troubleshooting section.

* Small fixes.

* Remove unnecessary brackets.

* Add .net downloads to docs.

* Avoid failing generation if strict difficulty settings are applied with no dlc songs and streamer mode.

* Forgot to add the worst starting song count.

* Make minimum song count be Starting Songs + 11 instead of Starting Songs * 2 + 1.

* Fix up several issues where song count could mismatch the requested amount.

* Add a test to ensure world size doesn't grow.

* Fix some oversights.

* Remove unnecessary brackets.

* Fix up passing the tuple out when just the key would suffice.

* Adjust typing based on Phar's suggestions.

* Apply the rest of Phar's suggestions with minor tweaks to other parts to suit suggestions.

* Adjust some more stuff to fit 120 characters.

* Some more pep8 stuff and fix tests.

* Some pep8 in tests.
Jouramie pushed a commit to Jouramie/Archipelago that referenced this pull request Feb 28, 2024
* Alpha 1 Muse dash stuff.

* Add in an option to limit to only base game songs.

* Make all items progression instead of progression_skip_balancing.

* Add in extra_goal_song_items to help make runs less about completing every song.

* Change ID range to be in a more open area, and add some comments.

* Add in Streamer Mode and difficulty range options. Rearrange data files so its easier to get all data at once.

* Fix generation issues.

* Fix up the maximum and remove old option.

* Remove empty items and the option to make filler songs empty.

* Support emerald hunt mode. Make difficulties an option rather than 2 sliders.

* Fix DLC Song option being inverted.

* Fix item counting being broken if there was more than 1 world.

* Make compatible with .apworld specification.

* Make All item names ASCII compatible.

* Add in the additional_item_percentage option.

* Add a test to ensure the item names are within the normal ascii range.

* Add in death link.

* Remove the album from the item name. Not really needed anymore.

* Add the 2 budget is burning albums under the free songs heading. Adds a couple more songs without dlc.

* Sanitise Album names.

* Added the grade needed choice.

* Update songs to v3.1.0

* Adjust difficulty ranges. Add Expert and Master.

* Fix setup_en.md being out of date.

* Add a manual override.

* Add testing for diff ranges. Fix bugs introduced there. Limit option to 11 to not generate an impossible seed.

* Remove regions from Muse Dash.

* Some Oops...

* Attempt to make tests happy.

* Remove supports weighting false to stop webhost test failing.

* Adjusted settings

* Adjust music sheets to use percentages. Various cleanups.

* Fixes to new code.

* Add Ola Dash Album. Add support for overriding song difficulty. Other stylisation changes.

* Attempt fix tests.

* Ooops missed one.

* flake8 suggestions.

* Remove FM 17314 SUGAR RADIO as that song is a bit weird.

* Update document pages.

* Add trap support

* Lower additional song count by 10.

* Tests broke on my end. Using github to test this.

* Looks like I was accidentally adding ~.

* Fix the one song that crashes OoT hint generation

* Various documentation changes.

* Website documents fixup.

* Doc updates part 2.

* Oops. Doc updates part 3.

* Add Muse Dash to the apworld list.

* Add trailing comma.

* Add a couple plando options.

* Set data_version to 1.

* Add in some handling incase someone decides a song is both starter and included.

* Remove brackets around ifs.

* Oops. Accidentally removed a necessary bracket.

* Fix filtering crash due to me mixing up c# and python .remove().

* Add Happy Otaku Pack Vol.17. Also increment data version.

* Update links to melon loader to be the latest.

* Clean up song selection code by shuffling once then popping.

* Add UID to the Data text file, so the same file can be used client and server.

* Increment Data Version because some names have changed.

* Correct some names.

* Update data to v3.4.0 (Addition of Muse Radio FM104)

* Add support for SFX traps. Adjusted how traps were setup a bit.

* Update the docs to include a troubleshooting section.

* Small fixes.

* Remove unnecessary brackets.

* Add .net downloads to docs.

* Avoid failing generation if strict difficulty settings are applied with no dlc songs and streamer mode.

* Forgot to add the worst starting song count.

* Make minimum song count be Starting Songs + 11 instead of Starting Songs * 2 + 1.

* Fix up several issues where song count could mismatch the requested amount.

* Add a test to ensure world size doesn't grow.

* Fix some oversights.

* Remove unnecessary brackets.

* Fix up passing the tuple out when just the key would suffice.

* Adjust typing based on Phar's suggestions.

* Apply the rest of Phar's suggestions with minor tweaks to other parts to suit suggestions.

* Adjust some more stuff to fit 120 characters.

* Some more pep8 stuff and fix tests.

* Some pep8 in tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: new game Pull requests for implementing new games into Archipelago.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants