2025-07-25 19:33:51 -04:00
from dataclasses import dataclass
2025-07-25 16:24:08 -04:00
2025-07-25 19:33:51 -04:00
from Options import FreeText , NumericOption , Toggle , DefaultOnToggle , Choice , TextChoice , Range , NamedRange , OptionList , \
PerGameCommonOptions
2025-08-03 14:37:52 -04:00
class ProgressiveVacuum ( Toggle ) :
2025-07-25 19:33:51 -04:00
"""
Determines whether you get access to main areas progressively
2025-07-26 00:30:19 -04:00
Enabled : Whoville > Who Forest > Who Dump > Who Lake
2025-07-25 19:33:51 -04:00
"""
display_name = " Progressive Vacuum Access "
2025-07-25 16:24:08 -04:00
2025-07-26 00:30:19 -04:00
class Missionsanity ( Choice ) :
"""
How mission checks are randomized in the pool
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
2025-07-25 16:24:08 -04:00
# 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
2025-08-03 14:37:52 -04:00
# default = 0
2025-07-25 16:24:08 -04:00
# display_name = "Starting Area"
# class Supadow(Toggle):
# """Enables completing minigames through the Supadows in Mount Crumpit as checks. (9 locations)"""
2025-07-25 19:33:51 -04:00
# display_name = "Supadow Minigame Locations"#
2025-07-25 16:24:08 -04:00
# class Gifts(Toggle):
# """Missions that require you to squash every present in a level. (4 locations)"""
# display_name = "Gift Collection Locations"
# class Movesanity(Toggle):
# """Randomizes Grinch's moveset along with randomizing max into the pool. (Currently randomizes Max)"""
# display_name = "Movesanity"
2025-07-25 19:33:51 -04:00
class UnlimitedRottenEggs ( Toggle ) :
2025-07-25 16:24:08 -04:00
""" Determine whether or not you run out of rotten eggs when you utilize your gadgets. """
2025-07-25 19:33:51 -04:00
display_name = " Unlimited Rotten Eggs "
2025-08-03 13:39:32 -04:00
class RingLinkOption ( Toggle ) :
""" Whenever this is toggled, your ammo is linked with other ringlink-compatible games that also have this enabled """
2025-07-25 19:33:51 -04:00
@dataclass
class GrinchOptions ( PerGameCommonOptions ) : #DeathLinkMixin
progressive_vacuum : ProgressiveVacuum
2025-07-26 17:34:43 -04:00
missionsanity : Missionsanity
2025-07-26 00:30:19 -04:00
unlimited_rotten_eggs : UnlimitedRottenEggs