Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_chaseenemy_cloud_Draw_0

(view raw script w/o annotations or w/e)
1
var render_x = camerax();
2
var render_y = cameray();
3
var newlastx = last_jumped_x;
4
var d = depth;
5
draw_sprite_ext(spr_20px_white_gradient, 0, render_x + 640, y + 120, 640, 18, 180, c_black, 1);
6
draw_sprite_ext(spr_whitepixel, 0, render_x, y + 120, 640, cameraheight(), 0, c_black, 1);
7
for (var xx = 0; xx < hcount; xx++)
8
{
9
    var i = (floor(render_x * 0.025) + xx) % hcount;
10
    var ii = vcount - 1;
11
    while (ii >= 0)
12
    {
13
        with (guys[ii + (i * vcount)])
14
        {
15
            var basex = (render_x - (render_x % 40)) + (xx * 40) + xoffset;
16
            if (basex >= other.minx)
17
            {
18
                var phase = i + (0.001 * (current_time + xoffset + yoffset)) + sin(((i * i) + (ii * ii)) * 0.1);
19
                x = basex + (cos(phase) * 8);
20
                y = other.y + (ii * 40) + (sin(phase) * 8) + yoffset;
21
                visible = true;
22
                draw_self();
23
                visible = false;
24
            }
25
            if (other.con == 1 && xx == (other.hcount - 1))
26
            {
27
                if ((render_x + xx) <= (other.last_jumped_x - 32))
28
                {
29
                    newlastx = render_x + xx;
30
                    with (instance_create(x + 32, y, obj_dw_chaseenemy_cloud_jumper))
31
                    {
32
                        gravity = 0.25;
33
                        speed = 12;
34
                        depth = d + 40;
35
                        direction = 110 + random_range(25, -25);
36
                        image_angle = direction + 90;
37
                        sprite_index = other.sprite_index;
38
                        image_speed = 0.5;
39
                    }
40
                }
41
            }
42
        }
43
        ii--;
44
    }
45
}
46
last_jumped_x = newlastx;