{
   "MaxCount": 128,
   "Drawable": {
      "Type": "SkCircleDrawable",
      "Radius": 2
   },
   "EffectCode": [
      "void effectSpawn(inout Effect effect) {",
      "  if (effect.loop == 0) {",
      "    cloud(true);",
      "  }",
      "  effect.color = float4(0.1, 0.1, 1.0, 1.0);",
      "  effect.rate = 10;",
      "}",
      ""
   ],
   "Code": [
      "void spawn(inout Particle p) {",
      "  p.lifetime = 4;",
      "  p.pos.x = mix(-50, 50, rand);",
      "  p.vel.y = 50;",
      "}",
      "",
      "bool once(bool cond, inout uint flags, uint flag) {",
      "  bool result = false;",
      "  if (cond && (flags & flag) == 0) {",
      "    flags |= flag;",
      "    result = true;",
      "  }",
      "  return result;",
      "}",
      "",
      "void update(inout Particle p) {",
      "  p.vel.y += 20 * dt;",
      "  if (once(p.pos.y > 150, p.flags, 0x1)) {",
      "    p.scale = 0;",
      "    splash(false);",
      "  }",
      "}",
      ""
   ],
   "Bindings": [
      {
         "Type": "SkEffectBinding",
         "Name": "cloud",
         "MaxCount": 60,
         "Drawable": {
            "Type": "SkCircleDrawable",
            "Radius": 16
         },
         "EffectCode": [
            "void effectSpawn(inout Effect effect) {",
            "  effect.color = float4(1, 1, 1, 1);",
            "  effect.rate = 30;",
            "}",
            ""
         ],
         "Code": [
            "float2 circle() {",
            "  float2 xy;",
            "  do {",
            "    xy.x = 2 * rand - 1;",
            "    xy.y = 2 * rand - 1;",
            "  } while (dot(xy, xy) > 1);",
            "  return xy;",
            "}",
            "",
            "void spawn(inout Particle p) {",
            "  p.lifetime = 2.5;",
            "  p.pos = circle() * float2(50, 10);",
            "  p.vel.x = mix(-10, 10, rand);",
            "  p.vel.y = mix(-10, 10, rand);",
            "}",
            "",
            "void update(inout Particle p) {",
            "  p.color.a = 1 - (length(p.pos) / 150);",
            "}",
            ""
         ],
         "Bindings": []
      },
      {
         "Type": "SkEffectBinding",
         "Name": "splash",
         "MaxCount": 8,
         "Drawable": {
            "Type": "SkCircleDrawable",
            "Radius": 1
         },
         "EffectCode": [
            "void effectSpawn(inout Effect effect) {",
            "  effect.burst = 8;",
            "  effect.scale = 1;",
            "}",
            ""
         ],
         "Code": [
            "void spawn(inout Particle p) {",
            "  p.lifetime = rand;",
            "  float a = radians(mix(-80, 80, rand) - 90);",
            "  p.vel.x = cos(a) * 20;",
            "  p.vel.y = sin(a) * 20;",
            "}",
            "",
            "void update(inout Particle p) {",
            "  p.vel.y += dt * 20;",
            "}",
            ""
         ],
         "Bindings": []
      }
   ]
}