Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_flowey_1_attack_10_creator_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
if (room == rm_battle_flowey)
4
{
5
    obj_dialogue_box_battle_transformation_any.depth = -500;
6
    obj_battle_hp_current_self.y = 20;
7
    obj_battle_hp_max_self.y = 20;
8
    obj_text_hp.y = 25;
9
    obj_text_hp_stat.y = 9999;
10
    obj_heart_battle_fighting_parent.depth = -501;
11
}
12
flowey_face_sprite = 2602;
13
if (global.flowey_battle_1_phase == 1)
14
{
15
    switch (scene)
16
    {
17
        case 1:
18
        case 3:
19
        case 5:
20
        case 7:
21
            var dir = irandom_range(0, 359);
22
            var xx = obj_heart_battle_fighting_parent.x + lengthdir_x(110, dir);
23
            var yy = obj_heart_battle_fighting_parent.y + lengthdir_y(110, dir);
24
            instance_create_depth(xx, yy, depth - 1, obj_glowey_1_attack_eye);
25
            scene++;
26
            break;
27
        case 0:
28
        case 2:
29
        case 4:
30
        case 6:
31
            cutscene_wait(0.5);
32
            break;
33
        case 8:
34
            var spawner = instance_create_depth(0, 100, -9999, obj_flowey_1_attack_10_flower_spawner);
35
            spawner.hspeed = 5;
36
            scene++;
37
            break;
38
        case 9:
39
            cutscene_wait(3);
40
            break;
41
        case 10:
42
            instance_create_depth(320, 600, depth + 1, obj_battle_enemy_attack_flower_jump);
43
            scene++;
44
            break;
45
        case 11:
46
            cutscene_wait(0.75);
47
            break;
48
        case 12:
49
            instance_create_depth(100, 640, depth + 1, obj_battle_enemy_attack_flower_jump);
50
            instance_create_depth(540, 640, depth + 1, obj_battle_enemy_attack_flower_jump);
51
            scene++;
52
            break;
53
        case 13:
54
            if (!instance_exists(obj_battle_enemy_attack_flower_jump))
55
                cutscene_wait(3.5);
56
            break;
57
        case 14:
58
            can_transition = true;
59
            break;
60
    }
61
}
62
else if (global.flowey_battle_1_phase == 2)
63
{
64
    switch (scene)
65
    {
66
        case 0:
67
            var bullet_count = room_height / 60;
68
            var xx = -60;
69
            for (var i = 0; i < bullet_count; i++)
70
            {
71
                var bullet = instance_create_depth(xx, 30 + (i * 60), -700, obj_flowey_1_attack_flower_lanes);
72
                if (xx > 320)
73
                {
74
                    xx = -60;
75
                    bullet.hspeed = -10;
76
                }
77
                else
78
                {
79
                    xx = 700;
80
                    bullet.hspeed = 10;
81
                }
82
            }
83
            scene++;
84
            break;
85
        case 1:
86
            cutscene_wait(2);
87
            break;
88
        case 2:
89
            var bullet_count = room_width / 60;
90
            var yy = -60;
91
            for (var i = 0; i < bullet_count; i++)
92
            {
93
                var bullet = instance_create_depth(30 + (60 * i), yy, -700, obj_flowey_1_attack_flower_lanes);
94
                if (yy > 320)
95
                {
96
                    yy = -60;
97
                    bullet.vspeed = -10;
98
                }
99
                else
100
                {
101
                    yy = 560;
102
                    bullet.vspeed = 10;
103
                }
104
            }
105
            scene++;
106
            break;
107
        case 3:
108
            cutscene_wait(1);
109
            break;
110
        case 4:
111
            var attack = instance_create_depth(room_width + 40, 30, -700, obj_battle_enemy_attack_flower_jump_side);
112
            attack.hspeed = -8;
113
            scene++;
114
            break;
115
        case 5:
116
            cutscene_wait(0.5);
117
            break;
118
        case 6:
119
            var attack = instance_create_depth(-40, 45, -700, obj_battle_enemy_attack_flower_jump_side);
120
            attack.hspeed = 8;
121
            scene++;
122
            break;
123
        case 7:
124
            cutscene_wait(0.5);
125
            break;
126
        case 8:
127
        case 10:
128
        case 12:
129
        case 14:
130
            var side = choose(1, 2, 3);
131
            var angle = 0;
132
            var xx, yy;
133
            switch (side)
134
            {
135
                case 1:
136
                    yy = 4;
137
                    xx = irandom_range(40, 600);
138
                    angle = 270;
139
                    break;
140
                case 2:
141
                    xx = room_width - 4;
142
                    yy = irandom_range(40, 440);
143
                    angle = 180;
144
                    break;
145
                case 3:
146
                    xx = 4;
147
                    yy = irandom_range(40, 440);
148
                    angle = 0;
149
                    break;
150
            }
151
            var new_flowey = instance_create_depth(xx, yy, -700, obj_flowey_1_attack_10_flower);
152
            new_flowey.image_angle = angle - 90;
153
            scene++;
154
            break;
155
        case 9:
156
        case 11:
157
        case 13:
158
            cutscene_wait(1);
159
            break;
160
        case 15:
161
            cutscene_wait(3);
162
            break;
163
        case 16:
164
            can_transition = true;
165
            break;
166
    }
167
}
168
else if (global.flowey_battle_1_phase == 3)
169
{
170
    switch (scene)
171
    {
172
        case 0:
173
            _bullet_count = 7;
174
            scene++;
175
            break;
176
        case 1:
177
            _bullet_count--;
178
            var attack = instance_create_depth(irandom_range(80, 560), -45, -700, obj_battle_enemy_attack_flower_jump_side);
179
            attack.hspeed = irandom_range(-2, 2);
180
            attack.alarm[0] += irandom_range(-10, 10);
181
            scene++;
182
            break;
183
        case 2:
184
            cutscene_wait(0.6);
185
            break;
186
        case 3:
187
            if (_bullet_count > 0)
188
                cutscene_advance(1);
189
            else
190
                cutscene_advance();
191
            break;
192
        case 4:
193
            var spawner = instance_create_depth(320, -50, -9999, obj_flowey_1_attack_10_flower_spawner);
194
            spawner.vspeed = 5;
195
            scene++;
196
            break;
197
        case 5:
198
            cutscene_wait(3);
199
            break;
200
        case 6:
201
            _bullet_count = 4;
202
            scene++;
203
            break;
204
        case 7:
205
            _bullet_count--;
206
            var dir = irandom_range(0, 359);
207
            var xx = obj_heart_battle_fighting_parent.x + lengthdir_x(110, dir);
208
            var yy = obj_heart_battle_fighting_parent.y + lengthdir_y(110, dir);
209
            instance_create_depth(xx, yy, depth - 1, obj_glowey_1_attack_eye);
210
            scene++;
211
            break;
212
        case 8:
213
            cutscene_wait(0.6);
214
            break;
215
        case 9:
216
            if (_bullet_count > 0)
217
                cutscene_advance(7);
218
            else
219
                cutscene_advance();
220
            break;
221
        case 10:
222
            cutscene_wait(0.25);
223
            break;
224
        case 11:
225
            var spawner = instance_create_depth(room_width, 100, -9999, obj_flowey_1_attack_10_flower_spawner);
226
            spawner.hspeed = -5;
227
            scene++;
228
        case 12:
229
            cutscene_wait(3);
230
            break;
231
        case 13:
232
            can_transition = true;
233
            break;
234
    }
235
}
236
if (can_transition == true)
237
{
238
    if (instance_exists(obj_heart_battle_fighting_parent))
239
        obj_heart_battle_fighting_parent.vulnerable = false;
240
    switch (transition_stage)
241
    {
242
        case 0:
243
            scene = -1;
244
            layer_set_visible("twirl_", true);
245
            var _fx_twirl = layer_get_fx("twirl_");
246
            var _params = fx_get_parameters(_fx_twirl);
247
            _params.g_DistortAngle = [distort_current];
248
            fx_set_parameters(_fx_twirl, _params);
249
            distort_current += 7;
250
            if (distort_current >= 200)
251
            {
252
                transition_overlay_alpha += 0.05;
253
                if (transition_overlay_alpha >= 1)
254
                {
255
                    persistent = true;
256
                    ds_list_shuffle(global.flowey_room_list);
257
                    var next_room = ds_list_find_value(global.flowey_room_list, 0);
258
                    ds_list_delete(global.flowey_room_list, 0);
259
                    room = next_room;
260
                    switch (next_room)
261
                    {
262
                        case 226:
263
                            obj_pl.x = 170;
264
                            obj_pl.y = 290;
265
                            break;
266
                        case 227:
267
                            obj_pl.x = 180;
268
                            obj_pl.y = 130;
269
                            break;
270
                        case 228:
271
                            obj_pl.x = 300;
272
                            obj_pl.y = 2630;
273
                            break;
274
                        case 229:
275
                            obj_pl.x = 160;
276
                            obj_pl.y = 120;
277
                            break;
278
                        case 230:
279
                            obj_pl.x = 300;
280
                            obj_pl.y = 2640;
281
                            break;
282
                        case 231:
283
                            obj_pl.x = 860;
284
                            obj_pl.y = 40;
285
                            break;
286
                    }
287
                    obj_pl.image_alpha = 1;
288
                    transition_stage += 1;
289
                    global.flowey_battle_1_phase += 1;
290
                }
291
            }
292
            break;
293
        case 1:
294
            if (!instance_exists(obj_flowey_battle_ow_controller))
295
                instance_create(0, 0, obj_flowey_battle_ow_controller);
296
            transition_overlay_alpha -= 0.05;
297
            if (transition_overlay_alpha <= 0)
298
            {
299
                scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
300
                instance_destroy();
301
            }
302
            break;
303
    }
304
}