Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_climb_kris_Step_0

related scripts: CleanUp_0Create_0Draw_0Draw_73Step_0 Step_2

(view raw script w/o annotations or w/e)
1
if (freeze)
2
    exit;
3
if (startofroom == 1)
4
{
5
    var roomw = room_width;
6
    var roomh = room_height;
7
    var vieww = view_wport[0];
8
    var viewh = view_hport[0];
9
    var _cameralerpspeed = 0.16;
10
    var xnudge = 0;
11
    var ynudge = 0;
12
    var nudger = instance_place(x, y, obj_camera_nudger);
13
    with (nudger)
14
    {
15
        xnudge = xamt;
16
        ynudge = yamt;
17
        if (lerpstrength != -4)
18
            _cameralerpspeed = lerpstrength;
19
    }
20
    with (instance_place(x, y, obj_climb_camera_nudger))
21
    {
22
        if (permanent)
23
            other.naturalybias = nudge;
24
    }
25
    var camx = clamp((x - floor(vieww / 2)) + xnudge, 0, roomw - vieww);
26
    var camy = clamp((y - floor(viewh / 2)) + ynudge + naturalybias, 0, roomh - viewh);
27
    var clamper = instance_place(x, y, obj_camera_clamper);
28
    if (i_ex(clamper))
29
    {
30
        var lclamp = 0;
31
        var rclamp = roomw - vieww;
32
        var uclamp = 0;
33
        var dclamp = roomh - viewh;
34
        if (clamper.xmin != -4)
35
            lclamp = clamper.xmin;
36
        if (clamper.xmax != -4)
37
            rclamp = clamper.xmax;
38
        if (clamper.ymin != -4)
39
            uclamp = clamper.ymin;
40
        if (clamper.ymax != -4)
41
            dclamp = clamper.ymax;
42
        if (clamper.lerpstrength != -4)
43
            _cameralerpspeed = clamper.lerpstrength;
44
        camx = clamp(camx, lclamp, rclamp);
45
        camy = clamp(camy, uclamp, dclamp);
46
        camerax_set(camx);
47
        cameray_set(camy);
48
    }
49
    with (obj_caterpillarchara)
50
        image_alpha = 0;
51
    startofroom = 0;
52
}
53
var overlapping_trigger = instance_place(x, y, obj_climb_destructableareatrigger);
54
if (overlapping_trigger != -4)
55
{
56
    with (overlapping_trigger)
57
        event_user(2);
58
}
59
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
60
if (instance_exists(obj_dw_castle_church_climb))
61
    depth = 30000;
62
if (instance_exists(obj_dw_fcastle_foyer))
63
    depth = 30000;
64
boost_cooldown--;
65
var this_frame_directions = [];
66
var buffer_length = ceil(5 - (climbmomentum * 2));
67
if (buffer_length >= 5)
68
    buffer_length = 4;
