P+ - Knuckles - Action - 0x125

Entry Script

  1. if ((InternalConstantInt(CurrentSubaction) Equal scalar(501)))
    1. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (InAir) }
    2. ChangeHurtBoxStateAll { state: IntangibleNoFlashing }
    3. ChangeSubactionRestartFrame(SpecialNUpperFist)
    4. CreateInterrupt { interrupt_id: None, action: Wait, requirement: (AnimationEnd) }
  2. else
    1. if ((InternalConstantInt(CurrentSubaction) Equal scalar(500)))
      1. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (InAir) }
      2. ChangeSubactionRestartFrame(SpecialNDig_1)
    2. else
      1. if ((InternalConstantInt(PreviousAction) NotEqual scalar(293)))
        1. IntVariableSet { variable: LongtermAccessInt (0x5d), value: 0 }
        2. ChangeSubactionRestartFrame(SpecialNDrillAirLoop)
        3. CreateInterrupt { interrupt_id: None, action: 0x125, requirement: (OnGround) }
        4. PreviousInterruptAddRequirement(not(OnAPassableFloor))
        5. PreviousInterruptAddRequirement(ButtonHeld value(1))
        6. CreateInterrupt { interrupt_id: None, action: LandingFallSpecial, requirement: (OnGround) }
        7. PreviousInterruptAddRequirement(not(OnAPassableFloor))
        8. PreviousInterruptAddRequirement(not(ButtonHeld value(1)))
        9. CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: ((LongtermAccessInt (0x58) GreaterThan scalar(420))) }
        10. PreviousInterruptAddRequirement((InternalConstantInt(CurrentSubaction) Equal scalar(499)))
      2. else
        1. if ((InternalConstantInt(CurrentSubaction) Equal scalar(499)))
          1. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (InAir) }
          2. ChangeSubactionRestartFrame(SpecialNDrillGround)

Exit Script

  1. UnknownEvent { namespace: 0xb, code: 0x2, unk1: 0x0, arguments: [Bool(true)] }