Skip to content

Commit

Permalink
fully remove metagame_selection and modded_game_selection
Browse files Browse the repository at this point in the history
  • Loading branch information
nbrochu committed Jan 25, 2025
1 parent 610e885 commit d0920b2
Show file tree
Hide file tree
Showing 21 changed files with 39 additions and 161 deletions.
12 changes: 7 additions & 5 deletions worlds/keymasters_keep/Supported Games by Platform.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Keymaster's Keep Supported Games by Platform

Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded games).
Keymaster's Keep currently supports 151 games

### Android (19)
* A Dance of Fire and Ice
Expand Down Expand Up @@ -148,6 +148,10 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* Vampire Survivors
* Warframe

### Modded Game (2)
* PlatinumQuest
* Pokémon Platinum Map Randomizer

### Nintendo 3DS (2)
* Hyrule Warriors: Definitive Edition
* The Binding of Isaac: Rebirth
Expand All @@ -159,12 +163,11 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* Mario Party 3
* Re-Volt

### Nintendo DS (6)
### Nintendo DS (5)
* Advance Wars: Days of Ruin
* Lego Rock Band
* Plants vs. Zombies
* Pokémon Diamond, Pearl, and Platinum Versions
* Pokémon Platinum Map Randomizer
* Rock Band 3

### Nintendo Entertainment System (4)
Expand Down Expand Up @@ -268,7 +271,7 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
### Nokia N-GAGE (1)
* Guitar Hero World Tour

### PC (100)
### PC (99)
* 14 Minesweeper Variants
* 14 Minesweeper Variants 2
* A Dance of Fire and Ice
Expand Down Expand Up @@ -332,7 +335,6 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* Pizza Tower
* Placid Plastic Duck Simulator
* Plants vs. Zombies
* PlatinumQuest
* PowerWash Simulator
* Rabbit & Steel
* Re-Volt
Expand Down
28 changes: 12 additions & 16 deletions worlds/keymasters_keep/Supported Games.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,27 @@
# Keymaster's Keep Supported Games

Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded games).
Keymaster's Keep currently supports 151 games

### Metagames Supported (8)
* Archipelago Multiworld Randomizer (META)
* Artwork (META)
* BizHawk Shuffler (META)
* Custom (META)
* Game Backlog (META)
* Jackbox Party Packs (META)
* RetroAchievements (META)
* Shiny Pokémon Hunt (META)

### Games Supported (141)
### Games Supported (151)
* 14 Minesweeper Variants (PC)
* 14 Minesweeper Variants 2 (PC)
* A Dance of Fire and Ice (PC + AND, IOS)
* Advance Wars: Days of Ruin (NDS)
* Anger Foot (PC)
* Arcaea (SW)
* Archipelago Multiworld Randomizer (META)
* Artwork (META)
* Awaria (PC)
* Backpack Battles (PC)
* BattleBlock Theater (PC + X360)
* BizHawk Shuffler (META)
* Bloons TD 6 (PC + AND, IOS, PS4, XONE)
* Bomberman 64 (N64)
* Creeper World 3: Arc Eternal (PC)
* Creeper World 4 (PC)
* Crush Crush (PC + AND, IOS, SW, WEB)
* Cuphead (PC + PS4, SW, XONE)
* Custom (META)
* Cytus II (AND + IOS)
* DJMax Respect V (PC + XONE, XSX)
* Dark Souls: Remastered (PC + PS4, SW, XONE)
Expand All @@ -50,6 +44,7 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* Frogger (1997) (PS1 + PC)
* GTFO (PC)
* GUILTY GEAR -STRIVE- (PC + PS4, PS5, XONE, XSX, SW)
* Game Backlog (META)
* Guild Wars 2 (PC)
* Guitar Hero (PS2)
* Guitar Hero 5 (X360 + PS3, PS2, WII)
Expand All @@ -64,6 +59,7 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* Hyrule Warriors: Definitive Edition (SW + 3DS)
* I Was a Teenage Exocolonist (PC + PS4, PS5, SW)
* Insaniquarium Deluxe (PC + AND, IOS)
* Jackbox Party Packs (META)
* Just Shapes & Beats (PC + PS4, SW, XONE)
* Kingdom Hearts III (PC + PS4, SW, XONE)
* Kingdom Hearts: Melody of Memory (SW + PC, PS4, XONE)
Expand Down Expand Up @@ -102,13 +98,16 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* Plants vs. Zombies (PC + AND, IOS, NDS, PS3, VITA, X360)
* Plants vs. Zombies 2: It's About Time (AND + IOS)
* Plants vs. Zombies: Heroes (IOS + AND)
* PlatinumQuest (MOD)
* Pokémon Diamond, Pearl, and Platinum Versions (NDS)
* Pokémon Platinum Map Randomizer (MOD)
* Pokémon Ruby, Sapphire, and Emerald Versions (GBA)
* PowerWash Simulator (PC + PS4, PS5, SW, VR, XONE, XSX)
* Project Sekai: Colorful Stage (AND + IOS)
* Rabbit & Steel (PC)
* Re-Volt (PC + DC, N64, PS1)
* Realm of the Mad God (PC)
* RetroAchievements (META)
* Rhythm Doctor (PC)
* Rhythm Heaven Fever (WII + WIIU)
* Rimworld (PC + XONE, PS4)
Expand All @@ -119,6 +118,7 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* Rock of Ages 2: Bigger & Boulder (PC + PS4, SW, XONE)
* Salt and Sacrifice (PC + PS4, PS5, SW)
* Shadow The Hedgehog (GC + PS2, XBOX)
* Shiny Pokémon Hunt (META)
* Shovel Knight Dig (PC + IOS, PS5, SW, XSX)
* Sins of a Solar Empire II (PC)
* Smite 2 (PC)
Expand Down Expand Up @@ -154,7 +154,3 @@ Keymaster's Keep currently supports 151 games (141 + 8 metagames + 2 modded game
* WEBFISHING (PC)
* Warframe (PC + AND, IOS, PS4, PS5, SW, XONE, XSX)
* Ys VIII: Lacrimosa of Dana (PC + PS4, PS5, SW, VITA)

