function init() LegFLTop = FindJoint("LegFLTop") LegFLBot = FindJoint("LegFLBot") LegBLTop = FindJoint("LegBLTop") LegBLBot = FindJoint("LegBLBot") LegFRTop = FindJoint("LegFRTop") LegFRBot = FindJoint("LegFRBot") LegBRTop = FindJoint("LegBRTop") LegBRBot = FindJoint("LegBRBot") Head = FindJoint("Head") movespeedmodifier = 5 framemovespeedmodifier = 5 motoranglemodifier = 1 motorspeed = 0 -- 0 stop -- 1 idle -- 2 forward -- 3 backward framecount = math.random(0, 1) GlobalDriveStageEscape = 1 end function tick(dt) framecount = framecount + dt*framemovespeedmodifier if GetString("level.state") == "win" then MaskShapes = FindShapes() for i=1, #MaskShapes do SetShapeCollisionFilter(MaskShapes[i], 0, 0) end GlobalDriveStageEscape = 2 end -- Idle sequence if GlobalDriveStageEscape == 1 then movespeedmodifier = 5 -- Front Left Leg if framecount > 1 then jointname = LegFLTop motorangle = -30 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 1 then jointname = LegFLBot motorangle = 30 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 6 then jointname = LegFLBot motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 6 then jointname = LegFLTop motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Front Right Leg if framecount > 6 then jointname = LegFRTop motorangle = -30 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 6 then jointname = LegFRBot motorangle = 30 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 8 then jointname = LegFRTop motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 8 then jointname = LegFRBot motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Back Left Leg if framecount > 1 then jointname = LegBLTop motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 1 then jointname = LegBLBot motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Back Right Leg if framecount > 1 then jointname = LegBRTop motorangle = 0 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 1 then jointname = LegBRBot motorangle = 0 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Head if framecount > 1 then jointname = Head motorangle = 10 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 5 then jointname = Head motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 16 then jointname = Head motorangle = 10 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 20 then jointname = Head motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Animation Reset if framecount > 24 then framecount = math.random(0, 5) end end -- Forward sequence if GlobalDriveStageEscape == 2 then -- Front Left Leg if framecount > 1 then jointname = LegFLTop motorangle = -45 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 1 then jointname = LegFLBot motorangle = 45 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegFLBot motorangle = 10 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegFLTop motorangle = 45 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Front Right Leg if framecount > 1 then jointname = LegFRTop motorangle = 45 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 1 then jointname = LegFRBot motorangle = 10 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegFRBot motorangle = 45 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegFRTop motorangle = -45 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Back Left Leg if framecount > 1 then jointname = LegBLTop motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 1 then jointname = LegBLBot motorangle = 10 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegBLBot motorangle = 60 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegBLTop motorangle = -60 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Back Right Leg if framecount > 1 then jointname = LegBRTop motorangle = -60 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 1 then jointname = LegBRBot motorangle = 60 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegBRBot motorangle = 10 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = LegBRTop motorangle = 0 motorspeed = 1.5 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Head if framecount > 1 then jointname = Head motorangle = 10 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end if framecount > 3 then jointname = Head motorangle = 0 motorspeed = 1 SetJointMotorTarget(jointname, motorangle*motoranglemodifier, motorspeed*movespeedmodifier) end -- Animation Reset if framecount > 4 then framecount = math.random(0, 1) end end end