Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_climb_kris_Step_0

(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, 550, _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, 586, list, false);
368
    for (var i = 0; i < ds_list_size(list); i++)
369
        ds_list_find_value(list, i).on_climbing();
370
    ds_list_destroy(list);
371
}
372
if (fallingcon > 0)
373
{
374
    if (fallingcon == 1)
375
    {
376
        sprite_index = spr_kris_climb_new_slip_fall;
377
        image_index = 0;
378
        fallingspeed = 0;
379
        fallingcon = 2;
380
        neutralcon = 0;
381
        snd_stop(snd_chargeshot_charge);
382
        image_blend = c_white;
383
        jumping = 0;
384
        jumpchargecon = 0;
385
        climbcon = 0;
386
        climbmomentum = 0;
387
    }
388
    if (fallingcon == 2)
389
    {
390
        var landing = instance_place(x, y, obj_climb_landingstrip);
391
        if (i_ex(landing))
392
        {
393
            landingstrip = landing;
394
            neutralcon = -1;
395
            climbcon = -1;
396
            jumpchargecon = -1;
397
            fallingcon = -1;
398
            graboncon = -1;
399
            damagecon = -1;
400
            camera = 0;
401
            timer = 0;
402
            exitcon = 1;
403
        }
404
        fallingspeed += 0.5;
405
        if (fallingspeed >= fall_speed_cap)
406
            fallingspeed = fall_speed_cap;
407
        if (fallingspeed >= 20)
408
            naturalybias = min(naturalybias + 2, 80);
409
        if (falldir == 0)
410
            y += ceil(fallingspeed);
411
        if (falldir == 1)
412
            x += ceil(fallingspeed);
413
        if (falldir == 2)
414
            y -= ceil(fallingspeed);
415
        if (falldir == 3)
416
            x -= ceil(fallingspeed);
417
        fallingtimer--;
418
        if (fallingtimer <= 0)
419
        {
420
            if (grabon)
421
            {
422
                grabx = remx + (round((x - remx) / 40) * 40);
423
                graby = remy + (round((y - remy) / 40) * 40);
424
                if (onrotatingtower && grabx > obj_rotating_tower_controller_new.tower_circumference)
425
                    grabx -= obj_rotating_tower_controller_new.tower_circumference;
426
                if (onrotatingtower && grabx < 0)
427
                    grabx += obj_rotating_tower_controller_new.tower_circumference;
428
                if (place_meeting(grabx, graby, obj_climb_climbable))
429
                {
430
                    grabontimer = 15;
431
                    graboncon = 1;
432
                    dir = -1;
433
                    fallingcon = 0;
434
                }
435
            }
436
            var howlongfall = 660;
437
            if (restorefromfalling)
438
            {
439
                if (graboncon == 0)
440
                {
441
                    if (y >= (cameray() + howlongfall))
442
                    {
443
                        fallingcon = 0;
444
                        restorefromfallingcon = 1;
445
                    }
446
                }
447
            }
448
        }
449
    }
450
}
451
if (graboncon > 0)
452
{
453
    if (graboncon == 1)
454
    {
455
        sprite_index = spr_kris_climb_new_charge;
456
        image_index = 2;
457
        graboncon = 2;
458
    }
459
    if (graboncon == 2)
460
    {
461
        snd_stop(snd_wing);
462
        snd_play_x(snd_wing, 0.7, 0.6 + random(0.3));
463
        if ((siner % 2) == 0)
464
        {
465
            var dust = instance_create(x, y, obj_animation);
466
            dust.sprite_index = spr_slidedust;
467
            dust.image_xscale = 2;
468
            dust.image_yscale = 2;
469
            dust.image_speed = 0.5;
470
            dust.vspeed = -3;
471
            dust.hspeed = random_range(-1, 1);
472
            dust.depth = depth + 10;
473
            if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
474
            {
475
                dust.x = obj_rotating_tower_controller_new.tower_x;
476
                dust.depth = obj_rotating_tower_controller_new.depth - 4;
477
            }
478
        }
479
        if (fallingspeed > 7)
480
            fallingspeed = 7;
481
        fallingspeed--;
482
        if (falldir == 0)
483
            y += fallingspeed;
484
        if (falldir == 1)
485
            x += fallingspeed;
486
        if (falldir == 2)
487
            y -= fallingspeed;
488
        if (falldir == 3)
489
            x -= fallingspeed;
490
        if (fallingspeed <= 0)
491
        {
492
            grabonclimbtimer = 0;
493
            graboncon = 3;
494
            remfalleny = y;
495
            remfallenx = x;
496
            if ((remfallenx - grabx) > 180)
497
                remfallenx -= obj_rotating_tower_controller_new.tower_circumference;
498
            if ((remfallenx - grabx) < -180)
499
                remfallenx += obj_rotating_tower_controller_new.tower_circumference;
500
        }
501
    }
502
    if (graboncon == 3)
503
    {
504
        grabonclimbtimer++;
505
        var initwait = 7;
506
        var waittime = 8;
507
        if (grabonclimbtimer >= initwait)
508
        {
509
            y = lerp_ease_inout(remfalleny, graby, (grabonclimbtimer / waittime) - (initwait / waittime), 2);
510
            x = lerp_ease_inout(remfallenx, grabx, (grabonclimbtimer / waittime) - (initwait / waittime), 2);
511
        }
512
        if (grabonclimbtimer >= (waittime + initwait))
513
        {
514
            if (onrotatingtower)
515
            {
516
                x = (floor(x / 40) * 40) + 20;
517
                y = (floor(y / 40) * 40) + 20;
518
            }
519
            else
520
            {
521
                x = round(x / 10) * 10;
522
                y = round(y / 10) * 10;
523
            }
524
            graboncon = 0;
525
            neutralcon = 1;
526
            checkdamagefloor = 1;
527
            with (obj_rotating_tower_controller_new)
528
                checkdamagefloor = 1;
529
        }
530
    }
531
}
532
if (restorefromfallingcon > 0)
533
{
534
    if (restorefromfallingcon == 1)
535
    {
536
        damage = 30;
537
        damagecon = 1;
538
    }
539
    else if (restorefromfallingcon == 20)
540
    {
541
        x = safex;
542
        y = safey;
543
        neutralcon = 1;
544
    }
545
    restorefromfallingcon++;
546
}
547
if (neutralcon == 1)
548
{
549
    sprite_index = spr_kris_climb_new;
550
    image_index = climbindex;
551
    remx = x;
552
    remy = y;
553
    if (!place_meeting(x, y, obj_climb_notsafe))
554
    {
555
        safex = x;
556
        safey = y;
557
    }
558
    if (global.interact == 0 || forceclimb)
559
    {
560
        if (button1buffer > 0 && button2buffer <= 0)
561
        {
562
            if (!boosting)
563
                climbmomentum = 0;
564
            button1buffer = 4;
565
            neutralcon = 0;
566
            jumpchargecon = 1;
567
            dir = 0;
568
            if (xclimb > 0)
569
                dir = 1;
570
            if (xclimb < 0)
571
                dir = 3;
572
            if (yclimb < 0)
573
                dir = 2;
574
        }
575
        else if (currentdir >= 0)
576
        {
577
            climbcon = 1;
578
            neutralcon = 0;
579
        }
580
        else if (!boosting)
581
        {
582
            climbmomentum *= 0.5;
583
        }
584
        var climb_ender = instance_place(x, y, obj_climbstarter);
585
        if (!i_ex(climb_ender) && i_ex(obj_rotating_tower_controller_new))
586
        {
587
            var xx = obj_rotating_tower_controller_new.tower_x - 20;
588
            var yy = obj_rotating_tower_controller_new.krisy - 20;
589
            climb_ender = instance_place(xx, yy, obj_climbstarter);
590
        }
591
        if (i_ex(climb_ender))
592
        {
593
            if (used_input == 0 && climb_ender.e_down)
594
                myexit = climb_ender;
595
            if (used_input == 3 && climb_ender.e_left)
596
                myexit = climb_ender;
597
            if (used_input == 2 && climb_ender.e_up)
598
                myexit = climb_ender;
599
            if (used_input == 1 && climb_ender.e_right)
600
                myexit = climb_ender;
601
        }
602
        if (i_ex(myexit))
603
        {
604
            global.facing = dir;
605
            with (obj_climbloc)
606
            {
607
                if (exitmarkerflag == other.myexit.exitmarkerflag)
608
                    other.myexitloc = id;
609
            }
610
            with (obj_krmarker)
611
            {
612
                if (extflag == other.myexit.exitmarkerflag)
613
                {
614
                    global.facing = image_index;
615
                    other.myexitloc = id;
616
                }
617
            }
618
            neutralcon = -1;
619
            climbcon = -1;
620
            jumpchargecon = -1;
621
            fallingcon = -1;
622
            graboncon = -1;
623
            damagecon = -1;
624
            camera = 0;
625
            timer = 0;
626
            exitcon = 1;
627
        }
628
    }
629
}
630
if (exitcon == 1)
631
{
632
    with (obj_darkcontroller)
633
        charcon = 0;
634
    var landing = false;
635
    if (landingstrip != -1)
636
    {
637
        myexitloc = landingstrip;
638
        landing = true;
639
    }
640
    if (i_ex(myexitloc))
641
    {
642
        var endingx = myexitloc.x;
643
        var endingy = myexitloc.y;
644
        if (myexitloc == landingstrip)
645
        {
646
            endingx = x - 20;
647
            endingy = myexitloc.y - 60;
648
        }
649
        timer++;
650
        if (timer == 1)
651
        {
652
            endtime = 16;
653
            if (!landing)
654
            {
655
                snd_play(snd_wing);
656
            }
657
            else
658
            {
659
                snd_play(snd_noise);
660
                visible = false;
661
                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 = 1238; if (arg12) objinst = 1496; 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 = 1238; if (arg3) markertype = 1496; 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))
662
                {
663
                    
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);
664
                    
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
665
                    
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); }
();
666
                }
