40 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
from typing import List
 | 
						|
from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward
 | 
						|
from worlds.smz3.TotalSMZ3.Config import Config
 | 
						|
from worlds.smz3.TotalSMZ3.Location import Location, LocationType
 | 
						|
from worlds.smz3.TotalSMZ3.Item import Progression, ItemType
 | 
						|
 | 
						|
class ThievesTown(Z3Region, IReward):
 | 
						|
    Name = "Thieves' Town"
 | 
						|
    Area = "Thieves' Town"
 | 
						|
 | 
						|
    def __init__(self, world, config: Config):
 | 
						|
        super().__init__(world, config)
 | 
						|
        self.RegionItems = [ ItemType.KeyTT, ItemType.BigKeyTT, ItemType.MapTT, ItemType.CompassTT]
 | 
						|
        self.Reward = RewardType.Null
 | 
						|
        self.Locations = [
 | 
						|
            Location(self, 256+153, 0x1EA01, LocationType.Regular, "Thieves' Town - Map Chest"),
 | 
						|
            Location(self, 256+154, 0x1EA0A, LocationType.Regular, "Thieves' Town - Ambush Chest"),
 | 
						|
            Location(self, 256+155, 0x1EA07, LocationType.Regular, "Thieves' Town - Compass Chest"),
 | 
						|
            Location(self, 256+156, 0x1EA04, LocationType.Regular, "Thieves' Town - Big Key Chest"),
 | 
						|
            Location(self, 256+157, 0x1EA0D, LocationType.Regular, "Thieves' Town - Attic",
 | 
						|
                lambda items: items.BigKeyTT and items.KeyTT),
 | 
						|
            Location(self, 256+158, 0x1EA13, LocationType.Regular, "Thieves' Town - Blind's Cell",
 | 
						|
                lambda items: items.BigKeyTT),
 | 
						|
            Location(self, 256+159, 0x1EA10, LocationType.Regular, "Thieves' Town - Big Chest",
 | 
						|
                lambda items: items.BigKeyTT and items.Hammer and
 | 
						|
                    (self.GetLocation("Thieves' Town - Big Chest").ItemIs(ItemType.KeyTT, self.world) or items.KeyTT))
 | 
						|
                .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyTT, self.world) and items.Hammer),
 | 
						|
            Location(self, 256+160, 0x308156, LocationType.Regular, "Thieves' Town - Blind",
 | 
						|
                lambda items: items.BigKeyTT and items.KeyTT and self.CanBeatBoss(items)),
 | 
						|
            ]
 | 
						|
 | 
						|
    def CanBeatBoss(self, items: Progression):
 | 
						|
        return items.Sword or items.Hammer or items.Somaria or items.Byrna
 | 
						|
 | 
						|
    def CanEnter(self, items: Progression):
 | 
						|
        return items.MoonPearl and self.world.CanEnter("Dark World North West", items)
 | 
						|
 | 
						|
    def CanComplete(self, items: Progression):
 | 
						|
        return self.GetLocation("Thieves' Town - Blind").Available(items)
 |