Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_steamworks_18b_controller_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
switch (scene)
4
{
5
    case 0:
6
        if (obj_pl.y <= 200)
7
        {
8
            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; }
();
9
            cutscene_advance();
10
            obj_steamworks_mo.hsp = 6.5;
11
        }
12
        break;
13
    case 1:
14
        cutscene_audio_fade(obj_radio.current_song, 0, 500, 0.15, false, true);
15
        break;
16
    case 2:
17
        cutscene_music_start(164, 1);
18
        break;
19
    case 3:
20
        cutscene_wait(0.5);
21
        break;
22
    case 4:
23
        with (obj_steamworks_mo)
24
        {
25
            if (x == xstart && !audio_is_playing(snd_mo_slide))
26
                audio_play_sound(snd_mo_slide, 20, 0);
27
            if (hsp > 0)
28
            {
29
                hsp -= 0.1;
30
                x += hsp;
31
            }
32
            if (x >= 210)
33
            {
34
                action_sprite = false;
35
                npc_direction = "down";
36
                x = 210;
37
                other.scene++;
38
            }
39
        }
40
        break;
41
    case 5:
42
        cutscene_npc_reset_sprite(2063, "down");
43
        break;
44
    case 6:
45
        cutscene_dialogue();
46
        with (msg)
47
        {
48
            talker[0] = 2063;
49
            message[0] = "* Bam!";
50
            message[1] = "* It's ya boy, Mo!";
51
            message[2] = "* How did I get here?";
52
            message[3] = "* I got contacts, aight? Eyes#  all over the 'Ground.";
53
            message[4] = "* Enough chit-chat though, it's#  business time!";
54
            message[5] = "* As you know, I'm always#  scoutin' around for the next#  big thing, right? Right.";
55
            message[6] = "* So I was on my way here and#  spotted a buncha glowy plants#  on a wall.";
56
        }
57
        break;
58
    case 7:
59
        cutscene_wait(0.25);
60
        break;
61
    case 8:
62
        audio_play_sound(snd_mo_ignite, 1, 0);
63
        audio_play_sound(snd_flame_loop, 1, 1);
64
        cutscene_instance_create(obj_steamworks_mo.x - 3, obj_steamworks_mo.y - 18, 2067);
65
        break;
66
    case 9:
67
        cutscene_wait(0.25);
68
        break;
69
    case 10:
70
        cutscene_dialogue();
71
        with (msg)
72
        {
73
            talker[0] = 2063;
74
            message[0] = "* First thought that sprung to#  mind? Taste them.";
75
            message[1] = "* And I'll tell ya what, the#  stuff hit me like WAM!";
76
            message[2] = "* Best cuisine you'll ever#  experience, truly.";
77
            if (global.party_member == -4)
78
            {
79
                message[3] = "* I even molded them into#  recognizable food shapes for#  that visual appeal!";
80
                if (message_current == 1 && obj_steamworks_mo_flame.sprite_index == spr_mo_steamworks_fire_1)
81
                {
82
                    obj_steamworks_mo_flame.sprite_index = spr_mo_steamworks_fire_2;
83
                    audio_play_sound(snd_mo_ignite, 1, 0);
84
                }
85
                if (message_current == 3 && obj_steamworks_mo_flame.sprite_index == spr_mo_steamworks_fire_2)
86
                {
87
                    obj_steamworks_mo_flame.sprite_index = spr_mo_steamworks_fire_3;
88
                    audio_play_sound(snd_mo_ignite, 1, 0);
89
                }
90
            }
91
        }
92
        break;
93
    case 11:
94
        if (cutscene_wait(0.25))
95
        {
96
            if (global.party_member == -4)
97
                scene = 14;
98
        }
99
        break;
100
    case 12:
101
        cutscene_dialogue();
102
        with (msg)
103
        {
104
            sndfnt_array[0] = 108;
105
            talker[0] = 1171;
106
            message[0] = "* Uh...#  You got something...";
107
            prt[0] = 381;
108
            sndfnt_array[1] = 391;
109
            talker[1] = 2063;
110
            message[1] = "* I ain't done with the pitch#  yet, miss.";
111
            message[2] = "* This is important.";
112
            sndfnt_array[3] = 108;
113
            talker[3] = 1171;
114
            message[3] = "* But-";
115
            prt[3] = 384;
116
            sndfnt_array[4] = 391;
117
            talker[4] = 2063;
118
            message[4] = "* Like I was sayin', plants?#  More like PLEASED!!!!";
119
            message[5] = "* I even molded them into#  recognizable food shapes for#  that visual appeal!";
120
            if (message_current == 1 && obj_steamworks_mo_flame.sprite_index == spr_mo_steamworks_fire_1)
121
            {
122
                obj_steamworks_mo_flame.sprite_index = spr_mo_steamworks_fire_2;
123
                audio_play_sound(snd_mo_ignite, 1, 0);
124
            }
125
            if (message_current == 4 && obj_steamworks_mo_flame.sprite_index == spr_mo_steamworks_fire_2)
126
            {
127
                obj_steamworks_mo_flame.sprite_index = spr_mo_steamworks_fire_3;
128
                audio_play_sound(snd_mo_ignite, 1, 0);
129
            }
130
        }
