Add SMZ3 support (#270)
This commit is contained in:
38
worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/West.py
Normal file
38
worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/West.py
Normal file
@@ -0,0 +1,38 @@
|
||||
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 West(SMRegion):
|
||||
Name = "Crateria West"
|
||||
Area = "Crateria"
|
||||
|
||||
def __init__(self, world, config: Config):
|
||||
super().__init__(world, config)
|
||||
self.Locations = [
|
||||
Location(self, 8, 0x8F8432, LocationType.Visible, "Energy Tank, Terminator"),
|
||||
Location(self, 5, 0x8F8264, LocationType.Visible, "Energy Tank, Gauntlet",
|
||||
lambda items: self.CanEnterAndLeaveGauntlet(items) and items.HasEnergyReserves(1) if self.Logic == SMLogic.Normal else \
|
||||
lambda items: self.CanEnterAndLeaveGauntlet(items)),
|
||||
Location(self, 9, 0x8F8464, LocationType.Visible, "Missile (Crateria gauntlet right)",
|
||||
lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages() and items.HasEnergyReserves(2) if self.Logic == SMLogic.Normal else \
|
||||
lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages()),
|
||||
Location(self, 10, 0x8F846A, LocationType.Visible, "Missile (Crateria gauntlet left)",
|
||||
lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages() and items.HasEnergyReserves(2) if self.Logic == SMLogic.Normal else \
|
||||
lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages())
|
||||
]
|
||||
|
||||
def CanEnter(self, items: Progression):
|
||||
return items.CanDestroyBombWalls() or items.SpeedBooster
|
||||
|
||||
def CanEnterAndLeaveGauntlet(self, items: Progression):
|
||||
if self.Logic == SMLogic.Normal:
|
||||
return items.CardCrateriaL1 and items.Morph and (items.CanFly() or items.SpeedBooster) and (
|
||||
items.CanIbj() or
|
||||
items.CanUsePowerBombs() and items.TwoPowerBombs or
|
||||
items.ScrewAttack)
|
||||
else:
|
||||
return items.CardCrateriaL1 and (
|
||||
items.Morph and (items.Bombs or items.TwoPowerBombs) or
|
||||
items.ScrewAttack or
|
||||
items.SpeedBooster and items.CanUsePowerBombs() and items.HasEnergyReserves(2))
|
||||
Reference in New Issue
Block a user