69
if (!input_locked || forceclimb)
70
{
71
    if (((up_h() || upbuffer > 0) && forceclimb == 0) || forceclimb == 1)
72
    {
73
        if (up_h() && dir != 2)
74
        {
75
            upbuffer = buffer_length;
76
            leftbuffer = 0;
77
            rightbuffer = 0;
78
            downbuffer = 0;
79
        }
80
        array_push(this_frame_directions, 2);
81
    }
82
    if (((down_h() || downbuffer > 0) && forceclimb == 0) || forceclimb == 2)
83
    {
84
        if (down_h() && dir != 0)
85
        {
86
            upbuffer = 0;
87
            leftbuffer = 0;
88
            rightbuffer = 0;
89
            downbuffer = buffer_length;
90
        }
91
        array_push(this_frame_directions, 0);
92
    }
93
    if (!instance_exists(obj_dw_fcastle_asgore))
94
    {
95
        if (((right_h() || rightbuffer > 0) && forceclimb == 0) || forceclimb == 3)
96
        {
97
            if (right_h() && dir != 1)
98
            {
99
                upbuffer = 0;
100
                leftbuffer = 0;
101
                rightbuffer = buffer_length;
102
                downbuffer = 0;
103
            }
104
            array_push(this_frame_directions, 1);
105
        }
106
        if (((left_h() || leftbuffer > 0) && forceclimb == 0) || forceclimb == 4)
107
        {
108
            if (left_h() && dir != 3)
109
            {
110
                upbuffer = 0;
111
                leftbuffer = buffer_length;
112
                rightbuffer = 0;
113
                downbuffer = 0;
114
            }
115
            array_push(this_frame_directions, 3);
116
        }
117
    }
118
}
119
var num_inputs = array_length(this_frame_directions);
120
var used_input = -1;
121
var cancelled_slip = false;
122
if (num_inputs == 0)
123
{
124
    currentdir = -1;
125
}
126
else if (num_inputs == 1 || currentdir == -1)
127
{
128
    currentdir = this_frame_directions[0];
129
    used_input = currentdir;
130
}
131
else
132
{
133
    for (var i = 0; i < array_length(this_frame_directions); i++)
134
    {
135
        if (this_frame_directions[i] == currentdir || this_frame_directions[i] == recently_bumped)
136
        {
137
            cancelled_slip = cancelled_slip || this_frame_directions[i] == recently_bumped;
138
            array_delete(this_frame_directions, i, 1);
139
            i--;
140
        }
141
    }
142
    if (array_length(this_frame_directions) > 0)
143
    {
144
        used_input = this_frame_directions[0];
145
        cancelled_slip = used_input == previous_bump;
146
    }
147
    else if (currentdir != previous_bump && currentdir != recently_bumped)
148
    {
149
        used_input = currentdir;
150
        cancelled_slip = false;
151
    }
152
    else
153
    {
154
        used_input = currentdir;
155
        cancelled_slip = true;
156
    }
157
}
158
var lastdir = dir;
159
if (jumping == 0)
160
{
161
    if (used_input >= 0 && (jumping > 0 || neutralcon == 1 || graboncon > 0 || slipcon == 2 || jumpchargecon > 0))
162
        dir = used_input;
163
}
164
dir_memory = used_input;
165
if (canjump && !input_locked)
166
{
167
    if (button1_h() && !forceclimb && !forcereleasejump)
168
    {
169
        if (button1buffer < 2)
170
            button1buffer = 2;
171
    }
172
    if (button1_p() && !forceclimb)
173
    {
174
        if (button1buffer < 3)
175
        {
176
            button1buffer = 3;
177
            button2buffer = 0;
178
        }
179
    }
180
    if (!button1_h())
181
        forcereleasejump = false;
182
}
183
else
184
{
185
    button1buffer = 0;
186
    button2buffer = 0;
187
}
188
if ((slipcon == 2 && sliptimer > 2 && !cancelled_slip) && neutralcon != 1 && ((used_input >= 0 && lastdir != used_input) || (button1buffer > 0 && button2buffer == 0)))
189
{
190
    sliptimer = min(sliptimer, 2);
191
    if (!boosting)
192
        climbmomentum = 0;
193
    climbspeed = 1;
194
}
195
if (global.inv <= 0 && (global.interact == 0 || forceclimb))
196
{
197
    var bulletcheck = collision_rectangle(bbox_left + 14, bbox_top + 14, bbox_right - 14, bbox_bottom - 14, obj_climb_bullet, true, true);
198
    if (bulletcheck == -4)
199
        bulletcheck = didhit;
200
    if (invincible)
201
        bulletcheck = -4;
202
    if (jumping == 0)
203
    {
204
        if (bulletcheck == -4)
205
        {
206
            var reposition = x;
207
            if (onrotatingtower && x >= (obj_rotating_tower_controller_new.tower_circumference - 20))
208
                x -= obj_rotating_tower_controller_new.tower_circumference;
209
            bulletcheck = collision_rectangle(bbox_left + 14, bbox_top + 14, bbox_right - 14, bbox_bottom - 14, obj_climb_enemy, true, true);
210
            x = reposition;
211
            if (bulletcheck != -4)
212
            {
213
                if (bulletcheck.active == 0)
214
                    bulletcheck = -4;
215
            }
216
        }
217
    }
218
    if (bulletcheck == -4)
219
    {
220
        bulletcheck = collision_rectangle(bbox_left + 14, bbox_top + 14, bbox_right - 14, bbox_bottom - 14, obj_overworldbulletparent, true, true);
221
        if (bulletcheck != -4 && bulletcheck.active == 0)
222
            bulletcheck = -4;
223
    }
224
    if (bulletcheck == -4)
225
        bulletcheck = didhit;
226
    if (invincible)
227
        bulletcheck = -4;
228
    if (bulletcheck != -4 && bulletcheck.damage > 0)
229
    {
230
        damage = bulletcheck.damage;
231
        if (variable_instance_exists(bulletcheck, "target"))
232
            target = bulletcheck.target;
233
        damagecon = 1;
234
        hittimer = 60;
235
        if (bulletcheck.object_index == obj_climb_scissors)
236
        {
237
            if (jumping == 0)
238
            {
239
                if (fallingcon == 0 && place_meeting(x, y, obj_climb_vinecuttable))
240
                {
241
                    fallingcon = 1;
242
                    fallingtimer = 20;
243
                }
244
            }
245
            with (bulletcheck)
246
                expire();
247
        }
248
    }
249
}
250
else
251
{
252
    with (instance_place(x, y, obj_climb_scissors))
253
        expire();
254
}
255
var cancelcon = 0;
256
if (global.interact == 0 || forceclimb)
257
{
258
    var _list = ds_list_create();
259
    var _num = instance_place_list(x, y, 551, _list, false);
260
    if (ds_list_size(_list) > 0)
261
    {
262
        for (var i = 0; i < ds_list_size(_list); i++)
263
        {
264
            var obstacle = ds_list_find_value(_list, i);
265
            if (obstacle.object_index == obj_climb_susie || object_is_ancestor(obstacle.object_index, obj_climb_susie))
266
                continue;
267
            if (obstacle.object_index == obj_climb_door)
268
            {
269
                with (obstacle)
270
                    event_user(9);
271
            }
272
            if (obstacle.object_index == obj_climb_orb)
273
            {
274
                if (obstacle.con == 0)
275
                    obstacle.con = 1;
276
            }
277
            if (obstacle.object_index == obj_climb_destructableclimbarea)
278
            {
279
                if (obstacle.con == 0)
280
                    obstacle.con = 1;
281
            }
282
            var isInteract = false;
283
            if (obstacle.object_index == obj_climb_interact)
284
                isInteract = true;
285
            with (obstacle)
286
            {
287
                if (object_get_parent(obj_climb_interact))
288
                    isInteract = true;
289
            }
290
            if (isInteract == true)
291
            {
292
                if (variable_instance_exists(obstacle, "myinteract"))
293
                {
294
                    if (obstacle.myinteract == 0)
295
                        obstacle.myinteract = 3;
296
                }
297
            }
298
            var _enemy = false;
299
            with (obstacle)
300
            {
301
                if (object_get_parent(obj_climb_enemy))
302
                    _enemy = true;
303
            }
304
            if (obstacle.object_index == obj_climb_enemy)
305
                _enemy = true;
306
            if (obstacle.object_index == obj_climb_boostenemy)
307
            {
308
                if (jumping == 1 && climbcon == 2 && boost_cooldown <= 0)
309
                {
310
                    climbtimer = 0;
311
                    boosting = true;
312
                    xclimb = 0;
313
                    y = obstacle.y;
314
                    yclimb = 0;
315
                    yclimb -= (600 + (20 * obstacle.boost_bonus));
316
                    jumpchargeamount = 8;
317
                    boost_cooldown = 12;
318
                    remx = x;
319
                    remy = y;
320
                    if (obstacle.boost_bonus > 0)
321
                        scr_delay_var("cuttimer", 14, 2);
322
                }
323
            }
324
            if (_enemy)
325
            {
326
                if (jumping == 1 && climbcon == 2)
327
                {
328
                    if (variable_instance_exists(obstacle, "damagecon"))
329
                    {
330
                        var proceedwithdamage = true;
331
                        if (variable_instance_exists(obstacle, "active"))
332
                        {
333
                            if (obstacle.active == false)
334
                                proceedwithdamage = false;
335
                        }
336
                        if (proceedwithdamage)
337
                        {
338
                            if (obstacle.damagecon == 0)
339
                            {
340
                                snd_play(snd_noise);
341
                                climbcon = 10;
342
                                cuttimer = 0;
343
                                obstacle.damagecon = 1;
344
                            }
345
                        }
346
                    }
347
                }
348
            }
349
        }
350
    }
351
    ds_list_destroy(_list);
352
}
353
if (cancelcon)
354
{
355
    jumpchargeamount = 0;
356
    jumpchargetimer = 0;
357
    snd_stop(snd_chargeshot_charge);
358
    jumping = 0;
359
    climbcon = 0;
360
    neutralcon = 0;
361
    slipcon = 0;
362
    image_blend = c_white;
363
}
364
if (!jumping && fallingcon == 0)
365
{
366
    var list = ds_list_create();
367
    instance_place_list(x, y, 587, list, false);
368
    for (var i = 0; i < ds_list_size(list); i++)
369
    {
370
        (ds_list_find_value(list, i)).on_climbing();
371
    }
372
    ds_list_destroy(list);
373
}
374
if (fallingcon > 0)
375
{
376
    if (fallingcon == 1)
377
    {
378
        sprite_index = spr_kris_climb_new_slip_fall;
379
        image_index = 0;
380
        fallingspeed = 0;
381
        fallingcon = 2;
382
        neutralcon = 0;
383
        snd_stop(snd_chargeshot_charge);
384
        image_blend = c_white;
385
        jumping = 0;
386
        jumpchargecon = 0;
387
        climbcon = 0;
388
        climbmomentum = 0;
389
    }
390
    if (fallingcon == 2)
391
    {
392
        var landing = instance_place(x, y, obj_climb_landingstrip);
393
        if (i_ex(landing))
394
        {
395
            landingstrip = landing;
396
            neutralcon = -1;
397
            climbcon = -1;
398
            jumpchargecon = -1;
399
            fallingcon = -1;
400
            graboncon = -1;
401
            damagecon = -1;
402
            camera = 0;
403
            timer = 0;
404
            exitcon = 1;
405
        }
406
        fallingspeed += 0.5;
407
        if (fallingspeed >= fall_speed_cap)
408
            fallingspeed = fall_speed_cap;
409
        if (fallingspeed >= 20)
410
            naturalybias = min(naturalybias + 2, 80);
411
        if (falldir == 0)
412
            y += ceil(fallingspeed);
413
        if (falldir == 1)
414
            x += ceil(fallingspeed);
415
        if (falldir == 2)
416
            y -= ceil(fallingspeed);
417
        if (falldir == 3)
418
            x -= ceil(fallingspeed);
419
        fallingtimer--;
420
        if (fallingtimer <= 0)
421
        {
422
            if (grabon)
423
            {
424
                grabx = remx + (round((x - remx) / 40) * 40);
425
                graby = remy + (round((y - remy) / 40) * 40);
426
                if (onrotatingtower && grabx > obj_rotating_tower_controller_new.tower_circumference)
427
                    grabx -= obj_rotating_tower_controller_new.tower_circumference;
428
                if (onrotatingtower && grabx < 0)
429
                    grabx += obj_rotating_tower_controller_new.tower_circumference;
430
                if (place_meeting(grabx, graby, obj_climb_climbable))
431
                {
432
                    grabontimer = 15;
433
                    graboncon = 1;
434
                    dir = -1;
435
                    fallingcon = 0;
436
                }
437
            }
438
            var howlongfall = 660;
439
            if (restorefromfalling)
440
            {
441
                if (graboncon == 0)
442
                {
443
                    if (y >= (cameray() + howlongfall))
444
                    {
445
                        fallingcon = 0;
446
                        restorefromfallingcon = 1;
447
                    }
448
                }
449
            }
450
        }
451
    }
452
}
453
if (graboncon > 0)
454
{
455
    if (graboncon == 1)
456
    {
457
        sprite_index = spr_kris_climb_new_charge;
458
        image_index = 2;
459
        graboncon = 2;
460
    }
461
    if (graboncon == 2)
462
    {
463
        snd_stop(snd_wing);
464
        snd_play_x(snd_wing, 0.7, 0.6 + random(0.3));
465
        if ((siner % 2) == 0)
466
        {
467
            var dust = instance_create(x, y, obj_animation);
468
            dust.sprite_index = spr_slidedust;
469
            dust.image_xscale = 2;
470
            dust.image_yscale = 2;
471
            dust.image_speed = 0.5;
472
            dust.vspeed = -3;
473
            dust.hspeed = random_range(-1, 1);
474
            dust.depth = depth + 10;
475
            if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
476
            {
477
                dust.x = obj_rotating_tower_controller_new.tower_x;
478
                dust.depth = obj_rotating_tower_controller_new.depth - 4;
479
            }
480
        }
481
        if (fallingspeed > 7)
482
            fallingspeed = 7;
483
        fallingspeed--;
484
        if (falldir == 0)
485
            y += fallingspeed;
486
        if (falldir == 1)
487
            x += fallingspeed;
488
        if (falldir == 2)
489
            y -= fallingspeed;
490
        if (falldir == 3)
491
            x -= fallingspeed;
492
        if (fallingspeed <= 0)
493
        {
494
            grabonclimbtimer = 0;
495
            graboncon = 3;
496
            remfalleny = y;
497
            remfallenx = x;
498
            if ((remfallenx - grabx) > 180)
499
                remfallenx -= obj_rotating_tower_controller_new.tower_circumference;
500
            if ((remfallenx - grabx) < -180)
501
                remfallenx += obj_rotating_tower_controller_new.tower_circumference;
502
        }
503
    }
504
    if (graboncon == 3)
505
    {
506
        grabonclimbtimer++;
507
        var initwait = 7;
508
        var waittime = 8;
509
        if (grabonclimbtimer >= initwait)
510
        {
511
            y = lerp_ease_inout(remfalleny, graby, (grabonclimbtimer / waittime) - (initwait / waittime), 2);
512
            x = lerp_ease_inout(remfallenx, grabx, (grabonclimbtimer / waittime) - (initwait / waittime), 2);
513
        }
514
        if (grabonclimbtimer >= (waittime + initwait))
515
        {
516
            if (onrotatingtower)
517
            {
518
                x = (floor(x / 40) * 40) + 20;
519
                y = (floor(y / 40) * 40) + 20;
520
            }
521
            else
522
            {
523
                x = round(x / 10) * 10;
524
                y = round(y / 10) * 10;
525
            }
526
            graboncon = 0;
527
            neutralcon = 1;
528
            checkdamagefloor = 1;
529
            with (obj_rotating_tower_controller_new)
530
                checkdamagefloor = 1;
531
        }
532
    }
533
}
534
if (restorefromfallingcon > 0)
535
{
536
    if (restorefromfallingcon == 1)
537
    {
538
        damage = 30;
539
        damagecon = 1;
540
    }
541
    else if (restorefromfallingcon == 20)
542
    {
543
        x = safex;
544
        y = safey;
545
        neutralcon = 1;
546
    }
547
    restorefromfallingcon++;
548
}
549
if (neutralcon == 1)
550
{
551
    sprite_index = spr_kris_climb_new;
552
    image_index = climbindex;
553
    remx = x;
554
    remy = y;
555
    if (!place_meeting(x, y, obj_climb_notsafe))
556
    {
557
        safex = x;
558
        safey = y;
559
    }
560
    if (global.interact == 0 || forceclimb)
561
    {
562
        if (button1buffer > 0 && button2buffer <= 0)
563
        {
564
            if (!boosting)
565
                climbmomentum = 0;
566
            button1buffer = 4;
567
            neutralcon = 0;
568
            jumpchargecon = 1;
569
            dir = 0;
570
            if (xclimb > 0)
571
                dir = 1;
572
            if (xclimb < 0)
573
                dir = 3;
574
            if (yclimb < 0)
575
                dir = 2;
576
        }
577
        else if (currentdir >= 0)
578
        {
579
            climbcon = 1;
580
            neutralcon = 0;
581
        }
582
        else if (!boosting)
583
        {
584
            climbmomentum *= 0.5;
585
        }
586
        var climb_ender = instance_place(x, y, obj_climbstarter);
587
        if (!i_ex(climb_ender) && i_ex(obj_rotating_tower_controller_new))
588
        {
589
            var xx = obj_rotating_tower_controller_new.tower_x - 20;
590
            var yy = obj_rotating_tower_controller_new.krisy - 20;
591
            climb_ender = instance_place(xx, yy, obj_climbstarter);
592
        }
593
        if (i_ex(climb_ender))
594
        {
595
            if (used_input == 0 && climb_ender.e_down)
596
                myexit = climb_ender;
597
            if (used_input == 3 && climb_ender.e_left)
598
                myexit = climb_ender;
599
            if (used_input == 2 && climb_ender.e_up)
600
                myexit = climb_ender;
601
            if (used_input == 1 && climb_ender.e_right)
602
                myexit = climb_ender;
603
        }
604
        if (i_ex(myexit))
605
        {
606
            global.facing = dir;
607
            with (obj_climbloc)
608
            {
609
                if (exitmarkerflag == other.myexit.exitmarkerflag)
610
                    other.myexitloc = id;
611
            }
612
            with (obj_krmarker)
613
            {
614
                if (extflag == other.myexit.exitmarkerflag)
615
                {
616
                    global.facing = image_index;
617
                    other.myexitloc = id;
618
                }
619
            }
620
            neutralcon = -1;
621
            climbcon = -1;
622
            jumpchargecon = -1;
623
            fallingcon = -1;
624
            graboncon = -1;
625
            damagecon = -1;
626
            camera = 0;
627
            timer = 0;
628
            exitcon = 1;
629
        }
630
    }
631
}
632
if (exitcon == 1)
633
{
634
    with (obj_darkcontroller)
635
        charcon = 0;
636
    var landing = false;
637
    if (landingstrip != -1)
638
    {
639
        myexitloc = landingstrip;
640
        landing = true;
641
    }
642
    if (i_ex(myexitloc))
643
    {
644
        var endingx = myexitloc.x;
645
        var endingy = myexitloc.y;
646
        if (myexitloc == landingstrip)
647
        {
648
            endingx = x - 20;
649
            endingy = myexitloc.y - 60;
650
        }
651
        timer++;
652
        if (timer == 1)
653
        {
654
            endtime = 16;
655
            if (!landing)
656
            {
657
                snd_play(snd_wing);
658
            }
659
            else
660
            {
661
                snd_play(snd_noise);
662
                visible = false;
663
                with (
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1, arg12 = false)
{ var objinst = 1240; if (arg12) objinst = 1498; var thismarker = instance_create(arg0, arg1, objinst); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false, arg3 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var markertype = 1240; if (arg3) markertype = 1498; var thismarker = instance_create_depth(xloc, yloc, arg1, markertype); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(x - 30, y - 54, spr_kris_dw_landed, 2, 2, 0, undefined, undefined, depth, undefined, endtime, 1))
664
                {
665
                    
scr_addtosunshadows
scr_addtosunshadows

function
scr_addtosunshadows(arg0, arg1 = draw_self, arg2 = false)
{ if (i_ex(obj_sunshadows)) { _shadowdraw_func = arg1; __cast_shadow = arg2; with (obj_sunshadows) array_push(inst_list, arg0); } }
(id);
666
                    
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
667
                    
scr_shakeobj
scr_shakeobj

function
scr_shakeobj()
{ var _shakeobj = instance_create(x, y, obj_shakeobj); _shakeobj.target = id; if (argument_count >= 1) { if (i_ex(argument0)) _shakeobj.target = argument0; } if (argument_count >= 2) { if (argument1 != -1) _shakeobj.shakeamt = argument1; } if (argument_count >= 3) { if (argument2 != -1) _shakeobj.shakereduct = argument2; } with (_shakeobj) event_user(0); }
();
668
                }
669
                global.facing = 0;
670
                with (obj_caterpillarchara)
671
                {
672
                    if (name == "susie")
673
                        setxy((other.x - 80) + 4, other.y - 20 - 42);
674
                    if (name == "ralsei")
675
                        setxy((other.x + 80) - 44, other.y - 20 - 44);
676
                    scr_caterpillar_interpolate_old();
677
                }
678
            }
679
            _camerax = camerax();
680
            _cameray = cameray();
681
            var endcamx = endingx - floor((__view_get(e__VW.WView, 0) / 2) - 18);
682
            var endcamy = endingy - floor((__view_get(e__VW.HView, 0) / 2) - 38);
683
            endcamx = clamp(endcamx, 0, room_width - 640);
684
            endcamy = clamp(endcamy, 0, room_height - 480);
685
            var clamper = -4;
686
            with (myexitloc)
687
                clamper = instance_place(x, y, obj_camera_clamper);
688
            if (i_ex(clamper))
689
            {
690
                var roomw = room_width;
691
                var roomh = room_height;
692
                var vieww = view_wport[0];
693
                var viewh = view_hport[0];
694
                var lclamp = 0;
695
                var rclamp = roomw - vieww;
696
                var uclamp = 0;
697
                var dclamp = roomh - viewh;
698
                if (clamper.xmin != -4)
699
                    lclamp = clamper.xmin;
700
                if (clamper.xmax != -4)
701
                    rclamp = clamper.xmax;
702
                if (clamper.ymin != -4)
703
                    uclamp = clamper.ymin;
704
                if (clamper.ymax != -4)
705
                    dclamp = clamper.ymax;
706
                endcamx = clamp(endcamx, lclamp, rclamp);
707
                endcamy = clamp(endcamy, uclamp, dclamp);
708
            }
709
            
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; }
("_camerax", _camerax, endcamx, endtime - 1);
710
            
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; }
("_cameray", _cameray, endcamy, endtime - 1);
711
            if (!landing)
712
            {
713
                sprite_index = spr_kris_jump_ball;
714
                image_speed = 0.25;
715
                x -= 20;
716
                y -= 20;
717
                if (onrotatingtower)
718
                {
719
                    x = obj_rotating_tower_controller_new.tower_x - 20;
720
                    onrotatingtower = false;
721
                }
722
                with (obj_caterpillarchara)
723
                {
724
                    var xoff = 0;
725
                    var yoff = 0;
726
                    if (name == "ralsei")
727
                    {
728
                        switch (global.facing)
729
                        {
730
                            case 0:
731
                                xoff = -20;
732
                                yoff = -28;
733
                                break;
734
                            case 1:
735
                                xoff = -40;
736
                                yoff = -12;
737
                                break;
738
                            case 2:
739
                                xoff = 18;
740
                                yoff = 8;
741
                                break;
742
                            case 3:
743
                                xoff = 40;
744
                                yoff = -12;
745
                                break;
746
                        }
747
                    }
748
                    if (name == "susie")
749
                    {
750
                        switch (global.facing)
751
                        {
752
                            case 0:
753
                                xoff = 12;
754
                                yoff = -32;
755
                                break;
756
                            case 1:
757
                                xoff = -20;
758
                                yoff = -16;
759
                                break;
760
                            case 2:
761
                                xoff = -26;
762
                                yoff = 4;
763
                                break;
764
                            case 3:
765
                                xoff = 8;
766
                                yoff = -16;
767
                                break;
768
                        }
769
                    }
770
                    setxy(endingx + xoff, endingy + yoff);
771
                    var targetexit = other.myexitloc;
772
                    var checkflag = "";
773
                    if (targetexit.object_index == obj_krmarker)
774
                        checkflag = targetexit.extflag;
775
                    else if (targetexit.object_index == obj_climb_landingstrip)
776
                        checkflag = "";
777
                    else
778
                        checkflag = targetexit.exitmarkerflag;
779
                    if (name == "susie")
780
                    {
781
                        with (obj_sumarker)
782
                        {
783
                            if (extflag == checkflag)
784
                                setxy(x, y, other);
785
                        }
786
                    }
787
                    if (name == "ralsei")
788
                    {
789
                        with (obj_ramarker)
790
                        {
791
                            if (extflag == checkflag)
792
                                setxy(x, y, other);
793
                        }
794
                    }
795
                }
796
                
scr_caterpillar_interpolate
scr_caterpillar_interpolate

function
scr_caterpillar_interpolate(arg0 = "none")
{ if (arg0 == "all") { with (obj_caterpillarchara) scr_caterpillar_interpolate_old(); } else if (arg0 == "none") { if (object_index == obj_caterpillarchara) scr_caterpillar_interpolate_old(); } else { with (obj_caterpillarchara) { if (name == arg0) scr_caterpillar_interpolate_old(); } } } function scr_caterinterp(arg0 = "none") {
scr_caterpillar_interpolate(arg0);
} function scr_caterpillar_interpolate_old() { var _newfacing = direction_to_object_bbox(id, 1200, true); remx[0] = obj_mainchara.x; remy[0] = obj_mainchara.y; facing[0] = _newfacing; for (var _iaia = target; _iaia > 0; _iaia -= 1) { remx[_iaia] = lerp(obj_mainchara.x, x + halign, _iaia / target); remy[_iaia] = lerp(obj_mainchara.y, y + valign, _iaia / target); facing[_iaia] = _newfacing; } }
("all");
797
            }
798
            var landingtype = 0;
799
            if (myexitloc == landingstrip)
800
                landingtype = 1;
801
            if (landingtype == 0)
802
            {
803
                var jumpstrength = 8;
804
                if (global.facing == 2)
805
                    jumpstrength = 12;
806
                
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3, arg4 = 0)
{ var ___jump =
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
with (___jump) { trackalpha = arg4; trackblend = arg4; trackindex = arg4; tracksprite = arg4; trackangle = arg4; } return ___jump; }
(endingx, endingy, jumpstrength, endtime).end_step = true;
807
                visible = 0;
808
            }
