Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_dw_teevie_shadow_guys_Step_0

(view raw script w/o annotations or w/e)
1
var xmove = 280;
2
if (!camcontrol)
3
{
4
    camx = camerax();
5
    camy = cameray();
6
}
7
if (con == 0)
8
{
9
    if (i_ex(lawnmower))
10
    {
11
        if (lawnmower.myinteract == 3)
12
        {
13
            global.flag[1147 lawnmower_beat_paper] = 1;
14
            global.interact = 1;
15
            camcontrol = true;
16
            con = 1;
17
        }
18
    }
19
    if (obj_b3bs_console.swordinteract == 1)
20
    {
21
        global.interact = 1;
22
        con = 1001;
23
    }
24
}
25
if (con == 1)
26
{
27
    if (i_ex(lawnmower))
28
    {
29
        for (var i = 0; i < (array_length(sadshad) - 1); i++)
30
        {
31
            if (i_ex(sadshad[i]))
32
            {
33
                if ((sadshad[i].x + 38) > lawnmower.x && sadshad[i].sprite_index == spr_shadowman_playgamesad)
34
                {
35
                    sadshad[i].sprite_index = spr_shadowman_playgameSurprised;
36
                    
scr_shakeobj
scr_shakeobj

function
scr_shakeobj()
{ var _shakeobj = instance_create(x, y, obj_shakeobj); _shakeobj.target = id; if (argument_count >= 1) { if (i_ex(argument0)) _shakeobj.target = argument0; } if (argument_count >= 2) { if (argument1 != -1) _shakeobj.shakeamt = argument1; } if (argument_count >= 3) { if (argument2 != -1) _shakeobj.shakereduct = argument2; } with (_shakeobj) event_user(0); }
(sadshad[i]);
37
                    boardshad[i].image_speed = 0;
38
                    boardshad[i].sprite_index = spr_dw_b3bs_sadshadowguys_surprised;
39
                }
40
            }
41
        }
42
        if (lawnmower.x <= (810 + xmove) && pyjump == 0)
43
            pyjump = 1;
44
        camx = min(camx, lawnmower.x - 320, 914 + xmove);
45
        with (lawnmower)
46
        {
47
            if (place_meeting(x, y, obj_board_trigger))
48
            {
49
                with (instance_create(x, y, obj_board_smokepuff))
50
                    image_blend = c_yellow;
51
                snd_play(snd_impact);
52
                snd_play_x(snd_impact, 1, 0.8);
53
                other.con = 2;
54
                with (obj_dw_ch3_b3bs_office_paperstack)
55
                {
56
                    if (x < 1558)
57
                        instance_destroy();
58
                }
59
                instance_destroy();
60
            }
61
        }
62
    }
63
}
64
if (con == 2)
65
{
66
    timer++;
67
    if (timer == 1)
68
    {
69
        crblock = 1;
70
        safe_delete(pynpc);
71
        var xoff = 0;
72
        var yoff = 0;
73
        if (dooffset)
74
        {
75
            xoff = -88;
76
            yoff = 14;
77
        }
78
        for (var i = 0; i < (array_length(sadshad) - 1); i++)
79
        {
80
            if (i_ex(sadshad[i]))
81
            {
82
                var newshad = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; }
(sadshad[i].x + xoff, sadshad[i].y + yoff, spr_shadowman_dancewalk, 2, 2, 0.25, undefined, undefined, 96539);
83
                array_push(happyshad, newshad);
84
                with (sadshad[i])
85
                    instance_destroy();
86
            }
87
        }
88
        with (obj_b3bs_console)
89
            endplay = true;
90
        pyupdate = 1;
91
    }
92
    if (timer == 2)
93
    {
94
        global.facing = 3;
95
        global.interact = 1;
96
        with (obj_caterpillarchara)
97
        {
98
            follow = false;
99
            
scr_caterpillar_facing
scr_caterpillar_facing

function
scr_caterpillar_facing(arg0)
{ with (obj_caterpillarchara) { for (i = 0; i < 25; i += 1) facing[i] = arg0; } }
(3);
100
            if (name == "susie")
101
                setxy(1244 + xmove, 276);
102
            if (name == "ralsei")
103
                setxy(1290 + xmove, 280);
104
        }
105
    }
106
    if (timer == 10)
107
    {
108
        with (obj_mainchara)
109
        {
110
            y = 270;
111
            fun = 1;
112
            sprite_index = lsprite;
113
        }
114
    }
115
    if (timer == 15)
