Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_incense_turtle_fire_explosion_Step_0

(view raw script w/o annotations or w/e)
1
timer++;
2
var progress = 
scr_ease_out
scr_ease_out

function
scr_ease_out(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_out_bounce(arg0, 0, 1, 1); case -2: return ease_out_elastic(arg0, 0, 1, 1); case -1: return ease_out_back(arg0, 0, 1, 1); case 0: return arg0; case 1: return sin(arg0 * 1.5707963267948966); case 2: return -arg0 * (arg0 - 2); case 6: return -power(2, -10 * arg0) + 1; case 7: arg0--; return sqrt(1 - (arg0 * arg0)); default: arg0--; if (arg1 == 4) { return -1 * (power(arg0, arg1) - 1); break; } return power(arg0, arg1) + 1; } }
(timer / growtime, 2);
3
radius = lerp(minradius, maxradius, progress);
4
if (timer == 1)
5
{
6
}
7
if (radius >= nextradius)
8
{
9
    nextradius += 15;
10
    if (nextradius == 30)
11
    {
12
        instance_destroy();
13
        exit;
14
    }
15
    var c = radius * 2 * pi;
16
    var count = floor(c / 60) + 1;
17
    var startoffset = random(360);
18
    for (i = 0; i <= count; i++)
19
    {
20
        var dir = startoffset + ((360 / count) * i) + random_range(-180 / count, 180 / count);
21
        var len = radius + random_range(-5, 5);
22
        var xx = lengthdir_x(len, dir);
23
        var yy = lengthdir_y(len, dir);
24
        d = instance_create(xx + x, yy + y, obj_animation_dx);
25
        d.sprite_index = choose(spr_viro_poison_effect_a, spr_viro_poison_effect_b);
26
        d.image_angle = irandom(3) * 90;
27
        d.image_blend = color;
28
        d.image_alpha = 1;
29
        d.image_xscale = 1;
30
        d.image_yscale = 1;
31
        d.image_speed = 1;
32
    }
33
}
34
if (timer >= growtime)
35
    instance_destroy();