667
                global.facing = 0;
668
                with (obj_caterpillarchara)
669
                {
670
                    if (name == "susie")
671
                        setxy((other.x - 80) + 4, other.y - 20 - 42);
672
                    if (name == "ralsei")
673
                        setxy((other.x + 80) - 44, other.y - 20 - 44);
674
                    scr_caterpillar_interpolate_old();
675
                }
676
            }
677
            _camerax = camerax();
678
            _cameray = cameray();
679
            var endcamx = endingx - floor((__view_get(e__VW.WView, 0) / 2) - 18);
680
            var endcamy = endingy - floor((__view_get(e__VW.HView, 0) / 2) - 38);
681
            endcamx = clamp(endcamx, 0, room_width - 640);
682
            endcamy = clamp(endcamy, 0, room_height - 480);
683
            var clamper = -4;
684
            with (myexitloc)
685
                clamper = instance_place(x, y, obj_camera_clamper);
686
            if (i_ex(clamper))
687
            {
688
                var roomw = room_width;
689
                var roomh = room_height;
690
                var vieww = view_wport[0];
691
                var viewh = view_hport[0];
692
                var lclamp = 0;
693
                var rclamp = roomw - vieww;
694
                var uclamp = 0;
695
                var dclamp = roomh - viewh;
696
                if (clamper.xmin != -4)
697
                    lclamp = clamper.xmin;
698
                if (clamper.xmax != -4)
699
                    rclamp = clamper.xmax;
700
                if (clamper.ymin != -4)
701
                    uclamp = clamper.ymin;
702
                if (clamper.ymax != -4)
703
                    dclamp = clamper.ymax;
704
                endcamx = clamp(endcamx, lclamp, rclamp);
705
                endcamy = clamp(endcamy, uclamp, dclamp);
706
            }
