Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_flowey_world_controller_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
depth = -999999;
4
switch (scene)
5
{
6
    case 0:
7
        entrance_sound = audio_play_sound(snd_flowey_world_entrance, 1, 0);
8
        cutscene_advance();
9
        break;
10
    case 1:
11
        var sound_percentage = audio_sound_get_track_position(entrance_sound) / audio_sound_length(entrance_sound);
12
        var ef_distort = layer_get_fx("distort");
13
        var ef_scr = layer_get_fx("pixelate");
14
        fx_set_parameter(ef_distort, "g_DistortAmount", 40 - (sound_percentage * 40));
15
        fx_set_parameter(ef_scr, "g_CellSize", 15 - (sound_percentage * 15));
16
        if (!audio_is_playing(entrance_sound))
17
        {
18
            layer_set_visible("pixelate", false);
19
            layer_set_visible("distort", false);
20
            cutscene_advance();
21
        }
22
        break;
23
    case 2:
24
        cutscene_wait(1.5);
25
        break;
26
    case 3:
27
        if (!instance_exists(obj_flowey_world_text))
28
        {
29
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
30
            with (msg)
31
            {
32
                message[0] = "* You see, I've been#  watching you for a#  while.";
33
                message[1] = "* Gosh, what run is it?#  Gotta be in the hundreds.";
34
                message[2] = "* I've almost lost count!#  Haha...";
35
                soundfont = 96;
36
            }
37
        }
38
        if (!global.dialogue_open)
39
            cutscene_advance();
40
        break;
41
    case 4:
42
        actor_toriel = instance_create(obj_pl.x, obj_pl.y + 100, obj_toriel_npc);
43
        cutscene_music = audio_play_sound(mus_flowey_world, 1, 1);
44
        cutscene_advance();
45
        break;
46
    case 5:
47
        cutscene_npc_walk(actor_toriel, obj_pl.x, obj_pl.y + 30, 1, "x", "up");
48
        break;
49
    case 6:
50
        if (cutscene_wait(1))
51
        {
52
            obj_clovsleep_flashback.is_active = true;
53
            cutscene_advance(6.5);
54
        }
55
        break;
56
    case 6.5:
57
        if (cutscene_wait(1))
58
            cutscene_advance(7);
59
        break;
60
    case 7:
61
        if (!instance_exists(obj_flowey_world_text))
62
        {
63
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
64
            with (msg)
65
            {
66
                talker[0] = 1159;
67
                message[0] = "* Ah! Hello!";
68
                message[1] = "* Are you all right?";
69
                message[2] = "* You must be wondering#  what is going on...";
70
                message[3] = "* I am TORIEL, caretaker#  of the RUINS.";
71
                soundfont = 97;
72
            }
73
        }
74
        if (obj_flowey_world_text.message_current >= 3)
75
            cutscene_wait(1.5);
76
        break;
77
    case 8:
78
        cutscene_sfx_play(650, 1);
79
        instance_create_depth(0, 0, 0, obj_flashback_transition_glitch);
80
        break;
81
    case 9:
82
        instance_destroy(obj_flowey_world_text);
83
        obj_pl.x = 40;
84
        obj_pl.y = 192;
85
        obj_pl.direction = 0;
86
        actor_toriel.x = 248;
87
        actor_toriel.y = 193;
88
        actor_toriel.npc_direction = "left";
89
        actor_toriel.up_sprite_idle = 300;
90
        cutscene_advance();
91
        break;
92
    case 10:
93
        cutscene_wait(2);
94
        break;
95
    case 11:
96
        if (!instance_exists(obj_flowey_world_text))
97
        {
98
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
99
            with (msg)
100
            {
101
                message[0] = "* I let you carry on#  your merry way so#  many times.";
102
                soundfont = 96;
103
            }
104
        }
105
        if (!global.dialogue_open)
106
        {
107
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
108
            cutscene_advance();
109
        }
110
        break;
111
    case 12:
112
        if (actor_toriel.interact)
113
        {
114
            if (!instance_exists(obj_flowey_world_text))
115
            {
116
                global.cutscene = true;
117
                var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
118
                with (msg)
119
                {
120
                    if (other.tori_dialogue == 0)
121
                    {
122
                        other.tori_dialogue = 1;
123
                        message[0] = "* Go on, press the#  switch on the left.";
124
                        talker[0] = 1159;
125
                        skippable = true;
126
                    }
127
                    else
128
                    {
129
                        message[0] = "* You do know which#  way left is, do#  you not?";
130
                        message[1] = "* Press the switch that#  I labelled for you.";
131
                        talker[0] = 1159;
132
                        skippable = true;
133
                    }
134
                    soundfont = 97;
135
                }
136
            }
137
        }
138
        if (!global.dialogue_open)
139
            global.cutscene = false;
140
        x_offset_prev = 0;
141
        break;
142
    case 13:
143
        obj_flowey_world_camera.x_offset = 0;
144
        obj_flowey_world_camera.x_offset = choose(-5, 5);
145
        if (obj_flowey_world_camera.x_offset == x_offset_prev)
146
            obj_flowey_world_camera.x_offset *= -1;
147
        if (cutscene_wait(0.5))
148
            obj_flowey_world_camera.x_offset = 0;
149
        break;
150
    case 14:
151
        if (actor_toriel.interact)
152
        {
153
            if (!instance_exists(obj_flowey_world_text))
154
            {
155
                var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
156
                with (msg)
157
                {
158
                    talker[0] = 1159;
159
                    message[0] = "* Splendid!";
160
                    message[1] = "* I am proud of you,#  little one.";
161
                    soundfont = 97;
162
                }
163
            }
164
        }
165
        if (!global.dialogue_open)
166
            cutscene_advance();
167
        break;
168
    case 15:
169
        cutscene_sfx_play(650, 1);
170
        instance_create_depth(0, 0, 0, obj_flashback_transition_glitch);
171
        break;
172
    case 16:
173
        obj_pl.x = 500;
174
        obj_pl.y = 220;
175
        obj_pl.direction = 0;
176
        actor_toriel.x = 560;
177
        actor_toriel.y = 180;
178
        actor_toriel.npc_direction = "down";
179
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
180
        cutscene_advance();
181
        break;
182
    case 17:
183
        if (actor_toriel.interact)
184
        {
185
            if (!instance_exists(obj_flowey_world_text))
186
            {
187
                global.cutscene = true;
188
                var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
189
                with (msg)
190
                {
191
                    message[0] = "* Go ahead and#  push the rock!";
192
                    talker[0] = 1159;
193
                    skippable = true;
194
                    soundfont = 97;
195
                }
196
            }
197
            if (!global.dialogue_open)
198
                global.cutscene = false;
199
        }
200
        break;
201
    case 18:
202
        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; }
