Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_bq_laser_Draw_0

(view raw script w/o annotations or w/e)
1
if (o_boxingqueen.drawflip == 1)
2
{
3
    x = o_boxingqueen.x + 13;
4
    y = o_boxingqueen.y - 80;
5
}
6
else
7
{
8
    x = o_boxingqueen.x - 13;
9
    y = o_boxingqueen.y - 80;
10
}
11
if (horizontal == 1)
12
{
13
    if (o_boxingqueen.drawflip == 1)
14
    {
15
        x = o_boxingqueen.x + 70;
16
        y = o_boxingqueen.y - 170;
17
    }
18
    else
19
    {
20
        x = o_boxingqueen.x - 70;
21
        y = o_boxingqueen.y - 170;
22
    }
23
}
24
var xx1 = x;
25
var yy1 = 640;
26
var xx2 = x;
27
var yy2 = 640;
28
if (horizontal == 1)
29
{
30
    yy1 = 240;
31
    yy2 = 240;
32
    if (o_boxingqueen.x < 320)
33
    {
34
        xx1 = 640;
35
        xx2 = 640;
36
    }
37
    else
38
    {
39
        xx1 = 0;
40
        xx2 = 0;
41
    }
42
}
43
if (state == 0)
44
{
45
    timer += 40;
46
    if (timer > 100)
47
        timer = 100;
48
    if (timer > 35)
49
    {
50
        if (horizontal == 1)
51
        {
52
            laser_hitbox = instance_create(320, y, o_boxing_hitbox);
53
            with (laser_hitbox)
54
            {
55
                hit_dodging = 1;
56
                give_hurt = 50 / f;
57
                give_invincibility = 40 / f;
58
                timer = 3;
59
                damage = 20;
60
                image_yscale = 10;
61
                image_xscale = 30;
62
            }
63
        }
64
        else
65
        {
66
            laser_hitbox = instance_create(x, y + 120, o_boxing_hitbox);
67
            with (laser_hitbox)
68
            {
69
                hit_ducking = 1;
70
                give_hurt = 30 / f;
71
                give_invincibility = 40 / f;
72
                timer = 3;
73
                damage = 20;
74
                image_yscale = 20;
75
                image_xscale = 3;
76
            }
77
        }
78
    }
79
    if (timer > 99)
80
        state = 1;
81
}
82
if (state == 1)
83
{
84
    if (shake_timer < 8)
85
    {
86
        shake_timer++;
87
        if (horizontal == 0)
88
        {
89
            x = (xstart - 3) + irandom(6);
90
            y = (ystart - 3) + irandom(6);
91
            yy1 = 637 + irandom(6);
92
            yy2 = 637 + irandom(6);
93
        }
94
        else
95
        {
96
            x = (xstart - 3) + irandom(6);
97
            y = (ystart - 3) + irandom(6);
98
            yy1 = 237 + irandom(6);
99
            yy2 = 237 + irandom(6);
100
        }
101
    }
102
    else if (timer > 0)
103
    {
104
        timer -= 60;
105
    }
106
    else
107
    {
108
        instance_destroy();
109
        with (obj_bq_laser_circle)
110
            instance_destroy();
111
    }
112
}
113
if (horizontal == 0)
114
{
115
    xx1 = lerp(x - 10, x - 140, timer / 100);
116
    xx2 = lerp(x + 10, x + 140, timer / 100);
117
}
118
else
119
{
120
    yy1 = lerp(y - 10, y - 120, timer / 100);
121
    yy2 = lerp(y + 10, y + 120, timer / 100);
122
}
123
draw_set_alpha(0.8);
124
draw_set_color(c_lime);
125
draw_primitive_begin(pr_trianglelist);
126
draw_vertex(x, y);
127
draw_vertex(xx1, yy1);
128
draw_vertex(xx2, yy2);
129
draw_primitive_end();