from dataclasses import dataclass from Options import FreeText, NumericOption, Toggle, DefaultOnToggle, Choice, TextChoice, Range, NamedRange, OptionList, \ PerGameCommonOptions class StartingArea(Choice): """ Here, you can select which area you'll start the game with. Whichever one you pick is the region you'll have access to at the start of the Multiworld. """ option_whoville = 0 option_who_forest = 1 option_who_dump = 2 option_who_lake = 3 default = 0 display_name = "Starting Area" class ProgressiveVacuum(Toggle):#DefaultOnToggle """ Determines whether you get access to main areas progressively [NOT IMPLEMENTED] Enabled: Whoville > Who Forest > Who Dump > Who Lake """ display_name = "Progressive Vacuum Access" class Missionsanity(Choice): """ How mission checks are randomized in the pool [NOT IMPLEMENTED] None: Does not add mission checks Completion: Only completing the mission gives you a check Individual: Individual tasks for one mission, such as individual snowmen squashed, are checks. Both: Both individual tasks and mission completion are randomized. """ display_name = "Mission Locations" option_none = 0 option_completion = 1 option_individual = 2 option_both = 3 default = 1 class AnnoyingLocations(Toggle): """Makes certain long, annoying, and tedious checks to be excluded [NOT IMPLEMENTED]""" display_name = "Annoying Locations" class ProgressiveGadget(Toggle):#DefaultOnToggle """ Determines whether you get access to a gadget as individual blueprint count [NOT IMPLEMENTED] """ display_name = "Progressive Gadgets" class Supadow(Toggle): """Enables completing minigames through the Supadows in Mount Crumpit as checks. (9 locations) [NOT IMPLEMENTED]""" display_name = "Supadow Minigame Locations" class Gifts(Toggle): """Missions that require you to squash every present in a level. (4 locations) [NOT IMPLEMENTED]""" display_name = "Gift Collection Locations" class Movesanity(Toggle): """Randomizes Grinch's moveset along with randomizing max into the pool. [NOT IMPLEMENTED]""" display_name = "Movesanity" class UnlimitedEggs(Toggle): """Determine whether or not you run out of rotten eggs when you utilize your gadgets.""" display_name = "Unlimited Rotten Eggs" class RingLinkOption(Toggle): """Whenever this is toggled, your ammo is linked with other ringlink-compatible games that also have this enabled. [NOT IMPLEMENTED]""" class TrapLinkOption(Toggle): """If a trap is sent from Grinch, traps that are compatible with other games are triggered aswell. [NOT IMPLEMENTED]""" @dataclass class GrinchOptions(PerGameCommonOptions):#DeathLinkMixin progressive_vacuum: ProgressiveVacuum missionsanity: Missionsanity unlimited_eggs: UnlimitedEggs ring_link: RingLinkOption trap_link: TrapLinkOption minigamesanity: Supadow giftsanity: Gifts movesanity: Movesanity starting_area: StartingArea progressive_gadget: ProgressiveGadget annoyinglocations: AnnoyingLocations