P+ - Sonic - Action - 0x54 DownBound

Entry Script (Common)

  1. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (InAir) }
  2. PreviousInterruptAddRequirement(AnimationEnd)
  3. if ((LongtermAccessInt(HitstunFramesRemaining) GreaterThanOrEqual scalar(14)))
    1. CreateInterrupt { interrupt_id: None, action: DownAttack, requirement: (ButtonHeld value(0)) }
    2. PreviousInterruptAddRequirement(OnGround)
    3. PreviousInterruptAddRequirement(AnimationEnd)
    4. CreateInterrupt { interrupt_id: None, action: DownAttack, requirement: (ButtonHeld value(1)) }
    5. PreviousInterruptAddRequirement(OnGround)
    6. PreviousInterruptAddRequirement(AnimationEnd)
    7. CreateInterrupt { interrupt_id: None, action: DownForward, requirement: ((InternalConstantInt(ControlStickXAxisAbsolute) GreaterThanOrEqual InternalConstantInt (0xc6d))) }
    8. PreviousInterruptAddRequirement(OnGround)
    9. PreviousInterruptAddRequirement(AnimationEnd)
  4. CreateInterrupt { interrupt_id: None, action: DownStand, requirement: (OnGround) }
  5. PreviousInterruptAddRequirement(AnimationEnd)
  6. if (BoolIsTrue RandomAccessBool(EnableJabEnd))
    1. ChangeSubactionRestartFrame(DownDamageU)
  7. else
    1. ChangeSubactionRestartFrame(DownDamageD)
  8. loop Infinite times:
    1. if (OnGround)
      1. SetEdgeSlide(StayOn)
      2. if (BoolIsTrue RandomAccessBool (0x1d))
        1. SetAirGround(6)
      3. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
    2. else
      1. SetEdgeSlide(Airbourne)
      2. if (BoolIsTrue RandomAccessBool (0x1d))
        1. SetAirGround(10)
      3. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
    3. LoopRest
    4. BoolVariableSetTrue { variable: RandomAccessBool (0x1d) }

Exit Script (Common)