Archipelago/worlds/smz3/TotalSMZ3/Regions/Zelda/TowerOfHera.py

37 lines
1.8 KiB
Python

from typing import List
from ...Region import Z3Region, RewardType, IReward
from ...Config import Config
from ...Location import Location, LocationType
from ...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)