37 lines
1.8 KiB
Python
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)
|