### Modded Games Supported (2)
* PlatinumQuest (PC)
* Pokémon Platinum Map Randomizer (NDS)
1 change: 1 addition & 0 deletions worlds/keymasters_keep/data/mapping_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@
KeymastersKeepGamePlatforms.MART: "Fujitsu FM Towns Marty",
KeymastersKeepGamePlatforms.MCD: "Sega Mega CD",
KeymastersKeepGamePlatforms.META: "Metagame",
KeymastersKeepGamePlatforms.MOD: "Modded Game",
KeymastersKeepGamePlatforms.MSX: "MSX",
KeymastersKeepGamePlatforms.MSX2: "MSX2, MSX2+, MSX TurboR",
KeymastersKeepGamePlatforms.N64: "Nintendo 64",
Expand Down
1 change: 1 addition & 0 deletions worlds/keymasters_keep/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ class KeymastersKeepGamePlatforms(enum.Enum):
MART = "MART" # Fujitsu FM Towns Marty
MCD = "MCD" # Sega Mega CD
META = "META" # Metagame
MOD = "MOD" # Modded Game
MSX = "MSX" # MSX
MSX2 = "MSX2" # MSX2, MSX2+, MSX TurboR
N64 = "N64" # Nintendo 64
Expand Down
13 changes: 1 addition & 12 deletions worlds/keymasters_keep/game.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,13 @@

class AutoGameRegister(type):
games: Dict[str, Type[Game]] = dict()
metagames: Dict[str, Type[Game]] = dict()
modded_games: Dict[str, Type[Game]] = dict()

def __new__(mcs, name: str, bases: Tuple[type, ...], dict_: Dict[str, Any]) -> AutoGameRegister:
new_class: Type[Game] = super().__new__(mcs, name, bases, dict_)

if name != "Game" and new_class.should_autoregister:
game_name: str = new_class.game_name_with_platforms()

if "is_metagame" in dict_ and dict_["is_metagame"]:
mcs.metagames[game_name] = new_class
elif "is_modded_game" in dict_ and dict_["is_modded_game"]:
mcs.modded_games[game_name] = new_class
else:
mcs.games[game_name] = new_class
mcs.games[game_name] = new_class

return new_class

Expand All @@ -38,9 +30,6 @@ class Game(metaclass=AutoGameRegister):
# Other available platforms the game integration might work with
platforms_other: Optional[List[KeymastersKeepGamePlatforms]] = None

is_metagame: bool = False # Whether the game should be considered a metagame for grouping purposes
is_modded_game: bool = False # Whether the game is a modded version of a base game. For grouping purposes

is_adult_only_or_unrated: bool = True # ESRB AO / PEGI 18 / USK 18 / Unrated? Used for filtering

