Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_spamton_neo_enemy_Draw_0

(view raw script w/o annotations or w/e)
1
if (partmode == 10)
2
    partmode = 9;
3
if (room != room_dw_mansion_b_east_a)
4
{
5
    if (!instance_exists(obj_sneo_phonecall) && obj_spamton_neo_enemy.image_alpha < 1)
6
        obj_spamton_neo_enemy.image_alpha += 0.1;
7
}
8
if (state == 0)
9
    fsiner++;
10
var hidebgvines = 0;
11
if (i_ex(obj_battlecontroller) && global.mercymod[myself] > 89)
12
    hidebgvines = 1;
13
var bgvinecount = 0;
14
for (var ii = 0; ii < 18; ii += 1)
15
{
16
    if (partvisible_back[ii] == 1)
17
        bgvinecount++;
18
    if (hidebgvines == 0)
19
    {
20
        if (partmode != 34)
21
            heartattackoffsetx = 0;
22
        draw_set_color(make_colour_rgb(0, 51, 0));
23
        partsiner_back[ii] += 0.5;
24
        if (instance_exists(obj_sneo_bulletcontroller) && obj_sneo_bulletcontroller.type == 8.5)
25
            draw_set_alpha(image_alpha);
26
        if (partvisible_back[ii] == 1)
27
            draw_line_width(x + partx_back[ii] + partxoff_back[ii] + heartattackoffsetx + (sin(partsiner_back[ii] / 30) * 2), y + party_back[ii] + partyoff_back[ii], x + partx_back[ii] + heartattackoffsetx + partxoff_back[ii], -400, 1);
28
        draw_set_alpha(1);
29
        if (violentendflash > 0)
30
        {
31
            draw_set_color(c_white);
32
            draw_set_alpha(violentendflash / 10);
33
            if (partvisible_back[ii] == 1)
34
                draw_line_width(x + partx_back[ii] + partxoff_back[ii] + heartattackoffsetx + (sin(partsiner_back[ii] / 30) * 2), y + party_back[ii] + partyoff_back[ii], x + partx_back[ii] + heartattackoffsetx + partxoff_back[ii], -400, 1);
35
            draw_set_alpha(1);
36
        }
37
    }
38
}
39
if (weakentimer > 0)
40
{
41
    weakentimer++;
42
    if (weakenshakeamount > 0)
43
        weakenshakeamount -= 0.5;
44
}
45
if (lastwirecon == 0 || lastwirecon == 1)
46
{
47
    draw_set_color(make_colour_rgb(0, 51, 0));
48
    if (instance_exists(obj_sneo_bulletcontroller) && obj_sneo_bulletcontroller.type == 8.5)
49
        draw_set_alpha(image_alpha);
50
    draw_line_width(x + partx[4] + (partxoff[4] / 1.2) + 20 + (sin(partsiner[4] / 25) * 1.8), ((y + party[4]) - 10) + partyoff[4], x + partx[4] + (partxoff[4] / 1.5) + 32, -400, 1);
51
    draw_set_alpha(1);
52
    if (violentendflash > 0)
53
    {
54
        draw_set_color(c_white);
55
        draw_set_alpha(violentendflash / 10);
56
        draw_line_width(x + partx[4] + (partxoff[4] / 1.2) + 20 + (sin(partsiner[4] / 25) * 1.8), ((y + party[4]) - 10) + partyoff[4], x + partx[4] + (partxoff[4] / 1.5) + 32, -400, 1);
57
        draw_set_alpha(1);
58
    }
59
}
60
if (endcon == 1 && lastwirecon == 0)
61
    lastwirecon = 1;
