Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_battle_flashback_final_2_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.x >= 870)
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
            scene++;
10
        }
11
        break;
12
    case 1:
13
        var dialogue = instance_create_depth(camera_get_view_x(view_camera[0]) + 140, camera_get_view_y(view_camera[0]) + 80, -9999, obj_dialogue_withered_floweys);
14
        with (dialogue)
15
        {
16
            message[0] = "* h-hello?";
17
            message[1] = "* where am i?";
18
        }
19
        scene++;
20
        break;
21
    case 2:
22
        if (!instance_exists(obj_dialogue_withered_floweys))
23
            scene++;
24
        break;
25
    case 3:
26
        cutscene_wait(1);
27
        break;
28
    case 4:
29
        sprite_index = -4;
30
        visible = true;
31
        draw_alpha_flowey += 0.1;
32
        if (draw_alpha_flowey >= 1)
33
            scene++;
34
        break;
35
    case 5:
36
        cutscene_wait(0.5);
37
        break;
38
    case 6:
39
        cutscene_camera_move(980, obj_pl.y, 1);
40
        break;
41
    case 7:
42
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
43
        scene++;
44
        break;
45
    case 8:
46
        if (obj_pl.x > (camera_get_view_x(view_camera[0]) + 160))
47
        {
48
            instance_destroy(obj_camera);
49
            camera_set_view_target(view_camera[0], 1031);
50
            scene++;
51
        }
52
        break;
53
    case 9:
54
        if (obj_pl.x > 1020)
55
        {
56
            with (obj_radio)
57
            {
58
                bgm = 615;
59
                event_user(0);
60
            }
61
            scene++;
62
        }
63
        break;
64
    case 10:
65
        var _fx_haze = layer_get_fx("distort_effect");
66
        var distort_amount_current = fx_get_parameter(_fx_haze, "g_Distort1Amount") + 0.2;
67
        if (distort_amount_current < 3)
68
        {
69
            fx_set_parameter(_fx_haze, "g_Distort1Amount", distort_amount_current);
70
            fx_set_parameter(_fx_haze, "g_Distort2Amount", distort_amount_current);
71
        }
72
        if (obj_pl.x > 5670)
73
        {
74
            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; }
(obj_radio.bgm, 1000);
75
            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; }
();
76
            instance_create(obj_pl.x, obj_pl.y, obj_player_npc);
77
            obj_player_npc.action_sprite = true;
78
            obj_player_npc.sprite_index = spr_pl_right;
79
            obj_player_npc.image_speed = 0.2;
80
            cutscene_advance();
81
        }
82
        break;
83
    case 11:
84
        cutscene_wait(2);
85
        break;
86
    case 12:
87
        obj_player_npc.y += (sign(170 - obj_pl.y) * 1);
88
        if (abs(obj_player_npc.y - 170) <= 2)
89
        {
90
            obj_player_npc.y = 170;
91
            cutscene_advance();
92
        }
93
        break;
94
    case 13:
95
        cutscene_wait(3);
96
        break;
97
    case 14:
98
        depth = 1000;
99
        if (flowey_bg_alpha < 1)
100
        {
101
            flowey_bg_alpha += 0.05;
102
        }
103
        else
104
        {
105
            cutscene_advance();
106
            var effect = audio_effect_create(AudioEffectType.Delay);
107
            effect.mix = 0.5;
108
            effect.time = 0.1;
109
            audio_bus_main.effects[0] = effect;
110
        }
111
        break;
112
    case 15:
113
        cutscene_wait(5);
114
        if (irandom(8) == 1)
115
        {
116
            var laugh = audio_play_sound(choose(23, 630), 1, 0, random_range(0.3, 0.5), 0, random_range(0.6, 1.2));
117
            audio_sound_set_track_position(laugh, random_range(0, audio_sound_length(laugh)));
118
            audio_sound_gain(laugh, 0, 300);
119
        }
120
        break;
121
    case 16:
122
        if (!audio_is_playing(mus_f_newlaugh) && !audio_is_playing(snd_flowey_laugh))
123
        {
124
            audio_bus_main.effects[0] = undefined;
125
            obj_player_npc.npc_direction = "right";
126
            obj_player_npc.action_sprite = false;
127
            cutscene_advance();
128
        }
