Add SMZ3 support (#270)
This commit is contained in:
36
worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Red.py
Normal file
36
worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Red.py
Normal file
@@ -0,0 +1,36 @@
|
||||
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 Red(SMRegion):
|
||||
Name = "Brinstar Red"
|
||||
Area = "Brinstar"
|
||||
|
||||
def __init__(self, world, config: Config):
|
||||
super().__init__(world, config)
|
||||
self.Locations = [
|
||||
Location(self, 38, 0x8F8876, LocationType.Chozo, "X-Ray Scope",
|
||||
lambda items: items.CanUsePowerBombs() and items.CanOpenRedDoors() and (items.Grapple or items.SpaceJump) if self.Logic == SMLogic.Normal else \
|
||||
lambda items: items.CanUsePowerBombs() and items.CanOpenRedDoors() and (
|
||||
items.Grapple or items.SpaceJump or
|
||||
(items.CanIbj() or items.HiJump and items.SpeedBooster or items.CanSpringBallJump()) and
|
||||
(items.Varia and items.HasEnergyReserves(3) or items.HasEnergyReserves(5)))),
|
||||
Location(self, 39, 0x8F88CA, LocationType.Visible, "Power Bomb (red Brinstar sidehopper room)",
|
||||
lambda items: items.CanUsePowerBombs() and items.Super),
|
||||
Location(self, 40, 0x8F890E, LocationType.Chozo, "Power Bomb (red Brinstar spike room)",
|
||||
lambda items: (items.CanUsePowerBombs() or items.Ice) and items.Super if self.Logic == SMLogic.Normal else \
|
||||
lambda items: items.Super),
|
||||
Location(self, 41, 0x8F8914, LocationType.Visible, "Missile (red Brinstar spike room)",
|
||||
lambda items: items.CanUsePowerBombs() and items.Super),
|
||||
Location(self, 42, 0x8F896E, LocationType.Chozo, "Spazer",
|
||||
lambda items: items.CanPassBombPassages() and items.Super)
|
||||
]
|
||||
|
||||
def CanEnter(self, items: Progression):
|
||||
if self.Logic == SMLogic.Normal:
|
||||
return (items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or \
|
||||
items.CanAccessNorfairUpperPortal() and (items.Ice or items.HiJump or items.SpaceJump)
|
||||
else:
|
||||
return (items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or \
|
||||
items.CanAccessNorfairUpperPortal() and (items.Ice or items.CanSpringBallJump() or items.HiJump or items.CanFly())
|
||||
Reference in New Issue
Block a user