1cb93a386Sopenharmony_ci{
2cb93a386Sopenharmony_ci   "MaxCount": 2000,
3cb93a386Sopenharmony_ci   "Drawable": {
4cb93a386Sopenharmony_ci      "Type": "SkCircleDrawable",
5cb93a386Sopenharmony_ci      "Radius": 4
6cb93a386Sopenharmony_ci   },
7cb93a386Sopenharmony_ci   "Code": [
8cb93a386Sopenharmony_ci      "uniform float2 mouse_pos;",
9cb93a386Sopenharmony_ci      "",
10cb93a386Sopenharmony_ci      "void effectSpawn(inout Effect effect) {",
11cb93a386Sopenharmony_ci      "  effect.rate = 500;",
12cb93a386Sopenharmony_ci      "}",
13cb93a386Sopenharmony_ci      "",
14cb93a386Sopenharmony_ci      "void effectUpdate(inout Effect effect) {",
15cb93a386Sopenharmony_ci      "  effect.pos = mouse_pos;",
16cb93a386Sopenharmony_ci      "}",
17cb93a386Sopenharmony_ci      "",
18cb93a386Sopenharmony_ci      "void spawn(inout Particle p) {",
19cb93a386Sopenharmony_ci      "  p.lifetime = 2 + rand(p.seed);",
20cb93a386Sopenharmony_ci      "  p.vel.y = (20 * rand(p.seed)) - 10;",
21cb93a386Sopenharmony_ci      "}",
22cb93a386Sopenharmony_ci      "",
23cb93a386Sopenharmony_ci      "void update(inout Particle p) {",
24cb93a386Sopenharmony_ci      "  p.color.r = p.age;",
25cb93a386Sopenharmony_ci      "  p.color.g = 1 - p.age;",
26cb93a386Sopenharmony_ci      "  float s1 = 0.5 + (1.5 * p.age);",
27cb93a386Sopenharmony_ci      "  float s2 = 1.0 + (-0.75 * p.age);",
28cb93a386Sopenharmony_ci      "  p.scale = (s1 + (s2 - s1) * rand(p.seed)) * 0.5;",
29cb93a386Sopenharmony_ci      "  p.vel.y += 20.0 * dt;",
30cb93a386Sopenharmony_ci      "}",
31cb93a386Sopenharmony_ci      ""
32cb93a386Sopenharmony_ci   ],
33cb93a386Sopenharmony_ci   "Bindings": []
34cb93a386Sopenharmony_ci}