62
if (lastwirecon == 1)
63
{
64
    lastwiretimer++;
65
    if (lastwiretimer == 30)
66
        lastwirecon = 2;
67
}
68
if (lastwirecon == 1 || lastwirecon == 2)
69
{
70
    draw_set_alpha(lastwiretimer / 30);
71
    draw_set_color(c_green);
72
    draw_line_width(x + partx[4] + (partxoff[4] / 1.2) + 20 + (sin(partsiner[4] / 25) * 1.8), ((y + party[4]) - 10) + partyoff[4], x + partx[4] + (partxoff[4] / 1.5) + 32, -400, 1 + (lastwiretimer / 30));
73
    draw_set_alpha(1);
74
}
75
var fgvinecount = 0;
76
for (var i = 0; i < 6; i += 1)
77
{
78
    draw_set_color(c_green);
79
    var weakenshakeamount2 = 0;
80
    if (partweakened[i] == 1)
81
        weakenshakeamount2 = weakenshakeamount - (random(weakenshakeamount) * 2);
82
    if (partweakened[i] > 0)
83
        draw_set_color(c_orange);
84
    if (instance_exists(obj_sneo_bulletcontroller) && obj_sneo_bulletcontroller.type == 8.5)
85
        draw_set_alpha(image_alpha);
86
    if (partvisible[i] == 1)
87
    {
88
        draw_line_width(x + partx[i] + (partxoff[i] / 1.2) + (i * 5) + (sin(partsiner[i] / 30) * 2) + weakenshakeamount2, ((y + party[i]) - 10) + partyoff[i] + weakenshakeamount2, x + partx[i] + (partxoff[i] / 1.5) + (i * 8), -400, 2);
89
        fgvinecount++;
90
    }
91
    draw_set_alpha(1);
92
    if (partweakened[i] == 1 && weakentimer < 11)
93
    {
94
        draw_set_color(c_white);
95
        draw_set_alpha(11 - (weakentimer / 10));
96
        if (instance_exists(obj_sneo_phonecall))
97
            draw_set_alpha(image_alpha);
98
        draw_line_width(x + partx[i] + (partxoff[i] / 1.2) + (i * 5) + (sin(partsiner[i] / 30) * 2) + weakenshakeamount2, ((y + party[i]) - 10) + partyoff[i] + weakenshakeamount2, x + partx[i] + (partxoff[i] / 1.5) + (i * 8), -400, 2);
99
        draw_set_alpha(1);
100
    }
101
    if (violentendflash > 0)
102
    {
103
        draw_set_color(c_white);
104
        draw_set_alpha(violentendflash / 10);
105
        if (instance_exists(obj_sneo_phonecall))
106
            draw_set_alpha(image_alpha);
107
        draw_line_width(x + partx[i] + (partxoff[i] / 1.2) + (i * 5) + (sin(partsiner[i] / 30) * 2) + weakenshakeamount2, ((y + party[i]) - 10) + partyoff[i] + weakenshakeamount2, x + partx[i] + (partxoff[i] / 1.5) + (i * 8), -400, 2);
108
        draw_set_alpha(1);
109
    }
110
    if (partweakened[i] == 1 && weakentimer == 10)
111
        partweakened[i] = 2;
112
}
113
if (i_ex(obj_battlecontroller) && global.mercymod[myself] > 89 && bgvinecount > 0 && !i_ex(obj_sneo_vine_transition) && !i_ex(obj_sneo_vine_cut))
114
{
115
    for (var i = 0; i < 6; i += 1)
116
    {
117
        if (obj_spamton_neo_enemy.partvisible[i] == 0)
118
        {
119
            obj_spamton_neo_enemy.vineid = i;
120
            vine = instance_create(x, y, obj_sneo_vine_transition);
121
        }
122
    }
123
}
124
if (specialcon == 1)
125
{
126
    specialcontimer++;
127
    for (var i = 0; i < 8; i += 1)
128
    {
129
        partrot[i] = lerp(partrot[i], 0, 0.07 * f);
130
        partx[i] = lerp(partx[i], 0, 0.05 * f);
131
        party[i] = lerp(party[i], 0, 0.03 * f);
132
    }
133
    flameframe = (specialcontimer / 4) % 2;
134
    flamealpha = specialcontimer / 15;
135
    if (flamealpha >= 0.9)
136
        flamealpha = 0.9;
137
    if (specialcontimer >= 15)
138
    {
139
        flamealpha = 1 - (specialcontimer / 60);
140
        if (flamealpha < 0)
141
            flamealpha = 0;
142
    }
143
    if (specialcontimer >= 60)
144
    {
145
        specialcontimer = 12;
146
        specialcon = 0;
147
        image_index = 0;
148
    }
149
    draw_sprite_ext(spr_bhero, 10 + flameframe, x + 75, y + 177, -2, 2.8 + abs(sin(specialcontimer / 4) / 2), 0, c_blue, flamealpha);
150
    draw_sprite_ext(spr_bhero, 11 - flameframe, x + 75, y + 177, -2, 2.8, 0, c_teal, flamealpha / 1.4);
151
}
152
shocker -= (1 * f);
153
for (var i = 0; i < 8; i += 1)
154
{
155
    if (partmode < 20)
156
    {
157
        if (partmode == 0)
158
        {
159
            partsiner[i] = 0;
160
            partframe[i] = 0;
161
            if (i == 5)
162
            {
163
                partrot[i] = lerp(partrot[i], 30, 0.25 * f);
164
                partx[i] = lerp(partx[i], -10, 0.25 * f);
165
                party[i] = lerp(party[i], 10, 0.25 * f);
166
                if (dead == 1)
167
                    partframe[i] = 3;
168
            }
169
            else
170
            {
171
                partrot[i] = lerp(partrot[i], 0, 0.25 * f);
172
                partx[i] = lerp(partx[i], 0, 0.25 * f);
173
                party[i] = lerp(party[i], 0, 0.25 * f);
174
                if (abs(partrot[i]) < 1)
175
                    partrot[i] = 0;
176
                if (abs(partx[i]) < 1)
177
                    partx[i] = 0;
178
                if (abs(party[i]) < 1)
179
                    party[i] = 0;
180
            }
181
        }
182
        if (partmode == 1 || partmode == 3 || partmode >= 5)
183
        {
184
            if (partmode == 1 && aimmode != 0)
185
                aimmode = 0;
186
            if ((partmode == 3 || (partmode >= 9 && partmode <= 13)) && i == 1)
187
            {
188
                if (aimmode == 2 && instance_exists(obj_heart) && partmode == 3)
189
                    armaim = point_direction(x + partxoff[i], y + partyoff[i], obj_heart.x + 8, obj_heart.y + 8) + 90;
190
                else if (aimmode != 1)
191
                    armaim = -80;
192
                if (partmode < 10)
193
                    partrot[i] = lerp(partrot[i], armaim, 0.25 * f);
194
                if (partmode < 9)
195
                    partframe[i] = (partmode == 3) ? 1 : 3;
196
                if (partmode == 12)
197
                    partframe[i] = 1;
198
                if (partmode >= 10)
199
                {
200
                    if (partrot[i] == armaim)
201
                        partrot[i] = armaim + 2;
202
                    else
203
                        partrot[i] = armaim;
204
                }
205
            }
206
            else if (partmode >= 6 && partmode < 11 && i == 1)
207
            {
208
                partrot[i] = lerp(partrot[i], -160, 0.25 * f);
209
                if (partframe[i] != 2 && partrot[i] <= -90)
210
                    partframe[i] = 2;
211
            }
212
            else
213
            {
214
                if (i == 1)
215
                {
216
                    if (partmode == 5 || partmode == 1)
217
                        partframe[i] = 0;
218
                }
219
                partsiner[i] += (1 + (i / 5)) * f;
220
                partrot[i] = sin(partsiner[i] / 30) * 15;
221
            }
222
            if (i == 5)
223
            {
224
                partx[i] = lerp(partx[i], 0, 0.25 * f);
225
                party[i] = lerp(party[i], 0, 0.25 * f);
226
                partrot[i] -= 10 * f;
227
                if (partmode == 5 || partmode == 8 || partmode == 9)
228
                {
229
                    partrot[i] /= 2;
230
                    partrot[i] += 10 * f;
231
                    partframe[i] = 1;
232
                }
233
                else if (partmode == 6 || partmode == 7)
234
                {
235
                    partrot[i] /= 2;
236
                    if (partmode > 6 || partrot[1] <= -120)
237
                        partframe[i] = 0;
238
                }
239
                else if (partmode == 11)
240
                {
241
                    partframe[i] += 0.2 * f;
242
                }
243
                else if (partmode == 12)
244
                {
245
                    partframe[i] += 0.3 * f;
246
                }
247
                else
248
                {
249
                    partframe[i] += 0.05 * f;
250
                }
251
                if (partframe[i] >= 3)
252
                    partframe[i] = 0;
253
                if (partframe[i] >= 2)
254
                    partrot[i] += 20 * f;
255
            }
256
        }
257
        if (partmode == 2)
258
        {
259
            partsiner[i] += (1 + (i / 5)) * f;
260
            partx[i] = sin((partsiner[i] / 2) * f);
261
            party[i] = cos((partsiner[i] / 2) * f);
262
            if (shocker < 0)
263
            {
264
                partrot[i] = 60 - random(120);
265
                if (i == 5)
266
                {
267
                    partframe[i] += 1 * f;
268
                    if (partframe[i] >= 3)
269
                        partframe[i] = 0;
270
                }
271
            }
272
        }
273
        if (partmode == 4)
274
        {
275
            idealrot[0] = -43;
276
            idealrot[1] = -180;
277
            idealrot[2] = -20;
278
            idealrot[3] = -10;
279
            idealrot[4] = -31;
280
            idealrot[5] = -60;
281
            idealrot[6] = -61;
282
            idealrot[7] = -56;
283
            if (shotanimtimer == (0.125 * f) && i == 1)
284
            {
285
                armendx = x + partx[1] + partxoff[1] + lengthdir_x(armlength, partrot[1] - 93);
286
                armendy = y + party[1] + partyoff[1] + lengthdir_y(armlength, partrot[1] - 93);
287
                if (instance_exists(obj_sneo_heartattack))
288
                    aimmode = 0;
289
            }
290
            shotanimtimer += (0.125 * f);
291
            if (shotanimtimer < 13)
292
            {
293
                partframe[5] = 2;
294
                partrot[i] = lerp(partrot[i], idealrot[i], 0.3 * f);
295
                lerper = 0;
296
            }
297
            if (shotanimtimer >= 13)
298
            {
299
                partframe[5] = 1;
300
                lerper += (0.015 * f);
301
                if (i != 1)
302
                    partrot[i] = lerp(partrot[i], sin(partsiner[i] / 30) * 15, lerper);
303
                if (i == 1)
304
                    partrot[i] = lerp(partrot[i], armaim, lerper);
305
            }
306
            if (shotanimtimer >= 24)
307
            {
308
                shotanimtimer = 0;
309
                partmode = 3;
310
            }
311
        }
312
        if (partmode == 6)
313
            shotanimtimer = 0;
314
        if (partmode == 7)
315
        {
316
            partrot[5] += sin(shotanimtimer / 5) * 15;
317
            shotanimtimer += (0.2 * f);
318
            if (shotanimtimer > 60)
319
                partmode = 6;
320
        }
321
        if (partmode == 20)
322
        {
323
            partrot[0] = -96 + random(3);
324
            partrot[1] = -143 + random(3);
325
            partrot[2] = -81 + random(3);
326
            partrot[3] = -1 + random(3);
327
            partrot[4] = -67 + random(3);
328
            partrot[5] = -45 + random(3);
329
            partframe[5] = 2;
330
            partrot[6] = 127 + random(3);
331
            partrot[7] = -43 + random(3);
332
        }
333
        if (i == 5)
334
        {
335
            if (partmode >= 15 && partmode <= 18)
336
            {
337
                if (partmode == 15)
338
                {
339
                    partframe[5] = 2;
340
                    headsize = lerp(headsize, 0.5, 0.25);
341
                }
342
                if (partmode == 16)
343
                {
344
                    partframe[5] = 2;
345
                    headsize = lerp(headsize, 1, 0.25);
346
                }
347
                if (partmode == 17)
348
                {
349
                    partframe[5] = 2;
350
                    headsize = lerp(headsize, 1.5, 0.25);
351
                    partrot[5] += random(20);
352
                }
353
            }
354
            else
355
            {
356
                headsize = lerp(headsize, 0, 0.25);
357
            }
358
        }
359
    }
360
    if (partmode >= 21 && partmode <= 30)
361
    {
362
        if (partmode == 21 || partmode == 23 || partmode == 24 || partmode == 25)
363
        {
364
            partsiner[i] += 0.1;
365
            partx[i] = lerp(partx[i], 0, 0.5);
366
            party[i] = lerp(party[i], 0, 0.5);
367
            idealrot[i] = sin(partsiner[i] + (i / 8)) * 20;
368
            idealrot[1] = sin(partsiner[2]) * 60;
369
            idealrot[2] = sin(partsiner[2] - 0.1) * 60;
370
            idealrot[3] = -sin(partsiner[2] + 0.3) * 60;
371
            idealrot[6] = -sin(partsiner[2] + 0.1) * 60;
372
            partframe[5] = 1;
373
            partrot[i] = lerp(partrot[i], idealrot[i], 0.5);
374
            partrot[5] += 2;
375
            if (i == 5)
376
            {
377
                if (partmode == 23)
378
                {
379
                    partframe[5] = 2;
380
                    headsize = lerp(headsize, 0.5, 0.25);
381
                }
382
                if (partmode == 24)
383
                {
384
                    partframe[5] = 2;
385
                    headsize = lerp(headsize, 1, 0.25);
386
                }
387
                if (partmode == 25)
388
                {
389
                    partframe[5] = 2;
390
                    headsize = lerp(headsize, 1.5, 0.25);
391
                    partrot[5] = -15;
392
                    partx[i] = random(2);
393
                    party[i] = random(2);
394
                }
395
            }
396
        }
397
        if (partmode == 22)
398
        {
399
            partframe[5] = 0;
400
            partrot[5] = sin(partsiner[0] / 2) * 4;
401
            partsiner[0] += 0.1;
402
            if (partsiner[0] >= 5)
403
            {
404
                partx[i] = random(2);
405
                party[i] = random(2);
406
                if (i == 8)
407
                    partsiner[0] = 0;
408
            }
409
        }
410
        if (partmode == 27)
411
        {
412
            partframe[5] = 1;
413
            idealrot[i] = 0;
414
            idealrot[2] = 45;
415
            partframe[2] = 1;
416
            partrot[i] = lerp(partrot[i], idealrot[i], 0.5);
417
        }
418
    }
419
    if (partmode >= 30)
420
    {
421
        if (
scr_debug
scr_debug

function
scr_debug()
{ return 0; }
())
422
        {
423
            if (keyboard_check_pressed(ord("D")) && i == 5)
424
                partmode++;
425
        }
426
        if (partmode == 30)
427
        {
428
            headsize = 0;
429
            if (
scr_debug
scr_debug

function
scr_debug()
{ return 0; }
())
430
            {
431
                if (keyboard_check_pressed(ord("A")) && i == 5)
432
                    shake_head = 1;
433
            }
434
            partsprite[5] = spr_sneo_head_preview;
435
            if (partframe[5] == 0)
436
                partframe[5] = 1;
437
            partsprite[0] = spr_nothing;
438
            partsiner[i] += 1;
439
            if (shake_head == 0)
440
            {
441
                party[i] = sin(partsiner[i] / 15) * 4;
442
                idealrot[i] = sin(partsiner[i] / 20) * 4;
443
            }
444
            else if (i == 5)
445
            {
446
                if (shake_head == 1)
447
                {
448
                    partframe[5]++;
449
                    snd_play(snd_swallow);
450
                }
451
                partrot[5] = (sin(shake_head * 2) * 8) + random(4);
452
                party[5] = random(4);
453
                partx[5] = random(4);
454
                shake_head++;
455
                if (shake_head >= 6)
456
                {
457
                    shake_head = 0;
458
                    partrot[5] = 0;
459
                }
460
            }
461
        }
462
        if (partmode == 31 && partmode < 34)
463
        {
464
            if (i == 5)
465
            {
466
                snd_play(snd_weaponpull_fast);
467
                var _n = 0;
468
                var eyeshine;
469
                repeat (5)
470
                {
471
                    eyeshine = instance_create((_n * 8) + x + (partx[5] * facing) + (partxoff[5] * facing) + lastxoff, y + party[5] + partyoff[5], obj_afterimage_grow);
472
                    eyeshine.sprite_index = spr_sneo_head_preview;
473
                    eyeshine.image_index = 0;
474
                    eyeshine.image_speed = 0;
475
                    eyeshine.image_xscale = -2 - (_n / 5);
476
                    eyeshine.image_yscale = 2 + (_n / 5);
477
                    eyeshine.xrate = 0;
478
                    eyeshine.yrate = 0;
479
                    eyeshine.image_alpha = 1 + _n;
480
                    _n += 0.2;
481
                }
482
                eyeshine.image_angle = partrot[5] * facing;
483
                eyeshine = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(x + (partx[5] * facing) + (partxoff[5] * facing) + lastxoff, y + party[5] + partyoff[5], spr_sneo_head_preview);
484
                eyeshine.image_xscale = -2;
485
                partmode = 32;
486
            }
487
        }
488
        if (partmode == 33)
489
        {
490
            with (obj_marker)
491
            {
492
                if (sprite_index == spr_sneo_head_preview)
493
                    instance_destroy();
494
            }
495
            partsprite[0] = spr_sneo_wingl;
496
            partsprite[1] = spr_sneo_arml;
497
            partsprite[2] = spr_sneo_legl;
498
            partsprite[3] = spr_sneo_legr;
499
            partsprite[4] = spr_sneo_body;
500
            partsprite[5] = spr_sneo_head;
501
            partsprite[6] = spr_sneo_armr;
502
            partsprite[7] = spr_sneo_wingr;
503
            partframe[5] = 0;
504
            partmode = 0;
505
            snd_play(snd_bump);
506
        }
507
    }
508
    if (partmode == 34)
509
    {
510
        hearttype = 0;
511
        if (obj_spamton_neo_enemy.difficulty == 1)
512
            hearttype = 1;
513
        if (obj_spamton_neo_enemy.difficulty == 2)
514
            hearttype = 2;
515
        if (obj_spamton_neo_enemy.difficulty == 3)
516
            hearttype = 3;
517
        if (obj_spamton_neo_enemy.difficulty == 4)
518
            hearttype = 4;
519
        var flyx = 0;
520
        if (heart_release_con == 1)
521
            flyx = -20;
522
        if (heart_release_con == 0)
523
            flyx = 0;
524
        if (i == 0)
525
        {
526
            siner++;
527
            if (heart_release_con >= 2)
528
                heart_release_con = 0;
529
            if (heart_release_con == 0)
530
            {
531
                idealx[0] = 0;
532
                idealx[1] = 0;
533
                idealx[2] = 0;
534
                idealx[3] = 0;
535
                idealx[4] = 0;
536
                idealx[5] = 0;
537
                idealx[6] = 0;
538
                idealx[7] = 0;
539
                idealrot[0] = 10;
540
                idealrot[1] = 30;
541
                idealrot[2] = -50;
542
                idealrot[3] = -50;
543
                idealrot[4] = 40;
544
                idealrot[5] = 60;
545
                idealrot[6] = -30;
546
                idealrot[7] = 30;
547
                if (hearttype > 2 && instance_number(obj_sneo_wireheart) < 3 && makehearttimer < 1 && global.turntimer > 100 && makeheartinit == 1)
548
                {
549
                    makehearttimer = 80;
550
                    makeheart = 1;
551
                    makehearttype = choose(3, 4);
552
                    if (makeheartalt != 0)
553
                    {
554
                        makehearttype = makeheartalt;
555
                        makehearttimer = 120;
556
                    }
557
                }
558
            }
559
            if (heart_release_con == 1)
560
            {
561
                idealx[0] = 4;
562
                idealx[1] = 0;
563
                idealx[2] = 0;
564
                idealx[3] = 0;
565
                idealx[4] = 0;
566
                idealx[5] = 15;
567
                idealx[6] = 0;
568
                idealx[7] = 4;
569
                idealrot[0] = -40;
570
                idealrot[1] = 90;
571
                idealrot[2] = 50;
572
                idealrot[3] = 50;
573
                idealrot[4] = -40;
574
                idealrot[5] = -100;
575
                idealrot[6] = 30;
576
                idealrot[7] = -30;
577
            }
578
            if (global.turntimer < 20)
579
            {
580
                idealx[0] = 0;
581
                idealx[1] = 0;
582
                idealx[2] = 0;
583
                idealx[3] = 0;
584
                idealx[4] = 0;
585
                idealx[5] = 0;
586
                idealx[6] = 0;
587
                idealx[7] = 0;
588
                idealrot[0] = 0;
589
                idealrot[1] = 0;
590
                idealrot[2] = 0;
591
                idealrot[3] = 0;
592
                idealrot[4] = 0;
593
                idealrot[5] = 0;
594
                idealrot[6] = 0;
595
                idealrot[7] = 0;
596
            }
597
            if (makehearttimer > 0)
598
                makehearttimer--;
599
            if (makeheart)
600
            {
601
                if (makeheartinit == 0)
602
                {
603
                    makeheartinit = 1;
604
                    makehearttype = 0;
605
                }
606
                if (hearttype == 0)
607
                {
608
                    wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
609
                    wireheart.boss = id;
610
                    wireheart.bossx = x + 10;
611
                    wireheart.bossy = y + 80;
612
                    wireheart.type = 0;
613
                    wireheart.target = 3;
614
                    wireheart.special = hellmode;
615
                    if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
616
                    {
617
                        wireheart.target = obj_sneo_bulletcontroller.target;
618
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
619
                    }
620
                    else
621
                    {
622
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
623
                    }
624
                }
625
                else if (hearttype == 1)
626
                {
627
                    wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
628
                    wireheart.boss = id;
629
                    wireheart.bossx = x + 10;
630
                    wireheart.bossy = y + 80;
631
                    wireheart.type = 0;
632
                    wireheart.target = 3;
633
                    wireheart.special = hellmode;
634
                    if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
635
                    {
636
                        wireheart.target = obj_sneo_bulletcontroller.target;
637
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
638
                    }
639
                    else
640
                    {
641
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
642
                    }
643
                    wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
644
                    wireheart.boss = id;
645
                    wireheart.bossx = x + 10;
646
                    wireheart.bossy = y + 80;
647
                    wireheart.type = 1;
648
                    wireheart.target = 3;
649
                    if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
650
                    {
651
                        wireheart.target = obj_sneo_bulletcontroller.target;
652
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
653
                    }
654
                    else
655
                    {
656
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
657
                    }
658
                    wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
659
                    wireheart.boss = id;
660
                    wireheart.bossx = x + 10;
661
                    wireheart.bossy = y + 80;
662
                    wireheart.type = 1;
663
                    wireheart.target = 3;
664
                    if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
665
                    {
666
                        wireheart.target = obj_sneo_bulletcontroller.target;
667
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
668
                    }
669
                    else
670
                    {
671
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
672
                    }
673
                }
674
                else if (hearttype == 2)
675
                {
676
                    wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
677
                    wireheart.boss = id;
678
                    wireheart.bossx = x + 10;
679
                    wireheart.bossy = y + 80;
680
                    wireheart.type = 0;
681
                    wireheart.bighearttype = 1;
682
                    wireheart.target = 3;
683
                    wireheart.special = hellmode;
684
                    if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
685
                    {
686
                        wireheart.target = obj_sneo_bulletcontroller.target;
687
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
688
                    }
689
                    else
690
                    {
691
                        wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
692
                    }
693
                }
694
                else if (hearttype == 3)
695
                {
696
                    if (makehearttype == 0)
697
                    {
698
                        wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
699
                        wireheart.boss = id;
700
                        wireheart.bossx = x + 10;
701
                        wireheart.bossy = y + 80;
702
                        wireheart.type = 1;
703
                        wireheart.target = 3;
704
                        if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
705
                        {
706
                            wireheart.target = obj_sneo_bulletcontroller.target;
707
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
708
                        }
709
                        else
710
                        {
711
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
712
                        }
713
                    }
714
                    if (makehearttype == 0 || makehearttype == 3)
715
                    {
716
                        wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
717
                        wireheart.boss = id;
718
                        wireheart.bossx = x + 10;
719
                        wireheart.bossy = y + 80;
720
                        wireheart.type = 3;
721
                        wireheart.target = 3;
722
                        if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
723
                        {
724
                            wireheart.target = obj_sneo_bulletcontroller.target;
725
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
726
                        }
727
                        else
728
                        {
729
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
730
                        }
731
                        wireheart.altbiter = 3;
732
                    }
733
                    if (makehearttype == 0 || makehearttype == 4)
734
                    {
735
                        wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
736
                        wireheart.boss = id;
737
                        wireheart.bossx = x + 10;
738
                        wireheart.bossy = y + 80;
739
                        wireheart.type = 3;
740
                        wireheart.target = 3;
741
                        if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
742
                        {
743
                            wireheart.target = obj_sneo_bulletcontroller.target;
744
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
745
                        }
746
                        else
747
                        {
748
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
749
                        }
750
                        wireheart.altbiter = 4;
751
                    }
752
                }
753
                else if (hearttype == 4)
754
                {
755
                    if (makehearttype == 0)
756
                    {
757
                        wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
758
                        wireheart.boss = id;
759
                        wireheart.bossx = x + 10;
760
                        wireheart.bossy = y + 80;
761
                        wireheart.type = 1;
762
                        wireheart.target = 3;
763
                        if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
764
                        {
765
                            wireheart.target = obj_sneo_bulletcontroller.target;
766
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
767
                        }
768
                        else
769
                        {
770
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
771
                        }
772
                    }
773
                    if (makehearttype == 0 || makehearttype == 3)
774
                    {
775
                        wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
776
                        wireheart.boss = id;
777
                        wireheart.bossx = x + 10;
778
                        wireheart.bossy = y + 80;
779
                        wireheart.type = 4;
780
                        wireheart.target = 3;
781
                        if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
782
                        {
783
                            wireheart.target = obj_sneo_bulletcontroller.target;
784
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
785
                        }
786
                        else
787
                        {
788
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
789
                        }
790
                    }
791
                    if (makehearttype == 0 || makehearttype == 4)
792
                    {
793
                        wireheart = instance_create(x + 10, y + 80, obj_sneo_wireheart);
794
                        wireheart.boss = id;
795
                        wireheart.bossx = x + 10;
796
                        wireheart.bossy = y + 80;
797
                        wireheart.type = 4;
798
                        wireheart.target = 3;
799
                        if (
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2)
800
                        {
801
                            wireheart.target = obj_sneo_bulletcontroller.target;
802
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.8);
803
                        }
804
                        else
805
                        {
806
                            wireheart.damage = floor(global.monsterat[obj_spamton_neo_enemy.myself] * 5 * 0.6);
807
                        }
808
                    }
809
                }
810
                for (var _n = 0; _n < 6; _n++)
811
                {
812
                    var shard = instance_create(x + 10, y + 80, obj_afterimage);
813
                    shard.sprite_index = spr_bullet_laser_circle;
814
                    shard.speed = 10 + random(2);
815
                    shard.direction = 140 + random_range(-40, 40);
816
                    shard.gravity = 1;
817
                    shard.image_xscale = 0.5 + random(0.5);
818
                    shard.image_yscale = shard.image_xscale;
819
                }
820
                makeheart = 0;
821
            }
822
        }
823
        if (global.turntimer < 20)
824
        {
825
            partrot[i] = lerp(partrot[i], 0, 0.14 * f);
826
            partx[i] = lerp(partx[i], 0, 0.1 * f);
827
            party[i] = lerp(0, party[i], 0.06 * f);
828
            heartattackoffsetx = lerp(heartattackoffsetx, 0, 0.06 * f);
829
            x = lerp(x, xstart, 0.1);
830
        }
831
        else
832
        {
833
            partrot[i] = lerp(partrot[i], idealrot[i] + random(4), 0.14 * f);
834
            partx[i] = lerp(partx[i] + flyx, idealx[i], 0.1 * f);
835
            party[i] = lerp(party[i], 0, 0.06 * f);
836
            if (heart_release_con == 0)
837
                heartattackoffsetx = lerp(heartattackoffsetx, -10, 0.01 * f);
838
            if (heart_release_con == 1)
839
                heartattackoffsetx = lerp(heartattackoffsetx, -60, 0.01 * f);
840
            x = lerp(x, xstart + 60, 0.1);
841
        }
842
    }
