Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_scr_cutscene_battle_axis_geno

(view raw script w/o annotations or w/e)
1
function scr_cutscene_battle_axis_geno
scr_cutscene_battle_axis_geno

function scr_cutscene_battle_axis_geno() { if (live_call()) return global.live_result; var enemy_target_x = global.enemy_target_x; var enemy_target_y = global.enemy_target_y; var battle_box = 3154; switch (scene) { case -2: cutscene_wait(1.5); break; case -1: draw_enabled = true; skippable = true; cutscene_advance(); break; case 0: if (!variable_instance_exists(id, "message_last")) message_last = 0; if ((message_current == 1 || message_current == 3 || message_current == 6 || message_current == 7) && message_last < message_current) { draw_enabled = false; skippable = false; message_last = message_current; cutscene_advance(); } else if (message_current == 9) { draw_enabled = false; skippable = false; cutscene_advance(5); } break; case 1: instance_create_depth(enemy_target_x, enemy_target_y, -100, obj_shot_strong_fake); cutscene_advance(); break; case 2: if (!instance_exists(obj_shot_strong_fake)) { global.attacking_damage_stat = 0; var dummy_bar = instance_create(0, 0, obj_target_bar_battle); dummy_bar.image_alpha = 0; dummy_bar.no_loop = true; dummy_bar.button_pressed = true; dummy_bar.damage_type = "normal"; instance_create(319, 120, obj_text_damage_count); audio_play_sound(10, 20, false, 1, 0, random_range(0.8, 1.2)); damage_type = "normal"; var attack_code = instance_create(0, 0, obj_battle_boss_attacking_code); attack_code.alarm[1] = 20; cutscene_advance(); } break; case 3: cutscene_wait(1); break; case 4: skippable = true; draw_enabled = true; scene = 0; break; case 5: scr_audio_fade_out(544, 100); cutscene_advance(); break; case 6: cutscene_wait(1); break; case 7: increase = 0.5; draw_enabled = true; obj_background_boss_battle_axis_yellow.fade_out = true; cutscene_advance(); break; case 8: cutscene_wait(3.5); break; case 9: draw_enabled = false; cutscene_advance(); break; case 10: with (obj_heart_battle_fighting_parent) { moveable = false; x = lerp(x, battle_box.x, 0.15); y = lerp(y, battle_box.y, 0.15); if (abs(x - battle_box.x) < 0.05) x = battle_box.x; if (abs(y - battle_box.y) < 0.05) y = battle_box.y; } if (cutscene_wait(1)) { obj_heart_battle_menu_effect_axis_geno.in_battle_twitch = true; instance_create(0, 0, obj_axis_geno_rapid_lvl); } break; case 11: ...
()
2
{
3
    if (live_call())
4
        return global.live_result;
5
    var enemy_target_x = global.enemy_target_x;
6
    var enemy_target_y = global.enemy_target_y;
7
    var battle_box = 3154;
8
    switch (scene)
9
    {
10
        case -2:
11
            cutscene_wait(1.5);
12
            break;
13
        case -1:
14
            draw_enabled = true;
15
            skippable = true;
16
            cutscene_advance();
17
            break;
18
        case 0:
19
            if (!variable_instance_exists(id, "message_last"))
20
                message_last = 0;
21
            if ((message_current == 1 || message_current == 3 || message_current == 6 || message_current == 7) && message_last < message_current)
22
            {
23
                draw_enabled = false;
24
                skippable = false;
25
                message_last = message_current;
26
                cutscene_advance();
27
            }
28
            else if (message_current == 9)
29
            {
30
                draw_enabled = false;
31
                skippable = false;
32
                cutscene_advance(5);
33
            }
34
            break;
35
        case 1:
36
            instance_create_depth(enemy_target_x, enemy_target_y, -100, obj_shot_strong_fake);
37
            cutscene_advance();
38
            break;
39
        case 2:
40
            if (!instance_exists(obj_shot_strong_fake))
41
            {
42
                global.attacking_damage_stat = 0;
43
                var dummy_bar = instance_create(0, 0, obj_target_bar_battle);
44
                dummy_bar.image_alpha = 0;
45
                dummy_bar.no_loop = true;
46
                dummy_bar.button_pressed = true;
47
                dummy_bar.damage_type = "normal";
48
                instance_create(319, 120, obj_text_damage_count);
49
                audio_play_sound(10, 20, false, 1, 0, random_range(0.8, 1.2));
50
                damage_type = "normal";
51
                var attack_code = instance_create(0, 0, obj_battle_boss_attacking_code);
52
                attack_code.alarm[1] = 20;
53
                cutscene_advance();
54
            }
55
            break;
56
        case 3:
57
            cutscene_wait(1);
58
            break;
59
        case 4:
60
            skippable = true;
61
            draw_enabled = true;
62
            scene = 0;
63
            break;
64
        case 5:
65
            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; }
(544, 100);
66
            cutscene_advance();
67
            break;
68
        case 6:
69
            cutscene_wait(1);
70
            break;
71
        case 7:
72
            increase = 0.5;
73
            draw_enabled = true;
74
            obj_background_boss_battle_axis_yellow.fade_out = true;
75
            cutscene_advance();
76
            break;
77
        case 8:
78
            cutscene_wait(3.5);
79
            break;
80
        case 9:
81
            draw_enabled = false;
82
            cutscene_advance();
83
            break;
84
        case 10:
85
            with (obj_heart_battle_fighting_parent)
86
            {
87
                moveable = false;
88
                x = lerp(x, battle_box.x, 0.15);
89
                y = lerp(y, battle_box.y, 0.15);
90
                if (abs(x - battle_box.x) < 0.05)
91
                    x = battle_box.x;
92
                if (abs(y - battle_box.y) < 0.05)
93
                    y = battle_box.y;
94
            }
95
            if (cutscene_wait(1))
96
            {
97
                obj_heart_battle_menu_effect_axis_geno.in_battle_twitch = true;
98
                instance_create(0, 0, obj_axis_geno_rapid_lvl);
99
            }
100
            break;
101
        case 11:
102
            if (obj_heart_battle_menu_effect_axis_geno.in_battle_twitch_finished)
103
                cutscene_advance();
104
            break;
105
        case 12:
106
            if (!instance_exists(obj_ceroba_transformation_soul))
107
            {
108
                audio_play_sound(snd_undertale_flash, 1, 0);
109
                instance_create_depth(obj_heart_battle_fighting_parent.x, obj_heart_battle_fighting_parent.y, obj_heart_battle_fighting_parent.depth, obj_ceroba_transformation_soul);
110
                instance_create_depth(obj_heart_battle_fighting_parent.x, obj_heart_battle_fighting_parent.y, obj_heart_battle_fighting_parent.depth - 1, obj_ceroba_transformation_soul_effect);
111
                obj_heart_battle_fighting_parent.image_alpha = 0;
112
            }
113
            if (cutscene_wait(1))
114
            {
115
                message_adv = true;
116
                draw_enabled = true;
117
                skippable = true;
118
            }
119
            break;
120
        case 13:
121
            if (message_current == 12)
122
            {
123
                draw_enabled = false;
124
                skippable = false;
125
                cutscene_advance();
126
            }
127
            break;
128
        case 14:
129
            with (obj_ceroba_transformation_soul)
130
            {
131
                if (image_angle > -24)
132
                    image_angle -= 6;
133
                else
134
                    other.scene++;
135
            }
136
            break;
137
        case 15:
138
            with (obj_ceroba_transformation_soul)
139
            {
140
                if (image_angle < 180)
141
                {
142
                    image_angle += 10;
143
                }
144
                else
145
                {
146
                    charge_time = 90;
147
                    charge_time_max = 90;
148
                    image_angle = 0;
149
                    sprite_index = spr_heart_yellow_up;
150
                    image_speed = 0;
151
                    image_index = 0;
152
                    other.scene++;
153
                }
154
            }
155
            break;
156
        case 16:
157
            if (cutscene_wait(1))
158
                break;
159
        case 17:
160
            with (obj_ceroba_transformation_soul)
161
            {
162
                is_charging = true;
163
                if (is_charged)
164
                {
165
                    can_shoot = true;
166
                    other.scene++;
167
                }
168
            }
169
            break;
170
        case 18:
171
            if (instance_exists(obj_heart_yellow_shot_big))
172
            {
173
                obj_axis_body_geno.sprite_index = spr_axis_body_geno_lid_block;
174
                if (obj_heart_yellow_shot_big.bbox_top < obj_axis_body_geno.y)
175
                {
176
                    obj_axis_body_geno.sprite_index = spr_axis_body_geno;
177
                    obj_axis_body_geno.image_speed = 1;
178
                    audio_play_sound(snd_undertale_explosion, 1, 0);
179
                    var piece_count = sprite_get_number(spr_axis_geno_trashlid_pieces);
180
                    var dir_inc = 360 / piece_count;
181
                    for (var i = 0; i < piece_count; i++)
182
                    {
183
                        var piece = instance_create_depth(obj_axis_body_geno.x, obj_axis_body_geno.y, -150, obj_battle_axis_geno_shield_piece);
184
                        piece.direction = dir_inc * i;
185
                        piece.image_index = i;
186
                        piece.speed = 8;
187
                    }
188
                    scr_screenshake_battle
scr_screenshake_battle

function scr_screenshake_battle() { instance_destroy(obj_screenshake_battle); var screenshake = instance_create(0, 0, obj_screenshake_battle); battle_screenshake_duration = argument[0]; battle_screenshake_intensity = argument[1]; battle_screenshake_dec = battle_screenshake_intensity / battle_screenshake_duration; }
(12, 3);
189
                    cutscene_advance();
190
                }
191
            }
192
            break;
193
        case 19:
194
            cutscene_wait(3);
195
            break;
196
        case 20:
197
            draw_enabled = true;
198
            skippable = true;
199
            if (!instance_exists(obj_axis_geno_rapid_lvl) && global.player_level < 19)
200
            {
201
                var lvl_up = instance_create(0, 0, obj_axis_geno_rapid_lvl);
202
                lvl_up.target_lvl = 19;
203
            }
204
            if (message_current == (message_end - 1))
205
            {
206
                obj_ceroba_transformation_soul.is_charging = true;
207
                skippable = false;
208
                if (characters >= message_length && obj_ceroba_transformation_soul.is_charged)
209
                    message_adv = true;
210
            }
211
            if (message_current == message_end)
212
            {
213
                skippable = false;
214
                if (characters >= message_length)
215
                    cutscene_advance();
216
            }
217
            break;
218
        case 21:
219
            with (obj_ceroba_transformation_soul)
220
            {
221
                if (is_charged)
222
                {
223
                    audio_stop_sound(snd_chargeshot_charge);
224
                    instance_create_depth(x, y, -100, obj_heart_yellow_shot_blast_axis_cutscene);
225
                    obj_heart_yellow_shot_blast_axis_cutscene.laser_length_max = 120;
226
                    sprite_index = spr_heart_yellow_shoot;
227
                    image_index = 0;
228
                    image_speed = 0;
229
                    other.draw_enabled = false;
230
                    other.scene++;
231
                }
232
            }
233
            break;
234
        case 22:
235
            if (instance_exists(obj_heart_yellow_shot_blast_axis_cutscene))
236
            {
237
                if (obj_heart_yellow_shot_blast_axis_cutscene.laser_length >= obj_heart_yellow_shot_blast_axis_cutscene.laser_length_max)
238
                {
239
                    obj_axis_body_geno.sprite_index = spr_axis_body_geno_hit;
240
                    obj_axis_body_geno.image_speed = 1;
241
                    obj_axis_body_geno.image_blend = c_yellow;
242
                    audio_play_sound(snd_arc_hit, 1, 0);
243
                    audio_play_sound(snd_monster_damage_hit_critical, 1, 0);
244
                    audio_play_sound(snd_axis_geno_laser_drill, 1, 0);
245
                    scr_screenshake_battle
scr_screenshake_battle

function scr_screenshake_battle() { instance_destroy(obj_screenshake_battle); var screenshake = instance_create(0, 0, obj_screenshake_battle); battle_screenshake_duration = argument[0]; battle_screenshake_intensity = argument[1]; battle_screenshake_dec = battle_screenshake_intensity / battle_screenshake_duration; }
(8, 2);
246
                    cutscene_advance();
247
                }
248
            }
249
            break;
250
        case 23:
251
            if (cutscene_wait(1))
252
            {
253
                obj_axis_body_geno.image_blend = c_white;
254
                audio_stop_sound(snd_axis_geno_laser_drill);
255
                audio_play_sound(snd_undertale_explosion, 1, 0);
256
                scr_screenshake_battle
scr_screenshake_battle

function scr_screenshake_battle() { instance_destroy(obj_screenshake_battle); var screenshake = instance_create(0, 0, obj_screenshake_battle); battle_screenshake_duration = argument[0]; battle_screenshake_intensity = argument[1]; battle_screenshake_dec = battle_screenshake_intensity / battle_screenshake_duration; }
(4, 3);
257
            }
258
            break;
259
        case 24:
260
            obj_heart_yellow_shot_blast_axis_cutscene.laser_length += 30;
261
            draw_white_circle = true;
262
            draw_alpha_white += 0.1;
263
            if (draw_alpha_white >= 1)
264
            {
265
                draw_white_circle = false;
266
                obj_ceroba_transformation_soul.sprite_index = spr_heart_yellow_up;
267
                obj_heart_yellow_shot_blast_axis_cutscene.alarm[0] = 15;
268
                cutscene_advance();
269
            }
270
            break;
271
        case 25:
272
            obj_axis_body_geno.image_speed = 0;
273
            obj_axis_body_geno.image_index = 0;
274
            obj_axis_body_geno.sprite_index = spr_axis_body_geno_death;
275
            cutscene_wait(3);
276
            break;
277
        case 26:
278
            draw_alpha_white -= 0.05;
279
            if (draw_alpha_white <= 0)
280
                cutscene_advance();
281
            break;
282
        case 27:
283
            cutscene_wait(1);
284
            break;
285
        case 28:
286
            obj_axis_body_geno.image_speed = 1;
287
            if (obj_axis_body_geno.image_index >= (obj_axis_body_geno.image_number - 1))
288
            {
289
                obj_axis_body_geno.image_speed = 0;
290
                obj_axis_body_geno.image_index = obj_axis_body_geno.image_number - 1;
291
                cutscene_advance();
292
            }
293
            break;
294
        case 29:
295
            cutscene_wait(2);
296
            break;
297
        case 30:
298
            instance_destroy(obj_heart_battle_fighting_parent);
299
            instance_destroy(obj_ceroba_transformation_soul);
300
            global.important_cutscene = true;
301
            instance_create(319, 320, obj_dialogue_box_battle_transformation_any_in);
302
            instance_destroy(obj_dialogue_box_battle_transformation_any);
303
            cutscene_advance();
304
            break;
305
        case 31:
306
            if (instance_exists(obj_dialogue_box_battle))
307
            {
308
                global.enemy_dead = true;
309
                instance_create(0, 0, obj_dialogue_battle_win_genocide);
310
                audio_play_sound(snd_monster_damage_death, 20, false);
311
                instance_destroy();
312
                with (obj_quote_bubble_battle)
313
                    instance_destroy();
314
            }
315
            break;
316
    }
317
}