129
        break;
130
    case 17:
131
        cutscene_wait(1);
132
        break;
133
    case 18:
134
        cutscene_camera_move(5750, obj_pl.y, 1);
135
        break;
136
    case 19:
137
        cutscene_wait(1);
138
        break;
139
    case 20:
140
        var dialogue = instance_create_depth(camera_get_view_x(view_camera[0]) + 100, camera_get_view_y(view_camera[0]) + 80, -9999, obj_dialogue_withered_floweys);
141
        with (dialogue)
142
            message[0] = "* what have i done.";
143
        scene++;
144
        break;
145
    case 21:
146
        if (!instance_exists(obj_dialogue_withered_floweys))
147
            scene++;
148
        break;
149
    case 22:
150
        loop_count = 7;
151
        if (cutscene_wait(1))
152
        {
153
            obj_player_npc.action_sprite = true;
154
            obj_player_npc.sprite_index = spr_pl_run_left;
155
            obj_player_npc.image_index = 0;
156
            obj_player_npc.image_speed = 0;
157
        }
158
        break;
159
    case 23:
160
        if (!audio_is_playing(mus_floweynew_yellow))
161
        {
162
            audio_sound_gain(mus_floweynew_yellow, 1, 0);
163
            flow_mus = audio_play_sound(mus_floweynew_yellow, 1, 0);
164
        }
165
        obj_player_npc.x += 2;
166
        obj_player_npc.image_index += 0.5;
167
        cutscene_wait(0.2);
168
        break;
169
    case 24:
170
        audio_stop_sound(mus_floweynew_yellow);
171
        loop_count--;
172
        if (loop_count > 0)
173
            scene = 23;
174
        else
175
            cutscene_advance();
176
        break;
177
    case 25:
178
        cutscene_instance_create(0, 0, 1372);
179
        flowey_bg_alpha = 0;
180
        break;
181
    case 26:
182
        if (!instance_exists(obj_screen_shatter_effect))
183
        {
184
            depth = 0;
185
            draw_alpha = 1;
186
            persistent = true;
187
            cutscene_change_room(233, 160, 1490, 0.1);
188
            if (!texture_is_ready("BattleHotlandFloweyPaper"))
189
                texture_prefetch("BattleHotlandFloweyPaper");
190
            if (!texture_is_ready("BattleHotlandFloweyGray"))
191
                texture_prefetch("BattleHotlandFloweyGray");
192
            if (!texture_is_ready("BattleHotlandFloweyClay"))
193
                texture_prefetch("BattleHotlandFloweyClay");
194
            if (!texture_is_ready("BattleHotlandFloweyMechanical"))
195
                texture_prefetch("BattleHotlandFloweyMechanical");
196
            if (!texture_is_ready("BattleHotlandFloweyLowpoly"))
197
                texture_prefetch("BattleHotlandFloweyLowpoly");
198
            if (!texture_is_ready("BattleHotlandFloweyYarn"))
199
                texture_prefetch("BattleHotlandFloweyYarn");
200
            if (!texture_is_ready("BattleHotlandFloweyOrganic"))
201
                texture_prefetch("BattleHotlandFloweyOrganic");
202
        }
203
        break;
204
    case 27:
205
        instance_destroy(obj_flowey_battle_ow_controller);
206
        obj_pl.image_alpha = 1;
207
        cutscene_wait(4);
208
        break;
209
    case 28:
210
        draw_alpha -= 0.1;
211
        if (draw_alpha <= 0)
212
            scene++;
213
        break;
214
    case 29:
215
        cutscene_end();
216
        break;
217
}
218
if (flowey_bg_alpha > 0)
219
    flowey_bg_offset -= 0.1;
220
if (room == rm_battle_flashback_final_2 && instance_exists(106520) && obj_pl.x > ((106520).bbox_right + 20))
221
    (106520).y = 160;
222
223
enum AudioEffectType
224
{
225
    Bitcrusher,
226
    Delay,
227
    Gain,
228
    HPF2,
229
    LPF2,
230
    Reverb1,
231
    Tremolo,
232
    PeakEQ,
233
    HiShelf,
234
    LoShelf,
235
    EQ,
236
    Compressor
237
}