mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00
some option updates
This commit is contained in:
62
Options.py
62
Options.py
@@ -39,6 +39,10 @@ class Option(metaclass=AssembleOptions):
|
||||
def __bool__(self):
|
||||
return bool(self.value)
|
||||
|
||||
@classmethod
|
||||
def from_any(cls, data: typing.Any):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class Toggle(Option):
|
||||
option_false = 0
|
||||
@@ -54,6 +58,13 @@ class Toggle(Option):
|
||||
else:
|
||||
return cls(1)
|
||||
|
||||
@classmethod
|
||||
def from_any(cls, data: typing.Any):
|
||||
if type(data) == str:
|
||||
return cls.from_text(data)
|
||||
else:
|
||||
return cls(data)
|
||||
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, Toggle):
|
||||
return self.value == other.value
|
||||
@@ -75,7 +86,6 @@ class Choice(Option):
|
||||
|
||||
@classmethod
|
||||
def from_text(cls, text: str) -> Choice:
|
||||
|
||||
for optionname, value in cls.options.items():
|
||||
if optionname == text.lower():
|
||||
return cls(value)
|
||||
@@ -83,6 +93,10 @@ class Choice(Option):
|
||||
f'Could not find option "{text}" for "{cls.__name__}", '
|
||||
f'known options are {", ".join(f"{option}" for option in cls.name_lookup.values())}')
|
||||
|
||||
@classmethod
|
||||
def from_any(cls, data: typing.Any):
|
||||
return cls.from_text(data)
|
||||
|
||||
|
||||
class Logic(Choice):
|
||||
option_no_glitches = 0
|
||||
@@ -151,6 +165,52 @@ keyshuffle = Toggle
|
||||
bigkeyshuffle = Toggle
|
||||
hints = Toggle
|
||||
|
||||
RandomizeDreamers = Toggle
|
||||
RandomizeSkills = Toggle
|
||||
RandomizeCharms = Toggle
|
||||
RandomizeKeys = Toggle
|
||||
RandomizeGeoChests = Toggle
|
||||
RandomizeMaskShards = Toggle
|
||||
RandomizeVesselFragments = Toggle
|
||||
RandomizeCharmNotches = Toggle
|
||||
RandomizePaleOre = Toggle
|
||||
RandomizeRancidEggs = Toggle
|
||||
RandomizeRelics = Toggle
|
||||
RandomizeMaps = Toggle
|
||||
RandomizeStags = Toggle
|
||||
RandomizeGrubs = Toggle
|
||||
RandomizeWhisperingRoots = Toggle
|
||||
RandomizeRocks = Toggle
|
||||
RandomizeSoulTotems = Toggle
|
||||
RandomizePalaceTotems = Toggle
|
||||
RandomizeLoreTablets = Toggle
|
||||
RandomizeLifebloodCocoons = Toggle
|
||||
|
||||
hollow_knight_randomize_options: typing.Dict[str, Option] = {
|
||||
"RandomizeDreamers" : RandomizeDreamers,
|
||||
"RandomizeSkills" : RandomizeSkills,
|
||||
"RandomizeCharms" : RandomizeCharms,
|
||||
"RandomizeKeys" : RandomizeKeys,
|
||||
"RandomizeGeoChests" : RandomizeGeoChests,
|
||||
"RandomizeMaskShards" : RandomizeMaskShards,
|
||||
"RandomizeVesselFragments" : RandomizeVesselFragments,
|
||||
"RandomizeCharmNotches" : RandomizeCharmNotches,
|
||||
"RandomizePaleOre" : RandomizePaleOre,
|
||||
"RandomizeRancidEggs" : RandomizeRancidEggs,
|
||||
"RandomizeRelics" : RandomizeRelics,
|
||||
"RandomizeMaps" : RandomizeMaps,
|
||||
"RandomizeStags" : RandomizeStags,
|
||||
"RandomizeGrubs" : RandomizeGrubs,
|
||||
"RandomizeWhisperingRoots" : RandomizeWhisperingRoots,
|
||||
"RandomizeRocks" : RandomizeRocks,
|
||||
"RandomizeSoulTotems" : RandomizeSoulTotems,
|
||||
"RandomizePalaceTotems" : RandomizePalaceTotems,
|
||||
"RandomizeLoreTablets" : RandomizeLoreTablets,
|
||||
"RandomizeLifebloodCocoons" : RandomizeLifebloodCocoons,
|
||||
}
|
||||
|
||||
hollow_knight_options: typing.Dict[str, Option] = {**hollow_knight_randomize_options}
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
|
||||
|
Reference in New Issue
Block a user