843
    if (partmode == 35)
844
    {
845
        var flyx = 0;
846
        if (dance_con == 1)
847
            flyx = 0;
848
        if (dance_con == 0)
849
            flyx = 0;
850
        if (i == 0)
851
        {
852
            siner += 1.3;
853
            dance_timer++;
854
            if (dance_timer > 9)
855
            {
856
                dance_timer = 0;
857
                dance_con++;
858
            }
859
            if (dance_con >= 2)
860
                dance_con = 0;
861
            if (dance_con == 0)
862
            {
863
                idealx[0] = 0;
864
                idealx[1] = 0;
865
                idealx[2] = 0;
866
                idealx[3] = 0;
867
                idealx[4] = 0;
868
                idealx[5] = 0;
869
                idealx[6] = 0;
870
                idealx[7] = 0;
871
                idealrot[0] = -20;
872
                idealrot[1] = -120;
873
                idealrot[2] = -30;
874
                idealrot[3] = 30;
875
                idealrot[4] = 0;
876
                idealrot[5] = 0;
877
                idealrot[6] = -230;
878
                idealrot[7] = 0;
879
            }
880
            if (dance_con == 1)
881
            {
882
                idealx[0] = 4;
883
                idealx[1] = 0;
884
                idealx[2] = 0;
885
                idealx[3] = 0;
886
                idealx[4] = 0;
887
                idealx[5] = 15;
888
                idealx[6] = 0;
889
                idealx[7] = 4;
890
                idealrot[0] = -20;
891
                idealrot[1] = -250;
892
                idealrot[2] = 30;
893
                idealrot[3] = -30;
894
                idealrot[4] = 0;
895
                idealrot[5] = 0;
896
                idealrot[6] = -120;
897
                idealrot[7] = -30;
898
            }
899
        }
900
        partrot[i] = lerp(partrot[i], idealrot[i] + random(4), 0.14 * f);
901
        partx[i] = lerp(partx[i] + flyx, idealx[i], 0.1 * f);
902
        party[i] = lerp(party[i], 0, 0.06 * f);
903
        if (i == 5)
904
        {
905
            partx[i] = lerp(partx[i], 0, 0.25 * f);
906
            party[i] = lerp(party[i], 0, 0.25 * f);
907
            partrot[i] -= 10 * f;
908
            if (partmode == 5)
909
            {
910
                partrot[i] /= 2;
911
                partrot[i] += 10 * f;
912
                partframe[i] = 1;
913
            }
914
            else if (partmode == 6)
915
            {
916
                partrot[i] /= 2;
917
                if (partmode > 6 || partrot[1] <= -120)
918
                    partframe[i] = 0;
919
            }
920
            else if (partmode == 11)
921
            {
922
                partframe[i] += 0.2 * f;
923
            }
924
            else if (partmode == 12)
925
            {
926
                partframe[i] += 0.3 * f;
927
            }
928
            else
929
            {
930
                partframe[i] += 0.05 * f;
931
            }
932
            if (partframe[i] >= 3)
933
                partframe[i] = 0;
934
            if (partframe[i] >= 2)
935
                partrot[i] += 20 * f;
936
        }
937
        y = ystart + (sin(siner / 6) * 30);
938
        x = lerp(x, xstart + 60, 0.1);
939
    }
