Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_steamworks_13_controller_Step_0

(view raw script w/o annotations or w/e)
1
var xbound_left = 50;
2
var xbound_right = 180;
3
var ybound_top = 100;
4
var ybound_bottom = 190;
5
switch (scene)
6
{
7
    case 0:
8
        cutscene_wait(2);
9
        break;
10
        break;
11
    case 1:
12
        cutscene_dialogue();
13
        with (msg)
14
        {
15
            ch_msg = 16;
16
            ch[1] = "Yes";
17
            ch[2] = "No";
18
            talker[0] = 1161;
19
            message[0] = "* Ouch... Can't say I was#  prepared for that.";
20
            message[1] = "* I knew my husband was#  an engineer but he never#  told me about that guy.";
21
            message[2] = "* He'd mention a robotics#  project that could net#  him a promotion but...";
22
            message[3] = "* He stopped talking#  about it after he quit#  his job here.";
23
            message[4] = "* Ugh...";
24
            message[5] = "* I would've used force#  to bypass \"Axis\" but I...#  I'm not sure now.";
25
            message[6] = "* He may be the last#  remnant of Chujin's#  talent.";
26
            message[7] = "* It would be best if we#  could just avoid him#  from now on...";
27
            message[8] = "* ...";
28
            message[9] = "* In any case, we're#  pretty lucky he's the#  only guard-bot around.";
29
            message[10] = "* Wait a second...";
30
            message[11] = "* I have an idea!";
31
            message[12] = "* He mentioned how he was#  \"lonely\" right? Well#  what if we fixed that?";
32
            message[13] = "* We could use scraps#  lying around to forge a#  companion for him!";
33
            message[14] = "* He doesn't seem too#  bright after all. ";
34
            message[15] = "* Maybe that's all we#  need to distract him?";
35
            message[16] = "* What do you think?";
36
            prt[0] = 368;
37
            prt[1] = 377;
38
            prt[2] = 370;
39
            prt[3] = 394;
40
            prt[4] = 368;
41
            prt[5] = 366;
42
            prt[6] = 394;
43
            prt[7] = 370;
44
            prt[8] = 371;
45
            prt[9] = 377;
46
            prt[10] = 393;
47
            prt[11] = 372;
48
            prt[12] = 370;
49
            prt[13] = 371;
50
            prt[14] = 395;
51
            prt[15] = 372;
52
            prt[16] = 370;
53
            if (outcome == 1)
54
            {
55
                message[17] = "* Great!";
56
                message[18] = "* It's the best plan I#  could think of.";
57
                prt[17] = 372;
58
                prt[18] = 395;
59
            }
60
            if (outcome == 2)
61
            {
62
                message[17] = "* You got a better idea?";
63
                message[18] = "* It'll be easy, trust#  me.";
64
                prt[17] = 368;
65
                prt[18] = 370;
66
            }
67
            message[19] = "* So... ";
68
            message[20] = "* We seem to be in some#  sort of storage room.";
69
            message[21] = "* Look around for parts#  we can use. Shouldn't#  take many.";
70
            prt[19] = 377;
71
            prt[20] = 370;
72
            prt[21] = 370;
73
        }
74
        break;
75
    case 2:
76
        cutscene_npc_walk(1161, 105, 125, 3, "x", "down");
77
        break;
78
    case 3:
79
        global.sworks_flag[3] = 1;
80
        obj_ceroba_npc.npc_direction = "down";
81
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
82
        cutscene_advance();
83
        break;
84
    case 4:
85
        if (obj_ceroba_npc.interact)
86
        {
87
            scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
88
            with (msg)
89
            {
90
                talker[0] = 1161;
91
                message[0] = "* Find anything that looks#  like a makeshift body#  part.";
92
                message[1] = "* I don't know, be#  creative.";
93
                prt[0] = 370;
94
                prt[1] = 377;
95
            }
96
        }
97
        var robot_part_inside_zone = false;
98
        if (robot_part_no_loop == false)
99
        {
100
            with (obj_robuild_parent)
101
            {
102
                if (robot_item_is_carried && point_in_rectangle(x, y, xbound_left, ybound_top, xbound_right, ybound_bottom))
103
                    robot_part_inside_zone = true;
104
            }
105
        }
106
        if (robot_part_inside_zone)
107
        {
108
            if (obj_pl.x > (obj_ceroba_npc.x + 15))
109
            {
110
                obj_ceroba_npc.npc_direction_hold = "down";
111
                obj_ceroba_npc.npc_direction = "right";
112
            }
113
            scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
114
            switch (robot_part_current)
115
            {
116
                case 0:
117
                    with (msg)
118
                    {
119
                        talker[0] = 1161;
120
                        message[0] = "* You want to use this?";
121
                        prt[0] = 370;
122
                        ch_msg = 0;
123
                        ch[1] = "Positive";
124
                        ch[2] = "Negative";
125
                    }
126
                    break;
127
                case 1:
128
                    with (msg)
129
                    {
130
                        talker[0] = 1161;
131
                        message[0] = "* You think this'll work?";
132
                        prt[0] = 370;
133
                        ch_msg = 0;
134
                        ch[1] = "Certain";
135
                        ch[2] = "Uncertain";
136
                    }
137
                    break;
138
                case 2:
139
                    with (msg)
140
                    {
141
                        talker[0] = 1161;
142
                        message[0] = "* Is this a good pick?";
143
                        prt[0] = 370;
144
                        ch_msg = 0;
145
                        ch[1] = "Definitely";
146
                        ch[2] = "Definitely\nnot";
147
                    }
148
                    break;
149
                case 3:
150
                    with (msg)
151
                    {
152
                        talker[0] = 1161;
153
                        message[0] = "* Is this your final#  choice?";
154
                        prt[0] = 370;
155
                        ch_msg = 0;
156
                        ch[1] = "Yea";
157
                        ch[2] = "Nay";
158
                    }
159
                    break;
160
            }
161
            with (msg)
162
            {
163
                if (outcome == 1)
164
                {
165
                    global.cutscene = true;
166
                    with (obj_robuild_parent)
167
                    {
168
                        if (robot_item_is_carried == true)
169
                        {
170
                            robot_item_is_jumping = true;
171
                            robot_item_can_pickup = false;
172
                            robot_item_x_target = obj_steamworks_13_controller.robot_part_xx[obj_steamworks_13_controller.robot_part_current];
173
                            robot_item_y_target = obj_steamworks_13_controller.robot_part_yy[obj_steamworks_13_controller.robot_part_current];
174
                            audio_play_sound(snd_playerjump, 1, 0);
175
                            obj_steamworks_13_controller.robot_part[obj_steamworks_13_controller.robot_part_current] = editor_sprite;
176
                        }
177
                    }
178
                    other.robot_part_current += 1;
179
                    other.robot_part_no_loop = true;
180
                    other.scene++;
181
                }
182
                if (outcome == 2)
183
                {
184
                    message[1] = "* Grab something else#  then.";
185
                    prt[1] = 368;
186
                    other.robot_part_no_loop = true;
187
                }
188
            }
189
        }
190
        break;
191
    case 5:
192
        with (obj_robuild_parent)
193
        {
194
            if (robot_item_is_carried)
195
                exit;
196
        }
197
        cutscene_dialogue();
198
        switch (robot_part_current)
199
        {
200
            case 1:
201
                with (msg)
202
                {
203
                    talker[0] = 1161;
204
                    message[0] = "* Okay, we'll need three#  more objects.";
205
                    prt[0] = 370;
206
                }
207
                break;
208
            case 2:
209
                with (msg)
210
                {
211
                    talker[0] = 1161;
212
                    message[0] = "* Alright, two more and#  we can make this thing.";
213
                    prt[0] = 370;
214
                }
215
                break;
216
            case 3:
217
                with (msg)
218
                {
219
                    talker[0] = 1161;
220
                    message[0] = "* One more object should#  do the trick.";
221
                    prt[0] = 370;
222
                }
223
                break;
224
            case 4:
225
                with (msg)
226
                {
227
                    talker[0] = 1161;
228
                    message[0] = "* Okay, let's build a#  robot!";
229
                    prt[0] = 372;
230
                }
231
                break;
232
        }
233
        break;
234
    case 6:
235
        if (robot_part_current < 4)
236
        {
237
            scene = 4;
238
            global.cutscene = false;
239
            other.robot_part_no_loop = false;
240
            obj_ceroba_npc.npc_direction = "down";
241
        }
242
        else
243
        {
244
            scene = 7;
245
        }
246
        break;
247
    case 7:
248
        cutscene_audio_fade(obj_radio.current_song, 0, 800, 0.15, false, true);
249
        break;
250
    case 8:
251
        if (global.dialogue_open)
252
            exit;
253
        if (!instance_exists(obj_robot_build_controller))
254
            instance_create(0, 0, obj_robot_build_controller);
255
        for (var i = 0; i < array_length_1d(robot_part); i++)
256
            obj_robot_build_controller.robot_item[i] = robot_part[i];
257
        cutscene_advance();
258
        break;
259
    case 9:
260
        if (!instance_exists(obj_robot_build_controller))
261
        {
262
            scr_radio_restart
scr_radio_restart

function scr_radio_restart() { with (obj_radio) event_user(0); }
();
263
            cutscene_advance();
264
            exit;
265
        }
266
        if (obj_robot_build_controller.destroy_self == true)
267
        {
268
            with (obj_ceroba_npc)
269
            {
270
                x = 90;
271
                y = 190;
272
                npc_direction = "up";
273
            }
274
            with (obj_pl)
275
            {
276
                x = 130;
277
                y = 190;
278
                direction = 90;
279
            }
280
            if (!instance_exists(obj_steamworks_13_robuild_complete))
281
            {
282
                instance_create(110, 140, obj_steamworks_13_robuild_complete);
283
                overworld_robot_sprite[6] = 0;
284
                for (var i = 0; i < array_length(robot_part); i++)
285
                {
286
                    switch (robot_part[i])
287
                    {
288
                        case 1515:
289
                            overworld_robot_sprite[2] += 1;
290
                            overworld_robot_sprite[6] += 1;
291
                            break;
292
                        case 1513:
293
                            overworld_robot_sprite[2] += 1;
294
                            overworld_robot_sprite[3] += 1;
295
                            break;
296
                        case 1516:
297
                            overworld_robot_sprite[4] += 1;
298
                            overworld_robot_sprite[6] += 1;
299
                            break;
300
                        case 1522:
301
                            overworld_robot_sprite[4] += 1;
302
                            overworld_robot_sprite[5] += 1;
303
                            break;
304
                        case 1519:
305
                            overworld_robot_sprite[1] += 1;
306
                            break;
307
                        case 1514:
308
                            overworld_robot_sprite[2] += 1;
309
                            overworld_robot_sprite[3] += 1;
310
                            break;
311
                        case 1512:
312
                            overworld_robot_sprite[0] += 2;
313
                            break;
314
                        case 1521:
315
                            overworld_robot_sprite[0] += 1;
316
                            overworld_robot_sprite[4] += 1;
317
                            overworld_robot_sprite[5] += 1;
318
                            break;
319
                        case 1518:
320
                            overworld_robot_sprite[1] += 1;
321
                            overworld_robot_sprite[0] += 1;
322
                            break;
323
                    }
324
                }
325
                var new_image_index = 0;
326
                var max_points = max(overworld_robot_sprite[0], overworld_robot_sprite[1], overworld_robot_sprite[2], overworld_robot_sprite[3], overworld_robot_sprite[4], overworld_robot_sprite[5], overworld_robot_sprite[6]);
327
                for (var i = 0; i < array_length(overworld_robot_sprite); i++)
328
                {
329
                    if (max_points == overworld_robot_sprite[i])
330
                    {
331
                        new_image_index = i;
332
                        break;
333
                    }
334
                }
335
                global.sworks_flag[44] = new_image_index;
336
                obj_steamworks_13_robuild_complete.image_index = new_image_index;
337
            }
338
            with (obj_robuild_parent)
339
            {
340
                if (point_in_rectangle(x, y, xbound_left, ybound_top, xbound_right, ybound_bottom))
341
                    instance_destroy();
342
            }
343
        }
344
        break;
345
    case 10:
346
        cutscene_wait(1);
347
        break;
348
    case 11:
349
        cutscene_dialogue();
350
        with (msg)
351
        {
352
            talker[0] = 1161;
353
            message[0] = "* That takes care of#  that.";
354
            message[1] = "* You're kinda creative#  when push comes to#  shove.";
355
            message[2] = "* All due respect to#  Chujin's work but this#  might just fool Axis.";
356
            message[3] = "* I'll hold onto it for#  you.";
357
            prt[0] = 370;
358
            prt[1] = 372;
359
            prt[2] = 395;
360
            prt[3] = 372;
361
        }
362
        break;
363
    case 12:
364
        cutscene_npc_walk(1161, 110, 160, 3, "x", "up");
365
        break;
366
    case 13:
367
        obj_ceroba_npc.action_sprite = true;
368
        obj_ceroba_npc.sprite_index = spr_ceroba_up_walk;
369
        obj_ceroba_npc.image_speed = 1/3;
370
        global.sworks_flag[6] = 4;
371
        cutscene_advance();
372
        break;
373
    case 14:
374
        cutscene_wait(0.5);
375
        break;
376
    case 15:
377
        obj_ceroba_npc.action_sprite = false;
378
        instance_destroy(obj_steamworks_13_robuild_complete);
379
        cutscene_sfx_play(319, 1);
380
        break;
381
    case 16:
382
        cutscene_npc_direction(1161, "down");
383
        break;
384
    case 17:
385
        cutscene_wait(0.5);
386
        break;
387
    case 18:
388
        cutscene_dialogue();
389
        with (msg)
390
        {
391
            talker[0] = 1161;
392
            message[0] = "* Let's get outta here,#  yeah?";
393
            prt[0] = 370;
394
        }
395
        break;
396
    case 19:
397
        cutscene_npc_walk(1161, obj_pl.x - 30, obj_pl.y, 3, "y", "right");
398
        obj_pl.direction = 0;
399
        break;
400
    case 20:
401
        global.party_member = 1171;
402
        with (instance_create(obj_ceroba_npc.x, obj_ceroba_npc.y, global.party_member))
403
            npc_reset = true;
404
        instance_destroy(obj_ceroba_npc);
405
        global.sworks_flag[3] = 2;
406
        instance_destroy();
407
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
408
        break;
409
}
410
if (robot_part_no_loop == true)
411
{
412
    with (obj_pl)
413
    {
414
        if (!point_in_rectangle(x, y, xbound_left - 10, ybound_top - 10, xbound_right + 10, ybound_bottom + 10))
415
            other.robot_part_no_loop = false;
416
    }
417
}