1cb93a386Sopenharmony_ci{
2cb93a386Sopenharmony_ci   "MaxCount": 2000,
3cb93a386Sopenharmony_ci   "Drawable": {
4cb93a386Sopenharmony_ci      "Type": "SkCircleDrawable",
5cb93a386Sopenharmony_ci      "Radius": 1
6cb93a386Sopenharmony_ci   },
7cb93a386Sopenharmony_ci   "Code": [
8cb93a386Sopenharmony_ci      "void effectSpawn(inout Effect effect) {",
9cb93a386Sopenharmony_ci      "  effect.rate = 1000;",
10cb93a386Sopenharmony_ci      "}",
11cb93a386Sopenharmony_ci      "",
12cb93a386Sopenharmony_ci      "void spawn(inout Particle p) {",
13cb93a386Sopenharmony_ci      "  p.lifetime = mix(1, 3, rand(p.seed));",
14cb93a386Sopenharmony_ci      "  float a = radians(mix(250, 290, rand(p.seed)));",
15cb93a386Sopenharmony_ci      "  float s = mix(10, 30, rand(p.seed));",
16cb93a386Sopenharmony_ci      "  p.vel.x = cos(a) * s;",
17cb93a386Sopenharmony_ci      "  p.vel.y = sin(a) * s;",
18cb93a386Sopenharmony_ci      "  p.pos += text(rand(p.seed)).xy;",
19cb93a386Sopenharmony_ci      "}",
20cb93a386Sopenharmony_ci      "",
21cb93a386Sopenharmony_ci      "void update(inout Particle p) {",
22cb93a386Sopenharmony_ci      "  float4 startColor = float4(1, 0.196, 0.078, 1);",
23cb93a386Sopenharmony_ci      "  float4 endColor   = float4(1, 0.784, 0.078, 1);",
24cb93a386Sopenharmony_ci      "  p.color = mix(startColor, endColor, p.age);",
25cb93a386Sopenharmony_ci      "}",
26cb93a386Sopenharmony_ci      ""
27cb93a386Sopenharmony_ci   ],
28cb93a386Sopenharmony_ci   "Bindings": [
29cb93a386Sopenharmony_ci      {
30cb93a386Sopenharmony_ci         "Type": "SkTextBinding",
31cb93a386Sopenharmony_ci         "Name": "text",
32cb93a386Sopenharmony_ci         "Text": "SKIA",
33cb93a386Sopenharmony_ci         "FontSize": 96
34cb93a386Sopenharmony_ci      }
35cb93a386Sopenharmony_ci   ]
36cb93a386Sopenharmony_ci}