940
    if (partmode == 36)
941
    {
942
        var fastshot = 1;
943
        if (shootydanceinit == 0)
944
        {
945
            shootydanceinit = 1;
946
            shootydancex = x;
947
            shootydancey = y;
948
        }
949
        if (endcon > 0)
950
        {
951
            if (dancealtcon == 1)
952
                siner += 0.23;
953
            if (dancealtcon == 2)
954
                siner += 0.23;
955
            x = xstart + (sin(siner / 20) * 10);
956
            y = ystart + (sin(siner / 6) * 20);
957
        }
958
        else
959
        {
960
            x = shootydancex + (sin(siner / 20) * 10);
961
            y = shootydancey + (sin(siner / 6) * 20);
962
        }
963
        armendx = x + partx[1] + partxoff[1] + lengthdir_x(armlength, partrot[1] - 93);
964
        armendy = y + party[1] + partyoff[1] + lengthdir_y(armlength, partrot[1] - 93);
965
        if (dance_timer == 0)
966
        {
967
            if (i_ex(obj_heart))
968
                armangle = point_direction(partxoff[1], partyoff[1], obj_heart.x, obj_heart.y);
969
            idealrot[5] = -15;
970
        }
971
        if (i != 1 || endcon > 0)
972
        {
973
            partsiner[i] += 0.1;
974
            partx[i] = lerp(partx[i], 0, 0.5);
975
            party[i] = lerp(party[i], 0, 0.5);
976
            idealrot[i] = sin(partsiner[i] + (i / 8)) * 20;
977
            idealrot[1] = sin(partsiner[2]) * 60;
978
            idealrot[2] = sin(partsiner[2] - 0.1) * 60;
979
            idealrot[3] = -sin(partsiner[2] + 0.3) * 60;
980
            idealrot[6] = -sin(partsiner[2] + 0.1) * 60;
981
            partrot[5] = -15 - (abs(sin(head_recoil_amount / 60)) * 150);
982
            partframe[5] = 2;
983
            head_recoil_amount = lerp(head_recoil_amount, 0, 0.03);
984
            partrot[i] = lerp(partrot[i], idealrot[i], 0.5);
985
        }
986
        if (i == 0 && endcon == 0)
987
        {
988
            siner += 1.3;
989
            dance_timer++;
990
            if (dance_timer == (17 - (fastshot * 10)) || dance_timer == (52 - (fastshot * 10)))
991
            {
992
                d = instance_create(x, y, obj_sneo_biglaser);
993
                d.depth += 1;
994
                d._type = 1;
995
                chargeshot_sound = snd_loop(snd_chargeshot_charge);
996
                chargesfxtimer = 1;
997
            }
998
            if (dance_timer == (42 - (fastshot * 10)))
999
            {
1000
                with (obj_sneo_biglaser)
1001
                    instance_destroy();
1002
                shot = instance_create(armendx, armendy, obj_spamtonshot);
1003
                shot.target = mytarget;
1004
                shot.damage = damage;
1005
                armaim += 360;
1006
                head_recoil_amount = -170;
1007
                snd_stop(chargeshot_sound);
1008
                snd_play_x(snd_chargeshot_fire, 0.6, 0.5);
1009
            }
1010
            if (dance_timer == (84 - (fastshot * 20)))
1011
            {
1012
                with (obj_sneo_biglaser)
1013
                    instance_destroy();
1014
                shot = instance_create(armendx, armendy, obj_spamtonshot);
1015
                shot.target = mytarget;
1016
                shot.damage = damage;
1017
                armaim -= 360;
1018
                head_recoil_amount = -170;
1019
                snd_stop(chargeshot_sound);
1020
                snd_play_x(snd_chargeshot_fire, 0.6, 0.5);
1021
            }
1022
            if (dance_timer == (85 - (fastshot * 20)))
1023
                dance_timer = 3;
1024
            if (chargesfxtimer == 1)
1025
            {
1026
                chargepitch = 0.1;
1027
                snd_pitch(chargeshot_sound, chargepitch);
1028
                snd_volume(chargeshot_sound, 0, 0);
1029
                snd_volume(chargeshot_sound, 0.8, 20);
1030
            }
1031
            if (chargesfxtimer > 0 && chargesfxtimer <= 30)
1032
            {
1033
                chargesfxtimer++;
1034
                chargepitch += 0.03;
1035
                snd_pitch(chargeshot_sound, chargepitch);
1036
            }
1037
        }
1038
        if (i == 1 && endcon == 0)
1039
        {
1040
            var shakebuster = 0;
1041
            if (instance_exists(obj_sneo_biglaser))
1042
                shakebuster = -4 + random(8);
1043
            partrot[i] = lerp(partrot[i], armaim, 0.12) + shakebuster;
1044
            partframe[i] = 1;
1045
            with (obj_sneo_biglaser)
1046
            {
1047
                x = obj_spamton_neo_enemy.armendx;
1048
                y = obj_spamton_neo_enemy.armendy;
1049
            }
1050
        }
1051
    }
