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}