();
203
        obj_flowey_world_camera.x_offset = 0;
204
        obj_flowey_world_camera.x_offset = choose(-5, 5);
205
        if (obj_flowey_world_camera.x_offset == x_offset_prev)
206
            obj_flowey_world_camera.x_offset *= -1;
207
        if (cutscene_wait(0.5))
208
            obj_flowey_world_camera.x_offset = 0;
209
        break;
210
    case 19:
211
        if (!instance_exists(obj_flowey_world_text))
212
        {
213
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
214
            with (msg)
215
            {
216
                talker[0] = 1159;
217
                message[0] = "* You are learning#  so much, my child!";
218
                soundfont = 97;
219
            }
220
        }
221
        if (!global.dialogue_open)
222
            cutscene_advance();
223
        break;
224
    case 20:
225
        instance_create_depth(0, 0, 0, obj_flashback_transition_glitch);
226
        cutscene_advance();
227
        exit;
228
        break;
229
    case 21:
230
        cutscene_npc_set_sprites(1159, 3135, 59, 2613, 3261, 3135, 59, 2613, 3261);
231
        obj_pl.x = 896;
232
        obj_pl.y = 288;
233
        obj_pl.image_alpha = 0;
234
        actor_toriel.x = 896;
235
        actor_toriel.y = 288;
236
        actor_toriel.npc_direction = "right";
237
        actor_toriel.sprite_index = spr_toriel_down_hold;
238
        break;
239
    case 22:
240
        cutscene_npc_walk(actor_toriel, 946, 288, 1, "x", "up", -4, 946, 192, 1028, 192, 1028, 288);
241
        cutscene_wait(1.25);
242
        break;
243
    case 23:
244
        if (!instance_exists(obj_flowey_world_text))
245
        {
246
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
247
            with (msg)
248
            {
249
                message[0] = "* I watched the same#  childish behavior play#  out over...";
250
                soundfont = 96;
251
            }
252
        }
253
        if (!global.dialogue_open)
254
            cutscene_advance();
255
        break;
256
    case 24:
257
        cutscene_wait(1.8);
258
        break;
259
    case 25:
260
        instance_create_depth(0, 0, 0, obj_flashback_transition_glitch);
261
        cutscene_advance();
262
        break;
263
    case 26:
264
        cutscene_npc_set_sprites(1159, 3135, 2788, 2613, 3261, 3135, 2788, 2613, 3261);
265
        actor_toriel.x = 1215;
266
        actor_toriel.y = 200;
267
        actor_toriel.npc_direction = "right";
268
        obj_toriel_npc.current_destination = 0;
269
        cutscene_advance();
270
        break;
271
    case 27:
272
        cutscene_npc_walk(actor_toriel, 1460, 200, 1, "x", "right");
273
        cutscene_wait(1);
274
        break;
275
    case 28:
276
        if (!instance_exists(obj_flowey_world_text))
277
        {
278
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
279
            with (msg)
280
            {
281
                message[0] = "* And over...";
282
                soundfont = 96;
283
            }
284
        }
