P+ - Roy - Action - 0x81 TetherGrabbingStage

Entry Script (Common)

  1. ChangeSubactionRestartFrame(AirCatchHit)
  2. IntVariableIncrement { variable: LongtermAccessInt(TetherCount) }
  3. SyncWait(1.0)
  4. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (not(HasntTethered3Times)) }
  5. CreateInterrupt { interrupt_id: None, action: LandingHeavy, requirement: (OnGround) }
  6. EnableInterruptGroup(AirLanding)
  7. CreateInterrupt { interrupt_id: None, action: TetherRise, requirement: (ButtonPress value(0)) }
  8. CreateInterrupt { interrupt_id: None, action: TetherRise, requirement: (ButtonPress value(1)) }
  9. CreateInterrupt { interrupt_id: None, action: TetherRise, requirement: (ButtonPress value(2)) }
  10. CreateInterrupt { interrupt_id: None, action: TetherRise, requirement: ((RandomAccessInt (0x1) LessThanOrEqual scalar(0))) }
  11. CreateInterrupt { interrupt_id: None, action: TetherRise, requirement: ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt (0xc42))) }
  12. PreviousInterruptAddRequirement((InternalConstantInt (0x520a) LessThan InternalConstantInt (0x59fb)))
  13. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (BoolIsTrue RandomAccessBool (0x15)) }
  14. CallEveryFrame { thread_id: 9, script: 0x17414 }

Exit Script (Common)

  1. if ((InternalConstantInt(CurrentAction) NotEqual scalar(130)))
    1. UnknownEvent { namespace: 0x10, code: 0x3, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }