{
 "pack": 1,
 "id": "c4c:beh:cycle_walk_bird",
 "type": "behaviour",
 "version": "1.0.0",
 "name": "Waddle (bird, in place)",
 "description": "A bird walks in place with a quick waddle, its head bobbing sharply to each step and its wings held a little out: the walk of the game cycles for birds.",
 "author": {
  "id": "c4c",
  "name": "Crafts4Class"
 },
 "license": "c4c-free",
 "remixable": true,
 "derived_from": [],
 "preview": {
  "moves": [
   "cycle_walk_bird"
  ],
  "seconds": 3
 },
 "content_hash": "sha256:18e9e6c2cf511cec140b0b68f9412a272750953042c29bf115f882815078992c",
 "content": {
  "v": 1,
  "kind": "behaviour",
  "name": "cycle_walk_bird",
  "params": {
   "speed": 0.75,
   "h": 540,
   "leg": 0.05,
   "every": "=clamp(0.5 - 0.12*speed, 0.26, 0.46)",
   "stride": "=clamp(8 + 8*speed, 10, 24)",
   "feet": 1
  },
  "scripts": [
   {
    "hat": {
     "on": "start"
    },
    "body": [
     {
      "op": "set",
      "to": {
       "part:arm:-1": -12,
       "part:arm:1": 12,
       "part:torso": -4
      }
     },
     {
      "op": "gait",
      "every": "=every",
      "stride": "=stride",
      "give": 0,
      "bend": 0,
      "armSwing": 0,
      "bob": null,
      "roll": 5,
      "view": "side"
     },
     {
      "op": "drive",
      "ch": "part:foot:-1",
      "value": "=-feet*(stride*((1 - 4*mod(local/every + 0, 1))*(1 - step(0.5, mod(local/every + 0, 1))) + (4*mod(local/every + 0, 1) - 3)*step(0.5, mod(local/every + 0, 1))))"
     },
     {
      "op": "drive",
      "ch": "part:foot:1",
      "value": "=-feet*(stride*((1 - 4*mod(local/every + 0.5, 1))*(1 - step(0.5, mod(local/every + 0.5, 1))) + (4*mod(local/every + 0.5, 1) - 3)*step(0.5, mod(local/every + 0.5, 1))))"
     },
     {
      "op": "drive",
      "ch": "lift:leg:-1",
      "value": "=0.025*h*max(0, -sin(2*pi*(local/every + 0)))"
     },
     {
      "op": "drive",
      "ch": "lift:leg:1",
      "value": "=0.025*h*max(0, -sin(2*pi*(local/every + 0.5)))"
     },
     {
      "op": "drive",
      "ch": "dy",
      "value": "=h*leg*(1 - (1 - step(0.5, mod(local/every, 1)))*cos((stride*((1 - 4*mod(local/every + 0, 1))*(1 - step(0.5, mod(local/every + 0, 1))) + (4*mod(local/every + 0, 1) - 3)*step(0.5, mod(local/every + 0, 1))))*pi/180) - step(0.5, mod(local/every, 1))*cos((stride*((1 - 4*mod(local/every + 0.5, 1))*(1 - step(0.5, mod(local/every + 0.5, 1))) + (4*mod(local/every + 0.5, 1) - 3)*step(0.5, mod(local/every + 0.5, 1))))*pi/180)) - 0.012*h - 0.02*h*abs(sin(2*pi*mod(local/every, 1)))"
     },
     {
      "op": "wave",
      "ch": "part:head",
      "shape": "tri",
      "every": "=every/2",
      "amp": -7
     },
     {
      "op": "wave",
      "ch": "part:arm:-1",
      "shape": "sin",
      "every": "=every/2",
      "amp": -6
     },
     {
      "op": "wave",
      "ch": "part:arm:1",
      "shape": "sin",
      "every": "=every/2",
      "amp": 6
     },
     {
      "op": "wave",
      "ch": "part:tail",
      "shape": "sin",
      "every": "=every",
      "amp": 8
     }
    ]
   }
  ]
 }
}