707
            
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);
708
            
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);
709
            if (!landing)
710
            {
711
                sprite_index = spr_kris_jump_ball;
712
                image_speed = 0.25;
713
                x -= 20;
714
                y -= 20;
715
                if (onrotatingtower)
716
                {
717
                    x = obj_rotating_tower_controller_new.tower_x - 20;
718
                    onrotatingtower = false;
719
                }
720
                with (obj_caterpillarchara)
721
                {
722
                    var xoff = 0;
723
                    var yoff = 0;
724
                    if (name == "ralsei")
725
                    {
726
                        switch (global.facing)
727
                        {
728
                            case 0:
729
                                xoff = -20;
730
                                yoff = -28;
731
                                break;
732
                            case 1:
733
                                xoff = -40;
734
                                yoff = -12;
735
                                break;
736
                            case 2:
737
                                xoff = 18;
738
                                yoff = 8;
739
                                break;
740
                            case 3:
741
                                xoff = 40;
742
                                yoff = -12;
743
                                break;
744
                        }
745
                    }
746
                    if (name == "susie")
747
                    {
748
                        switch (global.facing)
749
                        {
750
                            case 0:
751
                                xoff = 12;
752
                                yoff = -32;
753
                                break;
754
                            case 1:
755
                                xoff = -20;
756
                                yoff = -16;
757
                                break;
758
                            case 2:
759
                                xoff = -26;
760
                                yoff = 4;
761
                                break;
762
                            case 3:
763
                                xoff = 8;
764
                                yoff = -16;
765
                                break;
766
                        }
767
                    }
768
                    setxy(endingx + xoff, endingy + yoff);
769
                    var targetexit = other.myexitloc;
770
                    var checkflag = "";
771
                    if (targetexit.object_index == obj_krmarker)
772
                        checkflag = targetexit.extflag;
773
                    else if (targetexit.object_index == obj_climb_landingstrip)
774
                        checkflag = "";
775
                    else
776
                        checkflag = targetexit.exitmarkerflag;
777
                    if (name == "susie")
778
                    {
779
                        with (obj_sumarker)
780
                        {
781
                            if (extflag == checkflag)
782
                                setxy(x, y, other);
783
                        }
784
                    }
785
                    if (name == "ralsei")
786
                    {
787
                        with (obj_ramarker)
788
                        {
789
                            if (extflag == checkflag)
790
                                setxy(x, y, other);
791
                        }
792
                    }
793
                }
794
                
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, 1198, 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");
795
            }
796
            var landingtype = 0;
797
            if (myexitloc == landingstrip)
798
                landingtype = 1;
799
            if (landingtype == 0)
800
            {
801
                var jumpstrength = 8;
802
                if (global.facing == 2)
803
                    jumpstrength = 12;
804
                
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;
805
                visible = 0;
806
            }
807
            if (landingtype == 1)
808
            {
809
            }
810
        }
811
        camerax_set(_camerax);
812
        cameray_set(_cameray);
813
        if (timer >= (1 + endtime))