1052
    if (partmode == 40)
1053
    {
1054
        if (i == 0 && dontchangepose == 0)
1055
            shocktimer++;
1056
        partsiner[i] += (1 + (i / 5)) * f;
1057
        partx[i] = sin((partsiner[i] / 2) * f);
1058
        party[i] = cos((partsiner[i] / 2) * f);
1059
        if ((shockthreshold <= 5 && hurttimer2 == 0 && i == 0) || (smokethreshold > 1 && i == 0))
1060
        {
1061
            smoketimer++;
1062
            if (smoketimer >= smokethreshold)
1063
            {
1064
                var smokey = instance_create(x + 50, y + 80, obj_afterimage_grow);
1065
                smokey.visible = 0;
1066
                with (smokey)
1067
                    
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; }
(scr_var, 1, "visible", 1);
1068
                smokey.depth = depth + 10;
1069
                smokey.image_alpha = 2.5;
1070
                smokey.sprite_index = spr_cakesmoke;
1071
                smokey.hspeed = random_range(2, 8);
1072
                smokey.gravity = -0.5;
1073
                smokey.friction = 0.2;
1074
                smokey.vspeed = random_range(-1, -2);
1075
                smoketimer = 0;
1076
            }
1077
        }
1078
        if (shockthreshold <= 8 && hurttimer2 == 0 && global.flag[8 simplify_vfx] == 0)