809
            if (landingtype == 1)
810
            {
811
            }
812
        }
813
        camerax_set(_camerax);
814
        cameray_set(_cameray);
815
        if (timer >= (1 + endtime))
816
        {
817
            if (!dontfree)
818
                global.interact = 0;
819
            if (!landing)
820
                snd_play(snd_noise);
821
            with (obj_mainchara)
822
            {
823
                setxy(endingx, endingy);
824
                visible = true;
825
                cutscene = false;
826
                global.interact = 0;
827
                freeze = false;
828
            }
829
            with (obj_caterpillarchara)
830
            {
831
                visible = 1;
832
                image_alpha = 0;
833
                var blendtime = 8;
834
                if (landing)
835
                    blendtime = 12;
836
                if (!i_ex(obj_climb_ralsei))
837
                {
838
                    
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", 0, 1, blendtime);
839
                    
scr_lerp_imageblend
scr_lerp_imageblend

function
scr_lerp_imageblend()
{ var lerpblend = instance_create(x, y, obj_lerpimageblend); lerpblend.target = argument0; lerpblend.color1 = argument1; lerpblend.color2 = argument2; var ___time = argument3; if (argument_count > 4) { var _style = argument4; var _ease = argument5; lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time, _style, _ease); } else { lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time); } with (lerpblend) alarm_set(0, ___time); return lerpblend; }
(id, c_gray, c_white, blendtime);
840
                    
scr_var_delay
scr_var_delay

function
scr_var_delay(arg0, arg1, arg2)
{
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_var_delayed(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var(arg0, arg1, arg2) {
scr_script_delayed(scr_var, arg2, arg0, arg1);
} function scr_delay_var_until(arg0, arg1, arg2) { scr_script_delayed_until(scr_var, arg2, arg0, arg1); }
("shadow_force_off", false, blendtime);
841
                }
842
                else
843
                {
844
                    image_alpha = 1;
845
                    image_blend = c_white;
846
                    shadow_force_off = false;
847
                }
848
                
scr_caterpillar_interpolate
scr_caterpillar_interpolate

function
scr_caterpillar_interpolate(arg0 = "none")
{ if (arg0 == "all") { with (obj_caterpillarchara) scr_caterpillar_interpolate_old(); } else if (arg0 == "none") { if (object_index == obj_caterpillarchara) scr_caterpillar_interpolate_old(); } else { with (obj_caterpillarchara) { if (name == arg0) scr_caterpillar_interpolate_old(); } } } function scr_caterinterp(arg0 = "none") {
scr_caterpillar_interpolate(arg0);
} function scr_caterpillar_interpolate_old() { var _newfacing = direction_to_object_bbox(id, 1200, true); remx[0] = obj_mainchara.x; remy[0] = obj_mainchara.y; facing[0] = _newfacing; for (var _iaia = target; _iaia > 0; _iaia -= 1) { remx[_iaia] = lerp(obj_mainchara.x, x + halign, _iaia / target); remy[_iaia] = lerp(obj_mainchara.y, y + valign, _iaia / target); facing[_iaia] = _newfacing; } }
();
849
                var newfacing = global.facing;
850
                if (name == "ralsei")
851
                {
852
                    with (obj_ramarker)
853
                    {
854
                        if (
scr_checklocation
scr_checklocation

function
scr_checklocation(arg0 = id, arg1, arg2, arg3 = 0)
{ if (!i_ex(arg0)) { debug_message("target instance does not exist"); return false; } if (abs(arg0.x - arg1) <= arg3 && abs(arg0.y - arg2) <= arg3) return true; else return false; }
(other.id, x, y, 4))
855
                            newfacing = image_index;
856
                    }
857
                }
858
                if (name == "susie")
859
                {
860
                    with (obj_sumarker)
861
                    {
862
                        if (
scr_checklocation
scr_checklocation

function
scr_checklocation(arg0 = id, arg1, arg2, arg3 = 0)
{ if (!i_ex(arg0)) { debug_message("target instance does not exist"); return false; } if (abs(arg0.x - arg1) <= arg3 && abs(arg0.y - arg2) <= arg3) return true; else return false; }
(other.id, x, y, 4))
863
                            newfacing = image_index;
864
                    }
865
                }
866
            }
867
            instance_destroy();
868
        }