814
        {
815
            if (!dontfree)
816
                global.interact = 0;
817
            if (!landing)
818
                snd_play(snd_noise);
819
            with (obj_mainchara)
820
            {
821
                setxy(endingx, endingy);
822
                visible = true;
823
                cutscene = false;
824
                global.interact = 0;
825
                freeze = false;
826
            }
827
            with (obj_caterpillarchara)
828
            {
829
                visible = 1;
830
                image_alpha = 0;
831
                var blendtime = 8;
832
                if (landing)
833
                    blendtime = 12;
834
                if (!i_ex(obj_climb_ralsei))
835
                {
836
                    
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);
837
                    
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);
838
                    
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);
839
                }
840
                else
841
                {
842
                    image_alpha = 1;
843
                    image_blend = c_white;
844
                    shadow_force_off = false;
845
                }
846
                
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, 1198, 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; } }
();
847
                var newfacing = global.facing;
848
                if (name == "ralsei")
849
                {
850
                    with (obj_ramarker)
851
                    {
852
                        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))
853
                            newfacing = image_index;
854
                    }
855
                }
856
                if (name == "susie")
857
                {
858
                    with (obj_sumarker)
859
                    {
860
                        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))
861
                            newfacing = image_index;
862
                    }
863
                }
864
            }
865
            instance_destroy();
866
        }
867
    }
868
    else
869
    {
870
        neutralcon = 0;
871
    }
872
}
873
if (jumpchargecon > 0)
874
{
875
    if (jumpchargecon == 1)
876
    {
877
        if (!boosting)
878
            climbmomentum = 0;
879
        x = remx;
880
        y = remy;
881
        jumpchargesfx = snd_loop(snd_chargeshot_charge);
882
        snd_pitch(jumpchargesfx, 0.4);
883
        snd_volume(jumpchargesfx, 0.3, 0);
884
        jumpchargetimer = 0;
885
        jumpchargeamount = 1;
886
        jumpchargecon = 2;
887
        sprite_index = spr_kris_climb_new_charge;
888
        image_index = 0;
889
    }
890
    if (jumpchargecon == 2)
891
    {
892
        var docharge = 0;
893
        if (button1buffer >= 2 || jumpchargetimer < 3)
894
            docharge = 1;
895
        if (button2_p())
896
            docharge = 2;
897
        if (docharge == 1)
898
        {
899
            if (dir == 2 || dir == 0)
900
                sprite_index = spr_kris_climb_new_charge;
901
            else if (dir == 1)
902
                sprite_index = spr_kris_climb_new_charge_right;
903
            else
904
                sprite_index = spr_kris_climb_new_charge_left;
905
            jumpchargetimer++;
906
            if (jumpchargetimer >= chargetime1)
907
            {
908
                image_index = 1;
909
                snd_pitch(jumpchargesfx, 0.5);
910
                jumpchargeamount = 2;
911
                image_blend = merge_color(c_white, c_teal, 0.2 + (floor(sin(jumpchargetimer / 2)) * 0.2));
912
            }
913
            if (jumpchargetimer >= chargetime2)
914
            {
915
                image_index = 2;
916
                jumpchargeamount = 3;
917
                snd_pitch(jumpchargesfx, 0.7);
918
                image_blend = merge_color(c_white, c_teal, 0.4 + (floor(sin(jumpchargetimer)) * 0.4));
919
                if ((jumpchargetimer % 8) == 0)
920
                {
921
                    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; }
();
922
                    afterimage.image_alpha = 0.3;
923
                    if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
924
                    {
925
                        afterimage.x = obj_rotating_tower_controller_new.tower_x;
926
                        afterimage.depth = obj_rotating_tower_controller_new.depth - 4;
927
                    }
928
                }
929
            }
930
        }
931
        if (docharge == 0)
932
        {
933
            jumpchargecon = 0;
934
            jumping = 1;
935
            climbcon = 1;
936
            image_blend = c_white;
937
            snd_stop(jumpchargesfx);
938
        }
939
        if (docharge == 2)
940
        {
941
            snd_play(snd_txttor, 0.7, 0.4);
942
            snd_play(snd_txtal, 0.7, 0.4);
943
            snd_play(snd_dtrans_heavypassing, 0.2, 1.8);
944
            button2buffer = 10;
945
            jumpchargecon = 0;
946
            jumpchargetimer = 0;
947
            neutralcon = 1;
948
            image_blend = c_white;
949
            snd_stop(jumpchargesfx);
950
        }
951
    }
