Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_plat_enm_yellow_miniboss_Step_0

related scripts: Collision_obj_plat_enm_smallgloveCollision_obj_plat_playerCollision_obj_plat_susieaxe_hbxCreate_0Destroy_0Draw_0Draw_72Other_19Other_4PreCreate_0Step_0 Step_2

(view raw script w/o annotations or w/e)
1
event_inherited();
2
if (global.pause_plat)
3
{
4
    
scr_pause_alarms
scr_pause_alarms

function
scr_pause_alarms(arg0 = 11)
{ for (i = 0; i <= arg0; i++) { if (alarm[i] != -1 && alarm[i] != 0) alarm[i]++; } }
();
5
    exit;
6
}
7
if (!can_attack)
8
    exit;
9
if (!init && 
scr_onscreen
scr_onscreen

function
scr_onscreen(arg0)
{ __obj = arg0; var __cx = camera_get_view_x(view_camera[0]); var __cy = camera_get_view_y(view_camera[0]); if ((__obj.x + __obj.sprite_width) < __cx || __obj.x > (__cx + 640) || (__obj.y + __obj.sprite_height) < __cy || __obj.y > (__cy + 480)) return false; else return true; }
(self))
10
    init = true;
11
if (init)
12
{
13
    if (
scr_onscreen_tolerance
scr_onscreen_tolerance

function
scr_onscreen_tolerance(arg0, arg1)
{ obj = arg0; spacer = arg1; var __cx = camera_get_view_x(view_camera[0]); var __cy = camera_get_view_y(view_camera[0]); if ((obj.x + obj.sprite_width + spacer) < __cx || (obj.x - spacer) > (__cx + 640) || (obj.y + obj.sprite_height + spacer) < __cy || (obj.y - spacer) > (__cy + 480)) return false; else return true; }
(self, -140))
14
        despawn_timer++;
15
    else
16
        despawn_timer = min(despawn_timer, 5340);
17
    if (despawn_timer >= 5400 && con != 999)
18
    {
19
        hp = 999;
20
        hit = 0;
21
        con = 999;
22
        with (obj_dw_fcastle_yellow_miniboss)
23
            
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function scr_script_delayed_until() { var __scriptdelay = instance_create(0, 0, obj_script_delayed_function); __scriptdelay.script = argument[0]; __scriptdelay.condition = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function delay_function(arg0, arg1) { return
scr_script_delayed(arg0, arg1);
}
(pattern_expire, 80);
24
        with (__spawner)
25
            instance_destroy();
26
        snd_play(snd_spearappear_choppy);
27
        clear_targets();
28
        hspeed = 0;
29
        vspeed = 0;
30
        paused_spd = 0;
31
        auraalph = 0;
32
        flash_hurt(16777215);
33
        with (
scr_afterimage_monochrome
scr_afterimage_monochrome

function
scr_afterimage_monochrome(arg0, arg1)
{ afterimage = instance_create(x, y, obj_afterimage_onecolor); afterimage.tint = arg0; afterimage.additive = arg1; afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; } function scr_afterimage_monochrome_parallax(arg0, arg1, arg2) { afterimage = instance_create(x, y, obj_afterimage_onecolor_parallax); afterimage.tint = arg0; afterimage.additive = arg1; afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; afterimage.parallax_depth = arg2; return afterimage; }
(16777215, 1))
34
        {
35
            image_alpha = 0.3;
36
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_xscale", image_xscale, image_xscale + 0.5, 15, 1, "out");
37
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_yscale", image_yscale, image_yscale + 0.5, 15, 1, "out");
38
        }
39
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_alpha", image_alpha, 0, 30);
40
        scr_delay_var("y", y - 10000, 80);
41
        
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ var _doom = instance_create_depth(0, 0, 0, obj_doom); with (_doom) { alarm[0] target = arg0; } return _doom; }
(self, 80);
42
        exit;
43
    }
44
}
45
if (con != 99 && collision_circle(x, y, 20 * image_xscale, obj_plat_hbx, false, true) && hp < 990)
46
{
47
    with (obj_plat_hbx)
48
    {
49
        if (!hit_check(other.id))
50
            exit;
51
    }
52
    hp--;
53
    if (remaining_combo > 0)
54
        hp--;
55
    hit = 1;
56
    shake = 4;
57
    if (con == 0)
58
        on_flower_ruined();
59
    with (obj_plat_hbx)
60
    {
61
        do_hbx_hit(-4, 0);
62
        with (other)
63
            spawn_hit_petals(3, point_direction(other.x, other.y, x, y), 1);
64
    }
65
    with (instance_create_depth(x, y, depth + 1, obj_plat_vfx))
66
    {
67
        sprite_index = spr_hit_vfx;
68
        image_speed = 1;
69
        depth = other.depth - 1;
70
    }
71
    with (instance_create_depth(x, y, depth + 1, obj_plat_vfx))
72
    {
73
        sprite_index = spr_smokepuff;
74
        image_speed = 2;
75
        depth = other.depth - 1;
76
    }
77
    if (remaining_combo > 0)
78
    {
79
        shake = 12;
80
        snd_play(snd_punchheavythunder, 0.6, 1.3);
81
        flash_hurt();
82
    }
83
    if (remaining_combo > 0)
84
    {
85
        remaining_combo--;
86
        snd_play(snd_metalhit, 1, 2 - (remaining_combo / remaining_combo_max));
87
        if (remaining_combo == 0)
88
        {
89
            scr_plat_cool_zoom();
90
            con = 6;
91
            snd_play(snd_glove_launch);
92
            direction = image_angle + 180;
93
            speed = 6;
94
            contimer = 0;
95
        }
96
    }
97
    if (hp <= 0)
98
    {
99
        instance_destroy();
100
        exit;
101
    }
102
    if (con == 6)
103
    {
104
        if (turnstun <= -2)
105
            event_user(9);
106
    }
107
}
108
if (hit > 0)
109
    exit;
