from worlds.smz3.TotalSMZ3.Region import SMRegion from worlds.smz3.TotalSMZ3.Config import Config, SMLogic from worlds.smz3.TotalSMZ3.Location import Location, LocationType from worlds.smz3.TotalSMZ3.Item import Progression class Green(SMRegion): Name = "Brinstar Green" Area = "Brinstar" def __init__(self, world, config: Config): super().__init__(world, config) self.Weight = -6 self.Locations = [ Location(self, 13, 0x8F84AC, LocationType.Chozo, "Power Bomb (green Brinstar bottom)", lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs()), Location(self, 15, 0x8F8518, LocationType.Visible, "Missile (green Brinstar below super missile)", lambda items: items.CanPassBombPassages() and items.CanOpenRedDoors()), Location(self, 16, 0x8F851E, LocationType.Visible, "Super Missile (green Brinstar top)", lambda items: items.CanOpenRedDoors() and items.SpeedBooster if self.Logic == SMLogic.Normal else \ lambda items: items.CanOpenRedDoors() and (items.Morph or items.SpeedBooster)), Location(self, 17, 0x8F852C, LocationType.Chozo, "Reserve Tank, Brinstar", lambda items: items.CanOpenRedDoors() and items.SpeedBooster if self.Logic == SMLogic.Normal else \ lambda items: items.CanOpenRedDoors() and (items.Morph or items.SpeedBooster)), Location(self, 18, 0x8F8532, LocationType.Hidden, "Missile (green Brinstar behind missile)", lambda items: items.SpeedBooster and items.CanPassBombPassages() and items.CanOpenRedDoors() if self.Logic == SMLogic.Normal else \ lambda items: (items.CanPassBombPassages() or items.Morph and items.ScrewAttack) and items.CanOpenRedDoors()), Location(self, 19, 0x8F8538, LocationType.Visible, "Missile (green Brinstar behind reserve tank)", lambda items: items.SpeedBooster and items.CanOpenRedDoors() and items.Morph if self.Logic == SMLogic.Normal else \ lambda items: items.CanOpenRedDoors() and items.Morph), Location(self, 30, 0x8F87C2, LocationType.Visible, "Energy Tank, Etecoons", lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs()), Location(self, 31, 0x8F87D0, LocationType.Visible, "Super Missile (green Brinstar bottom)", lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs() and items.Super) ] def CanEnter(self, items: Progression): return items.CanDestroyBombWalls() or items.SpeedBooster