2022-01-23 20:34:30 +00:00
|
|
|
import typing
|
2022-07-25 16:39:31 +00:00
|
|
|
from Options import Option, DefaultOnToggle, Range, Toggle, DeathLink, Choice
|
2022-01-23 20:34:30 +00:00
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-01-23 20:34:30 +00:00
|
|
|
class EnableCoinStars(DefaultOnToggle):
|
|
|
|
"""Disable to Ignore 100 Coin Stars. You can still collect them, but they don't do anything"""
|
2022-02-02 15:29:29 +00:00
|
|
|
display_name = "Enable 100 Coin Stars"
|
2022-01-23 20:34:30 +00:00
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-01-23 20:34:30 +00:00
|
|
|
class StrictCapRequirements(DefaultOnToggle):
|
|
|
|
"""If disabled, Stars that expect special caps may have to be acquired without the caps"""
|
2022-02-02 15:29:29 +00:00
|
|
|
display_name = "Strict Cap Requirements"
|
2022-01-23 20:34:30 +00:00
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-02-15 18:56:10 +00:00
|
|
|
class StrictCannonRequirements(DefaultOnToggle):
|
2022-11-06 14:28:16 +00:00
|
|
|
"""If disabled, Stars that expect cannons may have to be acquired without them. Only makes a difference if Buddy
|
|
|
|
Checks are enabled"""
|
2022-02-15 18:56:10 +00:00
|
|
|
display_name = "Strict Cannon Requirements"
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-07-14 16:37:14 +00:00
|
|
|
class FirstBowserStarDoorCost(Range):
|
|
|
|
"""How many stars are required at the Star Door to Bowser in the Dark World"""
|
|
|
|
range_start = 0
|
2022-07-25 16:39:31 +00:00
|
|
|
range_end = 50
|
2022-07-14 16:37:14 +00:00
|
|
|
default = 8
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-07-14 16:37:14 +00:00
|
|
|
class BasementStarDoorCost(Range):
|
|
|
|
"""How many stars are required at the Star Door in the Basement"""
|
|
|
|
range_start = 0
|
2022-07-25 16:39:31 +00:00
|
|
|
range_end = 70
|
2022-07-14 16:37:14 +00:00
|
|
|
default = 30
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-07-14 16:37:14 +00:00
|
|
|
class SecondFloorStarDoorCost(Range):
|
|
|
|
"""How many stars are required to access the third floor"""
|
|
|
|
range_start = 0
|
2022-07-25 16:39:31 +00:00
|
|
|
range_end = 90
|
|
|
|
default = 50
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-07-25 16:39:31 +00:00
|
|
|
class MIPS1Cost(Range):
|
|
|
|
"""How many stars are required to spawn MIPS the first time"""
|
|
|
|
range_start = 0
|
|
|
|
range_end = 40
|
|
|
|
default = 15
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-07-25 16:39:31 +00:00
|
|
|
class MIPS2Cost(Range):
|
2022-10-27 23:43:02 +00:00
|
|
|
"""How many stars are required to spawn MIPS the second time."""
|
2022-07-25 16:39:31 +00:00
|
|
|
range_start = 0
|
|
|
|
range_end = 80
|
2022-07-14 16:37:14 +00:00
|
|
|
default = 50
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-01-23 20:34:30 +00:00
|
|
|
class StarsToFinish(Range):
|
|
|
|
"""How many stars are required at the infinite stairs"""
|
2022-07-14 16:37:14 +00:00
|
|
|
display_name = "Endless Stairs Stars"
|
|
|
|
range_start = 0
|
2022-01-23 20:34:30 +00:00
|
|
|
range_end = 100
|
|
|
|
default = 70
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-07-25 16:39:31 +00:00
|
|
|
class AmountOfStars(Range):
|
|
|
|
"""How many stars exist. Disabling 100 Coin Stars removes 15 from the Pool. At least max of any Cost set"""
|
|
|
|
range_start = 35
|
|
|
|
range_end = 120
|
|
|
|
default = 120
|
2022-01-30 18:12:52 +00:00
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-07-25 16:39:31 +00:00
|
|
|
class AreaRandomizer(Choice):
|
|
|
|
"""Randomize Entrances"""
|
|
|
|
display_name = "Entrance Randomizer"
|
|
|
|
option_Off = 0
|
|
|
|
option_Courses_Only = 1
|
2022-10-27 23:43:02 +00:00
|
|
|
option_Courses_and_Secrets_Separate = 2
|
|
|
|
option_Courses_and_Secrets = 3
|
2022-02-09 19:57:38 +00:00
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-02-15 18:56:10 +00:00
|
|
|
class BuddyChecks(Toggle):
|
|
|
|
"""Bob-omb Buddies are checks, Cannon Unlocks are items"""
|
|
|
|
display_name = "Bob-omb Buddy Checks"
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-08-21 18:45:39 +00:00
|
|
|
class ExclamationBoxes(Choice):
|
|
|
|
"""Include 1Up Exclamation Boxes during randomization"""
|
|
|
|
display_name = "Randomize 1Up !-Blocks"
|
|
|
|
option_Off = 0
|
|
|
|
option_1Ups_Only = 1
|
|
|
|
|
2023-10-28 19:44:16 +00:00
|
|
|
class CompletionType(Choice):
|
|
|
|
"""Set goal for game completion"""
|
|
|
|
display_name = "Completion Goal"
|
|
|
|
option_Last_Bowser_Stage = 0
|
|
|
|
option_All_Bowser_Stages = 1
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
2022-02-09 19:57:38 +00:00
|
|
|
class ProgressiveKeys(DefaultOnToggle):
|
|
|
|
"""Keys will first grant you access to the Basement, then to the Secound Floor"""
|
|
|
|
display_name = "Progressive Keys"
|
|
|
|
|
2022-09-15 22:32:30 +00:00
|
|
|
|
|
|
|
sm64_options: typing.Dict[str, type(Option)] = {
|
2022-02-09 19:57:38 +00:00
|
|
|
"AreaRandomizer": AreaRandomizer,
|
|
|
|
"ProgressiveKeys": ProgressiveKeys,
|
2022-01-23 20:34:30 +00:00
|
|
|
"EnableCoinStars": EnableCoinStars,
|
2022-07-25 16:39:31 +00:00
|
|
|
"AmountOfStars": AmountOfStars,
|
2022-01-23 20:34:30 +00:00
|
|
|
"StrictCapRequirements": StrictCapRequirements,
|
2022-02-15 18:56:10 +00:00
|
|
|
"StrictCannonRequirements": StrictCannonRequirements,
|
2022-07-14 16:37:14 +00:00
|
|
|
"FirstBowserStarDoorCost": FirstBowserStarDoorCost,
|
|
|
|
"BasementStarDoorCost": BasementStarDoorCost,
|
|
|
|
"SecondFloorStarDoorCost": SecondFloorStarDoorCost,
|
2022-07-25 16:39:31 +00:00
|
|
|
"MIPS1Cost": MIPS1Cost,
|
|
|
|
"MIPS2Cost": MIPS2Cost,
|
2022-01-30 18:12:52 +00:00
|
|
|
"StarsToFinish": StarsToFinish,
|
2022-05-25 17:53:36 +00:00
|
|
|
"death_link": DeathLink,
|
2022-02-15 18:56:10 +00:00
|
|
|
"BuddyChecks": BuddyChecks,
|
2022-09-15 22:32:30 +00:00
|
|
|
"ExclamationBoxes": ExclamationBoxes,
|
2023-10-28 19:44:16 +00:00
|
|
|
"CompletionType" : CompletionType,
|
2022-09-15 22:32:30 +00:00
|
|
|
}
|