LXP2.1 - MetalSonic - Action - 0x112 SpecialN
Entry Script
- if ((InternalConstantInt(CurrentSubaction) NotEqual scalar(81)))
- FloatVariableSet { variable: LongtermAccessFloat (0x5a), value: 0 }
- FloatVariableSet { variable: LongtermAccessFloat (0x5b), value: InternalConstantInt(HorizontalCharacterVelocity) }
- FloatVariableSet { variable: LongtermAccessFloat (0x5e), value: 10 }
- FloatVariableSet { variable: LongtermAccessFloat (0x5f), value: 0 }
- FloatVariableSet { variable: LongtermAccessFloat (0x60), value: 1 }
- CreateInterrupt { interrupt_id: None, action: Wait, requirement: (AnimationEnd) }
- PreviousInterruptAddRequirement(OnGround)
- CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: (AnimationEnd) }
- PreviousInterruptAddRequirement(not(OnGround))
- if ((LongtermAccessFloat (0x5f) Equal scalar(0)))
- loop Infinite times:
- if (OnGround)
- SetEdgeSlide(StayOn)
- SetAirGround(6)
- if (BoolIsTrue RandomAccessBool(EnableActionTransition))
- ChangeSubaction(AttackElecS)
- else
- ChangeSubactionRestartFrame(AttackElecS)
- BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: true, ty: OnGround }] }
- 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)] }
- else
- SetEdgeSlide(Airbourne)
- SetAirGround(17)
- if (BoolIsTrue RandomAccessBool(EnableActionTransition))
- ChangeSubaction(AttackElecSA)
- else
- ChangeSubactionRestartFrame(AttackElecSA)
- BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
- 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)] }
- LoopRest
- if ((LongtermAccessFloat (0x5f) GreaterThanOrEqual scalar(1)))
- UnknownEvent { namespace: 0x0, code: 0x6, unk1: 0x0, arguments: [] }
- BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }
- loop Infinite times:
- if (OnGround)
- SetEdgeSlide(StayOn)
- SetAirGround(6)
- if (BoolIsTrue RandomAccessBool(EnableActionTransition))
- ChangeSubaction(AttackElecS)
- else
- ChangeSubaction(AttackElecS)
- BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
- else
- SetEdgeSlide(Airbourne)
- SetAirGround(10)
- if (BoolIsTrue RandomAccessBool(EnableActionTransition))
- ChangeSubaction(SpecialN)
- else
- ChangeSubactionRestartFrame(SpecialN)
- BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
- LoopRest
Exit Script
- if (ArticleExists value(0))
- ArticleAnimation(0)