1079
        {
1080
            fsiner = partsiner[i] / 8;
1081
            flash = 1;
1082
        }
1083
        if (global.flag[8 simplify_vfx] == 1)
1084
            shockthreshold = clamp(shockthreshold, 5, 100);
1085
        if (shocktimer >= shockthreshold)
1086
        {
1087
            partrot[i] = 60 - random(120);
1088
            if (i == 4)
1089
                partrot[i] = 40 - random(80);
1090
            if (i == 5)
1091
            {
1092
                partframe[i] += 1 * f;
1093
                if (partframe[i] >= 3)
1094
                    partframe[i] = 0;
1095
            }
1096
            if (i == 7)
1097
                shocktimer = 0;
1098
        }
1099
    }
1100
    if (i == 0)
1101
    {
1102
        if (keyboard_check_released(ord("O")) && 
scr_debug
scr_debug

function
scr_debug()
{ return 0; }
())
1103
        {
1104
            partmode = 43;
1105
            y = ystart;
1106
            fakegrav = 0;
1107
            for (i = 0; i < 7; i++)
1108
                partrot[i] = 0;
1109
        }
1110
    }
1111
    if (partmode == 41)
1112
    {
1113
        if (i == 0)
1114
            laughtimer++;
1115
        if (i == 5)
1116
        {
1117
            if (laughtimer == 1)
1118
                snd_play(snd_sneo_laugh_long);
1119
            if (laughtimer >= 1 && laughtimer < 30)
1120
            {
1121
                headsize = 0;
1122
                partframe[i] = 0;
1123
                headsize = random(0.25);
1124
                partrot[i] = 30 + random(10);
1125
            }
1126
            if (laughtimer >= 30 && laughtimer < 48)
1127
            {
1128
                partframe[i] = 1;
1129
                headsize = random(0.25);
1130
                partrot[i] = -40 + random(10);
1131
            }
1132
            if (laughtimer >= 48 && laughtimer < 60)
1133
            {
1134
                partframe[i] = 2;
1135
                headsize = random(0.25);
1136
                partrot[i] = 30;
1137
            }
1138
            if (laughtimer >= 60)
1139
            {
1140
                partframe[i] = 3;
1141
                headsize = random(0.25);
1142
                partrot[i] = -70 + random(10);
1143
            }
1144
            if (laughtimer >= 80)
1145
                headsize = 0;
1146
            if (partframe[i] >= 3)
1147
                partframe[i] = 0;
1148
        }
1149
        partsiner[i] += (1 + (i / 5)) * f;
1150
        partx[i] = sin((partsiner[i] / 2) * f);
1151
        party[i] = cos((partsiner[i] / 2) * f);
1152
        if (global.flag[8 simplify_vfx] == 1)
1153
            shockthreshold = clamp(shockthreshold, 5, 100);
1154
    }
