Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_dunes_29b_controller_Step_0

(view raw script w/o annotations or w/e)
1
switch (scene)
2
{
3
    case 0:
4
        if (obj_pl.x > 300)
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
            audio_sound_gain(obj_radio.current_song, 0, 360);
8
            flowey = instance_create(360, obj_pl.y, obj_dunes_32_flowey);
9
            timer = 40;
10
            scene++;
11
        }
12
        break;
13
    case 1:
14
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
15
            exit;
16
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
17
        with (msg)
18
        {
19
            sndfnt = 96;
20
            message[0] = "* Howdy!";
21
            message[1] = "* Gee, looks like we're#  getting close to an#  exit from this place.";
22
            message[2] = "* Aside from those mines,#  time has been pretty#  friendly to us.";
23
            message[3] = "* Should be a simple#  journey from here on#  ou-  ";
24
            message[4] = "* Clover?";
25
            prt[0] = 348;
26
            prt[1] = 348;
27
            prt[2] = 348;
28
            prt[3] = 348;
29
            talker[0] = other.flowey;
30
            position = 1;
31
            if (message_current == 3)
32
            {
33
                skippable = false;
34
                if (cutoff >= string_length(message[message_current]))
35
                {
36
                    other.scene++;
37
                    other.timer = 60;
38
                    other.flowey.is_talking = false;
39
                    sndfnt = 102;
40
                    portrait = false;
41
                    message_current += 1;
42
                    cutoff = 0;
43
                }
44
            }
45
        }
46
        break;
47
    case 2:
