{
 "pack": 1,
 "id": "c4c:beh:cycle_jump_bird",
 "type": "behaviour",
 "version": "1.0.0",
 "name": "Jump (bird, in place)",
 "description": "A bird crouches, springs up with a beat of its wings, spreads them at the top, flaps as it comes down and lands with its legs bent: the jump of the game cycles for birds, in marked phases a game can hold.",
 "author": {
  "id": "c4c",
  "name": "Crafts4Class"
 },
 "license": "c4c-free",
 "remixable": true,
 "derived_from": [],
 "preview": {
  "moves": [
   "cycle_jump_bird"
  ],
  "seconds": 3
 },
 "content_hash": "sha256:cba6f5bd9cd4e6e4513dbe5cbc165dd3214e7a91ac56888e5b115317a105e663",
 "content": {
  "v": 1,
  "kind": "behaviour",
  "name": "cycle_jump_bird",
  "params": {
   "h": 540,
   "leg": 0.05,
   "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:leg:-1": 30,
            "part:leg:1": 30,
            "part:foot:-1": -30,
            "part:foot:1": -30,
            "part:arm:-1": -100,
            "part:arm:1": 100,
            "part:torso": -8,
            "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*(1 - cos(((0 + 30*sin((min(local/0.14, 1))*pi/2)))*pi/180))"
            },
            {
             "op": "drive",
             "ch": "dx",
             "value": "=-h*leg*sin(((0 + 30*sin((min(local/0.14, 1))*pi/2)))*pi/180)"
            }
           ]
          }
         ]
        ]
       },
       {
        "op": "set",
        "to": {
         "dx": "=-h*leg*sin((30)*pi/180)",
         "dy": "=h*leg*(1 - cos((30)*pi/180))"
        }
       }
      ]
     },
     {
      "op": "if",
      "cond": "=from <= 1",
      "body": [
       {
        "op": "together",
        "branches": [
         [
          {
           "op": "ramp",
           "to": {
            "part:leg:-1": 0,
            "part:leg:1": 0,
            "part:foot:-1": 0,
            "part:foot:1": 0,
            "part:arm:-1": 10,
            "part:arm:1": -10,
            "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*(1 - cos(((30 + -30*pow(min(local/0.08, 1), 2)))*pi/180))"
            },
            {
             "op": "drive",
             "ch": "dx",
             "value": "=-h*leg*sin(((30 + -30*pow(min(local/0.08, 1), 2)))*pi/180)"
            }
           ]
          }
         ]
        ]
       },
       {
        "op": "set",
        "to": {
         "dx": "=-h*leg*sin((0)*pi/180)",
         "dy": "=h*leg*(1 - cos((0)*pi/180))"
        }
       },
       {
        "op": "ramp",
        "to": {
         "part:leg:-1": 30,
         "part:leg:1": 30,
         "part:foot:-1": -30,
         "part:foot:1": -30,
         "part:arm:-1": -140,
         "part:arm:1": 140,
         "part:torso": 0,
         "sx": 1,
         "sy": 1
        },
        "over": 0.12,
        "ease": "out"
       }
      ]
     },
     {
      "op": "if",
      "cond": "=from <= 2",
      "body": [
       {
        "op": "ramp",
        "to": {
         "part:leg:-1": 40,
         "part:leg:1": 40,
         "part:foot:-1": -40,
         "part:foot:1": -40,
         "part:arm:-1": -100,
         "part:arm:1": 100,
         "part:head": 0
        },
        "over": 0.18,
        "ease": "smooth"
       }
      ]
     },
     {
      "op": "if",
      "cond": "=hold == 1",
      "body": [
       {
        "op": "wave",
        "ch": "part:arm:-1",
        "shape": "sin",
        "every": 0.5,
        "amp": -8
       },
       {
        "op": "wave",
        "ch": "part:arm:1",
        "shape": "sin",
        "every": 0.5,
        "amp": 8
       }
      ],
      "else": [
       {
        "op": "if",
        "cond": "=from <= 3",
        "body": [
         {
          "op": "ramp",
          "to": {
           "part:leg:-1": 14,
           "part:leg:1": 14,
           "part:foot:-1": -14,
           "part:foot:1": -14,
           "part:arm:-1": -120,
           "part:arm:1": 120
          },
          "over": 0.22,
          "ease": "in"
         }
        ]
       },
       {
        "op": "if",
        "cond": "=hold == 2",
        "body": [
         {
          "op": "wave",
          "ch": "part:arm:-1",
          "shape": "sin",
          "every": 0.25,
          "amp": -30
         },
         {
          "op": "wave",
          "ch": "part:arm:1",
          "shape": "sin",
          "every": 0.25,
          "amp": 30
         }
        ],
        "else": [
         {
          "op": "ramp",
          "to": {
           "part:leg:-1": 0,
           "part:leg:1": 0,
           "part:foot:-1": 0,
           "part:foot:1": 0,
           "part:arm:-1": -70,
           "part:arm:1": 70
          },
          "over": 0.06,
          "ease": "in"
         },
         {
          "op": "together",
          "branches": [
           [
            {
             "op": "ramp",
             "to": {
              "part:leg:-1": 26,
              "part:leg:1": 26,
              "part:foot:-1": -26,
              "part:foot:1": -26,
              "part:arm:-1": -60,
              "part:arm:1": 60,
              "part:torso": -6,
              "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*(1 - cos(((0 + 26*sin((min(local/0.12, 1))*pi/2)))*pi/180))"
              },
              {
               "op": "drive",
               "ch": "dx",
               "value": "=-h*leg*sin(((0 + 26*sin((min(local/0.12, 1))*pi/2)))*pi/180)"
              }
             ]
            }
           ]
          ]
         },
         {
          "op": "set",
          "to": {
           "dx": "=-h*leg*sin((26)*pi/180)",
           "dy": "=h*leg*(1 - cos((26)*pi/180))"
          }
         },
         {
          "op": "together",
          "branches": [
           [
            {
             "op": "ramp",
             "to": {
              "part:leg:-1": 0,
              "part:leg:1": 0,
              "part:foot:-1": 0,
              "part:foot:1": 0,
              "part:arm:-1": 0,
              "part:arm:1": 0,
              "part:torso": 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*(1 - cos(((26 + -26*smoothstep(min(local/0.16, 1))))*pi/180))"
              },
              {
               "op": "drive",
               "ch": "dx",
               "value": "=-h*leg*sin(((26 + -26*smoothstep(min(local/0.16, 1))))*pi/180)"
              }
             ]
            }
           ]
          ]
         },
         {
          "op": "set",
          "to": {
           "dx": "=-h*leg*sin((0)*pi/180)",
           "dy": "=h*leg*(1 - cos((0)*pi/180))"
          }
         }
        ]
       }
      ]
     }
    ]
   }
  ]
 }
}
