Undertale script viewer

← back to main script listing

gml_Object_obj_discoball_pl_Draw_0

(view raw script w/o annotations or w/e)
1
soundtimer -= 1;
2
swaptimer -= 1;
3
if (swaptimer < 0)
4
    sprite_index = spr_discoball_pl;
5
if (active == 1)
6
{
7
    for (i = 0; i < maxlaser; i += 1)
8
    {
9
        xx = x + lengthdir_x(160, rot + (laserdist * i)) + 20;
10
        if (xx > global.idealborder[1])
11
            xx = global.idealborder[1];
12
        if (xx < global.idealborder[0])
13
            xx = global.idealborder[0];
14
        yy = y + lengthdir_y(160, rot + (laserdist * i)) + 30;
15
        if (yy > global.idealborder[3])
16
            yy = global.idealborder[3];
17
        if (yy < global.idealborder[2])
18
            yy = global.idealborder[2];
19
        if (laser[i] == 1)
20
        {
21
            if (type == 0)
22
            {
23
                draw_set_color(#14A9FF);
24
                bb = 1;
25
            }
26
            else
27
            {
28
                draw_set_color(c_white);
29
                bb = 0;
30
            }
31
        }
32
        else if (type == 0)
33
        {
34
            draw_set_color(c_white);
35
            bb = 0;
36
        }
37
        else
38
        {
39
            draw_set_color(#14A9FF);
40
            bb = 1;
41
        }
42
        if (yy > global.idealborder[2])
43
        {
44
            draw_line_width(x + 20, y + 30, xx, yy, 3);
45
            if (collision_line(x + 20, y + 30, xx, yy, obj_heart, true, true))
46
            {
47
                if (bb == 0)
48
                    event_user(11);
49
                if (bb == 1)
50
                {
51
                    if (abs(obj_heart.xprevious - obj_heart.x) > 0.01 || abs(obj_heart.yprevious - obj_heart.y) > 0.01)
52
                        event_user(11);
53
                }
54
            }
55
        }
56
        else if (laserno > 0)
57
        {
58
            laser[i] = choose(1, 2, 3);
59
            if (i > 0)
60
            {
61
                if (laser[i] == 3)
62
                {
63
                    if (laser[i - 1] == 1)
64
                        laser[i] = 2;
65
                    else
66
                        laser[i] = 1;
67
                }
68
            }
69
            if (i == 0)
70
            {
71
                if (laser[i] == 3)
72
                {
73
                    if (laser[maxlaser - 1] == 1)
74
                        laser[i] = 2;
75
                    else
76
                        laser[i] = 1;
77
                }
78
            }
79
        }
80
    }
81
    rottimer -= 1;
82
    if (rottimer < 0)
83
        rot -= rotspeed;
84
    if (rot < -180)
85
    {
86
        laserno += 1;
87
        rot += 360;
88
    }
89
}
90
draw_sprite(sprite_index, image_index, x, y);