{
 "pack": 1,
 "id": "c4c:beh:cycle_jump",
 "type": "behaviour",
 "version": "1.0.0",
 "name": "Jump (in place)",
 "description": "Crouches with bent knees, springs up with the arms high, tucks, reaches down and lands in a crouch: the jump of the game cycles, in marked phases a game can hold.",
 "author": {
  "id": "c4c",
  "name": "Crafts4Class"
 },
 "license": "c4c-free",
 "remixable": true,
 "derived_from": [],
 "preview": {
  "moves": [
   "cycle_jump"
  ],
  "seconds": 3
 },
 "content_hash": "sha256:3b36e7bb612a2909d6b56e82bf4c51c27f104e60326264b5545ba9699a56be51",
 "content": {
  "v": 1,
  "kind": "behaviour",
  "name": "cycle_jump",
  "params": {
   "h": 540,
   "leg": 0.24,
   "hold": 0,
   "from": 0
  },
  "scripts": [
   {
    "hat": {
     "on": "start"
    },
    "body": [
     {
      "op": "view",
      "to": "side"
     },
     {
      "op": "if",
      "cond": "=from <= 0",
      "body": [
       {
        "op": "together",
        "branches": [
         [
          {
           "op": "ramp",
           "to": {
            "part:hips": 0,
            "part:leg:-1": 32,
            "part:leg:1": 32,
            "part:shin:-1": 64,
            "part:shin:1": 64,
            "part:foot:-1": 32,
            "part:foot:1": 32,
            "part:torso": -10,
            "part:arm:-1": -45,
            "part:arm:1": -45,
            "part:forearm:-1": 10,
            "part:forearm:1": 10,
            "part:head": 6
           },
           "over": 0.14,
           "ease": "out"
          }
         ],
         [
          {
           "op": "set",
           "to": {
            "dx": 0,
            "dy": 0
           }
          },
          {
           "op": "for",
           "s": 0.14,
           "body": [
            {
             "op": "drive",
             "ch": "dy",
             "value": "=h*leg/2*(2 - cos(((0 + 32*sin((min(local/0.14, 1))*pi/2)))*pi/180) - cos((((0 + 32*sin((min(local/0.14, 1))*pi/2))) - ((0 + 64*sin((min(local/0.14, 1))*pi/2))))*pi/180))"
            },
            {
             "op": "drive",
             "ch": "dx",
             "value": "=-h*leg/2*(sin(((0 + 32*sin((min(local/0.14, 1))*pi/2)))*pi/180) + sin((((0 + 32*sin((min(local/0.14, 1))*pi/2))) - ((0 + 64*sin((min(local/0.14, 1))*pi/2))))*pi/180))"
            }
           ]
          }
         ]
        ]
       },
       {
        "op": "set",
        "to": {
         "dx": "=-h*leg/2*(sin((32)*pi/180) + sin(((32) - (64))*pi/180))",
         "dy": "=h*leg/2*(2 - cos((32)*pi/180) - cos(((32) - (64))*pi/180))"
        }
       }
      ]
     },
     {
      "op": "if",
      "cond": "=from <= 1",
      "body": [
       {
        "op": "together",
        "branches": [
         [
          {
           "op": "ramp",
           "to": {
            "part:hips": 0,
            "part:leg:-1": 0,
            "part:leg:1": 0,
            "part:shin:-1": 0,
            "part:shin:1": 0,
            "part:foot:-1": 0,
            "part:foot:1": 0,
            "part:torso": -2,
            "part:arm:-1": 70,
            "part:arm:1": 70,
            "part:forearm:-1": 12,
            "part:forearm:1": 12,
            "sx": 0.97,
            "sy": 1.03
           },
           "over": 0.08,
           "ease": "in"
          }
         ],
         [
          {
           "op": "set",
           "to": {
            "dx": 0,
            "dy": 0
           }
          },
          {
           "op": "for",
           "s": 0.08,
           "body": [
            {
             "op": "drive",
             "ch": "dy",
             "value": "=h*leg/2*(2 - cos(((32 + -32*pow(min(local/0.08, 1), 2)))*pi/180) - cos((((32 + -32*pow(min(local/0.08, 1), 2))) - ((64 + -64*pow(min(local/0.08, 1), 2))))*pi/180))"
            },
            {
             "op": "drive",
             "ch": "dx",
             "value": "=-h*leg/2*(sin(((32 + -32*pow(min(local/0.08, 1), 2)))*pi/180) + sin((((32 + -32*pow(min(local/0.08, 1), 2))) - ((64 + -64*pow(min(local/0.08, 1), 2))))*pi/180))"
            }
           ]
          }
         ]
        ]
       },
       {
        "op": "set",
        "to": {
         "dx": "=-h*leg/2*(sin((0)*pi/180) + sin(((0) - (0))*pi/180))",
         "dy": "=h*leg/2*(2 - cos((0)*pi/180) - cos(((0) - (0))*pi/180))"
        }
       },
       {
        "op": "ramp",
        "to": {
         "part:leg:-1": 22,
         "part:leg:1": 22,
         "part:shin:-1": 50,
         "part:shin:1": 50,
         "part:foot:-1": 24,
         "part:foot:1": 24,
         "part:hips": 0,
         "part:torso": 0,
         "part:arm:1": 125,
         "part:arm:-1": 145,
         "part:forearm:-1": 14,
         "part:forearm:1": 14,
         "part:head": 4,
         "sx": 0.962,
         "sy": 1.04
        },
        "over": 0.12,
        "ease": "out"
       }
      ]
     },
     {
      "op": "if",
      "cond": "=from <= 2",
      "body": [
       {
        "op": "ramp",
        "to": {
         "part:leg:-1": 34,
         "part:leg:1": 34,
         "part:shin:-1": 78,
         "part:shin:1": 78,
         "part:foot:-1": 36,
         "part:foot:1": 36,
         "part:arm:1": 122,
         "part:arm:-1": 140,
         "part:forearm:-1": 20,
         "part:forearm:1": 20,
         "part:head": 0,
         "sx": 1,
         "sy": 1
        },
        "over": 0.18,
        "ease": "smooth"
       }
      ]
     },
     {
      "op": "if",
      "cond": "=hold == 1",
      "body": [
       {
        "op": "wave",
        "ch": "part:arm:-1",
        "shape": "sin",
        "every": 0.6,
        "amp": 4
       },
       {
        "op": "wave",
        "ch": "part:arm:1",
        "shape": "sin",
        "every": 0.6,
        "amp": 4,
        "phase": 3.141592653589793
       },
       {
        "op": "wave",
        "ch": "part:leg:-1",
        "shape": "sin",
        "every": 0.6,
        "amp": 3,
        "phase": 3.141592653589793
       },
       {
        "op": "wave",
        "ch": "part:leg:1",
        "shape": "sin",
        "every": 0.6,
        "amp": 3
       }
      ],
      "else": [
       {
        "op": "if",
        "cond": "=from <= 3",
        "body": [
         {
          "op": "ramp",
          "to": {
           "part:leg:-1": 12,
           "part:leg:1": 12,
           "part:shin:-1": 30,
           "part:shin:1": 30,
           "part:foot:-1": 12,
           "part:foot:1": 12,
           "part:arm:-1": 110,
           "part:arm:1": 110,
           "part:forearm:-1": 26,
           "part:forearm:1": 26,
           "part:head": -4,
           "part:torso": 0,
           "sx": 1,
           "sy": 1
          },
          "over": 0.22,
          "ease": "in"
         }
        ]
       },
       {
        "op": "if",
        "cond": "=hold == 2",
        "body": [
         {
          "op": "wave",
          "ch": "part:arm:-1",
          "shape": "sin",
          "every": 0.5,
          "amp": 6
         },
         {
          "op": "wave",
          "ch": "part:arm:1",
          "shape": "sin",
          "every": 0.5,
          "amp": 6,
          "phase": 3.141592653589793
         },
         {
          "op": "wave",
          "ch": "part:leg:-1",
          "shape": "sin",
          "every": 0.5,
          "amp": 5,
          "phase": 3.141592653589793
         },
         {
          "op": "wave",
          "ch": "part:leg:1",
          "shape": "sin",
          "every": 0.5,
          "amp": 5
         }
        ],
        "else": [
         {
          "op": "ramp",
          "to": {
           "part:hips": 0,
           "part:leg:-1": 0,
           "part:leg:1": 0,
           "part:shin:-1": 0,
           "part:shin:1": 0,
           "part:foot:-1": 0,
           "part:foot:1": 0,
           "part:arm:-1": 70,
           "part:arm:1": 70,
           "part:forearm:-1": 20,
           "part:forearm:1": 20
          },
          "over": 0.06,
          "ease": "in"
         },
         {
          "op": "together",
          "branches": [
           [
            {
             "op": "ramp",
             "to": {
              "part:hips": 0,
              "part:leg:-1": 28,
              "part:leg:1": 28,
              "part:shin:-1": 56,
              "part:shin:1": 56,
              "part:foot:-1": 28,
              "part:foot:1": 28,
              "part:torso": -8,
              "part:arm:-1": 40,
              "part:arm:1": 40,
              "part:forearm:-1": 18,
              "part:forearm:1": 18,
              "part:head": 2,
              "sx": 1.03,
              "sy": 0.97
             },
             "over": 0.12,
             "ease": "out"
            }
           ],
           [
            {
             "op": "set",
             "to": {
              "dx": 0,
              "dy": 0
             }
            },
            {
             "op": "for",
             "s": 0.12,
             "body": [
              {
               "op": "drive",
               "ch": "dy",
               "value": "=h*leg/2*(2 - cos(((0 + 28*sin((min(local/0.12, 1))*pi/2)))*pi/180) - cos((((0 + 28*sin((min(local/0.12, 1))*pi/2))) - ((0 + 56*sin((min(local/0.12, 1))*pi/2))))*pi/180))"
              },
              {
               "op": "drive",
               "ch": "dx",
               "value": "=-h*leg/2*(sin(((0 + 28*sin((min(local/0.12, 1))*pi/2)))*pi/180) + sin((((0 + 28*sin((min(local/0.12, 1))*pi/2))) - ((0 + 56*sin((min(local/0.12, 1))*pi/2))))*pi/180))"
              }
             ]
            }
           ]
          ]
         },
         {
          "op": "set",
          "to": {
           "dx": "=-h*leg/2*(sin((28)*pi/180) + sin(((28) - (56))*pi/180))",
           "dy": "=h*leg/2*(2 - cos((28)*pi/180) - cos(((28) - (56))*pi/180))"
          }
         },
         {
          "op": "together",
          "branches": [
           [
            {
             "op": "ramp",
             "to": {
              "part:hips": 0,
              "part:leg:-1": 0,
              "part:leg:1": 0,
              "part:shin:-1": 0,
              "part:shin:1": 0,
              "part:foot:-1": 0,
              "part:foot:1": 0,
              "part:torso": 0,
              "part:arm:-1": 0,
              "part:arm:1": 0,
              "part:forearm:-1": 0,
              "part:forearm:1": 0,
              "part:head": 0,
              "sx": 1,
              "sy": 1
             },
             "over": 0.16,
             "ease": "smooth"
            }
           ],
           [
            {
             "op": "set",
             "to": {
              "dx": 0,
              "dy": 0
             }
            },
            {
             "op": "for",
             "s": 0.16,
             "body": [
              {
               "op": "drive",
               "ch": "dy",
               "value": "=h*leg/2*(2 - cos(((28 + -28*smoothstep(min(local/0.16, 1))))*pi/180) - cos((((28 + -28*smoothstep(min(local/0.16, 1)))) - ((56 + -56*smoothstep(min(local/0.16, 1)))))*pi/180))"
              },
              {
               "op": "drive",
               "ch": "dx",
               "value": "=-h*leg/2*(sin(((28 + -28*smoothstep(min(local/0.16, 1))))*pi/180) + sin((((28 + -28*smoothstep(min(local/0.16, 1)))) - ((56 + -56*smoothstep(min(local/0.16, 1)))))*pi/180))"
              }
             ]
            }
           ]
          ]
         },
         {
          "op": "set",
          "to": {
           "dx": "=-h*leg/2*(sin((0)*pi/180) + sin(((0) - (0))*pi/180))",
           "dy": "=h*leg/2*(2 - cos((0)*pi/180) - cos(((0) - (0))*pi/180))"
          }
         }
        ]
       }
      ]
     }
    ]
   }
  ]
 }
}