285
        if (!global.dialogue_open)
286
            cutscene_advance();
287
        break;
288
    case 29:
289
        cutscene_wait(1);
290
        break;
291
    case 30:
292
        instance_create_depth(0, 0, 0, obj_flashback_transition_glitch);
293
        cutscene_advance();
294
        break;
295
    case 31:
296
        actor_toriel.x = 1560;
297
        actor_toriel.y = 200;
298
        actor_toriel.npc_direction = "right";
299
        cutscene_advance();
300
        obj_toriel_npc.current_destination = 0;
301
        break;
302
    case 32:
303
        cutscene_npc_walk(actor_toriel, 1640, 200, 1, "x", "right");
304
        break;
305
    case 33:
306
        cutscene_wait(0.5);
307
        break;
308
    case 34:
309
        if (obj_flowey_world_blook.image_alpha > 0)
310
            obj_flowey_world_blook.image_alpha -= 0.1;
311
        else
312
            cutscene_advance();
313
        break;
314
    case 35:
315
        cutscene_wait(0.25);
316
        break;
317
    case 36:
318
        cutscene_npc_walk(actor_toriel, 1740, 164, 1, "x", "up");
319
        cutscene_advance();
320
        break;
321
    case 37:
322
        if (!instance_exists(obj_flowey_world_text))
323
        {
324
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
325
            with (msg)
326
            {
327
                message[0] = "* And over.";
328
                soundfont = 96;
329
            }
330
        }
331
        if (!global.dialogue_open)
332
            cutscene_advance();
333
        break;
334
    case 38:
335
        cutscene_wait(0.5);
336
        break;
337
    case 39:
338
        if (overlay_alpha < 0.99)
339
            overlay_alpha = lerp(overlay_alpha, 1, 0.05);
340
        else
341
            cutscene_advance();
342
        break;
343
    case 40:
344
        cutscene_wait(1);
345
        break;
346
    case 41:
347
        if (!instance_exists(obj_flowey_world_text))
348
        {
349
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
350
            with (msg)
351
            {
352
                message[0] = "* Sure, small decisions#  here and there would#  vary but...";
353
                soundfont = 96;
354
            }
355
        }
356
        if (!global.dialogue_open)
357
            cutscene_advance();
358
        break;
359
    case 42:
360
        cutscene_wait(0.5);
361
        break;
362
    case 43:
363
        room = rm_flashback_02;
364
        obj_pl.x = 160;
365
        obj_pl.y = 100;
366
        cutscene_advance();
367
        break;
368
    case 44:
369
        if (overlay_alpha > 0.01)
370
        {
371
            overlay_alpha = lerp(overlay_alpha, 0, 0.05);
372
        }
373
        else
374
        {
375
            overlay_alpha = 0;
376
            cutscene_advance();
377
        }
378
        break;
379
    case 45:
380
        cutscene_wait(1);
381
        break;
382
    case 46:
383
        if (!instance_exists(obj_flowey_world_text))
384
        {
385
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
386
            with (msg)
387
            {
388
                message[0] = "* The journey would always#  end with you ignorantly#  living with Toriel.";
389
                message[1] = "* I had to interfere.";
390
                soundfont = 96;
391
            }
392
        }
393
        if (!global.dialogue_open)
394
            cutscene_advance();
395
        break;
396
    case 47:
397
        cutscene_wait(1);
398
        break;
399
    case 48:
400
        obj_chairiel.can_talk = false;
401
        if (overlay_alpha < 0.99)
402
            overlay_alpha = lerp(overlay_alpha, 1, 0.05);
403
        else
404
            cutscene_advance();
405
        break;
406
    case 49:
407
        cutscene_wait(1);
408
        break;
409
    case 50:
410
        if (!instance_exists(obj_flowey_world_text))
411
        {
412
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
413
            with (msg)
414
            {
415
                message[0] = "* At first, my efforts#  seemed to work.";
416
                soundfont = 96;
417
            }
418
        }
419
        if (!global.dialogue_open)
420
            cutscene_advance();
421
        break;
422
    case 51:
423
        actor_toriel = instance_create(480, 70, obj_toriel_npc);
424
        actor_toriel.npc_direction = "up";
425
        obj_pl.x = 480;
426
        obj_pl.y = 130;
427
        obj_pl.direction = 90;
428
        obj_pl.image_alpha = 1;
429
        cutscene_advance();
430
        break;
431
    case 52:
432
        if (overlay_alpha > 0.01)
433
        {
434
            overlay_alpha = lerp(overlay_alpha, 0, 0.05);
435
        }
436
        else
437
        {
438
            overlay_alpha = 0;
439
            music_stop_noloop = false;
440
            instance_create(0, 0, obj_flashback_02_toriel_mini_cutscene);
441
            cutscene_advance();
442
        }
443
        break;
444
    case 53:
445
        cutscene_wait(1);
446
        break;
447
    case 54:
