LXP2.1 - MetalSonic - Action - 0x112 SpecialN

Entry Script

  1. if ((InternalConstantInt(CurrentSubaction) NotEqual scalar(81)))
    1. FloatVariableSet { variable: LongtermAccessFloat (0x5a), value: 0 }
    2. FloatVariableSet { variable: LongtermAccessFloat (0x5b), value: InternalConstantInt(HorizontalCharacterVelocity) }
    3. FloatVariableSet { variable: LongtermAccessFloat (0x5e), value: 10 }
    4. FloatVariableSet { variable: LongtermAccessFloat (0x5f), value: 0 }
    5. FloatVariableSet { variable: LongtermAccessFloat (0x60), value: 1 }
  2. CreateInterrupt { interrupt_id: None, action: Wait, requirement: (AnimationEnd) }
  3. PreviousInterruptAddRequirement(OnGround)
  4. CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: (AnimationEnd) }
  5. PreviousInterruptAddRequirement(not(OnGround))
  6. if ((LongtermAccessFloat (0x5f) Equal scalar(0)))
    1. loop Infinite times:
      1. if (OnGround)
        1. SetEdgeSlide(StayOn)
        2. SetAirGround(6)
        3. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
          1. ChangeSubaction(AttackElecS)
        4. else
          1. ChangeSubactionRestartFrame(AttackElecS)
          2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
        5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: true, ty: OnGround }] }
        6. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: LongtermAccess, data_type: Float, address: 95 }), Value(4), Scalar(1.0)] }
      2. else
        1. SetEdgeSlide(Airbourne)
        2. SetAirGround(17)
        3. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
          1. ChangeSubaction(AttackElecSA)
        4. else
          1. ChangeSubactionRestartFrame(AttackElecSA)
          2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
        5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: LongtermAccess, data_type: Float, address: 95 }), Value(4), Scalar(1.0)] }
      3. LoopRest
      4. if ((LongtermAccessFloat (0x5f) GreaterThanOrEqual scalar(1)))
        1. UnknownEvent { namespace: 0x0, code: 0x6, unk1: 0x0, arguments: [] }
  7. BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }
  8. loop Infinite times:
    1. if (OnGround)
      1. SetEdgeSlide(StayOn)
      2. SetAirGround(6)
      3. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubaction(AttackElecS)
      4. else
        1. ChangeSubaction(AttackElecS)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
    2. else
      1. SetEdgeSlide(Airbourne)
      2. SetAirGround(10)
      3. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubaction(SpecialN)
      4. else
        1. ChangeSubactionRestartFrame(SpecialN)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
    3. LoopRest

Exit Script

  1. if (ArticleExists value(0))
    1. ArticleAnimation(0)