Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_steamworks_05d_lever_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
if (global.sworks_flag[1] >= 4)
4
{
5
    if (global.route != 3 || global.sworks_flag[1] != 4)
6
    {
7
        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))
8
        {
9
            scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
10
            with (msg)
11
                message[0] = "* The generator is already#  running.";
12
        }
13
        exit;
14
    }
15
}
16
if (global.route != 3)
17
{
18
    switch (scene)
19
    {
20
        case 0:
21
            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))
22
            {
23
                audio_play_sound(snd_switch, 1, 0);
24
                image_speed = 1/3;
25
                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, 500);
26
                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; }
();
27
                cutscene_advance();
28
            }
29
            break;
30
        case 1:
31
            if ((image_index + image_speed) > 5)
32
            {
33
                image_index = 5;
34
                image_speed = 0;
35
                cutscene_advance();
36
            }
37
            break;
38
        case 2:
39
            cutscene_sfx_play(384, 1);
40
            break;
41
        case 3:
42
            cutscene_screenshake(1, 2);
43
            break;
44
        case 4:
45
            cutscene_wait(1);
46
            break;
47
        case 5:
48
            image_speed = 0.25;
49
            cutscene_advance();
50
            break;
51
        case 6:
52
            if ((image_index + image_speed) > (image_number - 1))
53
            {
54
                image_index = image_number - 1;
55
                image_speed = 0;
56
                cutscene_advance();
57
            }
58
            break;
59
        case 7:
60
            global.sworks_flag[1] = 3;
61
            instance_destroy(obj_steamworks_metal_sounds);
62
            obj_radio.bgm = 215;
63
            scr_radio_restart
scr_radio_restart

function scr_radio_restart() { with (obj_radio) event_user(0); }
();
64
            cutscene_advance();
65
            break;
66
        case 8:
67
            cutscene_wait(2);
68
            break;
69
        case 9:
70
            var tile = tile_get_ids_at_depth(1000006);
71
            for (var i = 0; i < array_length_1d(tile); i++)
72
                tile_set_alpha(tile[i], tile_alpha);
73
            audio_play_sound(snd_undertale_appear, 1, 0);
74
            if (tile_alpha >= 1)
75
            {
76
                cutscene_advance(12);
77
            }
78
            else
79
            {
80
                cutscene_advance();
81
                tile_alpha += 0.25;
82
            }
83
            break;
84
        case 10:
85
            cutscene_wait(0.25);
86
            break;
87
        case 11:
88
            cutscene_advance(9);
89
            break;
90
        case 12:
91
            cutscene_wait(0.25);
92
            break;
93
        case 13:
94
            if (cutscene_camera_move(400, obj_pl.y, 1, true) && obj_steamworks_05d_background.image_alpha >= 1)
95
                cutscene_advance();
96
            if (obj_camera.x <= 520 && !alarm[0])
97
                alarm[0] = 3;
gml_Object_obj_steamworks_05d_lever_Alarm_0.gml

obj_steamworks_05d_background.image_alpha += 0.02;
98
            break;
99
        case 14:
100
            cutscene_wait(2.5);
101
            break;
102
        case 15:
103
            cutscene_change_room(144, 220, 280, 0.025);
104
            break;
105
    }
106
}
107
else
108
{
109
    switch (scene)
110
    {
111
        case 0:
112
            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))
113
            {
114
                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, 500);
115
                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; }
();
116
                cutscene_advance();
117
            }
118
            break;
119
        case 1:
120
            cutscene_wait(0.5);
121
            break;
122
        case 2:
123
            audio_play_sound(snd_lever_strain, 1, 0);
124
            cutscene_advance();
125
            break;
126
        case 3:
127
            if (!audio_is_playing(snd_lever_strain))
128
            {
129
                cutscene_advance();
130
                image_index = 5;
131
            }
132
            break;
133
        case 4:
134
            cutscene_sfx_play(603, 1);
135
            break;
136
        case 5:
137
            cutscene_screenshake(1, 3);
138
            break;
139
        case 6:
140
            cutscene_wait(1);
141
            break;
142
        case 7:
143
            image_speed = 0.25;
144
            cutscene_advance();
145
            break;
146
        case 8:
147
            if ((image_index + image_speed) > (image_number - 1))
148
            {
149
                image_index = image_number - 1;
150
                image_speed = 0;
151
                cutscene_advance();
152
            }