116
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("camx", camx, 914 + xmove, 60, 2, "out");
117
    if (timer == 76)
118
    {
119
        timer = 0;
120
        con = 3;
121
    }
122
}
123
if (con == 3)
124
{
125
    timer++;
126
    if (timer == 1)
127
    {
128
        killhappyshads = true;
129
        with (happyshad[10])
130
        {
131
            var walktime = round(abs(x - (1148 + xmove)) / 4);
132
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, 1148 + xmove, walktime);
133
            snd_play_delay(snd_noise, walktime + 1);
134
            scr_delay_var("sprite_index", 4167, walktime + 1);
135
            snd_play_delay(choose(snd_shadowman_sax_1, snd_shadowman_sax_2, snd_shadowman_sax_3), walktime + 1 + 15);
136
            scr_delay_var("sprite_index", 92, walktime + 1 + 15);
137
            scr_delay_var("sprite_index", 4372, walktime + 1 + 15 + 15);
138
            scr_delay_var("hspeed", 8, walktime + 1 + 15 + 15);
139
            scr_delay_var("vspeed", 8, walktime + 1 + 15 + 15);
140
            scr_delay_var("depth", 96320, walktime + 1 + 15 + 15);
141
            friction = -0.5;
142
            scr_limitval_upper(id, "y", 284);
143
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(id, 400);
144
        }
145
        with (obj_board_marker)
146
        {
147
            if (x == (1136 + xmove))
148
            {
149
                instance_create(x, y, obj_board_smokepuff);
150
                if (!other.dooffset)
151
                    snd_play(snd_board_splash);
152
                instance_destroy();
153
            }
154
        }
155
    }
156
    if (timer == 45)
157
    {
158
        with (happyshad[9])
159
        {
160
            var walktime = round(abs(x - (1148 + xmove)) / 8);
161
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, 1148 + xmove, walktime);
162
            snd_play_delay(snd_noise, walktime + 1);
163
            scr_delay_var("sprite_index", 4167, walktime + 1);
164
            snd_play_delay(choose(snd_shadowman_sax_1, snd_shadowman_sax_2, snd_shadowman_sax_3), walktime + 1 + 15);
165
            scr_delay_var("sprite_index", 92, walktime + 1 + 15);
166
            scr_delay_var("sprite_index", 4372, walktime + 1 + 15 + 15);
167
            scr_delay_var("hspeed", 8, walktime + 1 + 15 + 15);
168
            scr_delay_var("vspeed", 8, walktime + 1 + 15 + 15);
169
            scr_delay_var("depth", 96320, walktime + 1 + 15 + 15);
170
            friction = -0.5;
171
            scr_limitval_upper(id, "y", 284);
172
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(id, 400);
173
        }
174
        with (obj_board_marker)
175
        {
176
            if (x == ((1136 + xmove) - 78))
177
            {
178
                instance_create(x, y, obj_board_smokepuff);
179
                if (!other.dooffset)
180
                    snd_play_x(snd_board_splash, 0.75, 1);
181
                instance_destroy();
182
            }
183
        }
184
    }
185
    if (timer == 80)
186
    {
187
        with (happyshad[8])
188
        {
189
            var walktime = round(abs(x - (1148 + xmove)) / 12);
190
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, 1148 + xmove, walktime);
191
            snd_play_delay(snd_noise, walktime + 1);
192
            scr_delay_var("sprite_index", 4167, walktime + 1);
193
            snd_play_delay(choose(snd_shadowman_sax_1, snd_shadowman_sax_2, snd_shadowman_sax_3), walktime + 1 + 15);
194
            scr_delay_var("sprite_index", 92, walktime + 1 + 15);
195
            scr_delay_var("sprite_index", 4372, walktime + 1 + 15 + 15);
196
            scr_delay_var("hspeed", 8, walktime + 1 + 15 + 15);
197
            scr_delay_var("vspeed", 8, walktime + 1 + 15 + 15);
198
            scr_delay_var("depth", 96320, walktime + 1 + 15 + 15);
199
            friction = -0.5;
200
            scr_limitval_upper(id, "y", 284);
201
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(id, 400);
202
        }
203
        with (obj_board_marker)
204
        {
205
            if (x == ((1136 + xmove) - 156))
206
            {
207
                instance_create(x, y, obj_board_smokepuff);
208
                if (!other.dooffset)
209
                    snd_play_x(snd_board_splash, 0.5, 1);
210
                instance_destroy();
211
            }
212
        }
