예제 #1
0
 def CanEnter(self, items: Progression):
     if self.Logic == SMLogic.Normal:
         return items.Super and (
             # /* Over the Moat */
             (items.CardCrateriaL2
              if self.Config.Keysanity else items.CanUsePowerBombs()) and
             (items.SpeedBooster or items.Grapple or items.SpaceJump
              or items.Gravity and (items.CanIbj() or items.HiJump)) or
             # /* Through Maridia -> Forgotten Highway */
             items.CanUsePowerBombs() and items.Gravity or
             # /* From Maridia portal -> Forgotten Highway */
             items.CanAccessMaridiaPortal(self.world) and items.Gravity and
             (items.CanDestroyBombWalls() and items.CardMaridiaL2
              or self.world.GetLocation("Space Jump").Available(items)))
     else:
         return items.Super and (
             # /* Over the Moat */
             (items.CardCrateriaL2
              if self.Config.Keysanity else items.CanUsePowerBombs()) or
             # /* Through Maridia -> Forgotten Highway */
             items.CanUsePowerBombs() and
             (items.Gravity or
              # /* Climb Mt. Everest */
              items.HiJump and (items.Ice or items.CanSpringBallJump())
              and items.Grapple and items.CardMaridiaL1) or
             # /* From Maridia portal -> Forgotten Highway */
             items.CanAccessMaridiaPortal(self.world) and
             (items.HiJump and items.CanPassBombPassages()
              and items.CardMaridiaL2 or items.Gravity and
              (items.CanDestroyBombWalls() and items.CardMaridiaL2
               or self.world.GetLocation("Space Jump").Available(items))))
예제 #2
0
 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))