var cx = camerax(); var cy = cameray(); image_alpha = active; if (!activetoggle) { if (instance_exists(obj_climb_kris)) { if (y < (cy - 22) && y > (cy - 44)) { if (scr_trigcheck_ext(trig, 1164)) { activetoggle = true; active = true; depth = 99001; } } } } if (distance_activate) { gravity = 0; vspeed = 0; if (i_ex(obj_climb_kris)) { distance_activate = (obj_climb_kris.y - ystart) > 400; if (!distance_activate) { gravity = 0.9; consistent = true; if (abs(x - obj_climb_kris.x) > 100) y += 40; } } exit; } var stop = false; with (obj_climb_kris) { if (climbcon == 10) stop = true; } if (stop) { if (memvspeed != 0) { memvspeed = vspeed; memgravity = gravity; vspeed = 0; gravity = 0; } else { vspeed = memvspeed; gravity = memgravity; } } if (!init) { cury = y; con = 1; if (bad) { sprite_index = spr_climb_boulder_spiked; with (obj_lerpvar) { if (target == other.id) instance_destroy(); } timer = 0; waittime = newWait(); moveX(waittime); cury = y; con = 1; } init = 1; } memfriction = friction; if (con == 0) { waittime = newWait(); moveX(waittime); timer = 0; cury = y; con = 1; } if (con == 1) { if (!stop) { timer++; if (!caught) x = lerp(wasx, xtarg, timer / waittime); } if (y > (cury + waittime)) { vspeed = bouncemin + random(bouncerange); if (consistent) vspeed = bouncemin + (0.5 * bouncerange); con = 0; } } if (damagecon == 1) { if (!bad) { vspeed = 0; gravity = 0; with (obj_lerpvar) { if (target == other.id) instance_destroy(); } if (!invincible) { damagecon = 2; active = 0; } else { damagecon = 0; } } else { with (obj_climb_kris) didhit = other.id; damagecon = 20; } } if (damagecon == 2) { with (scr_marker_ext(x, y, 7524, 2, 2, 0, undefined, undefined, undefined, undefined, undefined, undefined, true)) { timer = 0; step_func = function() { timer++; if (timer == 1) { scr_shakeobj(); snd_play(snd_swing, 0.4, 1.2); snd_play(snd_laz_c, 0.3, 1.2); } if (timer == 8) { snd_play(snd_swing, 1, 0.7); snd_play(snd_damage, 0.5, 0.7); snd_play(snd_punchmed, 0.4, 1.4); with (scr_marker_ext(xstart, ystart, sprite_index, 2, 2, 0, 1, undefined, undefined, undefined, undefined, undefined, 1)) { depth = 4999; gravity = 0.5; direction = 135; friction = 0.01; speed = 5; timer = 0; step_func = function() { if (y > (cameray() + 560)) instance_destroy(); }; } with (scr_marker_ext(xstart, ystart, sprite_index, 2, 2, 0, 2, undefined, undefined, undefined, undefined, undefined, 1)) { depth = 5001; gravity = 0.25; direction = 315; friction = 0.01; speed = 2; timer = 0; step_func = function() { if (y > (cameray() + 560)) instance_destroy(); }; } with (instance_create(xstart, ystart, obj_marker_fancy)) { depth = 5000; gravity = 0.7; vspeed = -4; juice = []; var juicecount = irandom_range(24, 32); for (var i = 0; i < juicecount; i++) { var _j = { x: x, y: y, xprevious: x, yprevious: y, direction: ((i / juicecount) * 360) + random_range(-8, 8) + 6, speed: random_range(2, 6), friction: random_range(0.001, 0.02), scale: random_range(12, 30), col: merge_color(#FFA201, #F199BC, random_range(0, 0.25)) }; array_push(juice, _j); } end_step_func = function() { for (var i = 0; i < array_length(juice); i++) { var j = juice[i]; j.scale = j.scale * 0.95; j.xprevious = j.x; j.yprevious = j.y; j.speed = j.speed * (1 - j.friction); j.x += lengthdir_x(j.speed, j.direction); j.y += lengthdir_y(j.speed, j.direction) + (y - yprevious); } }; draw_func = function() { var dokill = true; var spritecount = 0; var cy = cameray() + 480; for (var i = 0; i < array_length(juice); i++) { var j = juice[i]; if (j.scale > 0.00390625) { var count = max(2, round(point_distance(j.x, j.y, j.xprevious, j.yprevious))); for (var k = 0; k < count; k++) { var _x = lerp(j.xprevious, j.x, k / count); var _y = lerp(j.yprevious, j.y, k / count); if (_y < cy) dokill = false; var _scale = clamp((j.scale * (k / count)) / 256, (2 * k) / count / 256, 1); draw_sprite_ext(spr_circle_256_aa, 0, _x, _y, _scale, _scale, 0, j.col, 1); spritecount++; } } } if (dokill) instance_destroy(); }; } instance_destroy(); } }; } instance_destroy(); } if (bbox_top > (cy + 480 + 80) || y > (room_height + 10)) instance_destroy();