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() //gml_Script_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 = obj_dialogue_box_battle_transformation_any 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(snd_axis_trash_can_hit, 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(mus_guns_blazing_geno, 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: ...
() //gml_Script_scr_cutscene_battle_axis_geno
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 = obj_dialogue_box_battle_transformation_any
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(snd_axis_trash_can_hit, 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(argument0, argument1) //gml_Script_scr_audio_fade_out { var snd = argument0 var fade_len = argument1 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 }
(mus_guns_blazing_geno, 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
                    image_angle += 10
142
                else
143
                {
144
                    charge_time = 90
145
                    charge_time_max = 90
146
                    image_angle = 0
147
                    sprite_index = spr_heart_yellow_up
148
                    image_speed = 0
149
                    image_index = 0
150
                    other.scene++
151
                }
152
            }
153
            break
154
        case 16:
155
            if cutscene_wait(1)
156
            {
157
            }
158
            else
159
            {
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
            }
170
        case 17:
171
            with (obj_ceroba_transformation_soul)
172
            {
173
                is_charging = true
174
                if is_charged
175
                {
176
                    can_shoot = true
177
                    other.scene++
178
                }
179
            }
180
            break
181
        case 18:
182
            if instance_exists(obj_heart_yellow_shot_big)
183
            {
184
                obj_axis_body_geno.sprite_index = spr_axis_body_geno_lid_block
185
                if (obj_heart_yellow_shot_big.bbox_top < obj_axis_body_geno.y)
186
                {
187
                    obj_axis_body_geno.sprite_index = spr_axis_body_geno
188
                    obj_axis_body_geno.image_speed = 1
189
                    audio_play_sound(snd_undertale_explosion, 1, 0)
190
                    var piece_count = sprite_get_number(spr_axis_geno_trashlid_pieces)
191
                    var dir_inc = 360 / piece_count
192
                    for (var i = 0; i < piece_count; i++)
193
                    {
194
                        var piece = instance_create_depth(obj_axis_body_geno.x, obj_axis_body_geno.y, -150, obj_battle_axis_geno_shield_piece)
195
                        piece.direction = dir_inc * i
196
                        piece.image_index = i
197
                        piece.speed = 8
198
                    }
199
                    scr_screenshake_battle
scr_screenshake_battle

function scr_screenshake_battle() //gml_Script_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)
200
                    cutscene_advance()
201
                }
202
            }
203
            break
204
        case 19:
205
            cutscene_wait(3)
206
            break
207
        case 20:
208
            draw_enabled = true
209
            skippable = true
210
            if ((!instance_exists(obj_axis_geno_rapid_lvl)) && global.player_level < 19)
211
            {
212
                var lvl_up = instance_create(0, 0, obj_axis_geno_rapid_lvl)
213
                lvl_up.target_lvl = 19
214
            }
215
            if (message_current == (message_end - 1))
216
            {
217
                obj_ceroba_transformation_soul.is_charging = true
218
                skippable = false
219
                if (characters >= message_length && obj_ceroba_transformation_soul.is_charged)
220
                    message_adv = true
221
            }
222
            if (message_current == message_end)
223
            {
224
                skippable = false
225
                if (characters >= message_length)
226
                    cutscene_advance()
227
            }
228
            break
229
        case 21:
230
            with (obj_ceroba_transformation_soul)
231
            {
232
                if is_charged
233
                {
234
                    audio_stop_sound(snd_chargeshot_charge)
235
                    instance_create_depth(x, y, -100, obj_heart_yellow_shot_blast_axis_cutscene)
236
                    obj_heart_yellow_shot_blast_axis_cutscene.laser_length_max = 120
237
                    sprite_index = spr_heart_yellow_shoot
238
                    image_index = 0
239
                    image_speed = 0
240
                    other.draw_enabled = false
241
                    other.scene++
242
                }
243
            }
244
            break
245
        case 22:
246
            if instance_exists(obj_heart_yellow_shot_blast_axis_cutscene)
247
            {
248
                if (obj_heart_yellow_shot_blast_axis_cutscene.laser_length >= obj_heart_yellow_shot_blast_axis_cutscene.laser_length_max)
249
                {
250
                    obj_axis_body_geno.sprite_index = spr_axis_body_geno_hit
251
                    obj_axis_body_geno.image_speed = 1
252
                    obj_axis_body_geno.image_blend = c_yellow
253
                    audio_play_sound(snd_arc_hit, 1, 0)
254
                    audio_play_sound(snd_monster_damage_hit_critical, 1, 0)
255
                    audio_play_sound(snd_axis_geno_laser_drill, 1, 0)
256
                    scr_screenshake_battle
scr_screenshake_battle

function scr_screenshake_battle() //gml_Script_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)
257
                    cutscene_advance()
258
                }
259
            }
260
            break
261
        case 23:
262
            if cutscene_wait(1)
263
            {
264
                obj_axis_body_geno.image_blend = c_white
265
                audio_stop_sound(snd_axis_geno_laser_drill)
266
                audio_play_sound(snd_undertale_explosion, 1, 0)
267
                scr_screenshake_battle
scr_screenshake_battle

function scr_screenshake_battle() //gml_Script_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)
268
            }
269
            break
270
        case 24:
271
            obj_heart_yellow_shot_blast_axis_cutscene.laser_length += 30
272
            draw_white_circle = true
273
            draw_alpha_white += 0.1
274
            if (draw_alpha_white >= 1)
275
            {
276
                draw_white_circle = false
277
                obj_ceroba_transformation_soul.sprite_index = spr_heart_yellow_up
278
                obj_heart_yellow_shot_blast_axis_cutscene.alarm[0] = 15
279
                cutscene_advance()
280
            }
281
            break
282
        case 25:
283
            obj_axis_body_geno.image_speed = 0
284
            obj_axis_body_geno.image_index = 0
285
            obj_axis_body_geno.sprite_index = spr_axis_body_geno_death
286
            cutscene_wait(3)
287
            break
288
        case 26:
289
            draw_alpha_white -= 0.05
290
            if (draw_alpha_white <= 0)
291
                cutscene_advance()
292
            break
293
        case 27:
294
            cutscene_wait(1)
295
            break
296
        case 28:
297
            obj_axis_body_geno.image_speed = 1
298
            if (obj_axis_body_geno.image_index >= (obj_axis_body_geno.image_number - 1))
299
            {
300
                obj_axis_body_geno.image_speed = 0
301
                obj_axis_body_geno.image_index = obj_axis_body_geno.image_number - 1
302
                cutscene_advance()
303
            }
304
            break
305
        case 29:
306
            cutscene_wait(2)
307
            break
308
        case 30:
309
            instance_destroy(obj_heart_battle_fighting_parent)
310
            instance_destroy(obj_ceroba_transformation_soul)
311
            global.important_cutscene = true
312
            instance_create(319, 320, obj_dialogue_box_battle_transformation_any_in)
313
            instance_destroy(obj_dialogue_box_battle_transformation_any)
314
            cutscene_advance()
315
            break
316
        case 31:
317
            if instance_exists(obj_dialogue_box_battle)
318
            {
319
                global.enemy_dead = true
320
                instance_create(0, 0, obj_dialogue_battle_win_genocide)
321
                audio_play_sound(snd_monster_damage_death, 20, false)
322
                instance_destroy()
323
                with (obj_quote_bubble_battle)
324
                    instance_destroy()
325
            }
326
            break
327
    }
328
329
}