110
if (shaketimer > 0)
111
{
112
    shake = 5;
113
    shaketimer--;
114
    hspeed = 0;
115
    vspeed = 0;
116
    paused_spd = 0;
117
    if (shaketimer <= 0)
118
        shake = 0;
119
    if ((shaketimer % 2) == 1)
120
        
scr_plat_create_stunspark
scr_plat_create_stunspark

function
scr_plat_create_stunspark()
{ var spark = instance_create(random_range(bbox_left, bbox_right), random_range(bbox_top, bbox_bottom), obj_marker); with (spark) { sprite_index = spr_plat_rudebuster_sparks; image_speed = 0; depth = other.depth - 1; image_index = irandom_range(0, 3); image_angle = random_range(0, 360);
scr_shakeobj();
scr_doom(self, 2);
} }
();
121
    exit;
122
}
123
else
124
{
125
    contimer += 1;
126
}
127
buff_timer++;
128
if (con == 0)
129
{
130
    if (y >= ystart)
131
    {
132
        vspeed = choose(-4, -6);
133
        image_angle = -choose(40, 45, 50);
134
        if (x > (xstart + 200))
135
            hspeed = -abs(hspeed);
136
        else if (x < (xstart - 200))
137
            hspeed = abs(hspeed);
138
        repeat (2)
139
        {
140
            var note = instance_create(x + random_range(-100, 100), y - random_range(80, 40), obj_marker);
141
            with (note)
142
            {
143
                depth = other.depth - 1;
144
                sprite_index = spr_musical_notes;
145
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_alpha", 1, 0, 16);
146
            }
147
        }
148
    }
149
    vspeed += 0.5;
150
}
151
else if (con == 1)
152
{
153
    auraalph = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(auraalph, 1, 0.1);
154
    var xx = 0;
155
    var yy = 0;
156
    with (obj_genmarker)
157
    {
158
        if (extflag == ("guntop" + string(other.position_index + 1)))
159
        {
160
            xx = x;
161
            yy = y;
162
        }
163
    }
164
    x = lerp(x, xx, contimer / 35);
165
    y = lerp(y, yy, contimer / 35);
166
    if (contimer >= 35 && contimer <= 65)
167
    {
168
        if (contimer == 35)
169
        {
170
            snd_play(snd_angry_train_whistle);
171
            with (obj_plat_cam_clampzone)
172
            {
173
                if (y == 200)
174
                    y = -200;
175
            }
176
            with (instance_create(0, 0, obj_plat_cam_clampzone))
177
            {
178
                other.my_camzone = id;
179
                image_xscale = 100;
180
                image_yscale = 100;
181
                with (obj_plat_camera)
182
                {
183
                    other.ymin = y - 240;
184
                    other.ymax = y - 240;
185
                }
186
            }
187
        }
188
        if ((contimer % 2) == 0)
189
        {
190
            if ((contimer % 4) == 2)
191
                image_angle -= 5;
192
            else
193
                image_angle += 5;
194
        }
195
        var ang = random_range(-35, 35);
196
        xx = x + lengthdir_x(60, ang + 90);
197
        yy = y + lengthdir_y(20, ang + 90);
198
        with (instance_create(xx, yy, obj_animation))
199
        {
200
            sprite_index = spr_yellow_gun_angry_steam;
201
            
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
202
            depth = other.depth - 1;
203
            image_speed = 0.25;
204
            image_angle = ang;
205
            direction = ang + 90;
206
            speed = random_range(1, 3);
207
        }
208
    }
209
    if (contimer >= 85)
210
    {
211
        con = 2;
212
        last_psi = position_index;
213
        image_angle += 360;
214
        contimer = 0;
215
        attackvolley = 0;
216
    }
217
}
218
else if (con == 2)
219
{
220
    if (contimer == 1)
221
    {
222
        targetlist = [];
223
        attackvolley++;
224
        if (attackvolley >= 6)
225
        {
226
            con = 3;
227
            contimer = 0;
228
            attackvolley = 0;
229
        }
230
    }
231
    if (contimer >= 15)
232
    {
233
        if (array_length(targetlist) > 0)
234
        {
235
            var target = targetlist[0];
236
            image_angle = lerp(image_angle, point_direction(x, y, target.x, target.y), 0.4);
237
            if ((contimer % 10) == 0)
238
            {
239
                spawn_cakesmoke(3);
240
                snd_play(snd_whack_absurdlyloud, 0.2, 0.75);
241
                with (target)
242
                    instance_destroy();
243
                array_delete(targetlist, 0, 1);
244
                var ang = image_angle;
245
                var xx = x + lengthdir_x(88, ang);
246
                var yy = y + lengthdir_y(88, ang);
247
                var bul = instance_create(xx, yy, obj_plat_bulletred);
248
                with (bul)
249
                {
250
                    do_contact_kill = function()
251
                    {
252
                        with (
scr_plat_vfx
scr_plat_vfx

function
scr_plat_vfx(arg0)
{ var _vfx = instance_create_depth(x, y, depth, obj_plat_vfx); _vfx.sprite_index = arg0; return _vfx; } function scr_vfx_above(arg0) { var _vfx = instance_create_depth(x, y, depth - 1, obj_plat_vfx); _vfx.sprite_index = arg0; return _vfx; } function scr_plat_vfx_ringhit(arg0, arg1, arg2, arg3) {
scr_make_ripple(arg0, arg1, 80, arg3, 280, 2, 20, depth, 0, 0, 0, 1, 0.8);
scr_make_ripple(arg0, arg1, 120, arg3, 480, 2, 15, depth, 0, 0, 0, 1, 0.8);
scr_make_ripple(arg0, arg1, 160, arg3, 680, 2, 10, depth, 0, 0, 0, 1, 0.8);
repeat (7) { with (instance_create(arg0, arg1, obj_animation)) { sprite_index = spr_plat_impact_splash; direction = random_range(0, 360); speed = random_range(3, 12); friction = 0.8; image_speed = 0.3; image_angle = direction;
scr_darksize();
image_blend = arg3; } } }
(3607))
253
                        {
254
                            die_animend = 1;
255
                            depth -= 1;
256
                        }
257
                    };
258
                    
259
                    image_blend = c_red;
260
                    sprite_index = spr_bullet_yellow_1;
261
                    direction = ang;
262
                    image_xscale = 1;
263
                    image_yscale = 1;
264
                    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_xscale", 1, 3, 4);
265
                    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_yscale", 1, 4, 4);
266
                    scr_delay_var("depth", depth, 4);
267
                    scr_delay_var("damage", 60, 4);
268
                    depth = other.depth + 20;
269
                    damage = 0;
270
                    speed = 12;
271
                    image_angle = direction;
272
                }
273
            }
274
        }
275
        else
276
        {
277
            contimer = 0;
278
        }
279
    }
280
    else if (contimer > 0)
281
    {
282
        if (array_length(targetlist) < 3 && (contimer % 4) == 0)
283
        {
284
            snd_play(snd_bombfall);
285
            var xx = obj_plat_player.x + random_range(-90 + (10 * obj_plat_player.hspeed), 90 + (10 * obj_plat_player.hspeed));
286
            var yy = random_range(other.y + 180, other.y + 320);
287
            var targ = instance_create(xx, yy, obj_marker_fancy);
288
            with (targ)
289
            {
290
                idx = array_length(other.targetlist);
291
                sprite_index = spr_baseball_reticle;
292
                depth = 2000;
293
                
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
294
                image_alpha = 0.5;
295
                
296
                step_func = function()
297
                {
298
                    image_alpha = 0.65 + (sin((0.03 * current_time) + (idx * 0.15)) * 0.1);
299
                };
300
            }
301
            array_push(targetlist, targ);
302
        }
303
    }
304
}
305
else if (con == 3)
306
{
307
    if (contimer == 1)
308
        targetlist = [];
309
    if (contimer >= 30)
310
    {
311
        if (array_length(targetlist) > 0)
312
        {
313
            var target = targetlist[0];
314
            image_angle = lerp(image_angle, point_direction(x, y, target.x, target.y), 0.8);
315
            if ((contimer % 5) == 0)
316
            {
317
                spawn_cakesmoke(3);
318
                snd_play(snd_whack_absurdlyloud, 0.2, 0.75);
319
                with (target)
320
                    instance_destroy();
321
                array_delete(targetlist, 0, 1);
322
                var ang = image_angle;
323
                var xx = x + lengthdir_x(88, ang);
324
                var yy = y + lengthdir_y(88, ang);
325
                var bul = instance_create(xx, yy, obj_plat_bulletred);
326
                with (bul)
327
                {
328
                    do_contact_kill = function()
329
                    {
330
                        with (
scr_plat_vfx
scr_plat_vfx

function
scr_plat_vfx(arg0)
{ var _vfx = instance_create_depth(x, y, depth, obj_plat_vfx); _vfx.sprite_index = arg0; return _vfx; } function scr_vfx_above(arg0) { var _vfx = instance_create_depth(x, y, depth - 1, obj_plat_vfx); _vfx.sprite_index = arg0; return _vfx; } function scr_plat_vfx_ringhit(arg0, arg1, arg2, arg3) {
scr_make_ripple(arg0, arg1, 80, arg3, 280, 2, 20, depth, 0, 0, 0, 1, 0.8);
scr_make_ripple(arg0, arg1, 120, arg3, 480, 2, 15, depth, 0, 0, 0, 1, 0.8);
scr_make_ripple(arg0, arg1, 160, arg3, 680, 2, 10, depth, 0, 0, 0, 1, 0.8);
repeat (7) { with (instance_create(arg0, arg1, obj_animation)) { sprite_index = spr_plat_impact_splash; direction = random_range(0, 360); speed = random_range(3, 12); friction = 0.8; image_speed = 0.3; image_angle = direction;
scr_darksize();
image_blend = arg3; } } }
(3607))
331
                        {
332
                            die_animend = 1;
333
                            depth -= 1;
334
                        }
335
                    };
336
                    
337
                    image_blend = c_red;
338
                    sprite_index = spr_bullet_yellow_1;
339
                    direction = ang;
340
                    image_xscale = 1;
341
                    image_yscale = 1;
342
                    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_xscale", 1, 3, 4);
343
                    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_yscale", 1, 4, 4);
344
                    scr_delay_var("depth", depth, 4);
345
                    scr_delay_var("damage", 60, 4);
346
                    depth = other.depth + 20;
347
                    damage = 0;
348
                    speed = 12;
349
                    image_angle = direction;
350
                }
351
            }
352
        }
353
        else if (contimer >= 80)
354
        {
355
            contimer = 0;
356
            con = 4;
357
        }
358
    }
359
    else if (contimer > 0)
360
    {
361
        var dir = (position_index == 1) ? 1 : -1;
362
        image_angle = lerp(image_angle, 270 + (55 * dir), 0.3);
363
        if (array_length(targetlist) < 8 && (contimer % 2) == 0)
364
        {
365
            snd_play(snd_bombfall, 1, 1.3);
366
            var xx = 0;
367
            xx = (camerax() + (0.5 * camerawidth()) + (320 * dir)) - (dir * (-40 + (40 * contimer) + random_range(-10, 10)));
368
            var yy = random_range(other.y + 180, other.y + 320);
369
            var targ = instance_create(xx, yy, obj_marker_fancy);
370
            with (targ)
371
            {
372
                idx = array_length(other.targetlist);
373
                sprite_index = spr_baseball_reticle;
374
                depth = 2000;
375
                
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
376
                image_alpha = 0.5;
377
                
378
                step_func = function()
379
                {
380
                    image_alpha = 0.65 + (sin((0.03 * current_time) + (idx * 0.15)) * 0.1);
381
                };
382
            }
383
            array_push(targetlist, targ);
384
        }
385
    }
386
}
387
else if (con == 4)
388
{
389
    if (simple)
390
    {
391
        con = 2;
392
        contimer = 0;
393
    }
394
    else
395
    {
396
        if (contimer == 1)
397
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("auraalph", 1, 0, 30);
398
        var can_sweat = (contimer % 20) == 0;
399
        with (obj_plat_follower)
400
        {
401
            if (is_platform_mode > 0)
402
            {
403
                other.contimer--;
404
                can_sweat = false;
405
            }
406
        }
407
        if (can_sweat)
408
        {
409
            with (instance_create(x + random_range(-100, 100), y + random_range(-30, 30), obj_marker))
410
            {
411
                sprite_index = spr_yellow_miniboss_sweat;
412
                
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
413
                depth = other.depth - 1;
414
                vspeed = 2;
415
                friction = 0.1;
416
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_alpha", 1, 0, 30, 1, "out");
417
                
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ var _doom = instance_create_depth(0, 0, 0, obj_doom); with (_doom) { alarm[0] target = arg0; } return _doom; }
(self, 30);
418
            }
419
        }
420
        if (contimer == 180)
421
        {
422
            con = 2;
423
            contimer = 0;
424
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("auraalph", 0, 1, 30);
425
        }
426
    }
