| 
									
										
										
										
											2022-03-15 08:55:57 -04:00
										 |  |  |  | from enum import Enum | 
					
						
							|  |  |  |  | from typing import Dict, List | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class GameMode(Enum): | 
					
						
							|  |  |  |  |         Normal = 0 | 
					
						
							|  |  |  |  |         Multiworld = 1 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class Z3Logic(Enum): | 
					
						
							|  |  |  |  |         Normal = 0 | 
					
						
							|  |  |  |  |         Nmg = 1 | 
					
						
							|  |  |  |  |         Owg = 2 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class SMLogic(Enum): | 
					
						
							|  |  |  |  |         Normal = 0 | 
					
						
							|  |  |  |  |         Hard = 1 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class SwordLocation(Enum): | 
					
						
							|  |  |  |  |         Randomized = 0 | 
					
						
							|  |  |  |  |         Early = 1 | 
					
						
							|  |  |  |  |         Uncle = 2    | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class MorphLocation(Enum): | 
					
						
							|  |  |  |  |         Randomized = 0 | 
					
						
							|  |  |  |  |         Early = 1 | 
					
						
							|  |  |  |  |         Original = 2 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class Goal(Enum): | 
					
						
							|  |  |  |  |         DefeatBoth = 0 | 
					
						
							| 
									
										
										
										
											2022-08-15 10:48:13 -04:00
										 |  |  |  |         FastGanonDefeatMotherBrain = 1 | 
					
						
							|  |  |  |  |         AllDungeonsDefeatMotherBrain = 2 | 
					
						
							| 
									
										
										
										
											2022-03-15 08:55:57 -04:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | class KeyShuffle(Enum): | 
					
						
							|  |  |  |  |         Null = 0 | 
					
						
							|  |  |  |  |         Keysanity = 1 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-15 10:48:13 -04:00
										 |  |  |  | class OpenTower(Enum): | 
					
						
							|  |  |  |  |         Random = -1 | 
					
						
							|  |  |  |  |         NoCrystals = 0 | 
					
						
							|  |  |  |  |         OneCrystal = 1 | 
					
						
							|  |  |  |  |         TwoCrystals = 2 | 
					
						
							|  |  |  |  |         ThreeCrystals = 3 | 
					
						
							|  |  |  |  |         FourCrystals = 4 | 
					
						
							|  |  |  |  |         FiveCrystals = 5 | 
					
						
							|  |  |  |  |         SixCrystals = 6 | 
					
						
							|  |  |  |  |         SevenCrystals = 7 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class GanonVulnerable(Enum): | 
					
						
							|  |  |  |  |         Random = -1 | 
					
						
							|  |  |  |  |         NoCrystals = 0 | 
					
						
							|  |  |  |  |         OneCrystal = 1 | 
					
						
							|  |  |  |  |         TwoCrystals = 2 | 
					
						
							|  |  |  |  |         ThreeCrystals = 3 | 
					
						
							|  |  |  |  |         FourCrystals = 4 | 
					
						
							|  |  |  |  |         FiveCrystals = 5 | 
					
						
							|  |  |  |  |         SixCrystals = 6 | 
					
						
							|  |  |  |  |         SevenCrystals = 7 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class OpenTourian(Enum): | 
					
						
							|  |  |  |  |         Random = -1 | 
					
						
							|  |  |  |  |         NoBosses = 0 | 
					
						
							|  |  |  |  |         OneBoss = 1 | 
					
						
							|  |  |  |  |         TwoBosses = 2 | 
					
						
							|  |  |  |  |         ThreeBosses = 3 | 
					
						
							|  |  |  |  |         FourBosses = 4 | 
					
						
							| 
									
										
										
										
											2022-03-15 08:55:57 -04:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | class Config: | 
					
						
							|  |  |  |  |     GameMode: GameMode = GameMode.Multiworld | 
					
						
							|  |  |  |  |     Z3Logic: Z3Logic = Z3Logic.Normal | 
					
						
							|  |  |  |  |     SMLogic: SMLogic = SMLogic.Normal | 
					
						
							|  |  |  |  |     SwordLocation: SwordLocation= SwordLocation.Randomized | 
					
						
							|  |  |  |  |     MorphLocation: MorphLocation = MorphLocation.Randomized | 
					
						
							|  |  |  |  |     Goal: Goal = Goal.DefeatBoth | 
					
						
							|  |  |  |  |     KeyShuffle: KeyShuffle = KeyShuffle.Null | 
					
						
							|  |  |  |  |     Race: bool = False | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-15 10:48:13 -04:00
										 |  |  |  |     OpenTower: OpenTower = OpenTower.SevenCrystals | 
					
						
							|  |  |  |  |     GanonVulnerable: GanonVulnerable = GanonVulnerable.SevenCrystals | 
					
						
							|  |  |  |  |     OpenTourian: OpenTourian = OpenTourian.FourBosses | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     @property | 
					
						
							|  |  |  |  |     def SingleWorld(self) -> bool: | 
					
						
							|  |  |  |  |         return self.GameMode == GameMode.Normal | 
					
						
							|  |  |  |  |      | 
					
						
							|  |  |  |  |     @property | 
					
						
							|  |  |  |  |     def Multiworld(self) -> bool: | 
					
						
							|  |  |  |  |         return self.GameMode == GameMode.Multiworld | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     @property | 
					
						
							|  |  |  |  |     def Keysanity(self) -> bool: | 
					
						
							|  |  |  |  |         return self.KeyShuffle != KeyShuffle.Null |