952
}
953
if (slipcon > 0)
954
{
955
    if (slipcon == 1)
956
    {
957
        if (recently_bumped != dir)
958
        {
959
            previous_bump = recently_bumped;
960
            recently_bumped = dir;
961
        }
962
        snd_play(snd_bump);
963
        if (xclimb > 0)
964
            slipsprite = 1563;
965
        else if (xclimb < 0)
966
            slipsprite = 1352;
967
        sprite_index = slipsprite;
968
        image_index = 1;
969
        slipcon = 2;
970
    }
971
    if (slipcon == 2)
972
    {
973
        sliptimer--;
974
        if (sliptimer >= 3)
975
            image_index = 1;
976
        else
977
            image_index = 0;
978
        if (sliptimer <= 0)
979
        {
980
            slipbuffer = 30;
981
            slipcon = 0;
982
            if (fallingcon <= 0)
983
                neutralcon = 1;
984
        }
985
    }
986
}
987
if (climbcon > 0)
988
{
989
    if (climbcon == 1)
990
    {
991
        yclimb = 0;
992
        xclimb = 0;
993
        if (dir == 2)
994
            yclimb = -40;
995
        else if (dir == 3)
996
            xclimb = -40;
997
        else if (dir == 1)
998
            xclimb = 40;
999
        else
1000
            yclimb = 40;
1001
        var checkamount = 1;
1002
        if (jumping == 1 && jumpchargeamount > 1)
1003
            checkamount = jumpchargeamount;
1004
        for (var i = checkamount; i >= 1; i--)
1005
        {
1006
            var testxclimb = xclimb * i;
1007
            var testyclimb = yclimb * i;
1008
            var finalclimbx = x + testxclimb;
1009
            var finalclimbx2 = (x + testxclimb) - xclimb;
1010
            var falseloopused = 0;
1011
            if (falseloop)
1012
            {
1013
                if (finalclimbx > falseloopx[1])
1014
                {
1015
                    finalclimbx = (finalclimbx - falseloopx[1]) + falseloopx[0];
1016
                    falseloopused = 1;
1017
                }
1018
                if (finalclimbx < falseloopx[0])
1019
                {
1020
                    finalclimbx = (finalclimbx - falseloopx[0]) + falseloopx[1];
1021
                    falseloopused = 1;
1022
                }
1023
                if (finalclimbx2 > falseloopx[1])
1024
                {
1025
                    finalclimbx2 = (finalclimbx2 - falseloopx[1]) + falseloopx[0];
1026
                    falseloopused = 1;
1027
                }
1028
                if (finalclimbx2 < falseloopx[0])
1029
                {
1030
                    finalclimbx2 = (finalclimbx2 - falseloopx[0]) + falseloopx[1];
1031
                    falseloopused = 1;
1032
                }
1033
            }
1034
            var tilesolidcollision = false;
1035
            if (i_ex(obj_rotating_tower_controller_new))
1036
            {
1037
                if (finalclimbx < 0)
1038
                    finalclimbx += obj_rotating_tower_controller_new.tower_circumference;
1039
                var tilex = (finalclimbx / obj_rotating_tower_controller_new.tile_width) + 1;
1040
                var tiley = (y + testyclimb) / obj_rotating_tower_controller_new.tile_height;
1041
            }
1042
            with (instance_place(finalclimbx2, (y + testyclimb) - yclimb, obj_climbstarter))
1043
            {
1044
                if (tilesolidcollision == false && ((other.dir == 2 && e_up) || (other.dir == 0 && e_down) || (other.dir == 3 && e_left) || (other.dir == 1 && e_right)))
1045
                {
1046
                    if (falseloopused)
1047
                        other.remx = finalclimbx - testxclimb;
1048
                    other.xclimb = testxclimb;
1049
                    other.yclimb = testyclimb;
1050
                    snd_play_x(snd_wing, 0.6, 1.1 + random(0.1));
1051
                    sprite_index = spr_kris_climb_new;
1052
                    if (other.climbindex == 0)
1053
                        other.climbindex = 2;
1054
                    else
1055
                        other.climbindex = 0;
1056
                    other.climbcon = 2;
1057
                    other.climbtimer = 0;
1058
                    break;
1059
                }
1060
            }
1061
            if (climbcon == 2)
1062
                break;
1063
            if (place_meeting(finalclimbx, y + testyclimb, obj_climb_climbable) && tilesolidcollision == false)
1064
            {
1065
                var hit_wall = false;
1066
                for (var ii = 1; ii < i; ii++)
1067
                {
1068
                    if (place_meeting(finalclimbx - (xclimb * ii), (y + testyclimb) - (yclimb * ii), obj_climb_jumpblocker))
1069
                        hit_wall = true;
1070
                }
1071
                if (hit_wall)
1072
                {
1073
                }
1074
                else
1075
                {
1076
                    if (falseloopused)
1077
                        remx = finalclimbx - testxclimb;
1078
                    xclimb = testxclimb;
1079
                    yclimb = testyclimb;
1080
                    if (instance_exists(obj_dw_fcastle_asgore))
1081
                    {
1082
                        var rand = random(0.1);
1083
                        snd_play_x(snd_wing, 0.4, 1.1 + rand);
1084
                        snd_play_delay(snd_wing, 4, 0.2, 1.1 + rand);
1085
                        snd_play_delay(snd_wing, 10, 0.1, 1.1 + rand);
1086
                    }
1087
                    else
1088
                    {
1089
                        snd_play_x(snd_wing, 0.6, 1.1 + random(0.1));
1090
                    }
1091
                    sprite_index = spr_kris_climb_new;
1092
                    if (climbindex == 0)
1093
                        climbindex = 2;
1094
                    else
1095
                        climbindex = 0;
1096
                    climbcon = 2;
1097
                    climbtimer = 0;
1098
                    break;
1099
                }
1100
            }
1101
        }
1102
        if (climbcon != 2)
1103
        {
1104
            sliptimer = 8 + (climbmomentum * 4);
1105
            if (jumping == 1)
1106
                sliptimer = 8 + (jumpchargeamount * 3);
1107
            climbcon = 0;
1108
            slipcon = 1;
1109
            jumping = 0;
1110
        }
1111
    }
1112
    if (climbcon == 2)
1113
    {
1114
        if (xclimb > 0)
1115
            slipsprite = 1563;
1116
        else if (xclimb < 0)
1117
            slipsprite = 1352;
1118
        recently_bumped = -1;
1119
        previous_bump = -1;
1120
        if (climbtimer == 0)
1121
        {
1122
            if (instance_exists(obj_dw_dogplatforming))
1123
            {
1124
                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"));
1125
                snd_play_flowery(228);
1126
            }
1127
            with (obj_climb_susie)
1128
            {
1129
                if (followmode == 3)
1130
                    instruct(other.xclimb, other.yclimb, other.jumping);
1131
            }
1132
            var dust_amount = 1;
1133
            if (jumping)
1134
                dust_amount = 5;
1135
            for (var i = 0; i < dust_amount; i++)
1136
            {
1137
                var dust = instance_create(x, y, obj_animation);
1138
                dust.sprite_index = spr_climb_dust_small;
1139
                dust.depth = depth + 10;
1140
                if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
1141
                {
1142
                    dust.x = obj_rotating_tower_controller_new.tower_x;
1143
                    dust.hspeed = -xclimb * 0.1;
1144
                    dust.depth = obj_rotating_tower_controller_new.depth - 4;
1145
                }
1146
                if (jumping)
1147
                {
1148
                    dust.x = dust.x + random_range(-10, 10);
1149
                    dust.y = dust.y + random_range(-10, 10);
1150
                }
1151
                else if (yclimb < 0)
1152
                {
1153
                    dust.x = (dust.x - 10) + (10 * climbindex);
1154
                }
1155
                else if (yclimb > 0)
1156
                {
1157
                    dust.x = (dust.x - 15) + (15 * climbindex);
1158
                }
1159
                else
1160
                {
1161
                    dust.y = dust.y + 10;
1162
                }
1163
                dust.image_xscale = 2;
1164
                dust.image_yscale = 2;
1165
                dust.image_speed = 0.5;
1166
                dust.vspeed += -1;
1167
            }
1168
        }
1169
        drawoffsety = 0;
1170
        var newx, newy, climbrate;
1171
        if (jumping == 0)
1172
        {
1173
            if (climbspeed < 1)
1174
                climbspeed = 1;
1175
            climbtimer += (climbspeed + climbmomentum);
1176
            climbrate = 10;
1177
            if (climbtimer >= climbrate)
1178
                climbtimer = climbrate;
1179
            newx = lerp_ease_inout(remx, remx + xclimb, climbtimer / climbrate, 2);
1180
            newy = lerp_ease_inout(remy, remy + yclimb, climbtimer / climbrate, 2);
1181
            image_index = climbindex;
1182
            if (abs(newx - remx) > 3 || abs(newy - remy) > 3)
1183
                image_index = 1 + climbindex;
1184
        }
1185
        else
1186
        {
1187
            climbtimer += 1;
1188
            climbrate = 6 + (jumpchargeamount * 2);
1189
            var clipamount = 4;
1190
            if (jumpchargeamount >= 2)
1191
                clipamount = 2;
1192
            if (climbtimer >= climbrate)
1193
                climbtimer = climbrate;
1194
            if (climbtimer >= (climbrate - clipamount))
1195
                climbtimer = climbrate;
1196
            newx = lerp_ease_out(remx, remx + xclimb, climbtimer / climbrate, 1);
1197
            newy = lerp_ease_out(remy, remy + yclimb, climbtimer / climbrate, 1);
1198
            drawoffsety = -sin((climbtimer / climbrate) * pi) * (2 * (jumpchargeamount - 1));
1199
            if (dir == 2 || dir == 0)
1200
            {
1201
                image_index = climbtimer / 2;
1202
                sprite_index = spr_kris_climb_new_jump_up;
1203
            }
1204
            else if (dir == 1)
1205
            {
1206
                if ((climbtimer / climbrate) > 0.5)
1207
                {
1208
                    sprite_index = spr_kris_climb_new_land_right;
1209
                }
1210
                else
1211
                {
1212
                    sprite_index = spr_kris_climb_new_slip_right;
1213
                    image_index = 0;
1214
                }
1215
            }
1216
            else if ((climbtimer / climbrate) > 0.5)
1217
            {
1218
                sprite_index = spr_kris_climb_new_land_left;
1219
            }
1220
            else
1221
            {
1222
                sprite_index = spr_kris_climb_new_slip_left;
1223
                image_index = 0;
1224
            }
1225
            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; }
();
1226
            afterimage.y = afterimage.y + drawoffsety;
1227
            afterimage.image_alpha = 0.2;
1228
            if (i_ex(obj_rotating_tower_controller_new) && i_ex(obj_climb_kris))
1229
            {
1230
                afterimage.x = obj_rotating_tower_controller_new.tower_x;
1231
                afterimage.hspeed = -xclimb * 0.1;
1232
                afterimage.depth = obj_rotating_tower_controller_new.depth - 4;
1233
            }
1234
            var climb_ender = instance_place(x - clamp(xclimb, -40, 40), y - clamp(yclimb, -40, 40), obj_climbstarter);
1235
            if (!i_ex(climb_ender) && i_ex(obj_rotating_tower_controller_new))
1236
            {
1237
                var xx = obj_rotating_tower_controller_new.tower_x - 20;
1238
                var yy = obj_rotating_tower_controller_new.krisy - 20;
1239
                climb_ender = instance_place(xx, yy, obj_climbstarter);
1240
            }
1241
            if (i_ex(climb_ender))
1242
            {
1243
                if (yclimb > 0 && climb_ender.e_down)
1244
                    myexit = climb_ender;
1245
                if (xclimb < 0 && climb_ender.e_left)
1246
                    myexit = climb_ender;
1247
                if (yclimb < 0 && climb_ender.e_up)
1248
                    myexit = climb_ender;
1249
                if (xclimb > 0 && climb_ender.e_right)
1250
                    myexit = climb_ender;
1251
            }
1252
            if (i_ex(myexit))
1253
            {
1254
                global.facing = dir;
1255
                with (obj_climbloc)
1256
                {
1257
                    if (exitmarkerflag == other.myexit.exitmarkerflag)
1258
                        other.myexitloc = id;
1259
                }
1260
                with (obj_krmarker)
1261
                {
1262
                    if (extflag == other.myexit.exitmarkerflag)
1263
                    {
1264
                        global.facing = image_index;
1265
                        other.myexitloc = id;
1266
                    }
1267
                }
1268
                neutralcon = -1;
1269
                climbcon = -1;
1270
                jumpchargecon = -1;
1271
                fallingcon = -1;
1272
                graboncon = -1;
1273
                damagecon = -1;
1274
                camera = 0;
1275
                timer = 0;
1276
                exitcon = 1;
1277
                exit;
1278
            }
1279
        }
1280
        x = newx;
1281
        y = newy;
1282
        if (climbtimer >= climbrate)
1283
        {
1284
            if (jumping == 1)
1285
            {
1286
                climbmomentum = jumpchargeamount / 2;
1287
                if (boosting)
1288
                    climbmomentum = 3;
1289
            }
1290
            jumping = 0;
1291
            climbcon = 0;
1292
            jumpchargeamount = 0;
1293
            x = remx + xclimb;
1294
            y = remy + yclimb;
1295
            if (!place_meeting(x, y, obj_climb_climbable))
1296
            {
1297
                fallingcon = 1;
1298
                fallingtimer = 10;
1299
            }
1300
            else
1301
            {
1302
                neutralcon = 1;
1303
                checkdamagefloor = 1;
1304
                with (obj_rotating_tower_controller_new)
1305
                    checkdamagefloor = 1;
1306
            }
1307
        }
1308
    }
