P+ - Knuckles - Action - 0x117
Entry Script
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam2), value: 0 }
- BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }
- SetAirGround(10)
- SetEdgeSlide(Airbourne)
- BoolVariableSetTrue { variable: LongtermAccessBool(CanNotTeeter) }
- SetVelocity { x_vel: 0.0, y_vel: 0.0 }
- BoolVariableSetFalse { variable: LongtermAccessBool(CanNotTeeter) }
- DisableMovement(DisableVertical)
- CreateInterrupt { interrupt_id: None, action: LandingLight, requirement: (OnGround) }
- CreateInterrupt { interrupt_id: None, action: Fall, requirement: ((RandomAccessInt (0x5) GreaterThanOrEqual scalar(180))) }
- CreateInterrupt { interrupt_id: None, action: Fall, requirement: (not(TouchingAFloorWallOrCeiling value(6))) }
- PreviousInterruptAddRequirement((RandomAccessInt(ThrowDataParam2) GreaterThanOrEqual scalar(5)))
- CreateInterrupt { interrupt_id: None, action: Fall, requirement: (TouchingAFloorWallOrCeiling value(1)) }
- CreateInterrupt { interrupt_id: None, action: Walljump, requirement: (ButtonPress value(2)) }
- CreateInterrupt { interrupt_id: None, action: WallclingEnd, requirement: ((InternalConstantInt(ControlStickXAxisRelativeReverse) GreaterThanOrEqual InternalConstantInt (0xc97))) }
- CreateInterrupt { interrupt_id: None, action: Fall, requirement: ((RandomAccessInt (0x6) GreaterThanOrEqual scalar(4))) }
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
- EnableInterruptGroup(AirItemThrow)
- EnableInterruptGroup(AirAttack)
- CallEveryFrame { thread_id: 9, script: 0x296c8 }
- loop Infinite times:
- UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 })] }
- Case(0)
- ChangeSubactionRestartFrame(WallClimbUpStart)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(0), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
- Case(1)
- ChangeSubactionRestartFrame(WallClimbUp)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(0), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
- Case(2)
- ChangeSubactionRestartFrame(WallClimbUpEnd1)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
- Case(3)
- ChangeSubactionRestartFrame(WallClimbUpEnd2)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
- Case(4)
- ChangeSubactionRestartFrame(WallClimbDownStart)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(5), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
- Case(5)
- ChangeSubactionRestartFrame(WallClimbDown)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(5), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
- Case(6)
- ChangeSubactionRestartFrame(WallClimbDownEnd)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
- Case(7)
- if (not(BoolIsTrue RandomAccessInt (0x10)))
- BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
- ChangeSubactionRestartFrame(WallClimbWait_1)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
- EndSwitch
- LoopRest
- UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 })] }
- Case(0)
- if (AnimationEnd)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 1 }
- else
- if ((InternalConstantInt(ControlStickYAxis) LessThan InternalConstantInt(CrawlControlStickXOffsetMax)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 2 }
- Case(1)
- if ((InternalConstantInt(ControlStickYAxis) LessThan InternalConstantInt(CrawlControlStickXOffsetMax)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 2 }
- Case(2)
- if (AnimationEnd)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
- else
- if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
- else
- if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
- Case(3)
- if (AnimationEnd)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
- else
- if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
- else
- if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
- Case(4)
- if (AnimationEnd)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 5 }
- else
- if ((InternalConstantInt(ControlStickYAxis) LessThan InternalConstantInt(CrawlControlStickXOffsetMax)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 6 }
- Case(5)
- if ((InternalConstantInt(ControlStickYAxis) GreaterThan InternalConstantInt(CrawlControlStickXOffsetMin)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 6 }
- Case(6)
- if (AnimationEnd)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
- else
- if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
- else
- if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
- Case(7)
- if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
- else
- if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
- EndSwitch
Exit Script
- if ((InternalConstantInt(CurrentAction) NotEqual scalar(275)))
- IfStatementAnd ((InternalConstantInt(CurrentAction) NotEqual scalar(281)))
- IfStatementAnd (not(BoolIsTrue LongtermAccessBool (0x4b)))
- AddVelocity { x_vel: Constant(-1.25), y_vel: Constant(0.0) }
- if ((InternalConstantInt(CurrentAction) Equal scalar(103)))
- ReverseDirection
- Posture(4)
- BoolVariableSetFalse { variable: LongtermAccessBool (0x4b) }