427
}
428
else if (con == 5)
429
{
430
    if (contimer == 1)
431
    {
432
        vspeed = 12;
433
        remaining_combo = remaining_combo_max;
434
        target_angle = image_angle;
435
    }
436
    vspeed = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(vspeed, 0, 0.6);
437
}
438
else if (con == 6)
439
{
440
    var time = 150;
441
    stored_speed = speed;
442
    turnstun--;
443
    var maxspeed = 32;
444
    if (contimer > (time - 60))
445
        maxspeed = lerp(32, 0, clamp01((contimer - (time - 60)) / 60));
446
    if (turnstun > 0)
447
        speed = 0;
448
    else
449
        speed = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(speed, maxspeed, 3);
450
    if (turnstun <= -2)
451
    {
452
        event_user(9);
453
        if (turnstun == 2)
454
            contimer = time;
455
    }
456
    if ((target_angle % 360) != (image_angle % 360) && con != 7)
457
    {
458
        var diff = angle_difference(target_angle, image_angle);
459
        var maximum = clamp(abs(diff * 0.5), 5, 90);
460
        image_angle += clamp(diff, -maximum, maximum);
461
    }
462
    if ((contimer % 4) == 0)
463
        spawn_cakesmoke(4);
464
    if (contimer >= time)
465
    {
466
        con = 7;
467
        speed = 0;
468
        last_psi = position_index;
469
        position_index = (position_index + 1) % 2;
470
        contimer = 0;
471
    }
472
}
473
else if (con == 7)
474
{
475
    if (contimer == 1)
476
    {
477
        snd_play(snd_grab);
478
        shake = 6;
479
        with (obj_plat_follower)
480
            drop_off_platform_mode(true);
481
    }
482
    if (contimer == 10)
483
    {
484
        var xx = 0;
485
        var yy = 0;
486
        with (obj_genmarker)
487
        {
488
            if (extflag == ("gunside" + string(other.position_index + 1)))
489
            {
490
                xx = x;
491
                yy = y;
492
            }
493
        }
494
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_angle", image_angle, 0, 20);
495
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("x", x, x + (600 * ((other.last_psi == 1) ? 1 : -1)), 22);
496
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("y", y, y + 60, 22);
497
        scr_delay_var("x", xx, 25);
498
        scr_delay_var("y", yy, 25);
499
        if (xx > x)
500
            scr_delay_var("image_xscale", -2, 25);
501
        else
502
            scr_delay_var("image_xscale", 2, 25);
503
    }
504
    if (contimer == 33)
505
    {
506
        var xx = 0;
507
        var yy = 0;
508
        with (obj_plat_camera)
509
            
scr_pan_lerp
scr_pan_lerp

function
scr_pan_lerp(arg0, arg1, arg2)
{ panner = instance_create(arg0, arg1, obj_panner); panner.panmax = arg2; panner.type = 1; }
(clamp(obj_plat_player.x, min_x, max_x) - 320, y - 240, 20);
510
        if ((last_psi % 2) == 0)
511
        {
512
            with (obj_plat_barrier)
513
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("leftlerp", 0, 1, 20);
514
        }
515
        else
516
        {
517
            with (obj_plat_barrier)
518
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("rightlerp", 0, 1, 20);
519
        }
520
    }
521
    if (contimer >= 33 && i_ex(obj_panner))
522
    {
523
        with (obj_panner)
524
            finalx = clamp(obj_plat_player.x, obj_plat_camera.min_x, obj_plat_camera.max_x) - 320;
525
    }
526
    if (contimer >= 35)
527
    {
528
        contimer = 0;
529
        con = 8;
530
        hp = min(hp, 20);
531
    }
532
}
533
else if (con == 8)
534
{
535
    if (instance_exists(obj_panner))
536
    {
537
        with (obj_panner)
538
            finalx = clamp(obj_plat_player.x, obj_plat_camera.min_x, obj_plat_camera.max_x) - 320;
539
    }
540
    else
541
    {
542
        with (obj_plat_camera)
543
            cutscene = 0;
544
    }
545
    var interval = 45;
546
    if (difficulty == 0)
547
        interval = 45;
548
    if ((contimer % interval) == 1)
549
    {
550
        spawn_cakesmoke(3);
551
        var xx = x + (lengthdir_x(88, image_angle) * image_xscale * 0.5);
552
        var yy = y + lengthdir_y(88, image_angle);
553
        var bul = instance_create(xx, yy, obj_plat_bulletred_ring);
554
        with (bul)
555
        {
556
            image_angle = 180 - (90 * sign(other.image_xscale));
557
            image_xscale = 1;
558
            image_yscale = 2;
559
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_xscale", image_xscale, 2.5, 16, -1, "out");
560
            direction = 90 - (90 * sign(other.image_xscale));
561
            speed = 8;
562
            damage = 0;
563
            scr_delay_var("original_damage", 60, 5);
564
            image_speed = 0;
565
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ var _doom = instance_create_depth(0, 0, 0, obj_doom); with (_doom) { alarm[0] target = arg0; } return _doom; }
(self, 200);
566
            var go_low = (other.contimer % (interval * 2)) == 1;
567
            y = 
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("y", y, (y - 30) + (60 * go_low), 10, 2, "out");
568
        }
569
    }