1309
    if (climbcon == 10)
1310
    {
1311
        sprite_index = spr_kris_climb_new_charge;
1312
        image_index = 2;
1313
        cuttimer++;
1314
        if (cuttimer == 1)
1315
        {
1316
            flashcon = 1;
1317
            if (boosting)
1318
            {
1319
                with (instance_create(camerax() + (0.5 * camerawidth()), y, obj_marker))
1320
                {
1321
                    sprite_index = spr_vfx_parry_ring;
1322
                    depth = 10000;
1323
                    image_speed = 0.5;
1324
                    image_xscale = 0;
1325
                    image_yscale = 0;
1326
                    image_blend = c_aqua;
1327
                    
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");
1328
                    
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");
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_alpha", 1, 0, 15, 1, "in");
1330
                    
scr_doom
scr_doom

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

function
scr_doom(arg0, arg1)
{ var _doom = instance_create_depth(0, 0, 0, obj_doom); with (_doom) { alarm[0] target = arg0; } return _doom; }
(self, 15);
1353
                }
1354
            }
1355
        }
1356
    }
1357
}
1358
if (checkdamagefloor)
1359
{
1360
    var hazardtile = instance_place(x, y, obj_climb_hazardtile);
1361
    if (i_ex(hazardtile))
1362
    {
1363
        damagecon = 1;
1364
        damage = hazardtile.damage;
1365
        if (variable_instance_exists(hazardtile, "target"))
1366
            target = hazardtile.target;
1367
    }
1368
    checkdamagefloor = 0;
1369
}
1370
if (damagecon == 1)
1371
{
1372
    if (lethality_shield && global.hp[global.char[0]] > 1)
1373
        damage = min(damage, global.hp[global.char[0]] - 1);
1374
    if (target != 3)
1375
        
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)) { if (obj_flowery_enemy.partydefenselowered == true) damage = ceil(damage * 1.1); if (obj_flowery_enemy.remove_ralsei_con > 0) damage = ceil(damage * 0.8); 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++; } tdamage = damage; var oldcalculation = 0; if (target < 3) { chartarget = global.char[target]; if (global.ignoredefense == true) { tdamage = ceil(tdamage); } else { if (oldcalculation) tdamage = ceil(tdamage - (global.battledf[target] * 3)); else tdamage =
scr_damage_calculation(tdamage, target);
if (global.charaction[target] == 10) tdamage = ceil((2 * tdamage) / 3); tdamage = ceil(tdamage *
scr_element_damage_reduction(__element, global.char[target]));
debug_message("The element is: " + string(__element)); if (tdamage < 1) tdamage = 1; } } if (!instance_exists(obj_shake)) instance_create(0, 0, obj_shake); with (global.charinstance[target]) { hurt = 1; hurttimer = 0; } if (!arg0) tdamage = min(tdamage, global.hp[chartarget] - 1); hpdiff = tdamage; ...
();
1376
    if (target == 3)