131
        break;
132
    case 13:
133
        cutscene_wait(0.25);
134
        break;
135
    case 14:
136
        if (instance_exists(obj_steamworks_mo_flame))
137
            instance_destroy(obj_steamworks_mo_flame);
138
        cutscene_npc_action_sprite(2063, 1363, 1/3, false, 0, 334, 2);
139
        if (obj_steamworks_mo.image_index >= 7 && !instance_exists(obj_steamworks_mo_hat))
140
            instance_create(obj_steamworks_mo.x + 22, obj_steamworks_mo.y + 16, obj_steamworks_mo_hat);
141
        obj_steamworks_mo.down_sprite_idle = 1364;
142
        break;
143
    case 15:
144
        cutscene_npc_reset_sprite(2063, "down");
145
        break;
146
    case 16:
147
        cutscene_dialogue();
148
        with (msg)
149
        {
150
            talker[0] = 2063;
151
            message[0] = "* Visual appeal is half the#  battle I say!";
152
        }
153
        break;
154
    case 17:
155
        cutscene_wait(0.2);
156
        break;
157
    case 18:
158
        cutscene_npc_action_sprite(2063, 1362, 1/3, false, 0, 337, 4);
159
        if (obj_steamworks_mo.image_index >= 16 && obj_steamworks_mo_hat.sprite_index != spr_mo_steamworks_coat)
160
        {
161
            obj_steamworks_mo_hat.sprite_index = spr_mo_steamworks_coat;
162
            obj_steamworks_mo_hat.image_index = 0;
163
            obj_steamworks_mo_hat.image_speed = 1/3;
164
        }
165
        obj_steamworks_mo.down_sprite_idle = 1369;
166
        break;
167
    case 19:
168
        audio_stop_sound(snd_flame_loop);
169
        cutscene_dialogue();
170
        with (msg)
171
        {
172
            talker[0] = 2063;
173
            message[0] = "* Ain't nobody gonna buy ya#  product if it looks ugly#  right???";
174
        }
175
        break;
176
    case 20:
177
        cutscene_wait(0.2);
178
        break;
179
    case 21:
180
        if (obj_steamworks_mo_hat.sprite_index != spr_mo_steamworks_coat_light_up)
181
        {
182
            obj_steamworks_mo_hat.sprite_index = spr_mo_steamworks_coat_light_up;
183
            obj_steamworks_mo_hat.image_speed = 1;
184
        }
185
        if (obj_steamworks_mo_hat.image_index >= (obj_steamworks_mo_hat.image_number - 1))
186
        {
187
            instance_create(obj_steamworks_mo_hat.x, obj_steamworks_mo_hat.y, obj_steamworks_mo_flame);
188
            obj_steamworks_mo_hat.image_alpha = 0;
189
            obj_steamworks_mo_hat.image_speed = 0;
190
            obj_steamworks_mo_flame.sprite_index = spr_mo_steamworks_fire_4;
191
            obj_steamworks_mo_flame.image_alpha = 1;
192
            cutscene_advance();
193
        }
194
        break;
195
    case 22:
196
        cutscene_wait(0.8);
197
        break;
198
    case 23:
199
        cutscene_dialogue();
200
        with (msg)
201
        {
202
            talker[0] = 2063;
203
            message[0] = "* But you would, I know it. Ol'#  Mo can always count on your#  business!";
204
        }
205
        break;
206
    case 24:
207
        if (cutscene_wait(0.2))
208
            break;
209
    case 25:
210
        cutscene_npc_action_sprite(2063, 1378, 1/3, false, 0, 338, 6);
211
        if (obj_steamworks_mo.image_index >= 6 && obj_steamworks_mo_hat.hspeed == 0)
212
            obj_steamworks_mo_hat.state = 1;
213
        break;
214
    case 26:
215
        audio_stop_sound(snd_flame_loop);
216
        cutscene_wait(1.25);
217
        break;
218
    case 27:
219
        cutscene_dialogue();
220
        with (msg)
