1cb93a386Sopenharmony_ci{
2cb93a386Sopenharmony_ci   "MaxCount": 200,
3cb93a386Sopenharmony_ci   "Drawable": {
4cb93a386Sopenharmony_ci      "Type": "SkCircleDrawable",
5cb93a386Sopenharmony_ci      "Radius": 8
6cb93a386Sopenharmony_ci   },
7cb93a386Sopenharmony_ci   "Code": [
8cb93a386Sopenharmony_ci      "void effectSpawn(inout Effect effect) {",
9cb93a386Sopenharmony_ci      "  effect.lifetime = 2;",
10cb93a386Sopenharmony_ci      "}",
11cb93a386Sopenharmony_ci      "",
12cb93a386Sopenharmony_ci      "void effectUpdate(inout Effect effect) {",
13cb93a386Sopenharmony_ci      "  if (effect.age < 0.25 || effect.age > 0.75) { effect.rate = 0; }",
14cb93a386Sopenharmony_ci      "  else { effect.rate = 200; }",
15cb93a386Sopenharmony_ci      "}",
16cb93a386Sopenharmony_ci      "",
17cb93a386Sopenharmony_ci      "void spawn(inout Particle p) {",
18cb93a386Sopenharmony_ci      "  int idx = int(rand(p.seed) * 4);",
19cb93a386Sopenharmony_ci      "  p.color.rgb = (idx == 0) ? float3(0.87, 0.24, 0.11)",
20cb93a386Sopenharmony_ci      "              : (idx == 1) ? float3(1.00, 0.90, 0.20)",
21cb93a386Sopenharmony_ci      "              : (idx == 2) ? float3(0.44, 0.73, 0.24)",
22cb93a386Sopenharmony_ci      "              :              float3(0.38, 0.54, 0.95);",
23cb93a386Sopenharmony_ci      "",
24cb93a386Sopenharmony_ci      "  p.lifetime = (1 - effect.age) * effect.lifetime;",
25cb93a386Sopenharmony_ci      "  p.scale = mix(0.6, 1, rand(p.seed));",
26cb93a386Sopenharmony_ci      "}",
27cb93a386Sopenharmony_ci      "",
28cb93a386Sopenharmony_ci      "void update(inout Particle p) {",
29cb93a386Sopenharmony_ci      "  p.color.a = 1 - p.age;",
30cb93a386Sopenharmony_ci      "",
31cb93a386Sopenharmony_ci      "  float a = radians(rand(p.seed) * 360);",
32cb93a386Sopenharmony_ci      "  float invAge = 1 - p.age;",
33cb93a386Sopenharmony_ci      "  p.vel = float2(cos(a), sin(a)) * mix(250, 550, rand(p.seed)) * invAge * invAge;",
34cb93a386Sopenharmony_ci      "}",
35cb93a386Sopenharmony_ci      ""
36cb93a386Sopenharmony_ci   ],
37cb93a386Sopenharmony_ci   "Bindings": []
38cb93a386Sopenharmony_ci}