213
    }
214
    if (timer == 107)
215
    {
216
        with (happyshad[7])
217
        {
218
            var walktime = round(abs(x - (1148 + xmove)) / 12);
219
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, 1148 + xmove, walktime);
220
            snd_play_delay(snd_noise, walktime + 1);
221
            scr_delay_var("sprite_index", 4167, walktime + 1);
222
            snd_play_delay(choose(snd_shadowman_sax_1, snd_shadowman_sax_2, snd_shadowman_sax_3), walktime + 1 + 15);
223
            scr_delay_var("sprite_index", 92, walktime + 1 + 15);
224
            scr_delay_var("sprite_index", 4372, walktime + 1 + 15 + 15);
225
            scr_delay_var("hspeed", 8, walktime + 1 + 15 + 15);
226
            scr_delay_var("vspeed", 8, walktime + 1 + 15 + 15);
227
            scr_delay_var("depth", 96320, walktime + 1 + 15 + 15);
228
            friction = -0.5;
229
            scr_limitval_upper(id, "y", 284);
230
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(id, 400);
231
        }
232
        with (obj_board_marker)
233
        {
234
            if (x == ((1136 + xmove) - 234))
235
            {
236
                instance_create(x, y, obj_board_smokepuff);
237
                if (!other.dooffset)
238
                    snd_play_x(snd_board_splash, 0.25, 1);
239
                instance_destroy();
240
            }
241
        }
242
        for (var i = 0; i < 7; i++)
243
            safe_delete(happyshad[i]);
244
    }
245
    for (var i = 0; i < 5; i++)
246
    {
247
        if (timer == (((160 + (30 * i)) - 8) + 33))
248
        {
249
            with (
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; }
(camerax() - 80, 242, spr_shadowman_dancewalk, 2, 2, 0.35, undefined, undefined, 96539))
250
            {
251
                var walktime = round(abs(x - (1148 + xmove)) / 20);
252
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, 1148 + xmove, walktime);
253
                snd_play_delay(snd_noise, walktime + 1);
254
                scr_delay_var("sprite_index", 4167, walktime + 1);
255
                snd_play_delay(choose(snd_shadowman_sax_1, snd_shadowman_sax_2, snd_shadowman_sax_3), walktime + 1 + 8);
256
                scr_delay_var("sprite_index", 92, walktime + 1 + 8);
257
                scr_delay_var("sprite_index", 4372, walktime + 1 + 8 + 8);
258
                scr_delay_var("hspeed", 16, walktime + 1 + 16);
259
                scr_delay_var("vspeed", 10, walktime + 1 + 16);
260
                scr_delay_var("depth", 96320, walktime + 1 + 16);
261
                friction = -0.5;
262
                scr_limitval_upper(id, "y", 284);
263
                
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(id, 400);
264
            }
265
        }
266
    }
267
    if (timer == 338)
268
    {
269
        scr_delay_var("killhappyshads", false, 30);
270
        timer = 0;
271
        con++;
272
    }
273
}
274
if (killhappyshads == true)
275
{
276
    with (obj_marker)
277
    {
278
        if (x > (camerax() + 640))
279
        {
280
            other.killcount++;
281
            var ymod = 0;
282
            if ((other.killcount % 2) == 0)
283
                ymod = 42;
284
            if (sprite_index == spr_shadowman_dancewalk)
285
            {
286
                global.flag[654 recruit_shadowguy] += 0.04;
287
                if (global.flag[654 recruit_shadowguy] > 1)
288
                    global.flag[654 recruit_shadowguy] = 1;
289
                snd_play(snd_sparkle_gem);
290
                with (instance_create((camerax() + 640) - 50, y + ymod, obj_recruitanim))
291
                    showcount = true;
292
                instance_destroy();
293
            }
294
        }
295
    }
296
}
297
if (con == 4)
298
{
299
    timer++;
300
    if (timer == 1)
301
    {
302
        py_lockpos = true;
303
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("px", px, 1078 + xmove, 20);
304
    }
305
    if (timer == 22)
306
    {
307
        snd_play(snd_noise);
308
        pyramid[6].sprite_index = spr_shadowman_shakehand;
309
        pydepth = obj_mainchara.depth - 1;
310
    }
311
    if (timer == 36)
312
    {
313
        for (var i = 0; i < array_length(pyramid); i++)
314
        {
315
            pyramid[i].sprite_index = spr_shadowman_doffhat;
316
            pyramid[i].image_speed = 0.25;
317
            pyramid[i].image_index = 0;
318
        }
319
        snd_play(snd_shadowman_sax_long);
320
    }
321
    if (timer == 51)
322
    {
323
        for (var i = 0; i < array_length(pyramid); i++)
324
        {
325
            pyramid[i].sprite_index = spr_shadowman_dancewalk;
326
            pyramid[i].image_speed = 0.25;
327
            pyramid[i].image_index = i + y;
328
        }
329
        pydepth = 94320;
330
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("py", py, 142, 4, 2, "out");
331
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("px", px, 1700 + xmove, 40);
332
    }
333
    if (timer == 91)
334
    {
335
        global.flag[654 recruit_shadowguy] += 0.4;
336
        if (global.flag[654 recruit_shadowguy] > 1)
337
            global.flag[654 recruit_shadowguy] = 1;
338
        snd_play(snd_sparkle_gem);
339
        with (instance_create((camerax() + 640) - 50, 306, obj_recruitanim))
340
        {
341
            showcount = true;
342
            firstnumber = 10;
343
        }
344
    }
345
    if (timer == 92)
346
    {
347
        timer = 0;
348
        con = 5;
349
    }
350
}
351
if (con == 5)
352
{
353
    with (obj_npc_room)
354
    {
355
        if (extflag == "sadshad")
356
        {
357
            other.loner = 
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; }
(x, y, sprite_index, image_xscale, image_yscale, image_speed, image_index, image_blend, depth);
358
            instance_destroy();
359
        }
360
    }
