From 88b1c94eb2201636ea62c2e663ae14543ac71973 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Sun, 24 Dec 2023 17:29:30 -0800 Subject: [PATCH] ChecksFinder: use options_dataclass --- worlds/checksfinder/Options.py | 9 +++++---- worlds/checksfinder/__init__.py | 10 ++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/worlds/checksfinder/Options.py b/worlds/checksfinder/Options.py index a670109362..08f9a22813 100644 --- a/worlds/checksfinder/Options.py +++ b/worlds/checksfinder/Options.py @@ -1,6 +1,7 @@ import typing -from Options import Option +from Options import Option, PerGameCommonOptions +from dataclasses import dataclass - -checksfinder_options: typing.Dict[str, type(Option)] = { -} +@dataclass +class ChecksFinderOptions(PerGameCommonOptions): + pass diff --git a/worlds/checksfinder/__init__.py b/worlds/checksfinder/__init__.py index 621e8f5c37..da577f9f00 100644 --- a/worlds/checksfinder/__init__.py +++ b/worlds/checksfinder/__init__.py @@ -1,9 +1,10 @@ from BaseClasses import Region, Entrance, Item, Tutorial, ItemClassification from .Items import ChecksFinderItem, item_table, required_items from .Locations import ChecksFinderAdvancement, advancement_table, exclusion_table -from .Options import checksfinder_options +from .Options import ChecksFinderOptions from .Rules import set_rules, set_completion_rules from ..AutoWorld import World, WebWorld +from dataclasses import fields client_version = 7 @@ -26,7 +27,8 @@ class ChecksFinderWorld(World): with the mines! You win when you get all your items and beat the board! """ game: str = "ChecksFinder" - option_definitions = checksfinder_options + options = ChecksFinderOptions + options_dataclass = ChecksFinderOptions topology_present = True web = ChecksFinderWeb() @@ -79,8 +81,8 @@ class ChecksFinderWorld(World): def fill_slot_data(self): slot_data = self._get_checksfinder_data() - for option_name in checksfinder_options: - option = getattr(self.multiworld, option_name)[self.player] + for option_name in [field.name for field in fields(ChecksFinderOptions)]: + option = getattr(self.options, option_name) if slot_data.get(option_name, None) is None and type(option.value) in {str, int}: slot_data[option_name] = int(option.value) return slot_data