should_autoregister: bool = True # Development flag. Used to prevent AutoGameRegister from registering the game
Expand Down
12 changes: 2 additions & 10 deletions worlds/keymasters_keep/game_objective_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,18 +178,10 @@ def _filter_games(

game_name: str
for game_name in allowable_games:
in_games: bool = game_name in AutoGameRegister.games
in_metagames: bool = game_name in AutoGameRegister.metagames
in_modded_games: bool = game_name in AutoGameRegister.modded_games

if not in_games and not in_metagames and not in_modded_games:
if game_name not in AutoGameRegister.games:
continue

game: Type[Game] = AutoGameRegister.games.get(
game_name, AutoGameRegister.metagames.get(
game_name, AutoGameRegister.modded_games.get(game_name)
)
)
game: Type[Game] = AutoGameRegister.games[game_name]

game_instance: Game = game(archipelago_options=self.archipelago_options)

Expand Down
12 changes: 4 additions & 8 deletions worlds/keymasters_keep/games/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from importlib import import_module
from pkgutil import iter_modules

from ..game import AutoGameRegister
from ..game import AutoGameRegister, Game

for game_module_info in iter_modules(__path__):
import_module(f".{game_module_info.name}", __package__)
Expand All @@ -13,13 +13,9 @@
option_classes: List[Type] = list()

# Reverse order here is needed so that the options are added in alphabetical order in the YAML
for _, game_cls in [
*sorted(AutoGameRegister.modded_games.items(), reverse=True),
*sorted(AutoGameRegister.games.items(), reverse=True),
*sorted(AutoGameRegister.metagames.items(), reverse=True),
]:
if game_cls.options_cls:
option_classes.append(game_cls.options_cls)
game_cls: Type[Game]
for _, game_cls in sorted(AutoGameRegister.games.items(), reverse=True):
option_classes.append(game_cls.options_cls)


@dataclass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ class ArchipelagoMultiworldRandomizerGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

options_cls = ArchipelagoMultiworldRandomizerArchipelagoOptions
Expand Down
2 changes: 0 additions & 2 deletions worlds/keymasters_keep/games/artwork_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ class ArtworkGame(Game):

platforms_other = None

is_metagame = True

options_cls = ArtworkArchipelagoOptions

def optional_game_constraint_templates(self) -> List[GameObjectiveTemplate]:
Expand Down
1 change: 0 additions & 1 deletion worlds/keymasters_keep/games/bizhawk_shuffler_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ class BizHawkShufflerGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

options_cls = BizHawkShufflerArchipelagoOptions
Expand Down
1 change: 0 additions & 1 deletion worlds/keymasters_keep/games/custom_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ class CustomGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

options_cls = CustomArchipelagoOptions
Expand Down
1 change: 0 additions & 1 deletion worlds/keymasters_keep/games/game_backlog_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ class GameBacklogGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

options_cls = GameBacklogArchipelagoOptions
Expand Down
1 change: 0 additions & 1 deletion worlds/keymasters_keep/games/game_medley_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ class GameMedleyGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

should_autoregister = False
Expand Down
1 change: 0 additions & 1 deletion worlds/keymasters_keep/games/jackbox_party_packs_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ class JackboxPartyPacksGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

options_cls = JackboxPartyPacksArchipelagoOptions
Expand Down
3 changes: 1 addition & 2 deletions worlds/keymasters_keep/games/platinumquest_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,10 @@ class PlatinumQuestArchipelagoOptions:

class PlatinumQuestGame(Game):
name = "PlatinumQuest"
platform = KeymastersKeepGamePlatforms.PC
platform = KeymastersKeepGamePlatforms.MOD

platforms_other = None

is_modded_game = True
is_adult_only_or_unrated = False

options_cls = PlatinumQuestArchipelagoOptions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@ class PokemonPlatinumMapRandomizerArchipelagoOptions:

class PokemonPlatinumMapRandomizerGame(Game):
name = "Pokémon Platinum Map Randomizer"
platform = KeymastersKeepGamePlatforms.NDS
platform = KeymastersKeepGamePlatforms.MOD

platforms_other = None

is_modded_game = True
is_adult_only_or_unrated = False

options_cls = PokemonPlatinumMapRandomizerArchipelagoOptions
Expand Down
1 change: 0 additions & 1 deletion worlds/keymasters_keep/games/retro_achievements_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ class RetroAchievementsGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

options_cls = RetroAchievementsArchipelagoOptions
Expand Down
1 change: 0 additions & 1 deletion worlds/keymasters_keep/games/shiny_pokemon_hunt_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ class ShinyPokemonHuntGame(Game):

platforms_other = None

is_metagame = True
is_adult_only_or_unrated = False

options_cls = ShinyPokemonHuntArchipelagoOptions
Expand Down
Loading

0 comments on commit d0920b2

Please sign in to comment.