361
    with (obj_mainchara)
362
        fun = 0;
363
    global.facing = 1;
364
    with (obj_caterpillarchara)
365
    {
366
        if (name == "ralsei")
367
            
scr_caterpillar_facing
scr_caterpillar_facing

function
scr_caterpillar_facing(arg0)
{ with (obj_caterpillarchara) { for (i = 0; i < 25; i += 1) facing[i] = arg0; } }
(2);
368
        else
369
            
scr_caterpillar_facing
scr_caterpillar_facing

function
scr_caterpillar_facing(arg0)
{ with (obj_caterpillarchara) { for (i = 0; i < 25; i += 1) facing[i] = arg0; } }
(1);
370
    }
371
    timer = -15;
372
    con = 6;
373
}
374
if (con == 6)
375
{
376
    timer++;
377
    if (timer == 15)
378
    {
379
        loner.sprite_index = spr_shadowman_sadlookaround;
380
        loner.image_speed = 0.0625;
381
    }
382
    if (timer >= 60)
383
    {
384
        loner.image_index = 0;
385
        loner.image_speed = 0;
386
        timer = 0;
387
        con++;
388
    }
389
}
390
if (con == 7)
391
{
392
    timer++;
393
    if (timer == 1)
394
    {
395
        loner.image_xscale = -2;
396
        loner.x += 90;
397
        loner.sprite_index = spr_shadowman_doffhat;
398
        loner.image_index = 0;
399
    }
400
    if (timer == 15)
401
    {
402
        loner.image_index = 1;
403
        snd_play(snd_wing);
404
    }
405
    if (timer == 30)
406
    {
407
        with (loner)
408
        {
409
            other.loner = instance_create(x, y, obj_defeatanim);
410
            other.loner.sprite_index = sprite_index;
411
            other.loner.image_xscale = image_xscale;
412
            other.loner.image_yscale = image_yscale;
413
            other.loner.dosweat = false;
414
            other.loner.depth = depth;
415
            instance_destroy();
416
        }
417
    }
418
    if (timer == 45)
419
    {
420
        global.flag[654 recruit_shadowguy] += 0.04;
421
        if (global.flag[654 recruit_shadowguy] > 1)
422
            global.flag[654 recruit_shadowguy] = 1;
423
        snd_play(snd_shineselect);
424
        snd_play(snd_sparkle_glock);
425
        with (instance_create((camerax() + 640) - 50, 306, obj_recruitanim))
426
        {
427
            showcount = true;
428
            firstnumber = 1;
429
        }
430
        with (obj_board_marker)
431
        {
432
            if (x == (1292 + xmove))
433
            {
434
                instance_create(x, y, obj_board_smokepuff);
435
                if (!other.dooffset)
436
                    snd_play(snd_board_splash);
437
                instance_destroy();
438
            }
439
        }
440
        with (obj_caterpillarchara)
441
            
scr_caterpillar_facing
scr_caterpillar_facing

function
scr_caterpillar_facing(arg0)
{ with (obj_caterpillarchara) { for (i = 0; i < 25; i += 1) facing[i] = arg0; } }
(1);
442
    }
443
    if (timer == 75)
444
    {
445
        con++;
446
        with (obj_caterpillarchara)
447
        {
448
            
scr_caterpillar_interpolate
scr_caterpillar_interpolate

function
scr_caterpillar_interpolate()
{ _newfacing =
scr_facing_letter_to_number(
scr_get_cardinal_direction(point_direction(x, y, obj_mainchara.x, obj_mainchara.y)));
remx[0] = obj_mainchara.x; remy[0] = obj_mainchara.y; facing[0] = _newfacing; for (_iaia = target; _iaia > 0; _iaia -= 1) { remx[_iaia] = lerp(obj_mainchara.x, x, _iaia / target); if (global.darkzone == 1) remy[_iaia] = lerp(obj_mainchara.y, y + 16, _iaia / target); else remy[_iaia] = lerp(obj_mainchara.y, y + 6, _iaia / target); facing[_iaia] = _newfacing; } }
();
449
            follow = true;
450
        }
451
        with (obj_board_marker)
452
            instance_destroy();
453
        px = room_width * 2;
454
        obj_mainchara.cutscene = false;
455
        global.facing = 0;
456
        global.interact = 0;
457
        camcontrol = false;
458
        with (obj_b3bs_console)
459
            camcon = 0;
460
        global.flag[1147 lawnmower_beat_paper] = 1;
461
    }
462
}
463
if (py_lockpos)
464
{
465
    var xx = px;
466
    var yy = py;
467
    var xspace = 32;
468
    var yspace = 72;
469
    var xoffset = 0;
470
    with (pyramid[9])
471
        setxy((xx + (xspace * 0)) - xoffset, yy + (yspace * -1));
472
    xoffset = 4;
473
    with (pyramid[0])
474
        setxy((xx + (xspace * 0)) - xoffset, yy + (yspace * 0));
475
    with (pyramid[8])
476
        setxy((xx + (xspace * 1)) - xoffset, yy + (yspace * 0));
477
    xoffset = 16;
478
    with (pyramid[1])
479
        setxy((xx + (xspace * 0)) - xoffset, yy + (yspace * 1));
480
    with (pyramid[2])
481
        setxy((xx + (xspace * 1)) - xoffset, yy + (yspace * 1));
482
    with (pyramid[7])
483
        setxy((xx + (xspace * 2)) - xoffset, yy + (yspace * 1));
484
    xoffset = 26;
485
    with (pyramid[3])
486
        setxy((xx + (xspace * 0)) - xoffset, yy + (yspace * 2));
487
    with (pyramid[4])
488
        setxy((xx + (xspace * 1)) - xoffset, yy + (yspace * 2));
489
    with (pyramid[5])
490
        setxy((xx + (xspace * 2)) - xoffset, yy + (yspace * 2));
491
    with (pyramid[6])
492
        setxy((xx + (xspace * 3)) - xoffset, yy + (yspace * 2));
493
}
494
if (pyjump == 1)
495
{
496
    pytimer++;
497
    if (pytimer == 1)
498
    {
499
        var i = array_length(pyramid) - 1;
500
        while (i > -1)
501
        {
502
            with (pyramid[i])
503
            {
504
                scr_limitval_upper(id, "y", y, 60);
505
                gravity = 2;
506
                sprite_index = spr_shadowman_playgameSurprised;
507
            }
508
            i--;
509
        }
510
        var delamt = 2;
511
        var jumpamt = -8;
512
        with (pyramid[3])
513
            scr_delay_var("vspeed", jumpamt, 1 * delamt);
514
        with (pyramid[4])
515
            scr_delay_var("vspeed", jumpamt, (1 * delamt) + 1);
516
        with (pyramid[5])
517
            scr_delay_var("vspeed", jumpamt, (1 * delamt) + 2);
518
        with (pyramid[6])
519
            scr_delay_var("vspeed", jumpamt, (1 * delamt) + 3);
520
        with (pyramid[1])
521
            scr_delay_var("vspeed", jumpamt, (2 * delamt) + 4);
522
        with (pyramid[2])
523
            scr_delay_var("vspeed", jumpamt, (2 * delamt) + 5);
524
        with (pyramid[7])
525
            scr_delay_var("vspeed", jumpamt, (2 * delamt) + 6);
526
        with (pyramid[0])
527
            scr_delay_var("vspeed", jumpamt, (3 * delamt) + 7);
528
        with (pyramid[8])
529
            scr_delay_var("vspeed", jumpamt, (3 * delamt) + 8);
530
        with (pyramid[9])
531
            scr_delay_var("vspeed", jumpamt, (4 * delamt) + 9);
532
    }
533
    if (pytimer == 44)
534
    {
535
        for (var i = 0; i < array_length(pyramid); i++)
536
        {
537
            with (pyramid[i])
538
            {
539
                gravity = 0;
540
                vspeed = 0;
541
                y = ystart;
542
            }
543
        }
544
    }
545
}
546
if (pyupdate)
547
{
548
    pyupdate = false;
549
    for (var i = 0; i < array_length(pyramid); i++)
550
    {
551
        pyramid[i].sprite_index = spr_shadowman_dancewalk;
552
        pyramid[i].image_speed = 0.25;
553
        pyramid[i].image_index = i + y;
554
    }
555
    pyjump = -1;
556
}
557
if (pydepth != -1)
558
{
559
    pyramid[9].depth = pydepth + 3;
560
    pyramid[0].depth = pydepth + 2;
561
    pyramid[8].depth = pydepth + 2;
562
    pyramid[1].depth = pydepth + 1;
563
    pyramid[2].depth = pydepth + 1;
564
    pyramid[7].depth = pydepth + 1;
565
    pyramid[3].depth = pydepth + 0;
566
    pyramid[4].depth = pydepth + 0;
567
    pyramid[5].depth = pydepth + 0;
568
    pyramid[6].depth = pydepth + 0;
569
    pydepth = -1;
570
}
571
if (crblock == 1)
572
{
573
    crblock = 2;
574
    with (instance_create(896 + xmove, 208, obj_board_solid))
575
        image_xscale = room_width;
576
    instance_create(880 + xmove, 224, obj_board_solid);
577
}
578
if (endshine == 0)
579
{
580
    var trig = 0;
581
    with (obj_b3bs_console)
582
    {
583
        if (con != 0)
584
            trig = 1;
585
    }
586
    if (trig == 1)
587
    {
588
        endshine = true;
589
        with (shine)
590
            instance_destroy();
591
    }
592
}
593
if (con == 1001)
594
{
595
    with (obj_b3bs_console)
596
    {
597
        with (obj_puzzlecloset_manager)
598
            camcontrol = false;
599
        con = 99;
600
        global.interact = 1;
601
        kris.cutscene = true;
602
        cutscene_master = 
scr_cutscene_make
scr_cutscene_make

function
scr_cutscene_make()
{ _cutscene_master = instance_create(0, 0, obj_cutscene_master); _cutscene_master.master_object = id; return _cutscene_master; }
();
603
        
scr_maincharacters_actors
scr_maincharacters_actors

function
scr_maincharacters_actors()
{ actor_count = 0; kr = 0; kr_actor = instance_create(obj_mainchara.x, obj_mainchara.y, obj_actor);
scr_actor_setup(kr, kr_actor, "kris");
kr_actor.sprite_index = obj_mainchara.sprite_index; kr_actor.depth = obj_mainchara.depth; with (obj_mainchara) visible = 0; for (__jj = 0; __jj < array_length_1d(global.cinstance); __jj++) { if (i_ex(global.cinstance[__jj])) { if (global.cinstance[__jj].name == "susie") { actor_count++; su = __jj + 1; su_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(su, su_actor, "susie");
su_actor.sprite_index = global.cinstance[__jj].sprite_index; su_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "ralsei") { actor_count++; ra = __jj + 1; ra_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(ra, ra_actor, "ralsei");
ra_actor.sprite_index = global.cinstance[__jj].sprite_index; ra_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "noelle") { actor_count++; no = __jj + 1; no_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(no, no_actor, "noelle");
no_actor.sprite_index = global.cinstance[__jj].sprite_index; no_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } } } }
();
604
        if (camx != -1)
605
            camcon = 1;
606
        controlxpos = 1496;
607
        controlypos = 270;
608
        
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(kr);
609
        
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(controlxpos, controlypos, 15);
610
        if (i_ex(ralsei))
611
        {
612
            
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(ra);
613
            
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(1570, 280, 30);
614
        }
615
        if (i_ex(susie))
616
        {
617
            
c_sel
c_sel

function
c_sel(arg0)
{
c_cmd("select", arg0, 0, 0, 0);
}
(su);
618
            
c_walkdirect
c_walkdirect

function
c_walkdirect(arg0, arg1, arg2)
{
c_cmd("walkdirect", arg0, arg1, arg2, 0);
}
(1524, 276, 30);
619
        }
620
        
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(31);
621
        
c_actortokris
c_actortokris

function
c_actortokris()
{
c_cmd("actortokris", 0, 0, 0, 0);
}
();
622
        
c_actortocaterpillar
c_actortocaterpillar

function
c_actortocaterpillar()
{
c_cmd("actortocaterpillar", 0, 0, 0, 0);
}
();
623
        
c_terminatekillactors
c_terminatekillactors

function
c_terminatekillactors()
{
c_cmd("terminatekillactors", 0, 0, 0, 0);
}
();
624
    }
625
    global.facing = 2;
626
    con = 1002;
627
}
628
if (con == 1002 && !i_ex(obj_cutscene_master))
629
{
630
    global.facing = 2;
631
    with (obj_caterpillarchara)
632
        
scr_caterpillar_facing
scr_caterpillar_facing

function
scr_caterpillar_facing(arg0)
{ with (obj_caterpillarchara) { for (i = 0; i < 25; i += 1) facing[i] = arg0; } }
(2);
633
    con++;
634
    timer = 0;
635
}
636
if (con == 1003)
637
{
638
    timer++;
639
    if (timer == 5)
640
    {
641
        
scr_speaker
scr_speaker

function
scr_speaker(arg0)
{ _speaker = arg0; global.typer = 5; if (global.darkzone == 1) global.typer = 6; if (global.fighting == 1) global.typer = 4; global.fc = 0; global.fe = 0; if (_speaker == "silent" && global.darkzone == 0) global.typer = 2; if (_speaker == "silent" && global.darkzone == 1) global.typer = 36; if (_speaker == "balloon" || _speaker == "enemy") global.typer = 50; if (_speaker == "sans") { global.typer = 14; global.fc = 6; } if (_speaker == "undyne" || _speaker == "und") { global.typer = 17; global.fc = 9; } if (_speaker == "temmie" || _speaker == "tem") global.typer = 21; if (_speaker == "jevil") global.typer = 35; if (_speaker == "catti") global.fc = 13; if (_speaker == "jockington" || _speaker == "joc") global.fc = 14; if (_speaker == "catty" || _speaker == "caddy") global.fc = 16; if (_speaker == "bratty" || _speaker == "bra") global.fc = 17; if (_speaker == "rouxls" || _speaker == "rou") global.fc = 18; if (_speaker == "burgerpants" || _speaker == "bur") global.fc = 19; if (_speaker == "spamton") { if (global.fighting == 0) global.typer = 66; else global.typer = 68; } if (_speaker == "sneo") global.typer = 67; if (_speaker == "tenna") { global.typer = 80; if (global.fighting == 1) global.typer = 81; } if (_speaker == "susie" || _speaker == "sus") { global.fc = 1; global.typer = 10; if (global.darkzone == 1) { global.typer = 30; if (global.fighting == 1) global.typer = 47; } } if (_speaker == "ralsei" || _speaker == "ral") { global.fc = 2; global.typer = 31; if (global.fighting == 1) global.typer = 45; if (global.flag[30 ralsei_hat_state] == 1) global.typer = 6; } if (_speaker == "noelle" || _speaker == "noe") { global.fc = 3; if (global.darkzone == 0) global.typer = 12; else global.typer = 56; if (global.fighting == 1) global.typer = 59; } if (_speaker == "toriel" || _speaker == "tor") { global.fc = 4; global.typer = 7; } if (_speaker == "asgore" || _speaker == "asg") { global.fc = 10; global.typer = 18; } if (_speaker == "king" || _speaker == "kin") { global.fc = 20; global.typer = 33; ...
("no_name");
642
        msgsetloc(0, 
* (You attempted to use the console...Delay 11 but realized it wouldn't do anything.)Wait for inputClose Message
"* (You attempted to use the console..^1. but realized it wouldn't do anything.)/%", "obj_dw_teevie_shadow_guys_slash_Step_0_gml_686_0"
);
643
        d_make();
644
        timer = 0;
645
        con++;
646
    }
647
}
648
if (con == 1004 && !d_ex())
649
{
650
    timer++;
651
    if (timer == 15)
652
    {
653
        global.facing = 0;
654
        
scr_speaker
scr_speaker

function
scr_speaker(arg0)
{ _speaker = arg0; global.typer = 5; if (global.darkzone == 1) global.typer = 6; if (global.fighting == 1) global.typer = 4; global.fc = 0; global.fe = 0; if (_speaker == "silent" && global.darkzone == 0) global.typer = 2; if (_speaker == "silent" && global.darkzone == 1) global.typer = 36; if (_speaker == "balloon" || _speaker == "enemy") global.typer = 50; if (_speaker == "sans") { global.typer = 14; global.fc = 6; } if (_speaker == "undyne" || _speaker == "und") { global.typer = 17; global.fc = 9; } if (_speaker == "temmie" || _speaker == "tem") global.typer = 21; if (_speaker == "jevil") global.typer = 35; if (_speaker == "catti") global.fc = 13; if (_speaker == "jockington" || _speaker == "joc") global.fc = 14; if (_speaker == "catty" || _speaker == "caddy") global.fc = 16; if (_speaker == "bratty" || _speaker == "bra") global.fc = 17; if (_speaker == "rouxls" || _speaker == "rou") global.fc = 18; if (_speaker == "burgerpants" || _speaker == "bur") global.fc = 19; if (_speaker == "spamton") { if (global.fighting == 0) global.typer = 66; else global.typer = 68; } if (_speaker == "sneo") global.typer = 67; if (_speaker == "tenna") { global.typer = 80; if (global.fighting == 1) global.typer = 81; } if (_speaker == "susie" || _speaker == "sus") { global.fc = 1; global.typer = 10; if (global.darkzone == 1) { global.typer = 30; if (global.fighting == 1) global.typer = 47; } } if (_speaker == "ralsei" || _speaker == "ral") { global.fc = 2; global.typer = 31; if (global.fighting == 1) global.typer = 45; if (global.flag[30 ralsei_hat_state] == 1) global.typer = 6; } if (_speaker == "noelle" || _speaker == "noe") { global.fc = 3; if (global.darkzone == 0) global.typer = 12; else global.typer = 56; if (global.fighting == 1) global.typer = 59; } if (_speaker == "toriel" || _speaker == "tor") { global.fc = 4; global.typer = 7; } if (_speaker == "asgore" || _speaker == "asg") { global.fc = 10; global.typer = 18; } if (_speaker == "king" || _speaker == "kin") { global.fc = 20; global.typer = 33; ...
("no_name");
655
        msgsetloc(0, 
* (You started to leave.)Wait for input
"* (You started to leave.)/", "obj_dw_teevie_shadow_guys_slash_Step_0_gml_700_0"
);
656
        msgnextloc(
* (Suddenly,Delay 11 everyone else started to notice it might be okay to leave,Delay 11 too...)Wait for inputClose Message
"* (Suddenly^1, everyone else started to notice it might be okay to leave^1, too...)/%", "obj_dw_teevie_shadow_guys_slash_Step_0_gml_701_0"
);
657
        timer = 0;
658
        con++;
659
        d_make();
660
    }
661
}
662
if (con == 1005)
663
{
664
    if (!d_ex())
665
        timer++;
666
    if (
scr_getmsgno_d
scr_getmsgno_d

function
scr_getmsgno_d()
{ if (instance_exists(obj_dialoguer) && instance_exists(obj_dialoguer.writer)) return obj_dialoguer.writer.msgno; }
() == 1 || timer == 10)
667
    {
668
        timer = 0;
669
        con++;
670
        global.facing = 3;
671
        with (obj_npc_room)
672
        {
673
            if (sprite_index == spr_shadowman_playgamesad && x < 1550)
674
            {
675
                y -= 14;
676
                x += 86;
677
                image_xscale = -2;
678
                sprite_index = spr_shadowman_idle_a;
679
            }
680
        }
681
    }
682
}
683
if (con == 1006 && !d_ex())
684
    con = 2;
685
if (i_ex(pynpc))
686
{
687
    with (pynpc)
688
    {
689
        var delay = 4;
690
        if (myinteract == 3)
691
        {
692
            with (obj_script_delayed)
693
                instance_destroy();
694
            snd_stop(snd_shadowman_sax_1);
695
            snd_stop(snd_shadowman_sax_2);
696
            snd_stop(snd_shadowman_sax_3);
697
            for (var i = 0; i < 7; i++)
698
                snd_play_delay(choose(snd_shadowman_sax_1, snd_shadowman_sax_2, snd_shadowman_sax_3), 1 + (delay * i), 1 - (i / 30), 1 + (i / 15));
699
            myinteract = 0;
700
        }
701
    }
702
}