Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_queen_search_laser_Draw_0

(view raw script w/o annotations or w/e)
1
var travellength = traillength;
2
draw_set_color(!scr_queen_buffercheck ? c_gray : c_white);
3
var checkx = x;
4
var checky = y;
5
draw_circle(x, y, 4, 0);
6
for (i = 0; i < 3; i++)
7
{
8
    hitbox[i].image_angle = point_direction(checkx, checky, bouncepoint_x[i], bouncepoint_y[i]);
9
    if (i > 0)
10
    {
11
        hitbox[i].x = checkx;
12
        hitbox[i].y = checky;
13
    }
14
    if (i > 0 && checkx == bouncepoint_x[i] && checky == bouncepoint_y[i])
15
    {
16
        while (i < 3)
17
        {
18
            hitbox[i].image_xscale = 0;
19
            hitbox[i].x = 0;
20
            hitbox[i].y = 0;
21
            i++;
22
        }
23
        break;
24
    }
25
    var lengthcheck = point_distance(checkx, checky, bouncepoint_x[i], bouncepoint_y[i]);
26
    if (lengthcheck <= travellength)
27
    {
28
        hitbox[i].image_xscale = lengthcheck / 10;
29
        draw_line_width(checkx, checky, bouncepoint_x[i], bouncepoint_y[i], 8);
30
        travellength -= lengthcheck;
31
        checkx = bouncepoint_x[i];
32
        checky = bouncepoint_y[i];
33
        draw_circle(checkx, checky, 4, 0);
34
    }
35
    else
36
    {
37
        hitbox[i].image_xscale = travellength / 10;
38
        var traveldir = point_direction(checkx, checky, bouncepoint_x[i], bouncepoint_y[i]);
39
        var tailx = checkx + lengthdir_x(travellength, traveldir);
40
        var taily = checky + lengthdir_y(travellength, traveldir);
41
        draw_line_width(checkx, checky, tailx, taily, 8);
42
        draw_circle(tailx, taily, 4, 0);
43
        i++;
44
        while (i < 3)
45
        {
46
            hitbox[i].image_xscale = 0;
47
            hitbox[i].x = 0;
48
            hitbox[i].y = 0;
49
            i++;
50
        }
51
        break;
52
    }
53
}