| 
									
										
										
										
											2022-01-21 22:42:11 +01:00
										 |  |  | import typing | 
					
						
							| 
									
										
										
										
											2024-01-16 13:38:19 +01:00
										 |  |  | from dataclasses import dataclass | 
					
						
							|  |  |  | from Options import Option, DeathLink, Range, Toggle, PerGameCommonOptions | 
					
						
							| 
									
										
										
										
											2022-01-21 22:42:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class DoorCost(Range): | 
					
						
							|  |  |  |     """Amount of Trinkets required to enter Areas. Set to 0 to disable artificial locks.""" | 
					
						
							| 
									
										
										
										
											2024-01-16 13:38:19 +01:00
										 |  |  |     display_name = "Door Cost" | 
					
						
							| 
									
										
										
										
											2022-01-21 22:42:11 +01:00
										 |  |  |     range_start = 0 | 
					
						
							| 
									
										
										
										
											2022-01-25 23:17:22 +01:00
										 |  |  |     range_end = 3 | 
					
						
							| 
									
										
										
										
											2022-01-21 22:42:11 +01:00
										 |  |  |     default = 3 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-05 16:53:43 +01:00
										 |  |  | class AreaCostRandomizer(Toggle): | 
					
						
							|  |  |  |     """Randomize which Area requires which set of DoorCost Trinkets""" | 
					
						
							|  |  |  |     display_name = "Area Cost Randomizer" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-21 22:42:11 +01:00
										 |  |  | class DeathLinkAmnesty(Range): | 
					
						
							|  |  |  |     """Amount of Deaths to take before sending a DeathLink signal, for balancing difficulty""" | 
					
						
							| 
									
										
										
										
											2024-01-16 13:38:19 +01:00
										 |  |  |     display_name = "Death Link Amnesty" | 
					
						
							| 
									
										
										
										
											2022-01-21 22:42:11 +01:00
										 |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 30 | 
					
						
							|  |  |  |     default = 15 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-04 21:22:26 +01:00
										 |  |  | class AreaRandomizer(Toggle): | 
					
						
							|  |  |  |     """Randomize Entrances to Areas""" | 
					
						
							| 
									
										
										
										
											2022-03-18 18:17:19 +01:00
										 |  |  |     display_name = "Area Randomizer" | 
					
						
							| 
									
										
										
										
											2022-02-04 21:22:26 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-04 22:56:54 +01:00
										 |  |  | class MusicRandomizer(Toggle): | 
					
						
							|  |  |  |     """Randomize Music""" | 
					
						
							| 
									
										
										
										
											2022-03-18 18:17:19 +01:00
										 |  |  |     display_name = "Music Randomizer" | 
					
						
							| 
									
										
										
										
											2022-02-04 22:56:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-16 13:38:19 +01:00
										 |  |  | @dataclass | 
					
						
							|  |  |  | class V6Options(PerGameCommonOptions): | 
					
						
							|  |  |  |     music_rando: MusicRandomizer | 
					
						
							|  |  |  |     area_rando: AreaRandomizer | 
					
						
							|  |  |  |     door_cost: DoorCost | 
					
						
							|  |  |  |     area_cost: AreaCostRandomizer | 
					
						
							|  |  |  |     death_link: DeathLink | 
					
						
							|  |  |  |     death_link_amnesty: DeathLinkAmnesty |