From b56da7989028e936f6f8dabb00a677909053b959 Mon Sep 17 00:00:00 2001 From: Justus Lind Date: Fri, 30 Jun 2023 23:10:58 +1000 Subject: [PATCH] Muse Dash: Add 2023 Anniversary songs and remove a hidden song (#1916) * Remove CHAOS Glitch. Add test to check for removed songs. * Add to game list * Fix oversight with 0 difficulty songs. Fix naming of test. * Add new songs and update other data. * Fix accidental copy paste --- README.md | 1 + worlds/musedash/MuseDashCollection.py | 7 +++++-- worlds/musedash/MuseDashData.txt | 10 ++++++++-- worlds/musedash/__init__.py | 2 +- worlds/musedash/test/TestRemovedSongs.py | 25 ++++++++++++++++++++++++ 5 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 worlds/musedash/test/TestRemovedSongs.py diff --git a/README.md b/README.md index 91998d492819..f095f6bf1edb 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Currently, the following games are supported: * Undertale * Bumper Stickers * Mega Man Battle Network 3: Blue Version +* Muse Dash For setup and instructions check out our [tutorials page](https://archipelago.gg/tutorial/). Downloads can be found at [Releases](https://github.com/ArchipelagoMW/Archipelago/releases), including compiled diff --git a/worlds/musedash/MuseDashCollection.py b/worlds/musedash/MuseDashCollection.py index 2be14863299f..54e0f57ccd6d 100644 --- a/worlds/musedash/MuseDashCollection.py +++ b/worlds/musedash/MuseDashCollection.py @@ -22,8 +22,7 @@ class MuseDashCollections: "MuseDash ka nanika hi", "Rush-Hour", "Find this Month's Featured Playlist", - "PeroPero in the Universe", - "CHAOS Glitch" + "PeroPero in the Universe" ] album_items: Dict[str, AlbumData] = {} @@ -129,6 +128,10 @@ def parse_song_difficulty(self, difficulty: str) -> Optional[int]: if len(difficulty) <= 0 or difficulty == "?" or difficulty == "¿": return None + # 0 is used as a filler and no songs actually have a 0 difficulty song. + if difficulty == "0": + return None + # Curse the 2023 april fools update. Used on 3rd Avenue. if difficulty == "〇": return 10 diff --git a/worlds/musedash/MuseDashData.txt b/worlds/musedash/MuseDashData.txt index 91a5bc795dca..d3108b5c563c 100644 --- a/worlds/musedash/MuseDashData.txt +++ b/worlds/musedash/MuseDashData.txt @@ -74,7 +74,7 @@ snooze|43-19|Just as Planned Plus|False|5|7|10| Kuishinbo Hacker feat.Kuishinbo Akachan|43-20|Just as Planned Plus|True|5|7|9| Inu no outa|43-21|Just as Planned Plus|True|3|5|7| Prism Fountain|43-22|Just as Planned Plus|True|7|9|11| -Gospel|43-23|Just as Planned Plus|False|4|6|10| +Gospel|43-23|Just as Planned Plus|False|4|6|9| East Ai Li Lovely|62-0|Happy Otaku Pack Vol.17|False|2|4|7| Mori Umi no Fune|62-1|Happy Otaku Pack Vol.17|True|5|7|9| Ooi|62-2|Happy Otaku Pack Vol.17|True|5|7|10| @@ -449,4 +449,10 @@ Centennial Streamers High|63-1|MUSE RADIO FM104|False|4|7|9| Love Patrol|63-2|MUSE RADIO FM104|True|3|5|7| Mahorova|63-3|MUSE RADIO FM104|True|3|5|8| Yoru no machi|63-4|MUSE RADIO FM104|True|1|4|7| -INTERNET YAMERO|63-5|MUSE RADIO FM104|True|6|8|10| \ No newline at end of file +INTERNET YAMERO|63-5|MUSE RADIO FM104|True|6|8|10| +Abracadabra|43-24|Just as Planned Plus|False|6|8|10| +Squalldecimator feat. EZ-Ven|43-25|Just as Planned Plus|True|5|7|9| +Amateras Rhythm|43-26|Just as Planned Plus|True|6|8|11| +Record one's Dream|43-27|Just as Planned Plus|False|4|7|10| +Lunatic|43-28|Just as Planned Plus|True|5|8|10| +Jiumeng|43-29|Just as Planned Plus|True|3|6|8| \ No newline at end of file diff --git a/worlds/musedash/__init__.py b/worlds/musedash/__init__.py index b76b0f6a4d30..e8a51ceb0b71 100644 --- a/worlds/musedash/__init__.py +++ b/worlds/musedash/__init__.py @@ -40,7 +40,7 @@ class MuseDashWorld(World): game = "Muse Dash" option_definitions = musedash_options topology_present = False - data_version = 6 + data_version = 7 web = MuseDashWebWorld() music_sheet_name: str = "Music Sheet" diff --git a/worlds/musedash/test/TestRemovedSongs.py b/worlds/musedash/test/TestRemovedSongs.py new file mode 100644 index 000000000000..838c64b5dc59 --- /dev/null +++ b/worlds/musedash/test/TestRemovedSongs.py @@ -0,0 +1,25 @@ +from . import MuseDashTestBase + + +class TestRemovedSongs(MuseDashTestBase): + options = { + "starting_song_count": 10, + "allow_just_as_planned_dlc_songs": True, + "additional_song_count": 500, + } + + removed_songs = [ + "CHAOS Glitch", + "FM 17314 SUGAR RADIO" + ] + + def test_remove_songs_are_not_generated(self) -> None: + # This test is done on a world where every song should be added. + muse_dash_world = self.multiworld.worlds[1] + + for song_name in self.removed_songs: + assert song_name not in muse_dash_world.starting_songs, \ + f"Song '{song_name}' was included into the starting songs when it shouldn't." + + assert song_name not in muse_dash_world.included_songs, \ + f"Song '{song_name}' was included into the included songs when it shouldn't."