448
        if (!instance_exists(obj_flowey_world_text))
449
        {
450
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
451
            with (msg)
452
            {
453
                message[0] = "* Tensions rose and you#  left the Ruins.";
454
                message[1] = "* But then, other#  issues crept up...";
455
            }
456
        }
457
        else if (obj_flowey_world_text.message_current >= 1 && !music_stop_noloop)
458
        {
459
            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; }
(cutscene_music, 500);
460
            music_stop_noloop = true;
461
        }
462
        if (!global.dialogue_open)
463
            cutscene_advance();
464
        break;
465
    case 55:
466
        cutscene_wait(1);
467
        break;
468
    case 56:
469
        if (overlay_alpha < 0.99)
470
        {
471
            overlay_alpha = lerp(overlay_alpha, 1, 0.05);
472
        }
473
        else
474
        {
475
            instance_destroy(obj_flashback_02_toriel_mini_cutscene);
476
            cutscene_advance();
477
        }
478
        break;
479
    case 57:
480
        cutscene_wait(0.5);
481
        break;
482
    case 58:
483
        if (!instance_exists(obj_flowey_world_text))
484
        {
485
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
486
            with (msg)
487
            {
488
                message[0] = "* No matter how many#  times you journeyed on...";
489
                keep_on_screen = true;
490
            }
491
        }
492
        if (cutscene_wait(2.5))
493
            cutscene_music = audio_play_sound(mus_flowey_soundscape, 1, 0);
494
        break;
495
    case 59:
496
        cutscene_advance();
497
        break;
498
    case 60:
499
        obj_pl.x = 740;
500
        obj_pl.y = 80;
501
        obj_pl.direction = 0;
502
        cutscene_advance();
503
        break;
504
    case 61:
505
        if (overlay_alpha > 0.01)
506
        {
507
            overlay_alpha = lerp(overlay_alpha, 0, 0.1);
508
        }
509
        else
510
        {
511
            overlay_alpha = 0;
512
            with (obj_flowey_world_stalagmites)
513
                active = true;
514
            global.dialogue_open = false;
515
            cutscene_advance();
516
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
517
        }
518
        break;
519
    case 62:
520
        if (instance_exists(obj_heart_flowey_world_split))
521
            cutscene_advance();
522
        break;
523
    case 63:
524
        cutscene_wait(4);
525
        break;
526
    case 64:
527
        if (!instance_exists(obj_flowey_world_text))
528
        {
529
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
530
            with (msg)
531
            {
532
                message[0] = "* You always died.";
533
                keep_on_screen = true;
534
            }
535
        }
536
        cutscene_wait(2.5);
537
        break;
538
    case 65:
539
        cutscene_advance();
540
        break;
541
    case 66:
542
        obj_pl.x = 1140;
543
        obj_pl.y = 100;
544
        obj_pl.direction = 0;
545
        cutscene_advance();
546
        break;
547
    case 67:
548
        if (overlay_alpha > 0.01)
549
        {
550
            overlay_alpha = lerp(overlay_alpha, 0, 0.2);
551
        }
552
        else
553
        {
554
            overlay_alpha = 0;
555
            instance_create(0, 0, obj_flowey_world_spear_spawner);
556
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
557
            cutscene_advance();
558
        }
559
        break;
560
    case 68:
561
        if (instance_exists(obj_heart_flowey_world_split))
562
            cutscene_advance();
563
        break;
564
    case 69:
565
        cutscene_wait(3);
566
        break;
567
    case 70:
568
        obj_pl.x = 2320;
569
        obj_pl.y = 100;
570
        obj_pl.direction = 0;
571
        cutscene_advance();
572
        break;
573
    case 71:
574
        if (overlay_alpha > 0.01)
575
        {
576
            overlay_alpha = lerp(overlay_alpha, 0, 0.2);
577
        }
578
        else
579
        {
580
            overlay_alpha = 0;
581
            cutscene_advance();
582
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
583
        }
584
        break;
585
    case 72:
586
        show_debug_message(obj_flowey_world_camera.x_min[4]);
587
        if (obj_pl.x < 2084)
588
        {
589
            with (obj_flowey_world_lasers)
590
                lasers_activate = true;
591
            cutscene_advance();
592
        }
593
        break;
594
    case 73:
595
        if (obj_flowey_world_lasers.lasers_active == true)
596
        {
597
            instance_create_depth(obj_pl.x, obj_pl.y, obj_pl.depth, obj_flowey_world_clover_dead);
598
            cutscene_advance();
599
        }
600
        break;
601
    case 74:
602
        cutscene_wait(1);
603
        break;
604
    case 75:
605
        instance_create_depth(camera_get_view_x(view_camera[0]) + 160, camera_get_view_y(view_camera[0]) + 80, obj_flowey_world_controller.depth - 1, obj_heart_flowey_world_split_fast);
606
        instance_destroy(obj_flowey_world_clover_dead);
