| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  | import typing | 
					
						
							| 
									
										
										
										
											2022-02-14 16:19:25 +01:00
										 |  |  | from Options import Option, DefaultOnToggle, Range, Toggle, DeathLink | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class EnableCoinStars(DefaultOnToggle): | 
					
						
							|  |  |  |     """Disable to Ignore 100 Coin Stars. You can still collect them, but they don't do anything""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Enable 100 Coin Stars" | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class StrictCapRequirements(DefaultOnToggle): | 
					
						
							|  |  |  |     """If disabled, Stars that expect special caps may have to be acquired without the caps""" | 
					
						
							| 
									
										
										
										
											2022-02-02 16:29:29 +01:00
										 |  |  |     display_name = "Strict Cap Requirements" | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-15 19:56:10 +01:00
										 |  |  | class StrictCannonRequirements(DefaultOnToggle): | 
					
						
							|  |  |  |     """If disabled, Stars that expect cannons may have to be acquired without them. Only makes a difference if Buddy Checks are enabled""" | 
					
						
							|  |  |  |     display_name = "Strict Cannon Requirements" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-14 18:37:14 +02:00
										 |  |  | class FirstBowserStarDoorCost(Range): | 
					
						
							|  |  |  |     """How many stars are required at the Star Door to Bowser in the Dark World""" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 20 | 
					
						
							|  |  |  |     default = 8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BasementStarDoorCost(Range): | 
					
						
							|  |  |  |     """How many stars are required at the Star Door in the Basement""" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 50 | 
					
						
							|  |  |  |     default = 30 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SecondFloorStarDoorCost(Range): | 
					
						
							|  |  |  |     """How many stars are required to access the third floor""" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 50 | 
					
						
							|  |  |  |     default = 50 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  | class StarsToFinish(Range): | 
					
						
							|  |  |  |     """How many stars are required at the infinite stairs""" | 
					
						
							| 
									
										
										
										
											2022-07-14 18:37:14 +02:00
										 |  |  |     display_name = "Endless Stairs Stars" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 70 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-30 19:12:52 +01:00
										 |  |  | class ExtraStars(Range): | 
					
						
							|  |  |  |     """How many stars exist beyond those set for StarsToFinish""" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 50 | 
					
						
							|  |  |  |     default = 50 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-09 20:57:38 +01:00
										 |  |  | class AreaRandomizer(Toggle): | 
					
						
							|  |  |  |     """Randomize Entrances to Courses""" | 
					
						
							|  |  |  |     display_name = "Course Randomizer" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-15 19:56:10 +01:00
										 |  |  | class BuddyChecks(Toggle): | 
					
						
							|  |  |  |     """Bob-omb Buddies are checks, Cannon Unlocks are items""" | 
					
						
							|  |  |  |     display_name = "Bob-omb Buddy Checks" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-09 20:57:38 +01:00
										 |  |  | class ProgressiveKeys(DefaultOnToggle): | 
					
						
							|  |  |  |     """Keys will first grant you access to the Basement, then to the Secound Floor""" | 
					
						
							|  |  |  |     display_name = "Progressive Keys" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  | sm64_options: typing.Dict[str,type(Option)] = { | 
					
						
							| 
									
										
										
										
											2022-02-09 20:57:38 +01:00
										 |  |  |     "AreaRandomizer": AreaRandomizer, | 
					
						
							|  |  |  |     "ProgressiveKeys": ProgressiveKeys, | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  |     "EnableCoinStars": EnableCoinStars, | 
					
						
							|  |  |  |     "StrictCapRequirements": StrictCapRequirements, | 
					
						
							| 
									
										
										
										
											2022-02-15 19:56:10 +01:00
										 |  |  |     "StrictCannonRequirements": StrictCannonRequirements, | 
					
						
							| 
									
										
										
										
											2022-07-14 18:37:14 +02:00
										 |  |  |     "FirstBowserStarDoorCost": FirstBowserStarDoorCost, | 
					
						
							|  |  |  |     "BasementStarDoorCost": BasementStarDoorCost, | 
					
						
							|  |  |  |     "SecondFloorStarDoorCost": SecondFloorStarDoorCost, | 
					
						
							| 
									
										
										
										
											2022-01-30 19:12:52 +01:00
										 |  |  |     "StarsToFinish": StarsToFinish, | 
					
						
							| 
									
										
										
										
											2022-02-14 16:19:25 +01:00
										 |  |  |     "ExtraStars": ExtraStars, | 
					
						
							| 
									
										
										
										
											2022-05-25 19:53:36 +02:00
										 |  |  |     "death_link": DeathLink, | 
					
						
							| 
									
										
										
										
											2022-02-15 19:56:10 +01:00
										 |  |  |     "BuddyChecks": BuddyChecks, | 
					
						
							| 
									
										
										
										
											2022-01-23 21:34:30 +01:00
										 |  |  | }  |