P+ - R.O.B - Action - 0x92 LadderClimb

Entry Script (Common)

  1. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (InAir) }
  2. PreviousInterruptAddRequirement(TouchingAFloorWallOrCeiling value(6))
  3. CreateInterrupt { interrupt_id: None, action: Wait, requirement: (OnGround) }
  4. PreviousInterruptAddRequirement(TouchingAFloorWallOrCeiling value(6))
  5. CreateInterrupt { interrupt_id: None, action: LadderWait, requirement: ((InternalConstantInt(ControlStickYAxisAbsolute) GreaterThanOrEqual InternalConstantInt (0xd16))) }
  6. PreviousInterruptAddRequirement((InternalConstantInt(CurrentFrame) GreaterThanOrEqual InternalConstantInt (0xd17)))
  7. CreateInterrupt { interrupt_id: None, action: LadderWait, requirement: (AnimationEnd) }
  8. loop Infinite times:
    1. if (OnGround)
      1. SetEdgeSlide(StayOn)
      2. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
      3. EnableInterruptGroup(GroundSpecial)
      4. EnableInterruptGroup(GroundItem)
      5. EnableInterruptGroup(GroundAttack)
      6. DisableInterruptGroup(AirLanding)
      7. if ((InternalConstantInt(CharacterDirection) Equal scalar(1)))
        1. if (BoolIsTrue RandomAccessBool (0x5))
          1. ChangeSubaction(LadderCatchR)
        2. else
          1. ChangeSubactionRestartFrame(LadderCatchR)
          2. BoolVariableSetTrue { variable: RandomAccessBool (0x5) }
      8. else
        1. if (BoolIsTrue RandomAccessBool (0x5))
          1. ChangeSubaction(LadderCatchL)
        2. else
          1. ChangeSubactionRestartFrame(LadderCatchL)
          2. BoolVariableSetTrue { variable: RandomAccessBool (0x5) }
    2. else
      1. SetEdgeSlide(Airbourne)
      2. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
      3. DisableInterruptGroup(GroundSpecial)
      4. DisableInterruptGroup(GroundItem)
      5. DisableInterruptGroup(GroundAttack)
      6. EnableInterruptGroup(AirLanding)
      7. if ((InternalConstantInt(CharacterDirection) Equal scalar(1)))
        1. if (BoolIsTrue RandomAccessBool (0x5))
          1. ChangeSubaction(LadderCatchAirR)
        2. else
          1. ChangeSubactionRestartFrame(LadderCatchAirR)
          2. BoolVariableSetTrue { variable: RandomAccessBool (0x5) }
      8. else
        1. if (BoolIsTrue RandomAccessBool (0x5))
          1. ChangeSubaction(LadderCatchAirL)
        2. else
          1. ChangeSubactionRestartFrame(LadderCatchAirL)
          2. BoolVariableSetTrue { variable: RandomAccessBool (0x5) }
    3. LoopRest

Exit Script (Common)