Archipelago/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/Central.py

24 lines
1.4 KiB
Python

from ....Region import SMRegion
from ....Config import Config, SMLogic
from ....Location import Location, LocationType
class Central(SMRegion):
Name = "Crateria Central"
Area = "Crateria"
def __init__(self, world, config: Config):
super().__init__(world, config)
self.Locations = [
Location(self, 0, 0x8F81CC, LocationType.Visible, "Power Bomb (Crateria surface)",
lambda items: (items.CardCrateriaL1 if config.Keysanity else items.CanUsePowerBombs()) and (items.SpeedBooster or items.CanFly())),
Location(self, 12, 0x8F8486, LocationType.Visible, "Missile (Crateria middle)",
lambda items: items.CanPassBombPassages()),
Location(self, 6, 0x8F83EE, LocationType.Visible, "Missile (Crateria bottom)",
lambda items: items.CanDestroyBombWalls()),
Location(self, 11, 0x8F8478, LocationType.Visible, "Super Missile (Crateria)",
lambda items: items.CanUsePowerBombs() and items.HasEnergyReserves(2) and items.SpeedBooster),
Location(self, 7, 0x8F8404, LocationType.Chozo, "Bombs",
lambda items: (items.CardCrateriaBoss if config.Keysanity else items.CanOpenRedDoors()) and items.CanPassBombPassages() if self.Logic == SMLogic.Normal else \
lambda items: (items.CardCrateriaBoss if config.Keysanity else items.CanOpenRedDoors()) and items.Morph)
]