1377
        
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 = 910; 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 == 910) { if (hpdiff == maxhpdiff) { with (dmgwriter) damage = maxhpdiff; } nowriter = true; } } } else if (i_ex(obj_climb_kris)) { trg = 1164; if (ti > 0) { with (obj_climb_susie) { if (name == "susie" && other.ti == 1) trg = self; if (name == "ralsei" && other.ti == 2) ...
();
1378
    with (obj_darkcontroller)
1379
        charcon = 1;
1380
    hitcount++;
1381
    damagecon = 0;
1382
    if (onrotatingtower)
1383
    {
1384
        with (obj_rotating_tower_controller_new)
1385
        {
1386
            var px = other.x;
1387
            var py = other.y - 20;
1388
            var _tilex = px / tile_width_fine;
1389
            if (_tilex > horizontaltilecount)
1390
                _tilex -= horizontaltilecount;
1391
            if (_tilex < 0)
1392
                _tilex += horizontaltilecount;
1393
            global.heartx = (tower_x + tile_x[_tilex]) - 30 - camerax();
1394
            global.hearty = py - cameray();
1395
        }
1396
    }
1397
    else
1398
    {
1399
        global.heartx = x - 6 - camerax();
1400
        global.hearty = y - 6 - cameray();
1401
    }
1402
}
1403
siner++;
1404
upbuffer--;
1405
leftbuffer--;
1406
downbuffer--;
1407
rightbuffer--;
1408
button1buffer--;
1409
slipbuffer--;
1410
if (boosting)
1411
    climbmomentum -= 0.02;
1412
else
1413
    climbmomentum -= 0.03;
1414
if (climbmomentum <= 0)
1415
    climbmomentum = 0;
1416
global.inv--;
1417
if (camera == 1)
1418
{
1419
    with (obj_mainchara)
1420
        cutscene = 1;
1421
    var roomw = room_width;
1422
    var roomh = room_height;
1423
    var vieww = view_wport[0];
1424
    var viewh = view_hport[0];
1425
    var _cameralerpspeed = 0.16;
1426
    var xnudge = 0;
1427
    var ynudge = 0;
1428
    var nudger = instance_place(x, y, obj_camera_nudger);
1429
    with (nudger)
1430
    {
1431
        xnudge = xamt;
1432
        ynudge = yamt;
1433
        if (lerpstrength != -4)
1434
            _cameralerpspeed = lerpstrength;
1435
    }
1436
    var camx = clamp((x - floor(vieww / 2)) + xnudge, 0, roomw - vieww);
1437
    var camy = clamp((y - floor(viewh / 2)) + ynudge + naturalybias, 0, roomh - viewh);
1438
    var clamper = instance_place(x, y, obj_camera_clamper);
1439
    if (i_ex(clamper))
1440
    {
1441
        var lclamp = 0;
1442
        var rclamp = roomw - vieww;
1443
        var uclamp = 0;
1444
        var dclamp = roomh - viewh;
1445
        if (clamper.xmin != -4)
1446
            lclamp = clamper.xmin;
1447
        if (clamper.xmax != -4)
1448
            rclamp = clamper.xmax;
1449
        if (clamper.ymin != -4)
1450
            uclamp = clamper.ymin;
1451
        if (clamper.ymax != -4)
1452
            dclamp = clamper.ymax;
1453
        if (clamper.lerpstrength != -4)
1454
            _cameralerpspeed = clamper.lerpstrength;
1455
        camx = clamp(camx, lclamp, rclamp);
1456
        camy = clamp(camy, uclamp, dclamp);
1457
    }
1458
    var idealcamx = 
scr_even
scr_even

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

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