869
    }
870
    else
871
    {
872
        neutralcon = 0;
873
    }
874
}
875
if (jumpchargecon > 0)
876
{
877
    if (jumpchargecon == 1)
878
    {
879
        if (!boosting)
880
            climbmomentum = 0;
881
        x = remx;
882
        y = remy;
883
        jumpchargesfx = snd_loop(snd_chargeshot_charge);
884
        snd_pitch(jumpchargesfx, 0.4);
885
        snd_volume(jumpchargesfx, 0.3, 0);
886
        jumpchargetimer = 0;
887
        jumpchargeamount = 1;
888
        jumpchargecon = 2;
889
        sprite_index = spr_kris_climb_new_charge;
890
        image_index = 0;
891
    }
892
    if (jumpchargecon == 2)
893
    {
894
        var docharge = 0;
895
        if (button1buffer >= 2 || jumpchargetimer < 3)
896
            docharge = 1;
897
        if (button2_p())
898
            docharge = 2;
899
        if (docharge == 1)
900
        {
901
            if (dir == 2 || dir == 0)
902
                sprite_index = spr_kris_climb_new_charge;
903
            else if (dir == 1)
904
                sprite_index = spr_kris_climb_new_charge_right;
905
            else
906
                sprite_index = spr_kris_climb_new_charge_left;
907
            jumpchargetimer++;
908
            if (jumpchargetimer >= chargetime1)
909
            {
910
                image_index = 1;
911
                snd_pitch(jumpchargesfx, 0.5);
912
                jumpchargeamount = 2;
913
                image_blend = merge_color(c_white, c_teal, 0.2 + (floor(sin(jumpchargetimer / 2)) * 0.2));
914
            }
915
            if (jumpchargetimer >= chargetime2)
916
            {
917
                image_index = 2;
918
                jumpchargeamount = 3;
919
                snd_pitch(jumpchargesfx, 0.7);
920
                image_blend = merge_color(c_white, c_teal, 0.4 + (floor(sin(jumpchargetimer)) * 0.4));
921
                if ((jumpchargetimer % 8) == 0)
922
                {
923
                    var afterimage = 
scr_afterimage_grow
scr_afterimage_grow

function
scr_afterimage_grow()
{ afterimage = instance_create(x, y, obj_afterimage_grow); 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; }
();
924
                    afterimage.image_alpha = 0.3;
925
                    if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
926
                    {
927
                        afterimage.x = obj_rotating_tower_controller_new.tower_x;
928
                        afterimage.depth = obj_rotating_tower_controller_new.depth - 4;
929
                    }
930
                }
931
            }
932
        }
933
        if (docharge == 0)
934
        {
935
            jumpchargecon = 0;
936
            jumping = 1;
937
            climbcon = 1;
938
            image_blend = c_white;
939
            snd_stop(jumpchargesfx);
940
        }
941
        if (docharge == 2)
942
        {
943
            snd_play(snd_txttor, 0.7, 0.4);
944
            snd_play(snd_txtal, 0.7, 0.4);
945
            snd_play(snd_dtrans_heavypassing, 0.2, 1.8);
946
            button2buffer = 10;
947
            jumpchargecon = 0;
948
            jumpchargetimer = 0;
949
            neutralcon = 1;
950
            image_blend = c_white;
951
            snd_stop(jumpchargesfx);
952
        }
953
    }
954
}
955
if (slipcon > 0)
956
{
957
    if (slipcon == 1)
958
    {
959
        if (recently_bumped != dir)
960
        {
961
            previous_bump = recently_bumped;
962
            recently_bumped = dir;
963
        }
964
        snd_play(snd_bump);
965
        if (xclimb > 0)
966
            slipsprite = 1565;
967
        else if (xclimb < 0)
968
            slipsprite = 1353;
969
        sprite_index = slipsprite;
970
        image_index = 1;
971
        slipcon = 2;
972
    }
973
    if (slipcon == 2)
974
    {
975
        sliptimer--;
976
        if (sliptimer >= 3)
977
            image_index = 1;
978
        else
979
            image_index = 0;
980
        if (sliptimer <= 0)
981
        {
982
            slipbuffer = 30;
983
            slipcon = 0;
984
            if (fallingcon <= 0)
985
                neutralcon = 1;
986
        }
987
    }
988
}
989
if (climbcon > 0)
990
{
991
    if (climbcon == 1)
992
    {
993
        yclimb = 0;
994
        xclimb = 0;
995
        if (dir == 2)
996
            yclimb = -40;
997
        else if (dir == 3)
998
            xclimb = -40;
999
        else if (dir == 1)
1000
            xclimb = 40;
1001
        else
1002
            yclimb = 40;
1003
        var checkamount = 1;
1004
        if (jumping == 1 && jumpchargeamount > 1)
1005
            checkamount = jumpchargeamount;
1006
        for (var i = checkamount; i >= 1; i--)
1007
        {
1008
            var testxclimb = xclimb * i;
1009
            var testyclimb = yclimb * i;
1010
            var finalclimbx = x + testxclimb;
1011
            var finalclimbx2 = (x + testxclimb) - xclimb;
1012
            var falseloopused = 0;
1013
            if (falseloop)
1014
            {
1015
                if (finalclimbx > falseloopx[1])
1016
                {
1017
                    finalclimbx = (finalclimbx - falseloopx[1]) + falseloopx[0];
1018
                    falseloopused = 1;
1019
                }
1020
                if (finalclimbx < falseloopx[0])
1021
                {
1022
                    finalclimbx = (finalclimbx - falseloopx[0]) + falseloopx[1];
1023
                    falseloopused = 1;
1024
                }
1025
                if (finalclimbx2 > falseloopx[1])
1026
                {
1027
                    finalclimbx2 = (finalclimbx2 - falseloopx[1]) + falseloopx[0];
1028
                    falseloopused = 1;
1029
                }
1030
                if (finalclimbx2 < falseloopx[0])
1031
                {
1032
                    finalclimbx2 = (finalclimbx2 - falseloopx[0]) + falseloopx[1];
1033
                    falseloopused = 1;
1034
                }
1035
            }
1036
            var tilesolidcollision = false;
1037
            if (i_ex(obj_rotating_tower_controller_new))
1038
            {
1039
                if (finalclimbx < 0)
1040
                    finalclimbx += obj_rotating_tower_controller_new.tower_circumference;
1041
                var tilex = (finalclimbx / obj_rotating_tower_controller_new.tile_width) + 1;
1042
                var tiley = (y + testyclimb) / obj_rotating_tower_controller_new.tile_height;
1043
            }
1044
            with (instance_place(finalclimbx2, (y + testyclimb) - yclimb, obj_climbstarter))
1045
            {
1046
                if (tilesolidcollision == false && ((other.dir == 2 && e_up) || (other.dir == 0 && e_down) || (other.dir == 3 && e_left) || (other.dir == 1 && e_right)))
1047
                {
1048
                    if (falseloopused)
1049
                        other.remx = finalclimbx - testxclimb;
1050
                    other.xclimb = testxclimb;
1051
                    other.yclimb = testyclimb;
1052
                    snd_play_x(snd_wing, 0.6, 1.1 + random(0.1));
1053
                    sprite_index = spr_kris_climb_new;
1054
                    if (other.climbindex == 0)
1055
                        other.climbindex = 2;
1056
                    else
1057
                        other.climbindex = 0;
1058
                    other.climbcon = 2;
1059
                    other.climbtimer = 0;
1060
                    break;
1061
                }
1062
            }
1063
            if (climbcon == 2)
1064
                break;
1065
            if (place_meeting(finalclimbx, y + testyclimb, obj_climb_climbable) && tilesolidcollision == false)
1066
            {
1067
                var hit_wall = false;
1068
                for (var ii = 1; ii < i; ii++)
1069
                {
1070
                    if (place_meeting(finalclimbx - (xclimb * ii), (y + testyclimb) - (yclimb * ii), obj_climb_jumpblocker))
1071
                        hit_wall = true;
1072
                }
1073
                if (hit_wall)
1074
                {
1075
                }
1076
                else
1077
                {
1078
                    if (falseloopused)
1079
                        remx = finalclimbx - testxclimb;
1080
                    xclimb = testxclimb;
1081
                    yclimb = testyclimb;
1082
                    if (instance_exists(obj_dw_fcastle_asgore))
1083
                    {
1084
                        var rand = random(0.1);
1085
                        snd_play_x(snd_wing, 0.4, 1.1 + rand);
1086
                        snd_play_delay(snd_wing, 4, 0.2, 1.1 + rand);
1087
                        snd_play_delay(snd_wing, 10, 0.1, 1.1 + rand);
1088
                    }
1089
                    else
1090
                    {
1091
                        snd_play_x(snd_wing, 0.6, 1.1 + random(0.1));
1092
                    }
1093
                    sprite_index = spr_kris_climb_new;
1094
                    if (climbindex == 0)
1095
                        climbindex = 2;
1096
                    else
1097
                        climbindex = 0;
1098
                    climbcon = 2;
1099
                    climbtimer = 0;
1100
                    break;
1101
                }
1102
            }
1103
        }
1104
        if (climbcon != 2)
1105
        {
1106
            sliptimer = 8 + (climbmomentum * 4);
1107
            if (jumping == 1)
1108
                sliptimer = 8 + (jumpchargeamount * 3);
1109
            climbcon = 0;
1110
            slipcon = 1;
1111
            jumping = 0;
1112
        }
1113
    }
1114
    if (climbcon == 2)
1115
    {
1116
        if (xclimb > 0)
1117
            slipsprite = 1565;
1118
        else if (xclimb < 0)
1119
            slipsprite = 1353;
1120
        recently_bumped = -1;
1121
        previous_bump = -1;
1122
        if (climbtimer == 0)
1123
        {
1124
            if (instance_exists(obj_dw_dogplatforming))
1125
            {
1126
                snd_stop(
scr_84_get_sound
scr_84_get_sound

function
scr_84_get_sound(arg0)
{ return ds_map_find_value(global.chemg_sound_map, arg0); }
("snd_flowery_voiceclip_yes"));
1127
                snd_play_flowery(229);
1128
            }
1129
            with (obj_climb_susie)
1130
            {
1131
                if (followmode == 3)
1132
                    instruct(other.xclimb, other.yclimb, other.jumping);
1133
            }
1134
            var dust_amount = 1;
1135
            if (jumping)
1136
                dust_amount = 5;
1137
            for (var i = 0; i < dust_amount; i++)
1138
            {
1139
                var dust = instance_create(x, y, obj_animation);
1140
                dust.sprite_index = spr_climb_dust_small;
1141
                dust.depth = depth + 10;
1142
                if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
1143
                {
1144
                    dust.x = obj_rotating_tower_controller_new.tower_x;
1145
                    dust.hspeed = -xclimb * 0.1;
1146
                    dust.depth = obj_rotating_tower_controller_new.depth - 4;
1147
                }
1148
                if (jumping)
1149
                {
1150
                    dust.x = dust.x + random_range(-10, 10);
1151
                    dust.y = dust.y + random_range(-10, 10);
1152
                }
1153
                else if (yclimb < 0)
1154
                {
1155
                    dust.x = (dust.x - 10) + (10 * climbindex);
1156
                }
1157
                else if (yclimb > 0)
1158
                {
1159
                    dust.x = (dust.x - 15) + (15 * climbindex);
1160
                }
1161
                else
1162
                {
1163
                    dust.y = dust.y + 10;
1164
                }
1165
                dust.image_xscale = 2;
1166
                dust.image_yscale = 2;
1167
                dust.image_speed = 0.5;
1168
                dust.vspeed += -1;
1169
            }
1170
        }
1171
        drawoffsety = 0;
1172
        var newx, newy, climbrate;
1173
        if (jumping == 0)
1174
        {
1175
            if (climbspeed < 1)
1176
                climbspeed = 1;
1177
            climbtimer += (climbspeed + climbmomentum);
1178
            climbrate = 10;
1179
            if (climbtimer >= climbrate)
1180
                climbtimer = climbrate;
1181
            newx = lerp_ease_inout(remx, remx + xclimb, climbtimer / climbrate, 2);
1182
            newy = lerp_ease_inout(remy, remy + yclimb, climbtimer / climbrate, 2);
1183
            image_index = climbindex;
1184
            if (abs(newx - remx) > 3 || abs(newy - remy) > 3)
1185
                image_index = 1 + climbindex;
1186
        }
1187
        else
1188
        {
1189
            climbtimer += 1;
1190
            climbrate = 6 + (jumpchargeamount * 2);
1191
            var clipamount = 4;
1192
            if (jumpchargeamount >= 2)
1193
                clipamount = 2;
1194
            if (climbtimer >= climbrate)
1195
                climbtimer = climbrate;
1196
            if (climbtimer >= (climbrate - clipamount))
1197
                climbtimer = climbrate;
1198
            newx = lerp_ease_out(remx, remx + xclimb, climbtimer / climbrate, 1);
1199
            newy = lerp_ease_out(remy, remy + yclimb, climbtimer / climbrate, 1);
1200
            drawoffsety = -sin((climbtimer / climbrate) * pi) * (2 * (jumpchargeamount - 1));
1201
            if (dir == 2 || dir == 0)
1202
            {
1203
                image_index = climbtimer / 2;
1204
                sprite_index = spr_kris_climb_new_jump_up;
1205
            }
1206
            else if (dir == 1)
1207
            {
1208
                if ((climbtimer / climbrate) > 0.5)
1209
                {
1210
                    sprite_index = spr_kris_climb_new_land_right;
1211
                }
1212
                else
1213
                {
1214
                    sprite_index = spr_kris_climb_new_slip_right;
1215
                    image_index = 0;
1216
                }
1217
            }
1218
            else if ((climbtimer / climbrate) > 0.5)
1219
            {
1220
                sprite_index = spr_kris_climb_new_land_left;
1221
            }
1222
            else
1223
            {
1224
                sprite_index = spr_kris_climb_new_slip_left;
1225
                image_index = 0;
1226
            }
1227
            var afterimage = boosting ? 
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; }
(16776960, true) :
scr_afterimage
scr_afterimage

function
scr_afterimage()
{ afterimage = instance_create(x, y, obj_afterimage); 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; }
();
1228
            afterimage.y = afterimage.y + drawoffsety;
1229
            afterimage.image_alpha = 0.2;
1230
            if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
1231
            {
1232
                afterimage.x = obj_rotating_tower_controller_new.tower_x;
1233
                afterimage.hspeed = -xclimb * 0.1;
1234
                afterimage.depth = obj_rotating_tower_controller_new.depth - 4;
1235
            }
1236
            var climb_ender = instance_place(x - clamp(xclimb, -40, 40), y - clamp(yclimb, -40, 40), obj_climbstarter);
1237
            if (!i_ex(climb_ender) && i_ex(obj_rotating_tower_controller_new))
1238
            {
1239
                var xx = obj_rotating_tower_controller_new.tower_x - 20;
1240
                var yy = obj_rotating_tower_controller_new.krisy - 20;
1241
                climb_ender = instance_place(xx, yy, obj_climbstarter);
1242
            }
1243
            if (i_ex(climb_ender))
1244
            {
1245
                if (yclimb > 0 && climb_ender.e_down)
1246
                    myexit = climb_ender;
1247
                if (xclimb < 0 && climb_ender.e_left)
1248
                    myexit = climb_ender;
1249
                if (yclimb < 0 && climb_ender.e_up)
1250
                    myexit = climb_ender;
1251
                if (xclimb > 0 && climb_ender.e_right)
1252
                    myexit = climb_ender;
1253
            }
1254
            if (i_ex(myexit))
1255
            {
1256
                global.facing = dir;
1257
                with (obj_climbloc)
1258
                {
1259
                    if (exitmarkerflag == other.myexit.exitmarkerflag)
1260
                        other.myexitloc = id;
1261
                }
1262
                with (obj_krmarker)
1263
                {
1264
                    if (extflag == other.myexit.exitmarkerflag)
1265
                    {
1266
                        global.facing = image_index;
1267
                        other.myexitloc = id;
1268
                    }
1269
                }
1270
                neutralcon = -1;
1271
                climbcon = -1;
1272
                jumpchargecon = -1;
1273
                fallingcon = -1;
1274
                graboncon = -1;
1275
                damagecon = -1;
1276
                camera = 0;
1277
                timer = 0;
1278
                exitcon = 1;
1279
                exit;
1280
            }
1281
        }
1282
        x = newx;
1283
        y = newy;
1284
        if (climbtimer >= climbrate)
1285
        {
1286
            if (jumping == 1)
1287
            {
1288
                climbmomentum = jumpchargeamount / 2;
1289
                if (boosting)
1290
                    climbmomentum = 3;
1291
            }
1292
            jumping = 0;
1293
            climbcon = 0;
1294
            jumpchargeamount = 0;
1295
            x = remx + xclimb;
1296
            y = remy + yclimb;
1297
            if (!place_meeting(x, y, obj_climb_climbable))
1298
            {
1299
                fallingcon = 1;
1300
                fallingtimer = 10;
1301
            }
1302
            else
1303
            {
1304
                neutralcon = 1;
1305
                checkdamagefloor = 1;
1306
                with (obj_rotating_tower_controller_new)
1307
                    checkdamagefloor = 1;
1308
            }
1309
        }
1310
    }