607
        cutscene_advance();
608
        break;
609
    case 76:
610
        cutscene_wait(3);
611
        break;
612
    case 77:
613
        global.dialogue_open = false;
614
        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; }
(cutscene_music, 500);
615
        cutscene_advance();
616
        break;
617
    case 78:
618
        if (!instance_exists(obj_flowey_world_text))
619
        {
620
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
621
            with (msg)
622
                message[0] = "* I had to steer you#  off the path of failure#  as early as possible.";
623
        }
624
        if (cutscene_wait(3.5))
625
            global.dialogue_open = false;
626
        break;
627
    case 79:
628
        room = rm_flashback_01;
629
        obj_pl.x = 196;
630
        obj_pl.y = 120;
631
        obj_pl.image_alpha = 0;
632
        cutscene_advance();
633
        break;
634
    case 80:
635
        layer_set_visible("pixelate", false);
636
        layer_set_visible("distort", false);
637
        cutscene_instance_create(196, 122, 81);
638
        break;
639
    case 81:
640
        if (overlay_alpha > 0.01)
641
        {
642
            overlay_alpha = lerp(overlay_alpha, 0, 0.05);
643
        }
644
        else
645
        {
646
            overlay_alpha = 0;
647
            cutscene_advance();
648
        }
649
        break;
650
    case 82:
651
        obj_tampering_flowey.is_active = true;
652
        cutscene_advance();
653
        break;
654
    case 83:
655
        if (!instance_exists(obj_flowey_world_text))
656
        {
657
            var msg = instance_create_depth(0, 0, -9999, obj_flowey_world_text);
658
            with (msg)
659
            {
660
                message[0] = "* So I tampered with#  a little switch and...";
661
                message[1] = "* Well, the rest#  is history!";
662
            }
663
        }
664
        if (!global.dialogue_open)
665
            cutscene_advance();
666
        break;
667
    case 84:
668
        if (overlay_alpha < 0.99)
669
            overlay_alpha = lerp(overlay_alpha, 1, 0.05);
670
        else
671
            cutscene_advance();
672
        break;
673
    case 85:
674
        room = rm_flashback_03;
675
        cutscene_wait(1.5);
676
        break;
677
    case 86:
678
        obj_pl.direction = 90;
679
        instance_create_depth(camera_get_view_x(view_camera[0]) + 160, camera_get_view_y(view_camera[0]) + 40, -99999, obj_flowey_rooftop_big);
680
        instance_create(camera_get_view_x(view_camera[0]) + 160, camera_get_view_y(view_camera[0]) + 180, obj_player_npc);
681
        cutscene_advance();
682
        break;
683
    case 87:
684
        if (overlay_alpha > 0.01)
685
        {
686
            overlay_alpha = lerp(overlay_alpha, 0, 0.05);
687
        }
688
        else
689
        {
690
            noise_pop = 0;
691
            cutscene_advance();
692
        }
693
        break;
694
    case 88:
695
        if (!instance_exists(obj_dialogue_flowey_alone))
696
            msg_flowey = instance_create(x, y, obj_dialogue_flowey_alone);
697
        if (!global.dialogue_open)
698
        {
699
            cutscene_advance();
700
            return true;
701
        }
702
        var flowey_face;
703
        with (msg_flowey)
704
        {
705
            sndfnt = 96;
706
            message[0] = "* ...";
707
            message[1] = "* Oh come on! You're still here?";
708
            message[2] = "* I thought at least my story#  might bore you so much that#  you'd give in!";
709
            message[3] = "* You really wanna do this the#  hard way? ";
710
            message[4] = "* Haha, alright then!";
711
            message[5] = "* Let's have a little fun before#  I absorb your SOUL for good!";
712
            switch (message_current)
713
            {
714
                case 0:
715
                    flowey_face = 2930;
716
                    break;
717
                case 1:
718
                    flowey_face = 3495;
719
                    break;
720
                case 2:
721
                    flowey_face = 699;
722
                    break;
723
                case 3:
724
                    flowey_face = 3573;
725
                    break;
726
                case 4:
727
                    flowey_face = 1953;
728
                    break;
729
                case 5:
730
                    flowey_face = 2921;
731
                    break;
732
                default:
733
                    flowey_face = 1358;
734
                    break;
735
            }
736
            switch (message_current)
737
            {
738
                case 3:
739
                case 4:
740
                    if (other.noise_pop < message_current)
741
                    {
742
                        other.noise_pop = message_current;
743
                        instance_create_depth(obj_flowey_rooftop_big.x, obj_flowey_rooftop_big.y, -999990, obj_flowey_rooftop_noise);
744
                    }
745
                    break;
746
            }
747
            if (message_current == 3)
748
            {
749
                sndfnt = 664;
750
                shake = true;
751
            }
752
            else
753
            {
754
                sndfnt = 96;
755
                shake = false;
756
            }
757
        }
