lufia2ac: switch to new options system (#2289)
This commit is contained in:
parent
fffbe68428
commit
63c7f1deae
|
@ -5,7 +5,8 @@ from dataclasses import dataclass
|
|||
from itertools import accumulate, chain, combinations
|
||||
from typing import Any, cast, Dict, Iterator, List, Mapping, Optional, Set, Tuple, Type, TYPE_CHECKING, Union
|
||||
|
||||
from Options import AssembleOptions, Choice, DeathLink, ItemDict, Range, SpecialRange, TextChoice, Toggle
|
||||
from Options import AssembleOptions, Choice, DeathLink, ItemDict, PerGameCommonOptions, Range, SpecialRange, \
|
||||
TextChoice, Toggle
|
||||
from .Enemies import enemy_name_to_sprite
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
@ -697,7 +698,7 @@ class ShufflePartyMembers(Toggle):
|
|||
|
||||
|
||||
@dataclass
|
||||
class L2ACOptions:
|
||||
class L2ACOptions(PerGameCommonOptions):
|
||||
blue_chest_chance: BlueChestChance
|
||||
blue_chest_count: BlueChestCount
|
||||
boss: Boss
|
||||
|
|
|
@ -2,11 +2,11 @@ import base64
|
|||
import itertools
|
||||
import os
|
||||
from enum import IntFlag
|
||||
from typing import Any, ClassVar, Dict, get_type_hints, Iterator, List, Set, Tuple
|
||||
from typing import Any, ClassVar, Dict, Iterator, List, Set, Tuple, Type
|
||||
|
||||
import settings
|
||||
from BaseClasses import Item, ItemClassification, Location, MultiWorld, Region, Tutorial
|
||||
from Options import AssembleOptions
|
||||
from Options import PerGameCommonOptions
|
||||
from Utils import __version__
|
||||
from worlds.AutoWorld import WebWorld, World
|
||||
from worlds.generic.Rules import add_rule, set_rule
|
||||
|
@ -54,7 +54,8 @@ class L2ACWorld(World):
|
|||
game: ClassVar[str] = "Lufia II Ancient Cave"
|
||||
web: ClassVar[WebWorld] = L2ACWeb()
|
||||
|
||||
option_definitions: ClassVar[Dict[str, AssembleOptions]] = get_type_hints(L2ACOptions)
|
||||
options_dataclass: ClassVar[Type[PerGameCommonOptions]] = L2ACOptions
|
||||
options: L2ACOptions
|
||||
settings: ClassVar[L2ACSettings]
|
||||
item_name_to_id: ClassVar[Dict[str, int]] = l2ac_item_name_to_id
|
||||
location_name_to_id: ClassVar[Dict[str, int]] = l2ac_location_name_to_id
|
||||
|
@ -87,7 +88,7 @@ class L2ACWorld(World):
|
|||
bytearray(f"L2AC{__version__.replace('.', '')[:3]}_{self.player}_{self.multiworld.seed}", "utf8")[:21]
|
||||
self.rom_name.extend([0] * (21 - len(self.rom_name)))
|
||||
|
||||
self.o = L2ACOptions(**{opt: getattr(self.multiworld, opt)[self.player] for opt in self.option_definitions})
|
||||
self.o = self.options
|
||||
|
||||
if self.o.blue_chest_count < self.o.custom_item_pool.count:
|
||||
raise ValueError(f"Number of items in custom_item_pool ({self.o.custom_item_pool.count}) is "
|
||||
|
|
Loading…
Reference in New Issue