48
        if (scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
49
        {
50
            scene++;
51
            timer = 15;
52
            instance_destroy(msg);
53
        }
54
        break;
55
    case 3:
56
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
57
            exit;
58
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
59
        with (msg)
60
        {
61
            sndfnt = 96;
62
            message[0] = "* Great.";
63
            prt[0] = 351;
64
            talker[0] = other.flowey;
65
            position = 1;
66
        }
67
        if (!global.dialogue_open)
68
            scene++;
69
        break;
70
    case 4:
71
        with (flowey)
72
        {
73
            sprite_index = spr_floweyleave;
74
            image_speed = 0.2;
75
        }
76
        timer = 20;
77
        scene++;
78
        break;
79
    case 5:
80
        if (!scr_timer
scr_timer

function scr_timer() { if (timer > 0) { timer--; return false; } else { return true; } }
())
81
            exit;
82
        if (!instance_exists(obj_martlet_dunes_32))
83
        {
84
            martlet = instance_create(__view_get(e__VW.XView, 0) + 320 + 40, obj_pl.y, obj_martlet_dunes_32);
85
            audio_play_sound(mus_birdsofafeather, 1, 1);
86
        }
87
        if (martlet.npc_arrived)
88
        {
89
            martlet.npc_arrived = false;
90
            scene++;
91
        }
92
        break;
93
    case 6:
94
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
95
        with (msg)
96
        {
97
            ch_msg = 8;
98
            ch[1] = "It's OK";
99
            ch[2] = "Calm down";
100
            sndfnt = 102;
101
            talker[0] = other.martlet;
102
            message[0] = "* Clover!";
103
            message[1] = "* You're alive! You're#  here!";
104
            message[2] = "* You're... here...";
105
            message[3] = "* I CAN'T BELIEVE MYSELF!";
106
            message[4] = "* I LEFT YOU ALL ALONE IN#  THAT CAVE!";
107
            message[5] = "* YOU HAD TO BRAVE THE#  DUNES BY YOURSELF!!";
108
            message[6] = "* I'M A HORRIBLE FRIEND!";
109
            message[7] = "* They trust me to be a#  Royal Guard and I left#  a child for dead!!";
110
            message[8] = "* Like, what is wrong#  with me?????";
111
            prt[0] = 328;
112
            prt[1] = 318;
113
            prt[2] = 333;
114
            prt[3] = 310;
115
            prt[4] = 310;
116
            prt[5] = 333;
117
            prt[6] = 333;
118
            prt[7] = 333;
119
            prt[8] = 322;
120
            position = 1;
121
            if (outcome == 1)
122
            {
123
                message[9] = "* I... yes.";
124
                message[10] = "* Thank you.";
125
                message[11] = "* You're clearly able to#  take care of yourself.";
126
                prt[9] = 322;
127
                prt[10] = 320;
128
                prt[11] = 320;
129
            }
130
            if (outcome == 2)
131
            {
132
                message[9] = "* I... okay.";
133
                message[10] = "* I should take a few#  breaths and properly#  assess the situation.";
134
                prt[9] = 322;
135
                prt[10] = 320;
136
            }
137
        }
138
        if (!global.dialogue_open)
139
            scene++;
140
        break;
141
    case 7:
142
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
143
        with (msg)
144
        {
145
            ch_msg = 10;
146
            ch[1] = "Forgive";
147
            ch[2] = "...";
148
            sndfnt = 102;
149
            talker[0] = other.martlet;
150
            message[0] = "* The crash just happened#  so fast.";
151
            message[1] = "* When I saw what had#  happened to you, I#  panicked!";
152
            message[2] = "* I flew over the sandy#  landscape and found#  this town.";
153
            message[3] = "* I soon realized that I#  couldn't risk getting#  other monsters involved.";
154
            message[4] = "* They might've#  questioned me and I#  cannot keep secrets!";
155
            message[5] = "* They could've turned us#  in to the more sinister#  Royal Guards!";
156
            message[6] = "* So I uh...";
157
            message[7] = "* Sat by a cactus for an#  hour, thinking of what#  a piece of garbage I am.";
158
            message[8] = "* I then got the courage#  to travel back to you#  and apologize but...";
159
            message[9] = "* Here you were.";
160
            message[10] = "* So... I'm deeply sorry!";
161
            prt[0] = 333;
162
            prt[1] = 333;
163
            prt[2] = 338;
164
            prt[3] = 317;
165
            prt[4] = 320;
166
            prt[5] = 333;
167
            prt[6] = 323;
168
            prt[7] = 329;
169
            prt[8] = 320;
170
            prt[9] = 317;
171
            prt[10] = 317;
172
            position = 1;
173
            if (outcome == 1)
174
            {
175
                message[11] = "* Thank you, Clover!";
176
                message[12] = "* You're very kind!";
177
                prt[11] = 320;
178
                prt[12] = 318;
179
            }
180
            if (outcome == 2)
181
            {
182
                message[11] = "* ...";
183
                message[12] = "* Um...";
184
                prt[11] = 322;
185
                prt[12] = 323;
186
            }
187
        }
188
        if (!global.dialogue_open)
189
            scene++;
190
        break;
191
    case 8:
192
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
193
        with (msg)
194
        {
195
            sndfnt = 102;
196
            talker[0] = other.martlet;
197
            message[0] = "* Anyway, we should move#  on.";
198
            message[1] = "* I decided that I won't#  leave your side now!";
199
            message[2] = "* I'll follow wherever#  you lead!";
200
            message[3] = "* You just endured some#  crazy Underground#  shenanigans, though.";
201
            message[4] = "* I'd understand if you#  need to rest for a bit.";
202
            message[5] = "* If you wanna hang#  around, that's great!";
203
            message[6] = "* I didn't get to#  sightsee at all on the#  way over here.";
204
            message[7] = "* Well then, friend.#  Shall we be off?";
205
            prt[0] = 328;
206
            prt[1] = 313;
207
            prt[2] = 313;
208
            prt[3] = 320;
209
            prt[4] = 320;
210
            prt[5] = 328;
211
            prt[6] = 328;
212
            prt[7] = 337;
213
            position = 1;
214
        }
215
        if (!global.dialogue_open)
216
            scene++;
217
        break;
218
    case 9:
219
        with (martlet)
220
        {
221
            x_dest[0] = obj_pl.x - 20;
222
            y_dest[0] = obj_pl.y;
223
            end_direction = "right";
224
            can_walk = true;
225
            if (npc_arrived)
226
                other.scene++;
227
        }
228
        break;
229
    case 10:
230
        with (instance_create(martlet.x, martlet.y, obj_martlet_follower))
231
            npc_reset = true;
232
        global.party_member = 1170;
233
        instance_destroy(martlet);
234
        audio_sound_gain(mus_birdsofafeather, 0, 200);
235
        audio_sound_gain(obj_radio.current_song, 1, 800);
236
        scene++;
237
        break;
238
    case 11:
239
        instance_destroy();
240
        global.dunes_flag[16] = 1;
241
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
242
        break;
243
}
244
245
enum e__VW
246
{
247
    XView,
248
    YView,
249
    WView,
250
    HView,
251
    Angle,
252
    HBorder,
253
    VBorder,
254
    HSpeed,
255
    VSpeed,
256
    Object,
257
    Visible,
258
    XPort,
259
    YPort,
260
    WPort,
261
    HPort,
262
    Camera,
263
    SurfaceID
264
}