153
            break;
154
        case 9:
155
            global.sworks_flag[1] = 3;
156
            instance_destroy(obj_steamworks_metal_sounds);
157
            scr_radio_restart
scr_radio_restart

function scr_radio_restart() { with (obj_radio) event_user(0); }
();
158
            cutscene_advance();
159
            break;
160
        case 10:
161
            cutscene_wait(2);
162
            flicker_count = 7;
163
            break;
164
        case 11:
165
            var tile = tile_get_ids_at_depth(1000006);
166
            if (flicker_count <= 0)
167
            {
168
                cutscene_advance(14);
169
                audio_play_sound(snd_geno_power_on, 1, 0);
170
                scr_screenshake
scr_screenshake

function scr_screenshake(arg0, arg1) { if (instance_exists(obj_screenshake_player)) exit; with (instance_create(__view_get(e__VW.Object, 0).x, __view_get(e__VW.Object, 0).y, obj_screenshake_player)) { alarm[0]
gml_Object_obj_steamworks_05d_lever_Alarm_0.gml

obj_steamworks_05d_background.image_alpha += 0.02;
intensity = arg1; } } enum e__VW { XView, YView, WView, HView, Angle, HBorder, VBorder, HSpeed, VSpeed, Object, Visible, XPort, YPort, WPort, HPort, Camera, SurfaceID }
(1, 2);
171
                obj_steamworks_05d_background.image_alpha = 1;
172
                tile_alpha = 1;
173
            }
174
            else
175
            {
176
                cutscene_advance();
177
                tile_alpha = random_range(0.25, 0.75);
178
                flicker_count -= 1;
179
            }
180
            for (var i = 0; i < array_length_1d(tile); i++)
181
                tile_set_alpha(tile[i], tile_alpha);
182
            var snd = audio_play_sound(snd_undertale_appear, 1, 0);
183
            audio_sound_pitch(snd, random_range(0.9, 1.35));
184
            break;
185
        case 12:
186
            cutscene_wait(0.13);
187
            break;
188
        case 13:
189
            cutscene_advance(11);
190
            break;
191
        case 14:
192
            cutscene_wait(0.25);
193
            break;
194
        case 15:
195
            cutscene_wait(2.5);
196
            break;
197
        case 16:
198
            cutscene_change_room(144, 220, 280, 0.025);
199
            break;
200
        case 17:
201
            cutscene_wait(1);
202
            break;
203
        case 18:
204
            cutscene_dialogue();
205
            with (msg)
206
            {
207
                color = true;
208
                col_modif[0] = 16711935;
209
                message[0] = "* ERROR: COOLANT PRESSURE LOW";
210
                message[1] = "* GENERATOR STATUS: UNSTABLE";
211
                message_col[0][0] = "* ERROR: COOLANT PRESSURE LOW";
212
                message_col[1][0] = "* GENERATOR STATUS: UNSTABLE";
213
            }
214
            break;
215
        case 19:
216
            cutscene_wait(1);
217
            break;
218
        case 20:
219
            cutscene_instance_create(630, 173, 3194);
220
            obj_flowey_npc.npc_direction = "right";
221
            obj_flowey_npc.image_alpha = 0;
222
            obj_pl.direction = 180;
223
            break;
224
        case 21:
225
            obj_flowey_npc.image_alpha = 1;
226
            cutscene_npc_action_sprite(3194, 242, 0.2, false);
227
            break;
228
        case 22:
229
            cutscene_wait(0.25);
230
            break;
231
        case 23:
232
            cutscene_dialogue();
233
            with (msg)
234
            {
235
                talker[0] = 3194;
236
                message[0] = "* Gee, wonder how that#  came to be?";
237
                message[1] = "* I think I'm gonna start#  praying for our safety.";
238
                message[2] = "* Ya know, in case the#  facility explodes while#  we're knee deep in it.";
239
                prt[0] = 353;
240
                prt[1] = 352;
241
                prt[2] = 351;
242
            }
243
            break;
244
        case 24:
245
            if (cutscene_npc_action_sprite(3194, 245, 0.2, false))
246
                instance_destroy(obj_flowey_npc);
247
            break;
248
        case 25:
249
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
250
            global.sworks_flag[1] = 5;
251
            scene++;
252
            break;
253
    }
254
}