570
    with (obj_plat_camera)
571
    {
572
        if ((other.last_psi == 1 && x == max_x) || (other.last_psi != 1 && x == min_x))
573
        {
574
            other.con = 1;
575
            other.contimer = 0;
576
            cutscene = 1;
577
            other.difficulty++;
578
            other.image_xscale = 2;
579
            with (obj_plat_barrier)
580
            {
581
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("leftlerp", leftlerp, 0, 25, 1, "out");
582
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("rightlerp", rightlerp, 0, 25, 1, "out");
583
            }
584
        }
585
    }
586
}
587
if (con == 99)
588
{
589
    shake = 4;
590
    if (contimer == 30)
591
    {
592
        con = 100;
593
        contimer = 0;
594
        image_index = 2;
595
        snd_play(snd_badexplosion);
596
        var m = instance_create(x + lengthdir_x(90, image_angle), y + lengthdir_y(90, image_angle), obj_animation);
597
        m.sprite_index = spr_realisticexplosion;
598
        m.depth = other.depth - 1;
599
        with (m)
600
            
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
601
    }
602
}
603
else if (con == 100)
604
{
605
    if (contimer == 60)
606
    {
607
        hp = 0;
608
        hit = 1;
609
        instance_destroy();
610
    }
611
}
612
if (simple)
613
{
614
    var glove = collision_circle(x + lengthdir_x(80, image_angle), y + lengthdir_y(80, image_angle), 8, obj_plat_enm_smallglove, false, true);
615
    if (glove != -4)
616
    {
617
        var ang = abs(angle_difference(image_angle, glove.image_angle));
618
        
scr_debug_print
scr_debug_print

function
scr_debug_print()
{ if (!
scr_debug())
exit; } function scr_debug_clear_all() { }
(string(ang));
619
        if (ang > 150 && ang < 210)
620
        {
621
            con = 99;
622
            contimer = 0;
623
            with (glove)
624
                instance_destroy();
625
        }
626
    }
627
}