221
        {
222
            if (global.party_member != -4)
223
            {
224
                talker[0] = 1171;
225
                sndfnt_array[0] = 108;
226
                message[0] = "* You okay?";
227
                prt[0] = 370;
228
                talker[1] = 2063;
229
                sndfnt_array[1] = 391;
230
                message[1] = "* Never better, haha!";
231
                message[2] = "* Now, where's my stand?";
232
            }
233
            else
234
            {
235
                talker[0] = 2063;
236
                message[0] = "* Now, where's my stand?";
237
            }
238
        }
239
        break;
240
    case 28:
241
        cutscene_npc_set_sprites(2063, 1381, 1371, 1374, 1370, 1381, 1371, 1369, 1370);
242
    case 29:
243
        cutscene_npc_walk(2063, 260, obj_steamworks_mo.y, 2, "x", "down");
244
        break;
245
    case 30:
246
        cutscene_npc_action_sprite(2063, 1365, 1/3, false, 0, 303, 3);
247
        break;
248
    case 31:
249
        obj_steamworks_mo_stand.hspeed = 6.8;
250
        audio_play_sound(snd_mo_slide, 20, 0);
251
        cutscene_advance();
252
        break;
253
    case 32:
254
        with (obj_steamworks_mo_stand)
255
        {
256
            if (hspeed > 0)
257
                hspeed -= 0.1;
258
            if (x >= 210)
259
            {
260
                hspeed = 0;
261
                x = 210;
262
                other.scene++;
263
            }
264
            depth = 100;
265
        }
266
        obj_steamworks_mo_stand_sign.hspeed = obj_steamworks_mo_stand.hspeed;
267
        break;
268
    case 33:
269
        cutscene_wait(0.5);
270
        break;
271
    case 34:
272
        audio_pause_sound(cutscene_music);
273
        audio_play_sound(snd_mo_stand_explodes, 1, 0);
274
        with (obj_steamworks_mo)
275
        {
276
            action_sprite = true;
277
            sprite_index = spr_mo_steamworks_down_disappointed;
278
            image_speed = 0;
279
            image_index = 0;
280
        }
281
        with (obj_steamworks_mo_stand)
282
            image_speed = 0.25;
283
        cutscene_advance();
284
        break;
285
    case 35:
286
        if (obj_steamworks_mo_stand.image_index >= (obj_steamworks_mo_stand.image_number - 1))
287
        {
288
            obj_steamworks_mo_stand.image_speed = 0;
289
            obj_steamworks_mo_stand.image_index -= 1;
290
            cutscene_advance();
291
        }
292
        break;
293
    case 36:
294
        cutscene_wait(1.5);
295
        break;
296
    case 37:
297
        with (obj_steamworks_mo)
298
            action_sprite = false;
299
        obj_steamworks_mo.npc_direction = "left";
300
        cutscene_dialogue();
301
        with (msg)
302
            message[0] = "* ...";
303
        break;
304
    case 38:
305
        cutscene_wait(1.1);
306
        break;
307
    case 39:
308
        obj_steamworks_mo_stand_sign.image_speed = 1/3;
309
        sound_noloop = false;
310
        cutscene_advance();
311
        break;
312
    case 40:
313
        if (obj_steamworks_mo_stand_sign.image_index >= 4 && !sound_noloop)
314
        {
315
            audio_play_sound(snd_mart_impact_2, 1, 0);
316
            sound_noloop = true;
317
        }
318
        cutscene_wait(1.6);
319
        break;
320
    case 41:
321
        cutscene_npc_direction(2063, "down");
322
        break;
323
    case 42:
324
        cutscene_wait(0.35);
325
        break;
326
    case 43:
327
        cutscene_dialogue();
328
        with (msg)
329
        {
330
            talker[0] = 2063;
331
            message[0] = "* I... uh... I have a few#  products left in my pocket!";
332
            message[1] = "* Don't go yet!";
333
        }
334
        break;
335
    case 44:
336
        audio_resume_sound(cutscene_music);
337
        obj_steamworks_mo_stand_sign.depth = 10000;
338
        cutscene_advance();
339
        break;
340
    case 45:
341
        cutscene_npc_walk(2063, 210, 135, 3, "y", "down");
342
        if (obj_steamworks_mo.y < (obj_steamworks_mo_stand.y - 10))
343
            obj_steamworks_mo_stand.depth = -obj_steamworks_mo_stand.y;
344
        break;
345
    case 46:
346
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
347
        with (msg)