758
        obj_flowey_rooftop_big.sprite_index = flowey_face;
759
        break;
760
    case 89:
761
        var x_original = obj_player_npc.xstart;
762
        var y_original = obj_player_npc.ystart;
763
        if (shake_intensity < 1)
764
        {
765
            shake_intensity = lerp(shake_intensity, 1.1, 0.02);
766
        }
767
        else
768
        {
769
            obj_player_npc.x = x_original;
770
            obj_player_npc.y = y_original;
771
            cutscene_advance();
772
            exit;
773
        }
774
        obj_player_npc.x = x_original;
775
        obj_player_npc.y = y_original;
776
        obj_player_npc.x = x_original + random_range(shake_intensity, -shake_intensity);
777
        obj_player_npc.y = y_original + random_range(shake_intensity, -shake_intensity);
778
        break;
779
    case 90:
780
        clover_hurt_count -= 1;
781
        audio_play_sound(snd_hurt, 1, 0);
782
        cutscene_instance_create(obj_player_npc.x, obj_player_npc.y, 293);
783
        cutscene_screenshake(0.5, 2);
784
        cutscene_advance(90.5);
785
        break;
786
    case 90.5:
787
        if (clover_hurt_count > 0)
788
        {
789
            if (cutscene_wait(1))
790
                cutscene_advance(90);
791
        }
792
        else if (cutscene_wait(1.5))
793
        {
794
            cutscene_advance(91);
795
        }
796
        break;
797
    case 91:
798
        instance_create_depth((obj_player_npc.x + 1) * 2, obj_player_npc.y * 2, obj_player_npc.depth + 1, obj_heart_flowey_battle_dummy);
799
        with (obj_player_npc)
800
        {
801
            scr_clover_defragment
scr_clover_defragment

function scr_clover_defragment() { if (live_call()) return global.live_result; var width = sprite_get_width(sprite_index); var height = sprite_get_height(sprite_index); i_inc = width / 20; j_inc = 2; var x_left = x - sprite_xoffset; var y_top = (y + sprite_yoffset) - sprite_height; for (var j = 0; j < height; j += j_inc) { part = instance_create(x_left, y_top + j, obj_piece_clover); with (part) { target_x = other.x; target_y = other.y; left = 0; top = j; self.width = width; self.height = other.j_inc; sprite_index = other.sprite_index;alarm[0] if (j == 0) event_perform(ev_alarm, 0); } } }
();
802
            instance_destroy(obj_player_npc, false);
803
        }
804
        cutscene_advance();
805
        break;
806
    case 92:
807
        cutscene_wait(3);
808
        break;
809
    case 93:
810
        with (obj_heart_flowey_battle_dummy)
811
        {
812
            x = lerp(x, 320, 0.05);
813
            y = lerp(y, 320, 0.05);
814
            if (point_distance(x, y, 320, 320) < 1)
815
                other.scene++;
816
        }
817
        break;
818
    case 94:
819
        global.battle_enemy_name = "flowey";
820
        global.battling_boss = true;
821
        global.battle_start = true;
822
        global.sound_carry_overworld = false;
823
        if (room != rm_death_screen)
824
            global.current_room_overworld = room_get_name(room);
825
        instance_destroy(obj_heart_flowey_battle_dummy);
826
        room_goto(rm_battle_flowey Flowey - Phase 1 Battle Room);
827
        obj_flowey_rooftop_big.persistent = true;
828
        obj_flowey_rooftop_big.image_xscale_base *= 2;
829
        obj_flowey_rooftop_big.image_yscale_base *= 2;
830
        obj_flowey_rooftop_big.x *= 2;
831
        obj_flowey_rooftop_big.y *= 2;
832
        cutscene_advance();
833
        break;
834
    case 95:
835
        cutscene_wait(1);
836
        break;
837
    case 96:
838
        with (instance_create_depth(obj_flowey_rooftop_big.x, obj_flowey_rooftop_big.y, -999990, obj_flowey_rooftop_noise))
839
        {
840
            image_xscale *= 2;
841
            image_yscale *= 2;
842
        }
843
        obj_flowey_rooftop_big.image_alpha = 0;
844
        cutscene_advance();
845
        break;
846
    case 97:
847
        cutscene_wait(0.5);
848
        break;
849
    case 98:
850
        instance_create_depth(obj_flowey_rooftop_big.x, 140, -999990, obj_battle_flowey_body_1);
851
        instance_create_depth(obj_flowey_rooftop_big.x, 140, -999991, obj_flowey_battle_noise);
852
        global.image_alpha_enemy_attacking_immunity = true;
853
        instance_destroy(obj_flowey_rooftop_big);
854
        cutscene_advance();
855
        break;
856
    case 99:
857
        cutscene_wait(1);
858
        break;
859
    case 100:
860
        while (instance_number(obj_battle_enemy_attack_fpellets) < 5)
