示例#1
0
 def CanEnter(self, items:Progression):
     if self.Logic == SMLogic.Normal:
         return items.Varia and items.CardLowerNorfairL1 and (
                 self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and items.SpaceJump and items.Gravity or
                 items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls() and items.Super and items.CanUsePowerBombs() and items.CanFly())
     else:
         return items.Varia and items.CardLowerNorfairL1 and (
                 self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and (items.HiJump or items.Gravity) or
                 items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls() and items.Super and (items.CanFly() or items.CanSpringBallJump() or items.SpeedBooster)) and (
             items.CanFly() or items.HiJump or items.CanSpringBallJump() or items.Ice and items.Charge) and (
             items.CanPassBombPassages() or items.ScrewAttack and items.SpaceJump)                     
示例#2
0
 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.Varia) and (
             # /* Ice Beam -> Croc Speedway */
             (items.CardNorfairL1 if self.Config.Keysanity else items.Super)
             and items.CanUsePowerBombs() and items.SpeedBooster or
             # /* Frog Speedway */
             items.SpeedBooster and items.Wave or
             # /* Cathedral -> through the floor or Vulcano */
             items.CanOpenRedDoors() and
             (items.CardNorfairL2 if self.Config.Keysanity else items.Super)
             and (items.CanFly() or items.HiJump or items.SpeedBooster) and
             (items.CanPassBombPassages() or items.Gravity and items.Morph)
             and items.Wave or
             # /* Reverse Lava Dive */
             items.CanAccessNorfairLowerPortal() and items.ScrewAttack
             and items.SpaceJump and items.Super and items.Gravity
             and items.Wave and (items.CardNorfairL2 or items.Morph))
     else:
         return (
             (items.CanDestroyBombWalls() or items.SpeedBooster)
             and items.Super and items.Morph
             or items.CanAccessNorfairUpperPortal()
         ) and (
             # /* Ice Beam -> Croc Speedway */
             (items.CardNorfairL1 if self.Config.Keysanity else items.Super)
             and items.CanUsePowerBombs() and items.SpeedBooster and
             (items.HasEnergyReserves(3) or items.Varia) or
             # /* Frog Speedway */
             items.SpeedBooster and
             (items.HasEnergyReserves(2) or items.Varia) and
             (items.Missile or items.Super or items.Wave) or
             (  # /* Blue Gate */
                 # /* Cathedral -> through the floor or Vulcano */
                 items.CanHellRun()) and items.CanOpenRedDoors() and
             (items.CardNorfairL2 if self.Config.Keysanity else items.Super)
             and
             (items.CanFly() or items.HiJump or items.SpeedBooster
              or items.CanSpringBallJump() or items.Varia and items.Ice) and
             (items.CanPassBombPassages() or items.Varia and items.Morph)
             and
             (items.Missile or items.Super or items.Wave)  # /* Blue Gate */
         ) or (
             # /* Reverse Lava Dive */
             items.CanAccessNorfairLowerPortal()
         ) and items.ScrewAttack and items.SpaceJump and items.Varia and items.Super and (
             items.HasEnergyReserves(2)) and (items.CardNorfairL2
                                              or items.Morph)
示例#3
0
 def CanEnter(self, items:Progression):
     if self.Logic == SMLogic.Normal:
         return items.Varia and (
                 self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and items.SpaceJump and items.Gravity and (
                     # /* Trivial case, Bubble Mountain access */
                     items.CardNorfairL2 or
                     # /* Frog Speedway -> UN Farming Room gate */
                     items.SpeedBooster and items.Wave
                 ) or
                 items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls()
             )
     else:
         return self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and items.Varia and (items.HiJump or items.Gravity) and (
                 # /* Trivial case, Bubble Mountain access */
                 items.CardNorfairL2 or
                 # /* Frog Speedway -> UN Farming Room gate */
                 items.SpeedBooster and (items.Missile or items.Super or items.Wave) # /* Blue Gate */
             ) or items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls()