Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_arcade_boss_Step_0

(view raw script w/o annotations or w/e)
1
if (arc_enemy_death == false)
2
{
3
    if (step > 0 && arc_enemy_hp < 70)
4
    {
5
        x += arc_enemy_hsp;
6
        if (x > 200)
7
            arc_enemy_hsp = -2;
8
        else if (x < 100)
9
            arc_enemy_hsp = 2;
10
    }
11
    if (arc_boss_attack == 0)
12
    {
13
        switch (step)
14
        {
15
            case 0:
16
                if (y < y_destination)
17
                    y += 1.5;
18
                else
19
                    step++;
20
                break;
21
            case 1:
22
                if (wait_timer > 0)
23
                    wait_timer--;
24
                else
25
                    step++;
26
                break;
27
            case 2:
28
                arc_boss_attack = choose(1, 2, 3);
29
                step = 0;
30
                break;
31
            case 6:
32
                wait_timer = 90;
33
                step = 1;
34
                break;
35
        }
36
    }
37
    if (arc_boss_attack == 1)
38
    {
39
        switch (step)
40
        {
41
            case 0:
42
                if (wait_timer > 0)
43
                {
44
                    wait_timer--;
45
                }
46
                else
47
                {
48
                    step++;
49
                    wait_timer = 15;
50
                    instance_create(x + 10, y + 10, obj_arcade_enemy_tear);
51
                }
52
                break;
53
            case 1:
54
                if (wait_timer > 0)
55
                {
56
                    wait_timer--;
57
                }
58
                else
59
                {
60
                    step++;
61
                    wait_timer = 15;
62
                    instance_create(x - 10, y + 10, obj_arcade_enemy_tear);
63
                }
64
                break;
65
            case 2:
66
                arc_boss_attack = 0;
67
                wait_timer = 90;
68
                step = 1;
69
                break;
70
        }
71
    }
72
    if (arc_boss_attack == 2)
73
    {
74
        switch (step)
75
        {
76
            case 0:
77
                if (wait_timer > 0)
78
                {
79
                    wait_timer--;
80
                }
81
                else
82
                {
83
                    step++;
84
                    wait_timer = 15;
85
                    instance_create(90, 40, obj_arcade_enemy);
86
                    instance_create(225, 40, obj_arcade_enemy);
87
                }
88
                break;
89
            case 1:
90
                arc_boss_attack = 0;
91
                wait_timer = 75;
92
                step = 1;
93
                break;
94
        }
95
    }
96
    if (arc_boss_attack == 3)
97
    {
98
        switch (step)
99
        {
100
            case 0:
101
                if (wait_timer > 0)
102
                {
103
                    wait_timer--;
104
                }
105
                else
106
                {
107
                    step++;
108
                    wait_timer = 10;
109
                    instance_create(x - 24, y + 16, obj_arcade_enemy_homing);
110
                }
111
                break;
112
            case 1:
113
                if (wait_timer > 0)
114
                {
115
                    wait_timer--;
116
                }
117
                else
118
                {
119
                    step++;
120
                    wait_timer = 15;
121
                    instance_create(x - 12, y + 20, obj_arcade_enemy_homing);
122
                }
123
                break;
124
            case 2:
125
                if (wait_timer > 0)
126
                {
127
                    wait_timer--;
128
                }
129
                else
130
                {
131
                    step++;
132
                    wait_timer = 15;
133
                    instance_create(x, y + 24, obj_arcade_enemy_homing);
134
                }
135
                break;
136
            case 3:
137
                if (wait_timer > 0)
138
                {
139
                    wait_timer--;
140
                }
141
                else
142
                {
143
                    step++;
144
                    wait_timer = 15;
145
                    instance_create(x + 12, y + 20, obj_arcade_enemy_homing);
146
                }
147
                break;
148
            case 4:
149
                if (wait_timer > 0)
150
                {
151
                    wait_timer--;
152
                }
153
                else
154
                {
155
                    step++;
156
                    wait_timer = 15;
157
                    instance_create(x + 24, y + 16, obj_arcade_enemy_homing);
158
                }
159
                break;
160
            case 5:
161
                arc_boss_attack = 0;
162
                wait_timer = 90;
163
                step = 1;
164
                break;
165
        }
166
    }
167
}
168
else
169
{
170
    if (step == 0)
171
    {
172
        audio_play_sound(snd_mew_boss_spare, 1, 0);
173
        audio_sound_gain(mus_mew_boss, 0, 3000);
174
        step++;
175
    }
176
    if (step == 1)
177
    {
178
        if (image_index >= (image_number - 1))
179
        {
180
            image_speed = 0;
181
            arc_enemy_hsp = 3;
182
            audio_play_sound(snd_mew_seeya, 1, 0);
183
            step++;
184
        }
185
    }
186
    if (step == 2)
187
        x += arc_enemy_hsp;
188
}
189
if (x > 260)
190
{
191
    instance_destroy();
192
    instance_deactivate_all(true);
193
    instance_activate_object(obj_pl);
194
    instance_activate_object(global.party_member);
195
    instance_activate_object(obj_controller);
196
    instance_activate_object(obj_radio);
197
    instance_activate_object(obj_arcade_controller);
198
    obj_arcade_controller.arcade_game_win = true;
199
    audio_play_sound(choose(snd_mew_win_1, snd_mew_win_2), 1, 0);
200
}