861
            instance_create_depth(obj_battle_flowey_body_1.x, obj_battle_flowey_body_1.y, -1000, obj_battle_enemy_attack_fpellets);
862
        fight_music = audio_play_sound(mus_flowey_final_boss_1_intro, 1, 0);
863
        cutscene_advance();
864
        break;
865
    case 101:
866
        cutscene_wait(1);
867
        break;
868
    case 102:
869
        instance_create_depth(367, 110, -999, obj_quote_bubble_battle);
870
        instance_create_depth(0, 0, -9999, obj_quote_battle_flowey_final_1);
871
        cutscene_advance();
872
        break;
873
    case 103:
874
        if (instance_exists(obj_quote_battle_flowey_final_1))
875
            exit;
876
        with (obj_battle_enemy_attack_fpellets)
877
        {
878
            move = true;
879
            depth = obj_battle_flowey_body_1.depth - 1;
880
        }
881
        glitch_number = 0;
882
        cutscene_advance();
883
        break;
884
    case 104:
885
        var mus_pos = audio_sound_get_track_position(fight_music);
886
        var mus_length = audio_sound_length(fight_music);
887
        var glitch_out = false;
888
        switch (glitch_number)
889
        {
890
            case 0:
891
                if (mus_pos >= 8.7)
892
                    glitch_out = true;
893
                break;
894
            case 1:
895
                if (mus_pos >= 11.1)
896
                    glitch_out = true;
897
                break;
898
            case 2:
899
                if (mus_pos >= 14.4)
900
                    glitch_out = true;
901
                break;
902
            case 3:
903
                if (mus_pos >= 16.5)
904
                    glitch_out = true;
905
                break;
906
            case 4:
907
                if (mus_pos >= 17.5)
908
                    glitch_out = true;
909
                obj_battle_flowey_body_1.image_alpha = 0;
910
                break;
911
            case 5:
912
                if (mus_pos >= 17.6)
913
                    glitch_out = true;
914
                break;
915
            case 6:
916
                if (mus_pos >= mus_length)
917
                {
918
                    glitch_out = true;
919
                    white_overlay_alpha = 1;
920
                    global.battle_music = audio_play_sound(mus_flowey_final_boss_1_main, 1, 1);
921
                    cutscene_advance();
922
                }
923
                break;
924
        }
925
        if (glitch_out == true)
926
        {
927
            instance_create_depth(0, 0, -99999999, obj_flowey_battle_screen_glitch);
928
            glitch_number += 1;
929
        }
930
        break;
931
    case 105:
932
        obj_battle_flowey_body_1.image_alpha = 1;
933
        global.image_alpha_enemy_attacking = 1;
934
        cutscene_advance();
935
        instance_create_depth(0, 0, 0, obj_battle_flowey_background_ui);
936
        instance_destroy(obj_dialogue_box_battle_transformation_any_out);
937
        with (obj_dialogue_box_battle_transformation_any)
938
            event_user(0);
939
        scr_savegame_flowey
scr_savegame_flowey

