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

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)