1311
    if (climbcon == 10)
1312
    {
1313
        sprite_index = spr_kris_climb_new_charge;
1314
        image_index = 2;
1315
        cuttimer++;
1316
        if (cuttimer == 1)
1317
        {
1318
            flashcon = 1;
1319
            if (boosting)
1320
            {
1321
                with (instance_create(camerax() + (0.5 * camerawidth()), y, obj_marker))
1322
                {
1323
                    sprite_index = spr_vfx_parry_ring;
1324
                    depth = 10000;
1325
                    image_speed = 0.5;
1326
                    image_xscale = 0;
1327
                    image_yscale = 0;
1328
                    image_blend = c_aqua;
1329
                    
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", 0, 3, 15, 1, "out");
1330
                    
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", 0, 3, 15, 1, "out");
1331
                    
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, 15, 1, "in");
1332
                    
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ var _doom = instance_create_depth(0, 0, 0, obj_doom); with (_doom) { alarm[0] = arg1; target = arg0; } return _doom; }
(self, 15);
1333
                }
1334
            }
1335
        }
1336
        if (cuttimer >= (5 + (10 * boosting)))
1337
        {
1338
            cuttimer = 0;
1339
            climbcon = 2;
1340
            if (boosting)
1341
            {
1342
                with (instance_create(camerax() + (0.5 * camerawidth()), y, obj_animation))
1343
                {
1344
                    sprite_index = spr_vfx_directional_hit;
1345
                    image_speed = 0.5;
1346
                    image_angle = 270;
1347
                    image_xscale = 0;
1348
                    depth = 10000;
1349
                    image_yscale = 0;
1350
                    image_blend = c_aqua;
1351
                    
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", 0, 3, 15, 1, "out");
1352
                    
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", 0, 3, 15, 1, "out");
1353
                    
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, 15, 1, "in");
1354
                    
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ var _doom = instance_create_depth(0, 0, 0, obj_doom); with (_doom) { alarm[0] = arg1; target = arg0; } return _doom; }
(self, 15);
1355
                }