function scr_savegame_flowey() { ini_open("Save.sav"); ini_write_real("Save1", "pX", obj_pl.x); ini_write_real("Save1", "pY", obj_pl.y); ini_write_real("Save1", "dir", obj_pl.direction); var SavedRoom = room; ini_write_real("Save1", "HP", global.current_hp_self); ini_write_real("Save1", "MAXHP", global.max_hp_self); ini_write_real("Save1", "PP", global.current_pp_self); ini_write_real("Save1", "MAXPP", global.max_pp_self); ini_write_real("Save1", "SP", global.current_sp_self); ini_write_real("Save1", "MAXSP", global.max_sp_self); ini_write_real("Save1", "RP", global.current_rp_self); ini_write_real("Save1", "MAXRP", global.max_rp_self); ini_write_real("Save1", "AT - Primary", global.player_attack); ini_write_real("Save1", "AT - Secondary", global.player_weapon_modifier_attack); ini_write_real("Save1", "DFP", global.player_defense); ini_write_real("Save1", "DFS", global.player_armor_modifier_defense); ini_write_real("Save1", "LV", global.player_level); ini_write_real("Save1", "EXP", global.player_exp); ini_write_real("Save1", "Gold", global.player_gold); ini_write_string("Save1", "Armor", global.player_armor); ini_write_string("Save1", "Weapon", global.player_weapon); ini_write_string("Save1", "Ammo", global.player_weapon_modifier); ini_write_string("Save1", "Accessory", global.player_armor_modifier); ini_write_string("Save1", "rmName", "???"); ini_write_string("Save1", "playerSprite", global.player_sprites); ini_write_real("Save1", "playerCanRun", global.player_can_run); if (global.party_member == -4) ini_write_string("Save1", "Follower", "noone"); else ini_write_string("Save1", "Follower", object_get_name(global.party_member)); ini_write_real("Save1", "Satchel", global.player_has_satchel); ini_write_real("Save1", "FTravel", global.player_can_travel); scr_determine_playtime(); ini_write_real("Playtime", "Seconds", global.elapsed_seconds); var ds_list_encounters = ds_list_write(global.encounter_list); ini_write_string("Encounters", "0", ds_list_encounters); var ds_list_steal = ds_list_write(global.steal_list); ini_write_string("Steal", "0", ds_list_steal); var ds_list_fasttravel = ds_list_write(global.fast_travel_list); ini_write_string("FastTravel", "0", ds_list_fasttravel); var inv1 = global.item_slot[1]; ini_write_string("Items", "00", global.item_slot[1]); ini_write_string("Items", "01", global.item_slot[2]); ini_write_string("Items", "02", global.item_slot[3]); ini_write_string("Items", "03", global.item_slot[4]); ini_write_string("Items", "04", global.item_slot[5]); ini_write_string("Items", "05", global.item_slot[6]); ini_write_string("Items", "06", global.item_slot[7]); ini_write_string("Items", "07", global.item_slot[8]); var ds_list_string = ds_list_write(global.box_slot_list); ini_write_string("DBox", "0", ds_list_string); ini_write_real("Misc", "01", global.tinypuzzle); for (var i = 0; i < array_length_1d(global.ruins_flag); i++) ini_write_real("RuinsFlags", string(i), global.ruins_flag[i]); for (var i = 0; i < array_length_1d(global.flag); i++) ini_write_real("Flags", string(i), global.flag[i]); for (var i = 0; i < array_length_1d(global.snowdin_flag); i++) ini_write_real("SnowdinFlags", string(i), global.snowdin_flag[i]); for (var i = 0; i < array_length_1d(global.dunes_flag); i++) ini_write_real("DunesFlags", string(i), global.dunes_flag[i]); for (var i = 0; i < array_length_1d(global.dunes_flag_ext); i++) ini_write_real("DunesFlagsExt", string(i), global.dunes_flag_ext[i]); for (var i = 0; i < array_length_1d(global.sworks_flag); i++) ini_write_real("SworksFlags", string(i), global.sworks_flag[i]); ini_write_string("SworksFlags", "code", global.factory_code); ds_list_string = ds_list_write(global.factory_code_2); ini_write_string("SworksFlags", "code2", ds_list_string); ini_write_string("SworksFlags", "code3", global.factory_code_3); ini_write_real("SworksFlags", "RbCount", global.sworks_robot_count); for (var i = 0; i < global.sworks_robot_count; i++) { ini_write_real("RbSprite", string(i), global.sworks_robot_sprite[i]); ini_write_real("RbX", string(i), global.sworks_robot_x[i]); ini_write_real("RbY", string(i), global.sworks_robot_y[i]); ini_write_real("RbD", string(i), global.sworks_robot_depth[i]); ini_write_real("RbS", string(i), global.sworks_robot_scale[i]); ini_write_real("RbA", string(i), global.sworks_robot_angle[i]); } ini_write_string("SworksFlags", "sworks_id", ds_grid_write(global.sworks_id_grid)); for (var i = 0; i < array_length_1d(global.item_stock); i++) ini_write_real("ItemStock", string(i), global.item_stock[i]); for (var i = 0; i < array_length_1d(global.hotland_flag); i++) ini_write_real("HotlandFlags", string(i), global.hotland_flag[i]); for (var i = 0; i < array_length_1d(global.flowey_flag); i++) ini_write_real("FloweyFlags", string(i), global.flowey_flag[i]); ini_write_real("FloweyFlags", "savenumber", global.flowey_save_number); for (var i = 0; i < array_length_1d(global.extra_flag); i++) ini_write_real("ExtraFlags", string(i), global.extra_flag[i]); for (var i = 0; i < array_length_1d(global.mail_flag); i++) ini_write_real("MailFlags", string(i), global.mail_flag[i]); ds_list_string = ds_list_write(global.mail_list); ini_write_string("Mail", "0", ds_list_string); ds_list_string = ds_list_write(global.mail_unclaimed_list); ini_write_string("MailUnclaimed", "0", ds_list_string); ini_write_real("Mail", "1", global.mail_count); for (var i = 0; i <= 5; i++) ini_write_real("Misc", string(i + 2), global.sideNpc[i]); var ds_map_string = ds_map_write(global.npc_map); ...
();
940
        break;
941
    case 106:
942
        white_overlay_alpha = lerp(white_overlay_alpha, 0, 0.2);
943
        if (white_overlay_alpha < 0.01)
944
        {
945
            obj_battle_flowey_body_1.depth = 0;
946
            obj_battle_flowey_body_1.can_draw_ghost = true;
947
            global.image_alpha_enemy_attacking_immunity = false;
948
            instance_destroy();
949
            exit;
950
        }
951
        break;
952
}
953
if (scene >= 21 && scene < 42)
954
{
955
    obj_pl.x = actor_toriel.x;
956
    obj_pl.y = actor_toriel.y;
957
}