90 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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
 | |
|         FastGanonDefeatMotherBrain = 1
 | |
|         AllDungeonsDefeatMotherBrain = 2
 | |
| 
 | |
| class KeyShuffle(Enum):
 | |
|         Null = 0
 | |
|         Keysanity = 1
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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
 | |
| 
 | |
|     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 | 