1155
    if (partmode == 42)
1156
    {
1157
        partsiner[i] = 0;
1158
        partframe[i] = 0;
1159
        partframe[5] = 7;
1160
        if (i == 0)
1161
        {
1162
            var fallen = 0;
1163
            if (y < (cameray() + 130))
1164
            {
1165
                fakegrav += 1;
1166
                y += fakegrav;
1167
            }
1168
            else
1169
            {
1170
                fallen = 1;
1171
            }
1172
            if (fallen == 1)
1173
            {
1174
                if (y < (cameray() + 216))
1175
                {
1176
                    partrot[2] = lerp(partrot[2], -90, 0.1);
1177
                    partrot[3] = lerp(partrot[3], 90, 0.1);
1178
                    partrot[5] = y - (cameray() + 120);
1179
                    if (y > ((cameray() + 216) - 30))
1180
                    {
1181
                        partrot[1] = lerp(partrot[1], -30, 0.1);
1182
                        partrot[6] = lerp(partrot[6], 30, 0.1);
1183
                    }
1184
                    y = lerp(y, cameray() + 216, 0.1);
1185
                }
1186
            }
1187
            if (fallen == 0)
1188
            {
1189
                if (i == 5)
1190
                {
1191
                    partrot[i] = lerp(partrot[i], 30, 0.25 * f);
1192
                    partx[i] = lerp(partx[i], -10, 0.25 * f);
1193
                    party[i] = lerp(party[i], 10, 0.25 * f);
1194
                    if (dead == 1)
1195
                        partframe[i] = 3;
1196
                }
1197
                else
1198
                {
1199
                    partrot[i] = lerp(partrot[i], 0, 0.25 * f);
1200
                    partx[i] = lerp(partx[i], 0, 0.25 * f);
1201
                    party[i] = lerp(party[i], 0, 0.25 * f);
1202
                    if (abs(partrot[i]) < 1)
1203
                        partrot[i] = 0;
1204
                    if (abs(partx[i]) < 1)
1205
                        partx[i] = 0;
1206
                    if (abs(party[i]) < 1)
1207
                        party[i] = 0;
1208
                }
1209
            }
1210
        }
1211
    }
1212
    if (partmode == 43 && i == 0)
1213
    {
1214
        var fallen = 0;
1215
        falltimer++;
1216
        if (y < (cameray() + 200))
1217
        {
1218
            fallshake = 10;
1219
            fakegrav += (0.5 + (fakegrav / 10));
1220
            fakegrav = clamp(fakegrav, 0, 16.5);
1221
            y += fakegrav;
1222
        }
1223
        else
1224
        {
1225
            fallen = 1;
1226
        }
1227
        partframe[5] = 7;
1228
        partrot[1] = -fakegrav * 6;
1229
        partx[1] = fakegrav * 2;
1230
        party[1] = fakegrav * 1.5;
1231
        partrot[6] = -fakegrav * 6;
1232
        partx[6] = fakegrav * 0.6;
1233
        party[6] = fakegrav * 2;
1234
        partrot[2] = -fakegrav * 6;
1235
        partx[2] = -fakegrav * 1.6;
1236
        party[2] = -fakegrav * 0.65;
1237
        partrot[3] = -fakegrav * 6;
1238
        partx[3] = -fakegrav * 2.5;
1239
        party[3] = -fakegrav * 0.15;
1240
        partrot[4] = -fakegrav * 6.25;
1241
        partx[4] = fakegrav * 2;
1242
        party[4] = fakegrav / 1.5;
1243
        partrot[5] = -fakegrav * 8;
1244
        partx[5] = fakegrav * 1.8;
1245
        party[5] = fakegrav * 2;
1246
        partrot[0] = -fakegrav * 4;
1247
        party[0] = fakegrav * 3;
1248
        partrot[7] = -fakegrav * 4;
1249
        party[7] = fakegrav * 3;
1250
        if (fallen != 0)
1251
        {
1252
            if (fallshake == 10)
1253
                snd_play(snd_closet_impact);
1254
            for (var ii = 0; ii < 7; ii++)
1255
            {
1256
                party[ii] += random_range(-fallshake, fallshake);
1257
                partx[ii] += random_range(-fallshake, fallshake);
1258
            }
1259
            if (fallshake > 0)
1260
                fallshake--;
1261
        }
1262
    }
1263
    scalebonus = 0;
1264
    if (i == 5)
1265
        scalebonus = headsize;
1266
    if (shadow_amount >= 0)
1267
        partblend[i] = merge_color(c_white, c_black, shadow_amount);
1268
    if (facing == -1)
1269
        lastxoff = 110;
1270
    else
1271
        lastxoff = 0;
1272
    if (instance_exists(obj_dbulletcontroller))
1273
    {
1274
        partframe[5] = 3;
1275
        partblend[5] = blend;
1276
    }
1277
    else if (partblend[5] == blend)
