Clique: Use options_dataclass

This commit is contained in:
CaitSith2
2023-12-24 17:30:17 -08:00
parent 88b1c94eb2
commit d545b78803
5 changed files with 18 additions and 14 deletions

View File

@@ -1,7 +1,7 @@
from typing import Callable, Dict, NamedTuple, Optional
from BaseClasses import Item, ItemClassification
from Options import PerGameCommonOptions
from .Options import CliqueOptions
class CliqueItem(Item):
@@ -11,7 +11,7 @@ class CliqueItem(Item):
class CliqueItemData(NamedTuple):
code: Optional[int] = None
type: ItemClassification = ItemClassification.filler
can_create: Callable[[PerGameCommonOptions], bool] = lambda options: True
can_create: Callable[[CliqueOptions], bool] = lambda options: True
item_data_table: Dict[str, CliqueItemData] = {

View File

@@ -1,7 +1,7 @@
from typing import Callable, Dict, NamedTuple, Optional
from BaseClasses import Location
from Options import PerGameCommonOptions
from .Options import CliqueOptions
@@ -12,7 +12,7 @@ class CliqueLocation(Location):
class CliqueLocationData(NamedTuple):
region: str
address: Optional[int] = None
can_create: Callable[[PerGameCommonOptions], bool] = lambda options: True
can_create: Callable[[CliqueOptions], bool] = lambda options: True
locked_item: Optional[str] = None

View File

@@ -1,6 +1,7 @@
from typing import Dict
from Options import Choice, Option, Toggle
from Options import Choice, Option, Toggle, PerGameCommonOptions
from dataclasses import dataclass
class HardMode(Toggle):
@@ -25,10 +26,12 @@ class ButtonColor(Choice):
option_black = 11
clique_options: Dict[str, type(Option)] = {
"color": ButtonColor,
"hard_mode": HardMode,
@dataclass
class CliqueOptions(PerGameCommonOptions):
color: ButtonColor
hard_mode: HardMode
# DeathLink is always on. Always.
# "death_link": DeathLink,
}
# death_link: DeathLink

View File

@@ -1,10 +1,10 @@
from typing import Callable
from BaseClasses import CollectionState
from Options import PerGameCommonOptions
from .Options import CliqueOptions
def get_button_rule(options: PerGameCommonOptions, player: int) -> Callable[[CollectionState], bool]:
def get_button_rule(options: CliqueOptions, player: int) -> Callable[[CollectionState], bool]:
if getattr(options, "hard_mode"):
return lambda state: state.has("Button Activation", player)

View File

@@ -4,7 +4,7 @@ from BaseClasses import Region, Tutorial
from worlds.AutoWorld import WebWorld, World
from .Items import CliqueItem, item_data_table, item_table
from .Locations import CliqueLocation, location_data_table, location_table, locked_locations
from .Options import clique_options
from .Options import CliqueOptions
from .Regions import region_data_table
from .Rules import get_button_rule
@@ -29,7 +29,8 @@ class CliqueWorld(World):
game = "Clique"
data_version = 3
web = CliqueWebWorld()
option_definitions = clique_options
options = CliqueOptions
options_dataclass = CliqueOptions
location_name_to_id = location_table
item_name_to_id = item_table