Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_ceroba_phase_2_opener_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
var battle_box = 3154;
4
switch (scene)
5
{
6
    case 0:
7
        if (scr_battle_box_resize_midfight
scr_battle_box_resize_midfight

function scr_battle_box_resize_midfight() { if (instance_exists(obj_dialogue_box_battle_transformation_any)) { with (obj_dialogue_box_battle_transformation_any) { battle_box_resize_midfight = true; battle_box_target_xscale = argument[0] / sprite_get_width(sprite_index); battle_box_target_yscale = argument[1] / sprite_get_height(sprite_index); if (argument_count > 2) { battle_box_target_x = argument[2]; battle_box_target_y = argument[3]; } if (abs(image_xscale - battle_box_target_xscale) < 0.01 && abs(image_yscale - battle_box_target_yscale) < 0.01 && abs(x - battle_box_target_x) < 0.1 && abs(y - battle_box_target_y) < 0.1) { var box = 3154; global.attack_surface_width = box.sprite_width - 8; global.attack_surface_height = box.sprite_height - 8; global.attack_surface_x = box.x - (global.attack_surface_width * 0.5); global.attack_surface_y = box.y - (global.attack_surface_height * 0.5); if (surface_exists(global.attack_surface)) global.attack_surface = surface_create(global.attack_surface_width, global.attack_surface_height); return true; } } } else { return false; } }
(128, 128))
8
            cutscene_advance();
9
        break;
10
    case 1:
11
        instance_create_depth(battle_box.x, battle_box.bbox_top - 60, -1100, obj_ceroba_phase_2_opener_lamp);
12
        cutscene_advance();
13
        break;
14
    case 2:
15
        if (!instance_exists(obj_ceroba_phase_2_opener_lamp))
16
            cutscene_advance();
17
        break;
18
    case 3:
19
        cutscene_wait(1);
20
        break;
21
    case 4:
22
        var mask = instance_create_depth(battle_box.bbox_right + 18, battle_box.bbox_top - 18, -100, obj_ceroba_attack_bullet_trail_mask);
23
        mask.direction = 270;
24
        cutscene_advance();
25
        break;
26
    case 5:
27
        cutscene_wait(0.5);
28
        break;
29
    case 6:
30
        var mask = instance_create_depth(battle_box.bbox_left - 18, battle_box.bbox_bottom + 18, -100, obj_ceroba_attack_bullet_trail_mask);
31
        mask.direction = 90;
32
        cutscene_advance();
33
        break;
34
    case 7:
35
        if (!instance_exists(obj_ceroba_attack_bullet_trail_mask))
36
            cutscene_wait(1);
37
        break;
38
    case 8:
39
        var mask = instance_create_depth(battle_box.bbox_right + 18, battle_box.bbox_bottom + 18, -100, obj_ceroba_attack_bullet_trail_mask);
40
        mask.direction = 180;
41
        cutscene_advance();
42
        break;
43
    case 9:
44
        cutscene_wait(0.5);
45
        break;
46
    case 10:
47
        var mask = instance_create_depth(battle_box.bbox_left - 18, battle_box.bbox_top - 18, -100, obj_ceroba_attack_bullet_trail_mask);
48
        mask.direction = 0;
49
        cutscene_advance();
50
        break;
51
    case 11:
52
        cutscene_wait(2);
53
        break;
54
    case 12:
55
        if (scr_battle_box_resize_midfight
scr_battle_box_resize_midfight

function scr_battle_box_resize_midfight() { if (instance_exists(obj_dialogue_box_battle_transformation_any)) { with (obj_dialogue_box_battle_transformation_any) { battle_box_resize_midfight = true; battle_box_target_xscale = argument[0] / sprite_get_width(sprite_index); battle_box_target_yscale = argument[1] / sprite_get_height(sprite_index); if (argument_count > 2) { battle_box_target_x = argument[2]; battle_box_target_y = argument[3]; } if (abs(image_xscale - battle_box_target_xscale) < 0.01 && abs(image_yscale - battle_box_target_yscale) < 0.01 && abs(x - battle_box_target_x) < 0.1 && abs(y - battle_box_target_y) < 0.1) { var box = 3154; global.attack_surface_width = box.sprite_width - 8; global.attack_surface_height = box.sprite_height - 8; global.attack_surface_x = box.x - (global.attack_surface_width * 0.5); global.attack_surface_y = box.y - (global.attack_surface_height * 0.5); if (surface_exists(global.attack_surface)) global.attack_surface = surface_create(global.attack_surface_width, global.attack_surface_height); return true; } } } else { return false; } }
(50, 128))
56
            cutscene_wait(0.5);
57
        break;
58
    case 13:
59
        cutscene_instance_create(0, 0, 681);
60
        break;
61
    case 14:
62
        if (!variable_instance_exists(id, "bullet_count"))
63
            bullet_count = 6;
64
        if (cutscene_wait(1))
65
        {
66
            if (bullet_count > 0)
67
            {
68
                cutscene_advance(13);
69
                bullet_count--;
70
            }
71
            else
72
            {
73
                if (scr_battle_box_resize_midfight
scr_battle_box_resize_midfight

function scr_battle_box_resize_midfight() { if (instance_exists(obj_dialogue_box_battle_transformation_any)) { with (obj_dialogue_box_battle_transformation_any) { battle_box_resize_midfight = true; battle_box_target_xscale = argument[0] / sprite_get_width(sprite_index); battle_box_target_yscale = argument[1] / sprite_get_height(sprite_index); if (argument_count > 2) { battle_box_target_x = argument[2]; battle_box_target_y = argument[3]; } if (abs(image_xscale - battle_box_target_xscale) < 0.01 && abs(image_yscale - battle_box_target_yscale) < 0.01 && abs(x - battle_box_target_x) < 0.1 && abs(y - battle_box_target_y) < 0.1) { var box = 3154; global.attack_surface_width = box.sprite_width - 8; global.attack_surface_height = box.sprite_height - 8; global.attack_surface_x = box.x - (global.attack_surface_width * 0.5); global.attack_surface_y = box.y - (global.attack_surface_height * 0.5); if (surface_exists(global.attack_surface)) global.attack_surface = surface_create(global.attack_surface_width, global.attack_surface_height); return true; } } } else { return false; } }
(128, 128))
74
                    cutscene_advance(15);
75
                break;
76
            }
77
        }
78
        break;
79
    case 15:
80
        cutscene_instance_create(obj_heart_battle_fighting_parent.x, obj_heart_battle_fighting_parent.y, 1215);
81
        break;
82
    case 16:
83
        if (!variable_instance_exists(id, "circle_count"))
84
            circle_count = 3;
85
        if (cutscene_wait(2))
86
        {
87
            if (circle_count > 0)
88
            {
89
                cutscene_advance(15);
90
                circle_count--;
91
            }
92
            else
93
            {
94
                cutscene_advance(17);
95
            }
96
        }
97
        break;
98
    case 17:
99
        obj_ceroba_body_pacifist_phase_2.sprite_index = spr_ceroba_p2_idle_reveal;
100
        obj_ceroba_body_pacifist_phase_2.image_index = 0;
101
        obj_ceroba_body_pacifist_phase_2.image_speed = 1;
102
        cutscene_advance();
103
        break;
104
    case 18:
105
        if (obj_ceroba_body_pacifist_phase_2.image_index >= 9)
106
        {
107
            obj_ceroba_body_pacifist_phase_2.image_speed = 0;
108
            obj_heart_battle_fighting_parent.moveable = false;
109
            cutscene_advance();
110
        }
111
        break;
112
    case 19:
113
        with (obj_heart_battle_fighting_parent)
114
        {
115
            var xtarget = battle_box.x;
116
            var ytarget = battle_box.bbox_bottom - 12;
117
            x = lerp(x, xtarget, 0.3);
118
            vspeed = 10;
119
            if (y >= ytarget)
120
            {
121
                y = ytarget;
122
                vspeed = 0;
123
                other.scene++;
124
                audio_play_sound(snd_undertale_impact, 1, 0);
125
                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; }
(1, 2);
126
            }
127
        }
