Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_steamworks_21_controller_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
var axis_run_speed = npc_axis_run_speed;
4
show_debug_message(scene);
5
switch (scene)
6
{
7
    case 0:
8
        if (obj_pl.x < 1960)
9
        {
10
            scr_cutscene_start
scr_cutscene_start

function scr_cutscene_start() { global.cutscene = true; obj_pl.state = scr_frozen_state; obj_pl.image_index = 0; obj_pl.image_speed = 0; }
();
11
            scr_radio_fade
scr_radio_fade

function scr_radio_fade(arg0, arg1) { var fade_vol = arg0; var fade_len = arg1; with (obj_radio) audio_sound_gain(current_song, fade_vol, fade_len); }
(0, 300);
12
            if (global.sworks_flag[12] == 0)
13
            {
14
                instance_create(0, 0, obj_steamworks_21_light_flash);
15
                cutscene_advance();
16
            }
17
            else
18
            {
19
                cutscene_advance(5);
20
            }
21
        }
22
        break;
23
    case 1:
24
        cutscene_wait(1);
25
        break;
26
    case 2:
27
        instance_create(0, 0, obj_steamworks_21_light_flash);
28
        cutscene_advance();
29
        break;
30
    case 3:
31
        obj_pl.direction = 0;
32
        cutscene_advance();
33
        if (cutscene_follower_into_actor() == true)
34
        {
35
            with (obj_shadow_master)
36
                event_perform(ev_alarm, 0);
37
            actor_follower.npc_direction = "right";
38
        }
39
        break;
40
    case 4:
41
        cutscene_wait(2);
42
        break;
43
    case 5:
44
        cutscene_instance_create(2100, 115, 1166);
45
        with (obj_shadow_master)
46
            event_perform(ev_alarm, 0);
47
        obj_axis_npc.image_alpha = 0;
48
        audio_play_sound(snd_undertale_appear, 1, 0);
49
        if (global.sworks_flag[12] == 1)
50
            cutscene_advance(5.3);
51
        break;
52
    case 5.3:
53
        with (obj_axis_npc)
54
        {
55
            if (image_alpha < 1)
56
                image_alpha += 0.05;
57
            else
58
                other.scene = 5.6;
59
        }
60
        break;
61
    case 5.6:
62
        if (cutscene_wait(1.5))
63
            cutscene_advance(10);
64
        break;
65
    case 6:
66
        if (shadow_axis_image_alpha < 1)
67
            shadow_axis_image_alpha += 0.05;
68
        else
69
            other.scene++;
70
        break;
71
    case 7:
72
        if (cutscene_wait(1))
73
        {
74
            obj_axis_npc.image_alpha = 1;
75
            cutscene_advance(7.3);
76
        }
77
        break;
78
    case 7.3:
79
        if (shadow_axis_image_alpha > 0)
80
            shadow_axis_image_alpha -= 0.1;
81
        else
82
            cutscene_advance(7.6);
83
        break;
84
    case 7.6:
85
        if (cutscene_wait(1))
86
            cutscene_advance(8);
87
        break;
88
    case 8:
89
        var spawn_arrows = false;
90
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
91
        with (msg)
92
        {
93
            sndfnt_array[0] = 111;
94
            if (global.route == 2)
95
            {
96
                message[0] = "* ESCAPED CONVICTS SPOTTED.#  STEAMWORKS:#  OFFICE BRANCH.";
97
                prt[0] = 2916;
98
                sndfnt_array[1] = 108;
99
                message[1] = "* Oh no! Run!";
100
                prt[1] = 381;
101
                if (message_current == 1)
102
                {
103
                    other.scene = 9;
104
                    skippable = false;
105
                    spawn_arrows = true;
106
                }
107
            }
108
            if (global.route == 1)
109
            {
110
                message[0] = "* ESCAPED CONVICT SPOTTED.#  STEAMWORKS:#  OFFICE BRANCH.";
111
                prt[0] = 2916;
112
            }
113
        }
114
        if (!global.dialogue_open)
115
        {
116
            spawn_arrows = true;
117
            cutscene_advance(10);
118
        }
119
        if (spawn_arrows == true)
120
        {
121
            instance_create_depth(1952, 96, -100, obj_axis_chase_flashing_arrow);
122
            instance_create_depth(1856, 96, -100, obj_axis_chase_flashing_arrow);
123
            var arrow_down = instance_create_depth(1792, 160, -100, obj_axis_chase_flashing_arrow);
124
            arrow_down.image_angle = 0;
125
        }
126
        break;
127
    case 9:
128
        if (instance_exists(obj_ceroba_npc) && ceroba_is_running == false)
129
        {
130
            ceroba_is_running = true;
131
            with (obj_ceroba_npc)
132
            {
133
                can_walk = false;
134
                action_sprite = true;
135
                path_start(pt_steamworks_21_ceroba_chase, 5.9, path_action_stop, false);
136
                path_change_point(pt_steamworks_21_ceroba_chase, 0, obj_ceroba_npc.x, obj_ceroba_npc.y, 100);
137
                direction = 180;
138
            }
139
        }
140
        global.party_member = -4;
141
        if (cutscene_wait(1))
142
        {
143
            instance_destroy(obj_dialogue);
144
            global.dialogue_open = false;
145
            cutscene_advance(10);
146
        }
147
        break;
148
    case 10:
149
        event_music = audio_play_sound(mus_axis_chase, 1, 1);
150
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
151
        cutscene_advance();
152
        break;
153
    case 11:
154
        with (obj_axis_npc)
155
        {
156
            can_walk = false;
157
            action_sprite = true;
158
            path_start(pt_steamworks_21_axis_chase, axis_run_speed, path_action_stop, false);
159
        }
160
        axis_is_running = true;
161
        cutscene_advance();
162
        break;
163
    case 12:
164
        if (point_in_rectangle(obj_pl.x, obj_pl.y, 200, 660, 280, 720))
165
        {
166
            scr_cutscene_start
scr_cutscene_start

function scr_cutscene_start() { global.cutscene = true; obj_pl.state = scr_frozen_state; obj_pl.image_index = 0; obj_pl.image_speed = 0; }
();
167
            cutscene_instance_create(obj_pl.x, obj_pl.y, 1168);
168
        }
169
        break;
170
    case 13:
171
        cutscene_npc_walk(1168, 210, 700, 4, "y", "up");
172
        break;
173
    case 14:
174
        cutscene_advance();
175
        break;
176
    case 15:
177
        if (obj_axis_npc.path_position < 0.95)
178
            obj_axis_npc.path_position = 0.95;
179
        if (global.route == 2)
180
        {
181
            cutscene_wait(0.75);
182
        }
183
        else if (axis_is_running == false && cutscene_wait(0.75))
184
        {
185
            if (!instance_exists(obj_axis_chase_blocker))
186
            {
187
                with (instance_create_depth(200, 680, 0, obj_axis_chase_blocker))
188
                {
189
                    image_xscale = 4;
190
                    image_yscale = 1;
191
                }
192
            }
193
            cutscene_advance(47);
194
            instance_destroy(obj_player_npc);
195
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
196
        }
197
        break;
198
    case 16:
199
        if (axis_is_running == false)
200
            cutscene_npc_direction(1161, "left");
201
        break;
202
    case 17:
203
        cutscene_npc_direction(1168, "right");
204
        break;
205
    case 18:
206
        cutscene_dialogue();
207
        with (msg)
208
        {
209
            sndfnt = 108;
210
            message[0] = "* Clover! The lockers!";
211
            message[1] = "* Follow me!";
212
            prt[0] = 370;
213
            prt[1] = 370;
214
        }
215
        break;
216
    case 19:
217
        cutscene_npc_walk(1161, 76, 740, 4, "y", "up");
218
        cutscene_advance();
219
        break;
220
    case 20:
221
        cutscene_npc_walk(1168, 117, 735, 4, "y", "up");
222
        cutscene_advance();
223
        break;
224
    case 21:
225
        if (obj_ceroba_npc.npc_arrived)
226
        {
227
            with (obj_steamworks_21_locker_tall)
228
            {
229
                if (image_index == 0 && obj_ceroba_npc.image_alpha > 0)
230
                {
231
                    audio_play_sound(snd_undertale_snap, 1, 0);
232
                    image_index = 1;
233
                }
234
            }
235
            if (obj_ceroba_npc.image_alpha > 0)
236
                obj_ceroba_npc.image_alpha -= 0.2;
237
            if (obj_ceroba_npc.image_alpha <= 0 && obj_steamworks_21_locker_tall.image_index == 1)
238
            {
239
                audio_play_sound(snd_undertale_thud, 1, 0);
240
                obj_steamworks_21_locker_tall.image_index = 0;
241
            }
242
        }
243
        if (obj_player_npc.npc_arrived)
244
        {
245
            with (obj_steamworks_21_locker)
246
            {
247
                if (image_index == 0 && obj_player_npc.image_alpha > 0)
248
                {
249
                    audio_play_sound(snd_undertale_snap, 1, 0);
250
                    image_index = 1;
251
                }
252
            }
253
            if (obj_player_npc.image_alpha > 0)
254
                obj_player_npc.image_alpha -= 0.2;
255
            if (obj_player_npc.image_alpha <= 0 && obj_steamworks_21_locker.image_index == 1)
256
            {
257
                audio_play_sound(snd_undertale_thud, 1, 0);
258
                obj_steamworks_21_locker.image_index = 0;
259
            }
260
        }
261
        if (obj_player_npc.image_alpha == 0 && obj_ceroba_npc.image_alpha == 0)
262
            cutscene_advance();
263
        break;
264
    case 22:
265
        cutscene_wait(1);
266
        break;
267
    case 23:
268
        cutscene_camera_move(obj_pl.x, obj_axis_npc.y + 40, 2);
269
        break;
270
    case 24:
271
        if (obj_axis_npc.sprite_index != spr_axis_down_bonk_restore)
272
        {
273
            obj_axis_npc.sprite_index = spr_axis_down_bonk_restore;
274
            obj_axis_npc.image_index = 0;
275
            obj_axis_npc.image_speed = 1;
276
        }
277
        if (obj_axis_npc.image_index >= (obj_axis_npc.image_number - 1))
278
        {
279
            obj_axis_npc.action_sprite = false;
280
            obj_axis_npc.npc_direction = "down";
281
            tile_layer_hide(-99899);
282
            cutscene_advance();
283
        }
284
        break;
285
    case 25:
286
        cutscene_wait(1);
287
        break;
288
    case 26:
289
        cutscene_camera_move(obj_pl.x, obj_pl.y, 2, true);
290
        with (obj_axis_npc)
291
        {
292
            action_sprite = true;
293
            if (path_index != pt_steamworks_21_axis_walk && other.axis_is_running == false)
294
            {
295
                other.axis_is_running = true;
296
                path_start(pt_steamworks_21_axis_walk, 3, path_action_stop, false);
297
            }
298
            if (path_position >= 1)
299
            {
300
                action_sprite = false;
301
                axis_is_running = false;
302
                other.scene += 1;
303
            }
304
        }
305
        break;
306
    case 27:
307
        cutscene_wait(0.5);
308
        break;
309
    case 28:
310
        cutscene_npc_direction(1166, "up");
311
        break;
312
    case 29:
313
        cutscene_wait(0.5);
314
        break;
315
    case 30:
316
        cutscene_npc_direction(1166, "left");
317
        break;
318
    case 31:
319
        cutscene_wait(0.5);
320
        break;
321
    case 32:
322
        cutscene_npc_direction(1166, "down");
323
        break;
324
    case 33:
325
        cutscene_wait(1);
326
        break;
327
    case 34:
328
        cutscene_dialogue();
329
        with (msg)
330
        {
331
            sndfnt = 111;
332
            message[0] = "* HOW.";
333
            prt[0] = 473;
334
        }
335
        break;
336
    case 35:
337
        cutscene_wait(0.25);
338
        break;
339
    case 36:
340
        cutscene_npc_walk(1166, -40, obj_axis_npc.y, 3, "x", "left");
341
        break;
342
    case 37:
343
        cutscene_wait(1);
344
        break;
345
    case 38:
346
        obj_ceroba_npc.npc_direction = "down";
347
        with (obj_steamworks_21_locker_tall)
348
        {
349
            if (image_index == 0 && obj_ceroba_npc.image_alpha < 1)
350
            {
351
                audio_play_sound(snd_undertale_snap, 1, 0);
352
                image_index = 1;
353
            }
354
        }
355
        if (obj_ceroba_npc.image_alpha < 1)
356
            obj_ceroba_npc.image_alpha += 0.2;
357
        if (obj_ceroba_npc.image_alpha >= 1)
358
        {
359
            audio_play_sound(snd_undertale_thud, 1, 0);
360
            obj_steamworks_21_locker_tall.image_index = 0;
361
            cutscene_advance();
362
        }
363
        break;
364
    case 39:
365
        cutscene_wait(0.25);
366
        break;
367
    case 40:
368
        obj_ceroba_npc.npc_direction = "right";
369
        obj_player_npc.npc_direction = "down";
370
        with (obj_steamworks_21_locker)
371
        {
372
            if (image_index == 0 && obj_player_npc.image_alpha < 1)
373
            {
374
                audio_play_sound(snd_undertale_snap, 1, 0);
375
                image_index = 1;
376
            }
377
        }
378
        if (obj_player_npc.image_alpha < 1)
379
            obj_player_npc.image_alpha += 0.2;
380
        if (obj_player_npc.image_alpha >= 1)
381
        {
382
            audio_play_sound(snd_undertale_thud, 1, 0);
383
            obj_steamworks_21_locker.image_index = 0;
384
            cutscene_advance();
385
        }
386
        break;
387
    case 41:
388
        cutscene_wait(0.25);
389
        break;
390
    case 42:
391
        obj_player_npc.npc_direction = "left";
392
        cutscene_dialogue();
393
        with (msg)
394
        {
395
            talker[0] = 1161;
396
            message[0] = "* Huff... Huff...";
397
            message[1] = "* This guy means#  business!";
398
            message[2] = "* My husband was one hell#  of an engineer.";
399
            message[3] = "* I just wonder why he#  kept all this from me?";
400
            message[4] = "* He could've left me#  some sort of off-switch,#  right?";
401
            message[5] = "* ...";
402
            message[6] = "* THE ROBOT! I totally#  forgot about our plan!";
403
            message[7] = "* Ugh, sorry. Next time#  we see Axis, we'll try#  it for sure.";
404
            prt[0] = 381;
405
            prt[1] = 394;
406
            prt[2] = 377;
407
            prt[3] = 370;
408
            prt[4] = 370;
409
            prt[5] = 394;
410
            prt[6] = 393;
411
            prt[7] = 394;
412
        }
413
        break;
414
    case 43:
415
        scr_actor_into_follower
scr_actor_into_follower

function scr_actor_into_follower(arg0, arg1) { if (!instance_exists(arg0)) return false; if (arg1 == -4) return false; instance_create(arg0.x, arg0.y, arg1); arg1.x = arg0.x; arg1.y = arg0.y; with (arg0) { switch (npc_direction) { case "up": arg1.sprite_index = arg1.up_sprite_idle; break; case "down": arg1.sprite_index = arg1.down_sprite_idle; break; case "left": arg1.sprite_index = arg1.left_sprite_idle; break; case "right": arg1.sprite_index = arg1.right_sprite_idle; break; } } instance_destroy(arg0); }
(1161, 1171);
416
        global.party_member = 1171;
417
        cutscene_advance();
418
        break;
419
    case 44:
420
        camera_set_view_target(view_camera[0], 1031);
421
        tile_layer_hide(-99999);
422
        cutscene_end();
423
        global.sworks_flag[12] = 2;
424
        break;
425
    case 45:
426
        with (obj_axis_npc)
427
            path_end();
428
        global.cutscene = true;
429
        cutscene_dialogue();
430
        with (msg)
431
        {
432
            talker[0] = 1166;
433
            if (global.sworks_flag[12] == 0)
434
            {
435
                message[0] = "* HALT.";
436
                message[1] = "* YOU ARE COMING WITH ME.";
437
                prt[0] = 473;
438
                prt[1] = 473;
439
            }
440
            else
441
            {
442
                message[0] = "* ENOUGH RUNNING.";
443
                prt[0] = 473;
444
            }
445
        }
446
        break;
447
    case 46:
448
        cutscene_change_room(172, 160, 290, 0.05);
449
        break;
450
    case 47:
451
        if (obj_steamworks_21_locker.waiter == 2)
452
            cutscene_advance(48);
453
        break;
454
    case 48:
455
        if (obj_axis_npc.sprite_index != spr_axis_down_bonk_restore)
456
        {
457
            obj_axis_npc.sprite_index = spr_axis_down_bonk_restore;
458
            obj_axis_npc.image_index = 0;
459
            obj_axis_npc.image_speed = 1;
460
        }
461
        if (obj_axis_npc.image_index >= (obj_axis_npc.image_number - 1))
462
        {
463
            obj_axis_npc.action_sprite = false;
464
            obj_axis_npc.npc_direction = "down";
465
            tile_layer_hide(-99899);
466
            cutscene_advance();
467
        }
468
        break;
469
    case 49:
470
        cutscene_wait(1);
471
        break;
472
    case 50:
473
        with (obj_axis_npc)
474
        {
475
            action_sprite = true;
476
            if (path_index != pt_steamworks_21_axis_walk_neutral && other.axis_is_running == false)
477
            {
478
                other.axis_is_running = true;
479
                path_start(pt_steamworks_21_axis_walk_neutral, 3, path_action_stop, false);
480
            }
481
            if (path_position >= 1)
482
            {
483
                if (obj_steamworks_21_locker.waiter == 0)
484
                {
485
                    action_sprite = false;
486
                    other.axis_is_running = false;
487
                    other.scene = 45;
488
                    global.sworks_flag[43] += 1;
489
                }
490
                else
491
                {
492
                    action_sprite = false;
493
                    other.axis_is_running = false;
494
                    other.scene += 1;
495
                }
496
            }
497
        }
498
        break;
499
    case 51:
500
        cutscene_wait(0.5);
501
        break;
502
    case 52:
503
        cutscene_npc_direction(1166, "up");
504
        break;
505
    case 53:
506
        cutscene_wait(0.5);
507
        break;
508
    case 54:
509
        cutscene_npc_direction(1166, "left");
510
        break;
511
    case 55:
512
        cutscene_wait(0.5);
513
        break;
514
    case 56:
515
        cutscene_npc_direction(1166, "down");
516
        break;
517
    case 57:
518
        cutscene_wait(1);
519
        break;
520
    case 58:
521
        cutscene_dialogue();
522
        with (msg)
523
        {
524
            sndfnt = 111;
525
            message[0] = "* HOW.";
526
            prt[0] = 473;
527
        }
528
        break;
529
    case 59:
530
        cutscene_npc_walk(1166, -40, obj_axis_npc.y, 3, "x", "left");
531
        break;
532
    case 60:
533
        cutscene_wait(0.5);
534
        break;
535
    case 61:
536
        with (obj_steamworks_21_locker)
537
            waiter = 3;
538
        global.sworks_flag[12] = 2;
539
        instance_destroy(obj_axis_npc);
540
        cutscene_end();
541
        break;
542
}
543
if (ceroba_is_running == true)
544
{
545
    with (obj_ceroba_npc)
546
    {
547
        image_speed = 1/3;
548
        if (direction == 0)
549
            sprite_index = spr_ceroba_right_run;
550
        else if (direction == 90)
551
            sprite_index = spr_ceroba_up_run;
552
        else if (direction == 180)
553
            sprite_index = spr_ceroba_left_run;
554
        else if (direction == 270)
555
            sprite_index = spr_ceroba_down_run;
556
        if (path_position >= 1)
557
        {
558
            action_sprite = false;
559
            npc_direction = "up";
560
            other.ceroba_is_running = false;
561
        }
562
    }
563
}
564
if (axis_is_running == true)
565
{
566
    with (obj_axis_npc)
567
    {
568
        if (path_position < 1)
569
        {
570
            image_speed = 1/3;
571
            if (direction == 0)
572
                sprite_index = spr_axis_right;
573
            else if (direction == 90)
574
                sprite_index = spr_axis_up;
575
            else if (direction == 180)
576
                sprite_index = spr_axis_left;
577
            else if (direction == 270)
578
                sprite_index = spr_axis_down;
579
            var player_is_caught = false;
580
            other.checkpoint_x = path_get_point_x(pt_steamworks_21_axis_chase, other.check_point_current);
581
            other.checkpoint_y = path_get_point_y(pt_steamworks_21_axis_chase, other.check_point_current);
582
            other.checkpoint_x_axis = path_get_point_x(pt_steamworks_21_axis_chase, other.check_point_current_axis);
583
            other.checkpoint_y_axis = path_get_point_y(pt_steamworks_21_axis_chase, other.check_point_current_axis);
584
            var distance_axis = point_distance(obj_axis_npc.x, obj_axis_npc.y, other.checkpoint_x, other.checkpoint_y);
585
            var distance_pl = point_distance(obj_pl.x, obj_pl.y, other.checkpoint_x, other.checkpoint_y);
586
            if (distance_pl <= 60)
587
            {
588
                if (other.check_point_current < path_get_number(pt_steamworks_21_axis_chase))
589
                    other.check_point_current += 1;
590
            }
591
            if (point_distance(obj_axis_npc.x, obj_axis_npc.y, other.checkpoint_x_axis, other.checkpoint_y_axis) < 60)
592
            {
593
                if (other.check_point_current_axis < path_get_number(pt_steamworks_21_axis_chase))
594
                    other.check_point_current_axis += 1;
595
            }
596
            if (other.check_point_current == other.check_point_current_axis && distance_pl > distance_axis && other.check_point_current < path_get_number(pt_steamworks_21_axis_chase))
597
            {
598
                if (!other.alarm[0])
599
                    other.alarm[0] = room_speed / 4;
600
            }
601
            if (distance_to_point(obj_pl.x, obj_pl.y) < 15)
602
            {
603
                scr_audio_fade_out
scr_audio_fade_out

function scr_audio_fade_out(arg0, arg1) { var snd = arg0; var fade_len = arg1; if (!audio_is_playing(snd)) return false; audio_sound_gain(snd, 0, fade_len); if (instance_exists(obj_audio_fade_helper)) { with (obj_audio_fade_helper) { if (audio_to_fade == snd) return false; } } with (instance_create(0, 0, obj_audio_fade_helper)) audio_to_fade = snd; }
(other.event_music, 300);
604
                player_is_caught = true;
605
            }
606
            if (player_is_caught && other.scene < 13)
607
            {
608
                scr_audio_fade_out
scr_audio_fade_out

function scr_audio_fade_out(arg0, arg1) { var snd = arg0; var fade_len = arg1; if (!audio_is_playing(snd)) return false; audio_sound_gain(snd, 0, fade_len); if (instance_exists(obj_audio_fade_helper)) { with (obj_audio_fade_helper) { if (audio_to_fade == snd) return false; } } with (instance_create(0, 0, obj_audio_fade_helper)) audio_to_fade = snd; }
(other.event_music, 300);
609
                other.scene = 45;
610
                global.sworks_flag[43] += 1;
611
            }
612
        }
613
        else if (sprite_index != spr_axis_down_bonk && other.scene < 20)
614
        {
615
            path_position = 1;
616
            audio_play_sound(snd_washpan_bonk, 1, 0);
617
            obj_axis_npc.sprite_index = spr_axis_down_bonk;
618
            obj_axis_npc.image_speed = 1;
619
            obj_axis_npc.image_index = 0;
620
            audio_stop_sound(other.event_music);
621
            other.axis_is_running = false;
622
        }
623
    }
624
}
625
if (scene >= 47 && obj_steamworks_21_locker.waiter == 0)
626
{
627
    with (obj_axis_npc)
628
    {
629
        if (distance_to_point(obj_pl.x, obj_pl.y) < 40)
630
        {
631
            action_sprite = false;
632
            axis_is_running = false;
633
            other.scene = 45;
634
            global.sworks_flag[43] += 1;
635
        }
636
    }
637
}
638
if (instance_exists(obj_axis_npc))
639
{
640
    with (obj_axis_npc)
641
    {
642
        if (sprite_index == spr_axis_down_bonk && image_index >= (image_number - 1))
643
        {
644
            image_index = image_number - 1;
645
            image_speed = 0;
646
        }
647
    }
648
}