1278
    {
1279
        partblend[5] = 16777215;
1280
    }
1281
    var shakevar = 0;
1282
    if (i == 0)
1283
    {
1284
        if (hurttimer2 > 0)
1285
            hurttimer2--;
1286
        if (hurttimer2 == 1)
1287
        {
1288
            if (endcon == 0)
1289
            {
1290
                shockthreshold = 10;
1291
                partmode = 1;
1292
            }
1293
            if ((didwejustdie == 0 && i_ex(obj_battlecontroller) && global.monsterhp[global.chartarget[myself]] <= 0) || (didwejustdie == 0 && i_ex(obj_battlecontroller) && global.monsterhp[myself] <= (global.monstermaxhp[myself] * 0.1) && 
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() > 2 && weirdpathendcon == 0))
1294
            {
1295
                partmode = 99;
1296
                dontchangepose = 1;
1297
            }
1298
        }
1299
    }
1300
    if (hurttimer2 > 0)
1301
        shakevar = (random(hurttimer2) / 2) - (hurttimer2 / 4);
1302
    if (headendcon == 1)
1303
    {
1304
        partrot[5] = -37 + sin(partsiner[4] / 16);
1305
        partframe[5] = 1;
1306
        partsprite[5] = spr_sneo_head;
1307
    }
1308
    if (headendcon == 2)
1309
    {
1310
        partrot[5] = 15 + sin(partsiner[4] / 16);
1311
        partsprite[5] = spr_sneo_head_sad;
1312
    }
1313
    if (headendcon == 3)
1314
        partsprite[5] = spr_sneo_head;
1315
    if (instance_exists(obj_pipis_destroy_fx) && i == 5)
1316
        partrot[5] -= random(60);
1317
    if (headforceframe != -1 && i == 5)
1318
        partframe[5] = headforceframe;
1319
    if (funnycheat > 5)
1320
    {
1321
        if (funnycheattimer < 28)
1322
            funnycheattimer += 0.125;
1323
        partblend[5] = merge_color(c_white, c_red, funnycheattimer / 30);
1324
        if (funnycheattimer == 24)
1325
        {
1326
            snd_play(snd_carhonk);
1327
            funnycheattimer3++;
1328
        }
1329
        if (funnycheattimer3 > 0 && funnycheattimer3 < 33 && i == 5)
1330
        {
1331
            funnycheattimer3++;
1332
            if (funnycheattimer3 > 0 && funnycheattimer3 < 6)
1333
                headexpand = lerp(headexpand, 2, funnycheattimer3 / 6);
1334
            if (funnycheattimer3 >= 8 && funnycheattimer3 < 16)
1335
                headexpand = lerp(headexpand, 0, (funnycheattimer3 - 8) / 8);
1336
            if (funnycheattimer3 >= 16 && funnycheattimer3 < 22)
1337
                headexpand = lerp(headexpand, 2, (funnycheattimer3 - 16) / 6);
1338
            if (funnycheattimer3 >= 24 && funnycheattimer3 < 32)
1339
                headexpand = lerp(headexpand, 0, (funnycheattimer3 - 24) / 8);
1340
            if ((funnycheattimer3 >= 4 && funnycheattimer3 <= 10) || (funnycheattimer3 >= 20 && funnycheattimer3 <= 26))
1341
                shakevar = -12 + random(24);
1342
        }
1343
        funnycheattimer2++;
1344
        if (funnycheattimer2 >= 10 && image_alpha > 0.6)
1345
        {
1346
            var smokey = instance_create(x + 50, y + 80, obj_afterimage_grow);
1347
            smokey.visible = 0;
1348
            with (smokey)
1349
                
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; }
(scr_var, 1, "visible", 1);
1350
            smokey.depth = depth + 10;
1351
            smokey.image_alpha = 2.5;
1352
            smokey.sprite_index = spr_cakesmoke;
1353
            smokey.hspeed = random_range(2, 8);
1354
            smokey.gravity = -0.5;
1355
            smokey.friction = 0.2;
1356
            smokey.vspeed = random_range(-1, -2);
1357
            funnycheattimer2 = 0;
1358
        }
1359
    }
1360
    var expand = 0;
1361
    if (i == 5)
1362
        expand = headexpand;
1363
    draw_monster_body_part_ext(partsprite[i], partframe[i], x + (partx[i] * facing) + (partxoff[i] * facing) + lastxoff + shakevar, (y + party[i] + partyoff[i]) - shakevar, ((2 + scalebonus) * facing) + expand, 2 + scalebonus + expand, partrot[i] * facing, partblend[i], image_alpha);
1364
    if (violentendflash > 0)
1365
    {
1366
        d3d_set_fog(true, c_white, 0, 1);
1367
        draw_monster_body_part_ext(partsprite[i], partframe[i], x + (partx[i] * facing) + (partxoff[i] * facing) + lastxoff + shakevar, (y + party[i] + partyoff[i]) - shakevar, (2 + scalebonus) * facing, 2 + scalebonus, partrot[i] * facing, partblend[i], violentendflash / 10);
1368
        d3d_set_fog(false, c_black, 0, 0);
1369
    }
1370
}
1371
if (shocker < 0)
1372
{
1373
    shocker = shocker_threshold;
1374
    if (shocker_threshold > 2)
1375
        shocker_threshold -= (0.25 * f);
1376
}
1377
if (partmode == 13)
1378
{
1379
    partframe[1] = 1;
1380
    armendx = x + (partx[1] * facing) + (partxoff[1] * facing) + (lengthdir_x(armlength, partrot[1] - 93) * facing) + 15;
1381
    armendy = y + party[1] + partyoff[1] + lengthdir_y(armlength, partrot[1] - 93);
1382
    partframe[5] = (partsiner[5] / 6) % 3;
1383
    draw_set_color(c_white);
1384
    draw_circle(armendx + 120, armendy + 6, 13 + (sin(partrot[0] / 2) * 12), false);
1385
}
1386
draw_set_color(c_red);
1387
headx = x + partx[5] + partxoff[5];
1388
heady = y + party[5] + partyoff[5];
1389
hitdetector.x = headx;
1390
hitdetector.y = heady;
1391
hitdetector.image_angle = partrot[5];
1392
hitdetector.image_index = partframe[5];
1393
if (hitcon == 1 || hitcon == -1)
1394
{
1395
    partblend[5] = 4235519;
1396
    hitcontimer = 0;
1397
    if (headhit < 20)
1398
        headhit += 6;
1399
    hitcon = 2;
1400
}
1401
if (hitcon == 2)
1402
{
1403
    hitcontimer += (1 * f);
1404
    if (hitcontimer >= 5)
1405
        partblend[5] = merge_color(partblend[5], c_white, 0.15 * f);
1406
    if (hitcontimer >= 15)
1407
    {
1408
        hitcontimer = 0;
1409
        hitcon = 0;
1410
        partblend[5] = 16777215;
1411
    }
1412
}
1413
if (
scr_debug
scr_debug

function
scr_debug()
{ return 0; }
())
1414
{
1415
}
1416
if (violentendflash > 0)
1417
    violentendflash++;
1418
if (becomeflash == 0)
1419
    flash = 0;
1420
becomeflash = 0;