1356
            }
1357
        }
1358
    }
1359
}
1360
if (checkdamagefloor)
1361
{
1362
    var hazardtile = instance_place(x, y, obj_climb_hazardtile);
1363
    if (i_ex(hazardtile))
1364
    {
1365
        damagecon = 1;
1366
        damage = hazardtile.damage;
1367
        if (variable_instance_exists(hazardtile, "target"))
1368
            target = hazardtile.target;
1369
    }
1370
    checkdamagefloor = 0;
1371
}
1372
if (damagecon == 1)
1373
{
1374
    if (lethality_shield && global.hp[global.char[0]] > 1)
1375
        damage = min(damage, global.hp[global.char[0]] - 1);
1376
    if (target != 3)
1377
        
scr_damage
scr_damage

function
scr_damage(arg0 = true)
{ if (global.inv < 0) { var __element = 0; if (variable_instance_exists(id, "element")) { if (is_real(element)) __element = element; } if (target < 3) { if (global.hp[global.char[target]] <= 0) {
scr_randomtarget_old();
target = mytarget; with (global.charinstance[target]) { image_blend = c_white; darkify = 0; } } } var __remtarget = -1; if (target == 4) { __remtarget = 4;
scr_randomtarget_old();
target = mytarget; if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (
scr_party_hpaverage() / 2))
{
scr_randomtarget_old();
target = mytarget; } if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (
scr_party_hpaverage() / 2))
{
scr_randomtarget_old();
target = mytarget; } if (target == 0 && (global.hp[global.char[target]] / global.maxhp[global.char[target]]) < 0.35) {
scr_randomtarget_old();
target = mytarget; } with (global.charinstance[target]) { image_blend = c_white; darkify = 0; } } chartarget = 3; if (global.chapter == 5 && i_ex(obj_flowery_enemy)) { var dam_reduction = 0; if (global.tempflag[74] == 7) dam_reduction = -0.05; if (global.tempflag[74] == 8) dam_reduction = -0.1; if (global.tempflag[74] == 9) dam_reduction = -0.12; if (global.tempflag[74] == 10) dam_reduction = -0.15; if (global.tempflag[74] == 11) dam_reduction = -0.18; if (global.tempflag[74] == 12) dam_reduction = -0.21; if (global.tempflag[74] >= 13) dam_reduction = -0.25; if (obj_flowery_enemy.partydefenselowered == true) { damage = ceil(damage * (1.1 + dam_reduction)); dam_reduction = 0; } if (obj_flowery_enemy.remove_ralsei_con > 0) { damage = ceil(damage * (0.8 + dam_reduction)); dam_reduction = 0; } if (dam_reduction != 0) damage = ceil(damage * (1 + dam_reduction)); if (obj_flowery_enemy.ralsei_removed == true && target == 2) { target = choose(0, 1); if (global.hp[1] < 1) target = 1; if (global.hp[2] < 1) target = 0; } if (i_ex(obj_dbulletcontroller) && obj_dbulletcontroller.type == 637) obj_flowery_enemy.damage_taken_during_tutorial++; } if (global.chapter == 5 && i_ex(obj_pink_enemy) && global.flag[1914] == 2) damage = round(damage * 1.21); tdamage = damage; var oldcalculation = 0; if (target < 3) { chartarget = global.char[target]; if (global.ignoredefense == true) { tdamage = ceil(tdamage); ...
();
1378
    if (target == 3)
1379
        
scr_damage_all_overworld
scr_damage_all_overworld

function
scr_damage_all_overworld()
{ if (global.inv < 0) { gameover = 1; if (global.char[0] != 0 && global.hp[global.char[0]] > 1) gameover = 0; if (global.char[1] != 0 && global.hp[global.char[1]] > 1) gameover = 0; if (global.char[2] != 0 && global.hp[global.char[2]] > 1) gameover = 0; if (global.chapter == 5 && gameover && global.tempflag[57] == 1) { if (global.char[0] != 0) global.hp[global.char[0]] = 0; if (global.char[1] != 0) global.hp[global.char[1]] = 0; if (global.char[2] != 0) global.hp[global.char[2]] = 0; exit; } if (gameover == 1)
scr_gameover();
remdamage = damage; remtarget = target; if (!instance_exists(obj_shake)) instance_create(0, 0, obj_shake); with (obj_dmgwriter) killactive = 1; snd_stop(snd_hurt1); snd_play(snd_hurt1); var maxhpdiff = 0; for (ti = 0; ti < 3; ti += 1) { global.inv = -1; damage = remdamage; target = ti; tdamage = damage; with (global.charinstance[target]) { hurt = 1; hurttimer = 0; } hpdiff = tdamage; if (hpdiff >= global.hp[global.char[target]]) hpdiff = global.hp[global.char[target]] - 1; maxhpdiff = max(hpdiff, maxhpdiff); d_cancel = 0; if (hpdiff <= 1) { if (global.hp[global.char[target]] <= 0) { hpdiff = 0; d_cancel = 1; } else { hpdiff = 1; } } if (d_cancel == 0) { doomtype = -1; global.hp[global.char[target]] -= hpdiff; if ((instance_exists(global.charinstance[target]) && global.charinstance[target].visible == true) || i_ex(obj_climb_kris) || i_ex(obj_plat_player)) { var trg = -4; var nowriter = false; if (i_ex(obj_plat_player)) { trg = 912; if (ti > 0) { with (obj_plat_follower) { if (name == "susie" && other.ti == 1) trg = self; if (name == "ralsei" && other.ti == 2) trg = self; } if (trg == 912) { if (hpdiff == maxhpdiff) { with (dmgwriter) damage = maxhpdiff; } nowriter = true; } } } else if (i_ex(obj_climb_kris)) { trg = 1166; if (ti > 0) { with (obj_climb_susie) { if (name == "susie" && other.ti == 1) trg = self; if (name == "ralsei" && other.ti == 2) ...
();
1380
    with (obj_darkcontroller)
1381
        charcon = 1;
1382
    hitcount++;
1383
    damagecon = 0;
1384
    if (onrotatingtower)
1385
    {
1386
        with (obj_rotating_tower_controller_new)
1387
        {
1388
            var px = other.x;
1389
            var py = other.y - 20;
1390
            var _tilex = px / tile_width_fine;
1391
            if (_tilex > horizontaltilecount)
1392
                _tilex -= horizontaltilecount;
1393
            if (_tilex < 0)
1394
                _tilex += horizontaltilecount;
1395
            global.heartx = (tower_x + tile_x[_tilex]) - 30 - camerax();
1396
            global.hearty = py - cameray();
1397
        }
1398
    }
1399
    else
1400
    {
1401
        global.heartx = x - 6 - camerax();
1402
        global.hearty = y - 6 - cameray();
1403
    }
1404
}
1405
siner++;
1406
upbuffer--;
1407
leftbuffer--;
1408
downbuffer--;
1409
rightbuffer--;
1410
button1buffer--;
1411
slipbuffer--;
1412
if (boosting)
1413
    climbmomentum -= 0.02;
1414
else
1415
    climbmomentum -= 0.03;
1416
if (climbmomentum <= 0)
1417
    climbmomentum = 0;
1418
global.inv--;
1419
if (camera == 1)
1420
{
1421
    with (obj_mainchara)
1422
        cutscene = 1;
1423
    var roomw = room_width;
1424
    var roomh = room_height;
1425
    var vieww = view_wport[0];
1426
    var viewh = view_hport[0];
1427
    var _cameralerpspeed = 0.16;
1428
    var xnudge = 0;
1429
    var ynudge = 0;
1430
    var nudger = instance_place(x, y, obj_camera_nudger);
1431
    with (nudger)
1432
    {
1433
        xnudge = xamt;
1434
        ynudge = yamt;
1435
        if (lerpstrength != -4)
1436
            _cameralerpspeed = lerpstrength;
1437
    }
1438
    var camx = clamp((x - floor(vieww / 2)) + xnudge, 0, roomw - vieww);
1439
    var camy = clamp((y - floor(viewh / 2)) + ynudge + naturalybias, 0, roomh - viewh);
1440
    var clamper = instance_place(x, y, obj_camera_clamper);
1441
    if (i_ex(clamper))
1442
    {
1443
        var lclamp = 0;
1444
        var rclamp = roomw - vieww;
1445
        var uclamp = 0;
1446
        var dclamp = roomh - viewh;
1447
        if (clamper.xmin != -4)
1448
            lclamp = clamper.xmin;
1449
        if (clamper.xmax != -4)
1450
            rclamp = clamper.xmax;
1451
        if (clamper.ymin != -4)
1452
            uclamp = clamper.ymin;
1453
        if (clamper.ymax != -4)
1454
            dclamp = clamper.ymax;
1455
        if (clamper.lerpstrength != -4)
1456
            _cameralerpspeed = clamper.lerpstrength;
1457
        camx = clamp(camx, lclamp, rclamp);
1458
        camy = clamp(camy, uclamp, dclamp);
1459
    }
1460
    var idealcamx = 
scr_even
scr_even

function
scr_even(arg0)
{ return round(arg0 / 2) * 2; }
(lerp(camerax(), camx, _cameralerpspeed));
1461
    var idealcamy = 
scr_even
scr_even

function
scr_even(arg0)
{ return round(arg0 / 2) * 2; }
(lerp(cameray(), camy, _cameralerpspeed));
1462
    if (!onrotatingtower)
1463
        camerax_set(idealcamx);
1464
    cameray_set(idealcamy);
1465
}
1466
debug_print_persistent("cm", string(climbmomentum));
1467
if (climbmomentum <= 0 && !jumping)
1468
{
1469
    boosting = false;
1470
}
1471
else if (boosting)
1472
{
1473
    var afterimage = 
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; }
(16776960, true);
1474
    afterimage.y = afterimage.y + drawoffsety;
1475
    if (jumping)
1476
        afterimage.image_alpha = 0.4;
1477
    else
1478
        afterimage.image_alpha = 0.2;
1479
    if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
1480
    {
1481
        afterimage.x = obj_rotating_tower_controller_new.tower_x;
1482
        afterimage.hspeed = -xclimb * 0.1;
1483
        afterimage.vspeed = -yclimb * 0.001;
1484
        afterimage.depth = obj_rotating_tower_controller_new.depth - 4;
1485
    }
1486
}
1487
hittimer--;
1488
if (scr_trigcheck_ext("hidehpbar", id))
1489
    hittimer = 0;
1490
if (hittimer <= 0 && !i_ex(obj_cloud_controller_new))
1491
{
1492
    with (obj_darkcontroller)
1493
        charcon = 0;
1494
}
1495
if (boosting)
1496
    heart_alpha = 
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; }
(heart_alpha, min(1, jumping + climbmomentum), 0.5);
1497
else
1498
    heart_alpha = 
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; }
(heart_alpha, 0, 0.2);
1499
1500
enum e__VW
1501
{
1502
    XView,
1503
    YView,
1504
    WView,
1505
    HView,
1506
    Angle,
1507
    HBorder,
1508
    VBorder,
1509
    HSpeed,
1510
    VSpeed,
1511
    Object,
1512
    Visible,
1513
    XPort,
1514
    YPort,
1515
    WPort,
1516
    HPort,
1517
    Camera,
1518
    SurfaceID
1519
}