128
        break;
129
    case 20:
130
        cutscene_instance_create(obj_heart_battle_fighting_parent.x, obj_heart_battle_fighting_parent.y, 752);
131
        break;
132
    case 21:
133
        with (obj_heart_battle_fighting_parent)
134
        {
135
            var xtarget = battle_box.x;
136
            var ytarget = battle_box.y;
137
            x = lerp(x, xtarget, 0.15);
138
            y = lerp(y, ytarget, 0.15);
139
            if (abs(x - xtarget) < 0.01 && abs(y - ytarget) < 0.01)
140
            {
141
                x = xtarget;
142
                y = ytarget;
143
                obj_ceroba_body_pacifist_phase_2.image_speed = 1;
144
                other.scene++;
145
            }
146
        }
147
        break;
148
    case 22:
149
        if (!instance_exists(obj_battle_enemy_attack_ceroba_flower_circle_opener))
150
            cutscene_advance();
151
        break;
152
    case 23:
153
        cutscene_wait(1.5);
154
        break;
155
    case 24:
156
        instance_create_depth(obj_ceroba_body_pacifist_phase_2.x, 110, -9999, obj_ceroba_phase_2_shield_reappear);
157
        cutscene_advance();
158
        break;
159
    case 25:
160
        cutscene_wait(1.5);
161
        break;
162
    case 26:
163
        instance_destroy();
164
        break;
165
}