Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_quiz_thrashmachine_Other_10

(view raw script w/o annotations or w/e)
1
dcolor[1] = make_color_hsv(colorflag[0] * 8, 255, 255 * value);
2
dcolor[0] = make_color_hsv(colorflag[1] * 8, 255, 255 * value);
3
dcolor[2] = make_color_hsv(colorflag[2] * 8, 255, 255 * value);
4
basecolor = merge_color(c_black, c_white, value);
5
wsinerrate = 0.8;
6
if (part[2] >= 0)
7
    wsiner += wsinerrate;
8
if (animate == 0)
9
{
10
    siner = 0;
11
    wsiner = 0;
12
}
13
walkc = cos(wsiner / 3);
14
var _flash = false;
15
var _do_flash = rim_flash > 0 || body_flash > 0;
16
var _rim_color = merge_color(c_black, c_white, rim_flash);
17
var _flash_color = merge_color(c_black, c_white, body_flash);
18
for (loop = 0; loop < 2; loop += 1)
19
{
20
    if (loop == 0)
21
    {
22
        draw_set_blend_mode(bm_normal);
23
        color[0] = basecolor;
24
        color[1] = basecolor;
25
        color[2] = basecolor;
26
    }
27
    else if (loop == 1)
28
    {
29
        draw_set_blend_mode(bm_add);
30
        color[0] = dcolor[0];
31
        color[1] = dcolor[1];
32
        color[2] = dcolor[2];
33
    }
34
    _flash = loop == 1 && _do_flash;
35
    walka = -sin(wsiner / 6);
36
    walkb = -cos(wsiner / 6);
37
    if (moving == 1 && part[2] == 0 && walkb <= 0)
38
        walkb *= 3;
39
    var _pieceVector = Vector2(0, 0);
40
    if (drawfeet)
41
    {
42
        var _thrash_image = 0;
43
        if (bad == 0)
44
        {
45
            if (part[2] == 0)
46
            {
47
                _pieceVector = scr_rotatevector_xy((-11 * s) + (s * walka * 2), (19 * s) + (s * walkb * 1), image_angle);
48
                _thrash_image = 0;
49
            }
50
            if (part[2] == 1)
51
            {
52
                _pieceVector = scr_rotatevector_xy((-6 * s) + (s * walka * 2), (17 * s) + (s * walkb * 1), image_angle);
53
                _thrash_image = 1;
54
            }
55
            if (part[2] == 3)
56
            {
57
                _thrash_image = 4;
58
                _pieceVector = scr_rotatevector_xy((-8 * s) + (s * walka * 2), (21 * s) + (s * walkb * 1), image_angle);
59
            }
60
            if (part[2] != 2 && part[2] != 4)
61
                draw_sprite_ext_glow(spr_thrashfoot, _thrash_image, xx + _pieceVector.x, yy + _pieceVector.y, s, s, image_angle, color[2], a, override_color);
62
        }
63
        else
64
        {
65
            if (part[2] == 0)
66
                draw_sprite_ext_glow(spr_thrashfoot_b, 0, (xx - (11 * s)) + (s * walka * 2), yy + (19 * s) + (s * walkb * 1), s / 2, s / 2, 0, color[2], a, override_color);
67
            if (part[2] == 1)
68
                draw_sprite_ext_glow(spr_thrashfoot_b, 1, (xx - (6 * s)) + (s * walka * 2), yy + (17 * s) + (s * walkb * 1), s / 2, s / 2, 0, color[2], a, override_color);
69
            if (part[2] == 3)
70
                draw_sprite_ext_glow(spr_thrashfoot_b, 4, (xx - (8 * s)) + (s * walka * 2), yy + (21 * s) + (s * walkb * 1), s / 2, s / 2, 0, color[2], a, override_color);
71
        }
72
    }
73
}
74
if (part[0] >= 0)
75
{
76
    for (loop = 0; loop < 2; loop += 1)
77
    {
78
        if (loop == 0)
79
        {
80
            draw_set_blend_mode(bm_normal);
81
            color[0] = basecolor;
82
            color[1] = basecolor;
83
            color[2] = basecolor;
84
        }
85
        if (loop == 1)
86
        {
87
            draw_set_blend_mode(bm_add);
88
            color[0] = dcolor[0];
89
            color[1] = dcolor[1];
90
            color[2] = dcolor[2];
91
        }
92
        _flash = _do_flash && loop == 1;
93
        var _pieceVector = scr_rotatevector_xy(0, s * walkc, image_angle);
94
        if (!_flash && _do_flash)
95
            
scr_draw_outline_ext
scr_draw_outline_ext

function
scr_draw_outline_ext(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)
{ gpu_set_fog(true, arg7, 0, 0); var __xdirA = arg9; var __xdirB = 0; var __ydirA = 0; var __ydirB = arg9; if ((arg6 % 90) != 0) { __xdirA = lengthdir_x(arg9, arg6); __xdirB = lengthdir_x(arg9, arg6 + 90); __ydirA = lengthdir_y(arg9, arg6 + 90); __ydirB = lengthdir_y(arg9, arg6); } draw_sprite_ext(arg0, arg1, arg2 + __xdirA, arg3 + __ydirA, arg4, arg5, arg6, c_white, arg8); draw_sprite_ext(arg0, arg1, arg2 - __xdirA, arg3 - __ydirA, arg4, arg5, arg6, c_white, arg8); draw_sprite_ext(arg0, arg1, arg2 + __xdirB, arg3 + __ydirB, arg4, arg5, arg6, c_white, arg8); draw_sprite_ext(arg0, arg1, arg2 - __xdirB, arg3 - __ydirB, arg4, arg5, arg6, c_white, arg8); gpu_set_fog(false, c_white, 0, 0); }
(spr_thrashbody, part[0], xx, yy + _pieceVector.y, s, s, image_angle, c_white, rim_flash, 2);
96
        if (bad == 0)
97
            draw_sprite_ext_glow(spr_thrashbody, part[0], xx, yy + _pieceVector.y, s, s, image_angle, color[0], a, override_color);
98
        else if (bad == 1)
99
            draw_sprite_ext_glow(spr_thrashbody_b, part[0], xx, yy + _pieceVector.y, s / 2, s / 2, image_angle, color[0], a, override_color);
100
    }
101
}
102
for (loop = 0; loop < 2; loop += 1)
103
{
104
    if (loop == 0)
105
    {
106
        draw_set_blend_mode(bm_normal);
107
        color[0] = basecolor;
108
        color[1] = basecolor;
109
        color[2] = basecolor;
110
    }
111
    if (loop == 1)
112
    {
113
        draw_set_blend_mode(bm_add);
114
        color[0] = dcolor[0];
115
        color[1] = dcolor[1];
116
        color[2] = dcolor[2];
117
    }
118
    _flash = _do_flash && loop == 1;
119
    if (bad == 0)
120
    {
121
        if (part[1] == 0)
122
        {
123
            var _pieceVector = scr_rotatevector_xy(-8 * s, (6 * s) + (s * walkc * 2), image_angle);
124
            headx = xx + _pieceVector.x;
125
            heady = yy + _pieceVector.y;
126
            draw_sprite_ext_glow(spr_thrashweapon_laser, 0, headx, heady, s, s, image_angle, color[1], a, override_color);
127
        }
128
        if (part[1] == 1)
129
        {
130
            var _pieceVector = scr_rotatevector_xy(-10 * s, (6 * s) + (s * walkc * 2), image_angle);
131
            headx = xx + _pieceVector.x;
132
            heady = yy + _pieceVector.y;
133
            draw_sprite_ext_glow(spr_thrashweapon_sword, 0, headx, heady, s, s, headangle + image_angle, color[1], a, override_color);
134
        }
135
        if (part[1] == 2)
136
        {
137
            var _pieceVector = scr_rotatevector_xy(-s * 4, (5 * s) + (s * walkc * 2), image_angle);
138
            headx = xx + _pieceVector.x;
139
            heady = yy + _pieceVector.y;
140
            draw_sprite_ext_glow(spr_thrashweapon_flame, 0, headx, heady, s, s, headangle + image_angle, color[1], a, override_color);
141
        }
142
        if (part[1] == 3)
143
        {
144
            var _pieceVector = scr_rotatevector_xy(-8 * s, (3 * s) + (s * walkc * 2), image_angle);
145
            headx = xx + _pieceVector.x;
146
            heady = yy + _pieceVector.y;
147
            draw_sprite_ext_glow(spr_thrashweapon_duck, 0, headx, heady, s, s, headangle + image_angle, color[1], a, override_color);
148
        }
149
        if (part[1] == 4)
150
        {
151
            var _pieceVector = scr_rotatevector_xy(-8 * s, (3 * s) + (s * walkc * 2), image_angle);
152
            headx = xx + _pieceVector.x;
153
            heady = yy + _pieceVector.y;
154
            draw_sprite_ext_glow(spr_thrashweapon_handsome_duck, 0, headx, heady, s, s, headangle + image_angle, color[1], a, override_color);
155
        }
156
    }
157
    else
158
    {
159
        if (part[1] == 0)
160
        {
161
            headx = xx - (8 * s);
162
            heady = yy + (6 * s) + (s * walkc * 2);
163
            draw_sprite_ext_glow(spr_thrashweapon_laser_b, 0, xx - (8 * s), yy + (6 * s) + (s * walkc * 2), s / 2, s / 2, headangle, color[1], a, override_color);
164
        }
165
        if (part[1] == 1)
166
        {
167
            headx = xx - (10 * s);
168
            heady = yy + (6 * s) + (s * walkc * 2);
169
            draw_sprite_ext_glow(spr_thrashweapon_sword_b, 0, xx - (10 * s), yy + (6 * s) + (s * walkc * 2), s / 2, s / 2, headangle, color[1], a, override_color);
170
        }
171
        if (part[1] == 2)
172
        {
173
            headx = xx - (s * 4);
174
            heady = yy + (5 * s) + (s * walkc * 2);
175
            draw_sprite_ext_glow(spr_thrashweapon_flame_b, 0, xx - (s * 4), yy + (5 * s) + (s * walkc * 2), s / 2, s / 2, headangle, color[1], a, override_color);
176
        }
177
        if (part[1] == 3)
178
        {
179
            headx = xx - (8 * s);
180
            heady = yy + (3 * s) + (s * walkc * 2);
181
            draw_sprite_ext_glow(spr_thrashweapon_duck, 0, xx - (8 * s), yy + (3 * s) + (s * walkc * 2), s, s, headangle, color[1], a, override_color);
182
        }
183
    }
184
}
185
for (loop = 0; loop < 2; loop += 1)
186
{
187
    if (loop == 0)
188
    {
189
        draw_set_blend_mode(bm_normal);
190
        color[0] = basecolor;
191
        color[1] = basecolor;
192
        color[2] = basecolor;
193
    }
194
    if (loop == 1)
195
    {
196
        draw_set_blend_mode(bm_add);
197
        color[0] = dcolor[0];
198
        color[1] = dcolor[1];
199
        color[2] = dcolor[2];
200
    }
201
    _flash = rim_flash > 0 && loop == 1;
202
    walka = sin(wsiner / 6);
203
    walkb = cos(wsiner / 6);
204
    if (walkb >= 0 && laststep < 0)
205
        stomp = 1;
206
    else if (walkb <= 0 && laststep > 0)
207
        stomp = -1;
208
    laststep = walkb;
209
    if (moving == 1 && part[2] == 0 && walkb <= 0)
210
        walkb *= 3;
211
    if (bad == 0)
212
    {
213
        var _bottom = 6;
214
        if (part[2] == 0)
215
        {
216
            var _pieceVector = scr_rotatevector_xy((-5 * s) + (s * walka * 2), (20 * s) + (s * walkb * 1), image_angle);
217
            var _thrash_image = 0;
218
            _bottom = 4;
219
            if (!drawfeet)
220
                draw_sprite_part_ext_glow(spr_thrashfoot, 0, 0, 0, 34, 4, (xx - (5 * s)) + (s * walka * 2), yy + (20 * s) + (s * walkb * 1), s, s, color[2], a, override_color);
221
            else
222
                draw_sprite_ext_glow(spr_thrashfoot, 0, xx + _pieceVector.x, yy + _pieceVector.y, s, s, image_angle, color[2], a, override_color);
223
        }
224
        if (part[2] == 1)
225
        {
226
            var _pieceVector = scr_rotatevector_xy(s * walka * 2, (18 * s) + (s * walkb * 1), image_angle);
227
            var _thrash_image = 1;
228
            if (!drawfeet)
229
                draw_sprite_part_ext_glow(spr_thrashfoot, 1, 0, 0, 34, 6, xx + (s * walka * 2), yy + (18 * s) + (s * walkb * 1), s, s, color[2], a, override_color);
230
            else
231
                draw_sprite_ext_glow(spr_thrashfoot, 1, xx + _pieceVector.x, yy + _pieceVector.y, s, s, image_angle, color[2], a, override_color);
232
        }
233
        if (part[2] == 2)
234
        {
235
            var _pieceVector = scr_rotatevector_xy(-15 * s, 18 * s, image_angle);
236
            var _thrash_image = 2;
237
            if (!drawfeet)
238
                draw_sprite_part_ext_glow(spr_thrashfoot, 2, 0, 0, 34, 6, xx - (15 * s), yy + (18 * s), s, s, color[2], a, override_color);
239
            else
240
                draw_sprite_ext_glow(spr_thrashfoot, 2, xx + _pieceVector.x, yy + _pieceVector.y, s, s, image_angle, color[2], a, override_color);
241
        }
242
        if (part[2] == 3)
243
        {
244
            walka = sin(wsiner / 6);
245
            walkb = cos(wsiner / 6);
246
            var _pieceVector = scr_rotatevector_xy(s * walka * 2, (22 * s) + (s * walkb * 1), image_angle);
247
            var _thrash_image = 3;
248
            _bottom = 2;
249
            if (!drawfeet)
250
                draw_sprite_part_ext_glow(spr_thrashfoot, 3, 0, 0, 34, 2, xx + (s * walka * 2), yy + (22 * s) + (s * walkb * 1), s, s, color[2], a, override_color);
251
            else
252
                draw_sprite_ext_glow(spr_thrashfoot, 3, xx + _pieceVector.x, yy + _pieceVector.y, s, s, image_angle, color[2], a, override_color);
253
        }
254
        if (part[2] == 4)
255
        {
256
            var _pieceVector = scr_rotatevector_xy(-15 * s, (18 * s) + (walkc * s * 0.5), image_angle);
257
            var _thrash_image = 2;
258
            draw_sprite_ext_glow(spr_thrashfoot, 5 + clamp01((wsiner / 6) % 2), xx + _pieceVector.x, yy + _pieceVector.y, s, s, image_angle, color[2], a, override_color);
259
        }
260
    }
261
    else
262
    {
263
        if (part[2] == 0)
264
            draw_sprite_ext_glow(spr_thrashfoot_b, 0, (xx - (5 * s)) + (s * walka * 2), yy + (20 * s) + (s * walkb * 1), s / 2, s / 2, 0, color[2], a, override_color);
265
        if (part[2] == 1)
266
            draw_sprite_ext_glow(spr_thrashfoot_b, 1, xx + (s * walka * 2), yy + (18 * s) + (s * walkb * 1), s / 2, s / 2, 0, color[2], a, override_color);
267
        if (part[2] == 2)
268
            draw_sprite_ext_glow(spr_thrashfoot_b, 2, xx - (15 * s), yy + (18 * s), s / 2, s / 2, 0, color[2], a, override_color);
269
        if (part[2] == 3)
270
        {
271
            walka = sin(wsiner / 6);
272
            walkb = cos(wsiner / 6);
273
            draw_sprite_ext_glow(spr_thrashfoot, 3, xx + (s * walka * 2), yy + (22 * s) + (s * walkb * 1), s, s, 0, color[2], a, override_color);
274
        }
275
    }
276
}
277
if (part[0] == 4)
278
{
279
    draw_set_blend_mode(bm_normal);
280
    color[0] = dcolor[0];
281
    var _pieceVector = scr_rotatevector_xy(0, s * (walkc + 5), image_angle);
282
    draw_sprite_ext_glow(spr_thrashbody, 5, xx, yy + _pieceVector.y, s, s, image_angle, color[0], a, override_color);
283
}
284
draw_set_blend_mode(bm_normal);
285
if ((image_angle % 360) != 0)
286
{
287
    xx = _x2;
288
    yy = _y2;
289
}
290
if (dbselect == 1)
291
{
292
    if (keyboard_check_pressed(vk_right))
293
    {
294
        part[0] += 1;
295
        if (part[0] >= 4)
296
            part[0] = 0;
297
    }
298
    if (keyboard_check_pressed(vk_up))
299
    {
300
        part[1] += 1;
301
        if (part[1] >= 4)
302
            part[1] = 0;
303
    }
304
    if (keyboard_check_pressed(vk_shift))
305
    {
306
        part[2] += 1;
307
        if (part[2] >= 4)
308
            part[2] = 0;
309
    }
310
    if (keyboard_check(vk_space))
311
    {
312
        dcolor[0] = make_color_hsv(wsiner * 2, 255, 255);
313
        dcolor[1] = make_color_hsv(wsiner, 255, 255);
314
        dcolor[2] = make_color_hsv(wsiner / 2, 255, 255);
315
    }
316
    if (keyboard_check_pressed(vk_enter))
317
    {
318
        s += 1;
319
        if (s >= 5)
320
            s = 1;
321
    }
322
}