348
        {
349
            dialogue_is_minishop = true;
350
            portrait = false;
351
            position = 0;
352
            ch_msg = 0;
353
            ch[1] = "Moss Salad";
354
            ch[2] = "Grassy Fries";
355
            ch[3] = "Flower Stew";
356
            ch[4] = "Cancel";
357
            if (global.extra_flag[7] == true)
358
                ch[1] = "-SOLD OUT-";
359
            if (global.extra_flag[8] == true)
360
                ch[2] = "-SOLD OUT-";
361
            if (global.extra_flag[9] == true)
362
                ch[3] = "-SOLD OUT-";
363
            talker[0] = 2063;
364
            message[0] = "* Here's what I got. (30 G)";
365
            if (global.sworks_flag[10] == 1)
366
            {
367
                message[0] = "* I'm still open for business!";
368
                message[1] = "* Take a look! 30G an item!";
369
                ch_msg = 1;
370
            }
371
            switch (outcome)
372
            {
373
                case 1:
374
                case 2:
375
                case 3:
376
                    ch_msg = -1;
377
                    if (global.extra_flag[outcome + 6] == false)
378
                    {
379
                        if (!scr_inventory_check_space
scr_inventory_check_space

function scr_inventory_check_space() { for (var i = 1; i <= 8; i++) { if (global.item_slot[i] == "Nothing") { return true; break; } else if (i == 8) { return false; } } }
())
380
                        {
381
                            message[message_current + 1] = "* You seem to be carryin' a lot,#  buddy!";
382
                            message[message_current + 2] = "* Come back with a lighter load!";
383
                        }
384
                        else if (global.player_gold < 30)
385
                        {
386
                            message[message_current + 1] = "* Sorry, a monster's gotta make#  a profit from their#  investments.";
387
                            message[message_current + 2] = "* Need that G.";
388
                        }
389
                        else
390
                        {
391
                            talker[message_current + 1] = -4;
392
                            talker[message_current + 2] = 2063;
393
                            message[message_current + 1] = "* (You got some " + ch[outcome] + "!)";
394
                            message[message_current + 2] = "* Appreciate it!";
395
                            global.player_gold -= 30;
396
                            scr_item
scr_item

function scr_item(arg0) { nm = arg0; for (var i = 1; i <= 8; i++) { if (global.item_slot[i] == "Nothing") { global.item_slot[i] = nm; return true; break; } else if (i == 8) { return false; } } }
(ch[outcome]);
397
                            global.extra_flag[outcome + 6] = true;
398
                        }
399
                    }
400
                    else
401
                    {
402
                        message[message_current + 1] = "* What a popular item! I wish I#  could sell you more, but I'm#  fresh out.";
403
                        choice = false;
404
                    }
405
                    other.scene++;
406
                    break;
407
                case 4:
408
                    ch_msg = -1;
409
                    message[message_current + 1] = "* You're... leavin'?";
410
                    message[message_current + 2] = "* My products are high-quality,#  I swear!";
411
                    message[message_current + 3] = "* Come on, pal!";
412
                    other.scene++;
413
                    break;
414
            }
415
        }
416
        break;
417
    case 47:
418
        if (global.dialogue_open)
419
            exit;
420
        if (global.extra_flag[7] && global.extra_flag[8] && global.extra_flag[9])
421
        {
422
            scene = 48.5;
423
            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; }
(164, 750);
424
            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; }
();
425
            exit;
426
        }
427
        if (global.sworks_flag[10] == 0)
428
        {
429
            global.sworks_flag[10] = 1;
430
            global.cutscene = false;
431
        }
432
        cutscene_advance();
433
        break;
434
    case 48:
435
        with (obj_steamworks_mo)
436
        {
437
            if (scr_interact
scr_interact

function scr_interact() { if (distance_to_object(obj_pl) < 20 && obj_pl.state == scr_normal_state) { var pl_dir = obj_pl.direction; var pl_x = 0; var pl_y = 0; var check_distance_x = 0; var check_distance_y = 0; switch (pl_dir) { case 0: pl_x = obj_pl.bbox_right; pl_y = obj_pl.bbox_top + 1; check_distance_x = 20; break; case 180: pl_x = obj_pl.bbox_left; pl_y = obj_pl.bbox_top + 1; check_distance_x = -20; break; case 90: pl_x = obj_pl.x; pl_y = obj_pl.bbox_top; check_distance_y = -20; break; case 270: pl_x = obj_pl.x; pl_y = obj_pl.bbox_bottom; check_distance_y = 20; break; } if (collision_line_first(pl_x, pl_y, pl_x + check_distance_x, pl_y + check_distance_y, id, false, false)) return true; } }
() && keyboard_multicheck_pressed(0))
438
                other.scene = 46;
439
        }
440
        break;
441
    case 48.5:
