44 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			2.7 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 SwampPalace(Z3Region, IReward):
 | 
						|
    Name = "Swamp Palace"
 | 
						|
    Area = "Swamp Palace"
 | 
						|
 | 
						|
    def __init__(self, world, config: Config):
 | 
						|
        super().__init__(world, config)
 | 
						|
        self.RegionItems = [ ItemType.KeySP, ItemType.BigKeySP, ItemType.MapSP, ItemType.CompassSP]
 | 
						|
        self.Reward = RewardType.Null
 | 
						|
        self.Locations = [
 | 
						|
            Location(self, 256+135, 0x1EA9D, LocationType.Regular, "Swamp Palace - Entrance")
 | 
						|
                .Allow(lambda item, items: self.Config.Keysanity or item.Is(ItemType.KeySP, self.world)),
 | 
						|
            Location(self, 256+136, 0x1E986, LocationType.Regular, "Swamp Palace - Map Chest",
 | 
						|
                lambda items: items.KeySP),
 | 
						|
            Location(self, 256+137, 0x1E989, LocationType.Regular, "Swamp Palace - Big Chest",
 | 
						|
                lambda items: items.BigKeySP and items.KeySP and items.Hammer)
 | 
						|
                .AlwaysAllow(lambda item, items: item.Is(ItemType.BigKeySP, self.world)),
 | 
						|
            Location(self, 256+138, 0x1EAA0, LocationType.Regular, "Swamp Palace - Compass Chest",
 | 
						|
                lambda items: items.KeySP and items.Hammer),
 | 
						|
            Location(self, 256+139, 0x1EAA3, LocationType.Regular, "Swamp Palace - West Chest",
 | 
						|
                lambda items: items.KeySP and items.Hammer),
 | 
						|
            Location(self, 256+140, 0x1EAA6, LocationType.Regular, "Swamp Palace - Big Key Chest",
 | 
						|
                lambda items: items.KeySP and items.Hammer),
 | 
						|
            Location(self, 256+141, 0x1EAA9, LocationType.Regular, "Swamp Palace - Flooded Room - Left",
 | 
						|
                lambda items: items.KeySP and items.Hammer and items.Hookshot),
 | 
						|
            Location(self, 256+142, 0x1EAAC, LocationType.Regular, "Swamp Palace - Flooded Room - Right",
 | 
						|
                lambda items: items.KeySP and items.Hammer and items.Hookshot),
 | 
						|
            Location(self, 256+143, 0x1EAAF, LocationType.Regular, "Swamp Palace - Waterfall Room",
 | 
						|
                lambda items: items.KeySP and items.Hammer and items.Hookshot),
 | 
						|
            Location(self, 256+144, 0x308154, LocationType.Regular, "Swamp Palace - Arrghus",
 | 
						|
                lambda items: items.KeySP and items.Hammer and items.Hookshot)
 | 
						|
            ]
 | 
						|
 | 
						|
    def CanEnter(self, items: Progression):
 | 
						|
        return items.MoonPearl and items.Mirror and items.Flippers and self.world.CanEnter("Dark World South", items)
 | 
						|
 | 
						|
    def CanComplete(self, items: Progression):
 | 
						|
        return self.GetLocation("Swamp Palace - Arrghus").Available(items)
 |