Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_climb_fallingrockPattern_Step_0

(view raw script w/o annotations or w/e)
1
if (!init)
2
{
3
    show_debug_message_concat(skip);
4
    show_debug_message_concat(fallspeed);
5
    show_debug_message_concat(stack);
6
    show_debug_message_concat(ydist);
7
    show_debug_message_concat(spacing);
8
    for (var i = 0; i < stack; i++)
9
    {
10
        var rock = 
11
        {
12
            x: x,
13
            y: y + (i * spacing),
14
            xstart: x,
15
            ystart: y,
16
            skip: false,
17
            scale: 0
18
        };
19
        array_push(blocks, rock);
20
    }
21
    for (var i = 0; i < array_length(skip); i++)
22
    {
23
        if (skip[i] <= stack)
24
            blocks[skip[i]].skip = true;
25
    }
26
    init = 1;
27
}
28
siner++;
29
for (var i = 0; i < array_length(blocks); i++)
30
{
31
    var blok = blocks[i];
32
    if (!blok.skip)
33
    {
34
        blok.x = (sin((siner + (i * 8)) / 4) * 4) + blok.xstart;
35
        blok.y += fallspeed;
36
        var distfade = 120;
37
        if (blok.y > ((blok.ystart + ydist) - distfade))
38
            blok.scale -= 1 / (distfade / fallspeed);
39
        else
40
            blok.scale = lerp(blok.scale, 1, 0.3);
41
        if (blok.y > (blok.ystart + ydist))
42
        {
43
            blok.y -= ydist;
44
            blok.scale = 0;
45
        }
46
        var buffer = 12;
47
        if (instance_exists(obj_climb_kris))
48
        {
49
            if (instance_exists(collision_rectangle(blok.x + buffer, blok.y + buffer, (blok.x + 40) - buffer, (blok.y + 40) - buffer, obj_climb_kris, true, true)))
50
                obj_climb_kris.didhit = id;
51
        }
52
    }
53
}