442
        if (cutscene_wait(1))
443
            scene = 49;
444
        break;
445
    case 49:
446
        var sale_number = 0;
447
        for (var i = 1; i < array_length(global.extra_flag); i++)
448
        {
449
            if (global.extra_flag[i] == true)
450
                sale_number += 1;
451
        }
452
        cutscene_dialogue();
453
        with (msg)
454
        {
455
            talker[0] = 2063;
456
            if (sale_number <= 3)
457
            {
458
                message[0] = "* Well... that's all I got.";
459
                message[1] = "* You never were very interested#  in my wares, huh?";
460
                message[2] = "* I guess I'm quite the lousy#  salesman when push comes to#  shove.";
461
                message[3] = "* Thanks for ya time.";
462
            }
463
            else if (sale_number < 9)
464
            {
465
                message[0] = "* You cleared me out!";
466
                message[1] = "* Thanks for spending all that#  G. Ya boy appreciates it!";
467
                message[2] = "* All in all, you've been a good#  customer.";
468
                message[3] = "* If ya ever need somethin', you#  can always count on me for#  quality!";
469
            }
470
            else
471
            {
472
                message[0] = "* I ain't the down-to-earth type#  but uh... Thanks...";
473
                message[1] = "* Ya know... for supportin' me so#  much.";
474
                message[2] = "* You emptied my inventory every#  time we crossed paths.";
475
                message[3] = "* I've been in a bit of#  financial trouble to be#  frank...";
476
                message[4] = "* But because of you, (and a#  little luck), I might be able#  to put that behind me.";
477
                message[5] = "* Ya done good, kid. Catch ya#  later!";
478
            }
479
        }
480
        break;
481
    case 50:
482
        cutscene_npc_walk(2063, 210, 115, 1, "y", "down");
483
        break;
484
    case 51:
485
        cutscene_wait(1);
486
        break;
487
    case 52:
488
        cutscene_npc_direction(2063, "down");
489
        break;
490
    case 53:
491
        cutscene_npc_action_sprite(2063, 1365, 1/3, false, 0, 303, 3);
492
        break;
493
    case 54:
494
        cutscene_wait(0.5);
495
        break;
496
    case 55:
497
        cutscene_sfx_play(325, 1);
498
        break;
499
    case 56:
500
        cutscene_wait(0.5);
501
        if (instance_exists(obj_camera))
502
            instance_destroy(obj_camera);
503
        break;
504
    case 57:
505
        cutscene_camera_move(obj_pl.x, 130, 1);
506
        break;
507
    case 58:
508
        cutscene_instance_create(210, -40, 437);
509
        break;
510
    case 59:
511
        if (cutscene_npc_walk(437, 210, 95, 4, "y", "down"))
512
        {
513
            obj_manta_npc.action_sprite = true;
514
            obj_manta_npc.npc_dynamic_depth = false;
515
            obj_manta_npc.depth = 1000006;
516
            obj_manta_npc.sprite_index = spr_steamworks_manta_down_idle;
517
            obj_manta_npc.image_speed = 0.2;
518
        }
519
        break;
520
    case 60:
521
        cutscene_wait(0.5);
522
        break;
523
    case 61:
524
        cutscene_dialogue();
525
        with (msg)
526
        {
527
            talker[0] = 2063;
528
            message[0] = "* Mo, out!";
529
        }
530
        break;
531
    case 62:
532
        obj_steamworks_mo.npc_dynamic_depth = false;
533
        obj_steamworks_mo.depth = obj_manta_npc.depth - 100000;
534
        cutscene_npc_walk(2063, 210, 80, 3, "y", "down");
535
        break;
536
    case 63:
537
        cutscene_wait(0.5);
538
        break;
539
    case 64:
540
        obj_manta_npc.action_sprite = false;
541
        cutscene_npc_walk(437, 210, -60, 2, "y");
542
        obj_steamworks_mo.npc_direction = obj_manta_npc.npc_direction;
543
        obj_steamworks_mo.y = obj_manta_npc.y - 15;
544
        break;
545
    case 65:
546
        cutscene_wait(1);
547
        global.sworks_flag[10] = 2;
548
        scr_radio_restart
scr_radio_restart

function scr_radio_restart() { with (obj_radio) event_user(0); }
();
549
        break;
550
    case 66:
551
        cutscene_camera_move(obj_pl.x, obj_pl.y, 2);
552
        break;
553
    case 67:
554
        cutscene_camera_reset();
555
        cutscene_end();
556
        instance_destroy(obj_steamworks_mo);
557
        instance_destroy(obj_manta_npc);
558
        break;
559
}