37 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.9 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 TowerOfHera(Z3Region, IReward): | |||
|  |     Name = "Tower of Hera" | |||
|  |     Area = "Tower of Hera" | |||
|  | 
 | |||
|  |     def __init__(self, world, config: Config): | |||
|  |         super().__init__(world, config) | |||
|  |         self.RegionItems = [ ItemType.KeyTH, ItemType.BigKeyTH, ItemType.MapTH, ItemType.CompassTH] | |||
|  |         self.Reward = RewardType.Null | |||
|  |         self.Locations = [ | |||
|  |             Location(self, 256+115, 0x308162, LocationType.HeraStandingKey, "Tower of Hera - Basement Cage"), | |||
|  |             Location(self, 256+116, 0x1E9AD, LocationType.Regular, "Tower of Hera - Map Chest"), | |||
|  |             Location(self, 256+117, 0x1E9E6, LocationType.Regular, "Tower of Hera - Big Key Chest", | |||
|  |                 lambda items: items.KeyTH and items.CanLightTorches()) | |||
|  |                 .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyTH, self.world)), | |||
|  |             Location(self, 256+118, 0x1E9FB, LocationType.Regular, "Tower of Hera - Compass Chest", | |||
|  |                 lambda items: items.BigKeyTH), | |||
|  |             Location(self, 256+119, 0x1E9F8, LocationType.Regular, "Tower of Hera - Big Chest", | |||
|  |                 lambda items: items.BigKeyTH), | |||
|  |             Location(self, 256+120, 0x308152, LocationType.Regular, "Tower of Hera - Moldorm", | |||
|  |                 lambda items: items.BigKeyTH and self.CanBeatBoss(items)), | |||
|  |             ] | |||
|  | 
 | |||
|  |     def CanBeatBoss(self, items: Progression): | |||
|  |         return items.Sword or items.Hammer | |||
|  | 
 | |||
|  |     def CanEnter(self, items: Progression): | |||
|  |         return (items.Mirror or items.Hookshot and items.Hammer) and self.world.CanEnter("Light World Death Mountain West", items) | |||
|  | 
 | |||
|  |     def CanComplete(self, items: Progression): | |||
|  |         return self.GetLocation("Tower of Hera - Moldorm").Available(items) |