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 |