64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
from enum import Enum
 | 
						|
from typing import Dict, List
 | 
						|
from worlds.smz3.TotalSMZ3.Config import *
 | 
						|
from worlds.smz3.TotalSMZ3.Item import Item, ItemType
 | 
						|
 | 
						|
class RewardType(Enum):
 | 
						|
    Null = 0
 | 
						|
    Agahnim = 1
 | 
						|
    PendantGreen = 2
 | 
						|
    PendantNonGreen = 3
 | 
						|
    CrystalBlue = 4
 | 
						|
    CrystalRed = 5
 | 
						|
    GoldenFourBoss = 6
 | 
						|
 | 
						|
class IReward:
 | 
						|
    Reward: RewardType
 | 
						|
    def CanComplete(self, items):
 | 
						|
        pass
 | 
						|
 | 
						|
class IMedallionAccess:
 | 
						|
    Medallion: object
 | 
						|
 | 
						|
class Region:
 | 
						|
    import worlds.smz3.TotalSMZ3.Location as Location
 | 
						|
    Name: str
 | 
						|
    Area: str
 | 
						|
 | 
						|
    Locations: List[Location.Location]
 | 
						|
    Weight: int = 0
 | 
						|
 | 
						|
    Config: Config
 | 
						|
 | 
						|
    locationLookup: Dict[str, Location.Location]
 | 
						|
    
 | 
						|
    def GetLocation(self, name: str):
 | 
						|
        return self.locationLookup[name]
 | 
						|
 | 
						|
    def __init__(self, world, config: Config):
 | 
						|
        self.Config = config
 | 
						|
        self.world = world
 | 
						|
        self.locationLookup = {}
 | 
						|
        self.RegionItems = []
 | 
						|
 | 
						|
    def GenerateLocationLookup(self):
 | 
						|
        self.locationLookup = {loc.Name:loc for loc in self.Locations}
 | 
						|
 | 
						|
    def IsRegionItem(self, item):
 | 
						|
        return item.Type in self.RegionItems
 | 
						|
 | 
						|
    def CanFill(self, item):
 | 
						|
        return self.Config.Keysanity or not item.IsDungeonItem() or self.IsRegionItem(item)
 | 
						|
 | 
						|
    def CanEnter(self, items):
 | 
						|
        return True
 | 
						|
 | 
						|
class SMRegion(Region):
 | 
						|
    Logic: SMLogic = Config.SMLogic
 | 
						|
    def __init__(self, world, config: Config):
 | 
						|
        super().__init__(world, config)
 | 
						|
 | 
						|
class Z3Region(Region):
 | 
						|
    def __init__(self, world, config: Config):
 | 
						|
        super().__init__(world, config)
 |