Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_factory_03_numpad_Step_0

(view raw script w/o annotations or w/e)
1
switch (scene)
2
{
3
    case 0:
4
        if (keyboard_multicheck_pressed(0) && 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; } }
())
5
        {
6
            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; }
();
7
            cutscene_advance();
8
        }
9
        break;
10
    case 1:
11
        cutscene_dialogue();
12
        with (msg)
13
        {
14
            sndfnt = 108;
15
            message[0] = "* (You figured out a#  code?)";
16
            message[1] = "* (Hurry and give it a#  try!)";
17
            prt[0] = 370;
18
            prt[1] = 370;
19
        }
20
        break;
21
    case 2:
22
        if (!instance_exists(obj_factory_numpad_overlay))
23
            instance_create(0, 0, obj_factory_numpad_overlay);
24
        scene++;
25
        break;
26
    case 3:
27
        if (obj_factory_numpad_overlay.entry_correct == 1)
28
            scene = 7;
29
        else if (obj_factory_numpad_overlay.entry_correct == 0)
30
            scene = 5;
31
        break;
32
    case 5:
33
        if (instance_exists(obj_factory_numpad_overlay))
34
            exit;
35
        cutscene_dialogue();
36
        with (msg)
37
        {
38
            sndfnt = 108;
39
            message[0] = "* (Try something else!#  Come on!)";
40
            prt[0] = 370;
41
        }
42
        break;
43
    case 6:
44
        scene = 0;
45
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
46
        break;
47
    case 7:
48
        if (instance_exists(obj_factory_numpad_overlay))
49
            exit;
50
        cutscene_wait(1);
51
        break;
52
    case 7.5:
53
        instance_destroy(obj_factory_03_minigame);
54
        if (obj_axis_npc.x > 400)
55
        {
56
            if (cutscene_npc_walk(1166, 400, obj_axis_npc.y, 4, "x", "left"))
57
                cutscene_advance(8);
58
        }
59
        else
60
        {
61
            cutscene_advance(8);
62
        }
63
        break;
64
    case 8:
65
        instance_create(obj_pl.x, obj_pl.y, obj_player_npc);
66
        cutscene_follower_into_actor();
67
        audio_play_sound(snd_electric_flash, 1, 0);
68
        obj_factory_03_axis_flashlight.active = -1;
69
        break;
70
    case 9:
71
        cutscene_wait(0.25);
72
        break;
73
    case 10:
74
        audio_play_sound(snd_electric_flash, 1, 0);
75
        if (obj_factory_03_axis_flashlight.active == -1)
76
            obj_factory_03_axis_flashlight.active = 0;
77
        else
78
            obj_factory_03_axis_flashlight.active = -1;
79
        flash_count--;
80
        if (flash_count <= 0 && obj_factory_03_axis_flashlight.active == -1)
81
        {
82
            scene = 11;
83
            instance_destroy(obj_factory_03_axis_flashlight);
84
        }
85
        else
86
        {
87
            scene = 9;
88
        }
89
        break;
90
    case 11:
91
        if (cutscene_wait(1))
92
        {
93
            layer_set_visible("door_visible", true);
94
            audio_play_sound(snd_sliding_door_open, 1, 0);
95
            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.current_song, 500);
96
        }
97
        break;
98
    case 12:
99
        cutscene_wait(0.5);
100
        break;
101
    case 13:
102
        cutscene_npc_walk(1161, obj_pl.x - 30, obj_pl.y, 3, "x", "right");
103
        if (obj_ceroba_npc.x < obj_player_npc.x)
104
            obj_player_npc.npc_direction = "left";
105
        break;
106
    case 14:
107
        cutscene_dialogue();
108
        with (msg)
109
        {
110
            skippable = false;
111
            talker[0] = 1161;
112
            message[0] = "* Okay! Let's head#  upstairs before Axis- ";
113
            prt[0] = 377;
114
            if (cutoff >= string_length(message[message_current]))
115
            {
116
                other.scene++;
117
                global.dialogue_open = false;
118
                instance_destroy();
119
            }
120
        }
121
        break;
122
    case 15:
123
        with (obj_factory_03_minigame)
124
            instance_destroy();
125
        with (obj_axis_npc)
126
        {
127
            can_walk = false;
128
            y = 760;
129
            x = 480;
130
            npc_direction = "right";
131
        }
132
        cutscene_camera_move(620, obj_pl.y, 5);
133
        break;
134
    case 16:
135
        cutscene_wait(0.7);
136
        break;
137
    case 17:
138
        cutscene_dialogue();
139
        with (msg)
