{ "MaxCount": 200, "Drawable": { "Type": "SkCircleDrawable", "Radius": 8 }, "Code": [ "void effectSpawn(inout Effect effect) {", " effect.lifetime = 2;", "}", "", "void effectUpdate(inout Effect effect) {", " if (effect.age < 0.25 || effect.age > 0.75) { effect.rate = 0; }", " else { effect.rate = 200; }", "}", "", "void spawn(inout Particle p) {", " int idx = int(rand(p.seed) * 4);", " p.color.rgb = (idx == 0) ? float3(0.87, 0.24, 0.11)", " : (idx == 1) ? float3(1.00, 0.90, 0.20)", " : (idx == 2) ? float3(0.44, 0.73, 0.24)", " : float3(0.38, 0.54, 0.95);", "", " p.lifetime = (1 - effect.age) * effect.lifetime;", " p.scale = mix(0.6, 1, rand(p.seed));", "}", "", "void update(inout Particle p) {", " p.color.a = 1 - p.age;", "", " float a = radians(rand(p.seed) * 360);", " float invAge = 1 - p.age;", " p.vel = float2(cos(a), sin(a)) * mix(250, 550, rand(p.seed)) * invAge * invAge;", "}", "" ], "Bindings": [] }