140
        {
141
            talker[0] = 1166;
142
            talker[1] = 1161;
143
            talker[4] = 1166;
144
            talker[7] = 1161;
145
            talker[9] = 1166;
146
            talker[13] = 1161;
147
            talker[14] = 1166;
148
            talker[15] = 1161;
149
            talker[16] = 1166;
150
            talker[17] = 1161;
151
            talker[19] = 1166;
152
            talker[20] = 1161;
153
            message[0] = "* HELLO.";
154
            message[1] = "* Axis!";
155
            message[2] = "* ...Juuust the bot I was#  looking for!";
156
            message[3] = "* How are you doing these#  days?";
157
            message[4] = "* NOT SO GOOD.";
158
            message[5] = "* I COULD ONLY SPEAK IN 15#  CHARACTERS (max) BACK#  THERE.";
159
            message[6] = "* IT KIND OF BUMMED ME#  OUT.";
160
            message[7] = "* I'm sorry to hear that.";
161
            message[8] = "* Glad you got your full#  speech ability back.";
162
            message[9] = "* THANK YOU. I DO LIKE#  TALKING.";
163
            message[10] = "* WAIT.";
164
            message[11] = "* WAIT????";
165
            message[12] = "* ARE YOU TRYING TO#  DISTRACT ME FROM MY#  MISSION.";
166
            message[13] = "* No.";
167
            message[14] = "* OH OKAY.";
168
            message[15] = "* Can I ask you a question#  involving the security#  of the Steamworks?";
169
            message[16] = "* YES I AM A SECURITY#  EXPERT.";
170
            message[17] = "* Why is it that some#  doors require a passcode#  to unlock...";
171
            message[18] = "* And others require a#  Steamworks ID?";
172
            message[19] = "* TWO-FACTOR#  AUTHENTICATION.";
173
            message[20] = "* Huh...";
174
            prt[0] = 473;
175
            prt[1] = 381;
176
            prt[2] = 3754;
177
            prt[3] = 3754;
178
            prt[4] = 473;
179
            prt[5] = 473;
180
            prt[6] = 473;
181
            prt[7] = 377;
182
            prt[8] = 370;
183
            prt[9] = 473;
184
            prt[10] = 473;
185
            prt[11] = 473;
186
            prt[12] = 473;
187
            prt[13] = 370;
188
            prt[14] = 473;
189
            prt[15] = 370;
190
            prt[16] = 473;
191
            prt[17] = 377;
192
            prt[18] = 370;
193
            prt[19] = 473;
194
            prt[20] = 370;
195
            if (message_current == 1)
196
            {
197
                obj_ceroba_npc.npc_direction = "left";
198
                if (!audio_is_playing(mus_enter_axis))
199
                    other.cutscene_music = audio_play_sound(mus_enter_axis, 1, 1);
200
            }
201
            if (message_current == 19)
202
                audio_stop_sound(other.cutscene_music);
203
        }
204
        break;
205
    case 18:
206
        cutscene_wait(1.5);
207
        break;
208
    case 19:
209
        cutscene_dialogue();
210
        with (msg)
211
        {
212
            talker[0] = 1166;
213
            talker[1] = 1161;
214
            message[0] = "* . . .";
215
            message[1] = "* . . .";
216
            prt[0] = 473;
217
            prt[1] = 371;
218
        }
219
        break;
220
    case 20:
221
        cutscene_wait(1);
222
        break;
223
    case 21:
224
        cutscene_npc_set_sprites(1168, 15, 16, 18, 17, 24, 21, 23, 22);
225
        break;
226
    case 22:
227
        cutscene_npc_set_sprites(1161, 81, 80, 78, 79, 61, 65, 60, 63);
228
        break;
229
    case 23:
230
        cutscene_npc_walk(1168, 740, 710, 4, "x", "up");
231
        cutscene_advance();
232
        break;
233
    case 24:
234
        cutscene_npc_walk(1161, 740, 710, 4, "x", "up");
235
        cutscene_advance();
236
        break;
237
    case 25:
238
        with (obj_player_npc)
239
        {
240
            if (y <= 755 && image_alpha > 0)
241
                image_alpha -= 0.2;
242
        }
243
        with (obj_ceroba_npc)
244
        {
245
            if (y <= 755 && image_alpha > 0)
246
                image_alpha -= 0.2;
247
        }
248
        if (obj_ceroba_npc.image_alpha <= 0 && obj_player_npc.image_alpha <= 0)
249
        {
250
            layer_set_visible("door_visible", false);
251
            audio_play_sound(snd_undertale_thud, 1, 0);
252
            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] intensity = arg1; } } enum e__VW { XView, YView, WView, HView, Angle, HBorder, VBorder, HSpeed, VSpeed, Object, Visible, XPort, YPort, WPort, HPort, Camera, SurfaceID }
(8, 2.5);
253
            cutscene_advance();
254
        }
255
        break;
256
    case 26:
257
        cutscene_wait(2.5);
258
        break;
259
    case 27:
260
        cutscene_dialogue();
261
        with (msg)
262
        {
263
            talker[0] = 1166;
264
            message[0] = "* COOL.";
265
            prt[0] = 473;
266
        }
267
        break;
268
    case 28:
269
        global.sworks_flag[37] = 3;
270
        cutscene_change_room(240, 400, 760, 0.03);
271
        break;
272
}