formatnum = function(arg0) { var num = []; num[0] = clamp(floor(arg0 / 100), 0, 9); if (arg0 > 998) num[1] = 9; else num[1] = floor((arg0 / 10) % 10); if (arg0 > 999) num[2] = 9; else num[2] = arg0 % 10; return num; }; confetti = function() { var count = 16; for (var i = 0; i < count; i++) { for (var j = 0; j < 2; j++) { var wid = 60; with (instance_create(((scoreboard.x + 42) - (wid / 2)) + (j * wid), scoreboard.y + 16, obj_marker_fancy)) { depth = other.depth + 1; sprite_index = spr_pxwhite; direction = ((i * 360) / count) + (i * 4) + random_range(-4, 4); hspeed *= random_range(4, 6); speed = random_range(4, 5); image_blend = make_color_hsv(((i + (j * 4)) / count) * 255, 255, 255); image_xscale = choose(4, 4, 6); image_yscale = choose(4, 4); vspeed -= random_range(8, 10); gravity = 1; friction = random_range(0.01, 0.02); daddy = other.id; timer = 0; lifetime = 40; step_func = function() { if (y < (daddy.scoreboard.y - 2)) depth = daddy.depth - 1; image_angle += (12 * sign(hspeed)); timer++; image_alpha = lerp(2, 0, timer / lifetime); if (timer > lifetime) instance_destroy(); }; draw_func = function() { draw_sprite_ext(sprite_index, image_index, (round(x / 2) * 2) + 2, (round(y / 2) * 2) + 2, image_xscale, image_yscale, image_angle, merge_color(image_blend, c_black, 0.75), image_alpha * 0.2); draw_sprite_ext(sprite_index, image_index, round(x / 2) * 2, round(y / 2) * 2, image_xscale, image_yscale, image_angle, image_blend, image_alpha); }; } } } }; if (effectinit == 0) { with (obj_climb_climbable) { if (!dontmove) { var effect = instance_create(xstart, ystart, obj_dw_church_sideclimb_glowclimb); scr_sizeexact(sprite_width, sprite_height, effect); } } effectinit = 1; } if (climbinit == 0) { for (var i = 0; i < array_length(stufftomove); i++) { with (all) { if (object_index == other.stufftomove[i]) { var domove = true; if (variable_instance_exists(id, "dontmove")) { if (dontmove) domove = false; } if (domove) { if (object_index == obj_climb_watergenerator) { with (scr_marker_blend(x, y, sprite_index, 1, 2, 2, undefined, undefined, undefined, depth - #010000)) { var time = irandom_range(12, 17); scr_lerp_imageblend(id, c_white, c_red, time); scr_lerpvar("image_alpha", 1, 0, time); scr_doom(id, time); } } x += (room_width * 4); } } } } climbinit = 1; } var playswitchsnd = false; if (climbingcon == 0) { var trig = 0; if (i_ex(obj_climb_kris) && obj_climb_kris.fallingcon == 0) { with (obj_trigger) { if (place_meeting(x, y, obj_climb_kris)) { if (extflag == "starttrig") trig = 1; } } } if (trig) { for (var i = 0; i < array_length(stufftomove); i++) { with (all) { if (object_index == other.stufftomove[i]) x = xstart; } } if (trig == 1) { playswitchsnd = true; timber = fulltime; canceltimer = 0; } with (obj_lerpvar) { if (variable_instance_exists(id, "fadeout")) instance_destroy(); } with (obj_dw_church_sideclimb_glowclimb) scr_lerpvar("image_alpha", 0, 1, 5 + irandom(5), 2, "out"); snd_play(snd_ghostappear, 0.7, 1.4); snd_play(snd_ghostappear, 0.7, 1.6); canceltimer = 0; climbingcon = 1; } } wallswitch.image_index = 0; if (climbingcon == 1) { wallswitch.image_index = 1; timber--; var krisMoving = false; with (obj_climb_kris) { if (fallingcon != 0 || jumping || climbcon != 0) krisMoving = true; } if (button2_h() && !krisMoving) canceltimer++; else canceltimer = 0; if (scr_trigcheck_ext("nohud", 1164)) canceltimer = 0; if ((canceltimer >= 30 || !instance_exists(obj_climb_kris)) && !krisMoving) timber = 0; var trig = 0; with (obj_trigger) { if (extflag == "starttrig") { if (place_meeting(x, y, obj_climb_kris)) { if (extflag == "starttrig") trig = 1; } } } if (trig) { if (timber < (fulltime - 1)) playswitchsnd = true; timber = fulltime; } if (scr_trigcheck_ext("r1end", 1164)) { catchinteract = true; ccon = 1; var newtime = fulltime - timber; thisclimbtime = newtime; scr_debug_print("climb 1 Time Taken = " + string(newtime) + " | " + scr_timedisp(newtime)); var writetime = false; if (global.flag[climbflag] == 0) writetime = true; with (obj_climb_kris) { forceclimb = 1; dontfree = true; } forceclimb = 1; global.interact = 1; if (!writetime) { if (global.flag[climbflag] > newtime) writetime = true; } if (writetime == true) { scr_debug_print("climb new highscore: " + string(newtime)); snd_play(snd_won); global.flag[climbflag] = newtime; confetti(); } timber = 0; global.facing = 2; } if (scr_trigcheck_ext("fail", 1164)) { timber = 0; show_debug_message_concat("yes"); } if (timber <= 0 || !instance_exists(obj_climb_kris)) { timber = 0; climbingcon = 2; snd_play(snd_ghostappear, 0.7, 0.9); snd_play(snd_ghostappear, 0.7, 1.3); var dofall = false; with (obj_climb_kris) { var climber = instance_place(x, y, obj_climb_climbable); if (!i_ex(climber)) dofall = true; else if (climber.dontmove == false) dofall = true; } with (obj_dw_church_sideclimb_glowclimb) { with (scr_lerpvar("image_alpha", 1, 0, 30 + irandom(30), -1, "out")) fadeout = true; } if (dofall) forcefall = 1; } } if (playswitchsnd == true) { snd_play(snd_metalhit, 1, 0.85); snd_play(snd_swallow, 1, 1.3); } if (climbingcon == 2) { var trig = 0; with (obj_climb_kris) { if (climbcon == 0) trig = 1; } if (!i_ex(obj_climb_kris)) trig = 1; if (trig) { climbinit = 0; with (obj_climb_kris) { if (fallingcon == 0) { if (other.forcefall == 1) { other.forcefall = 0; neutralcon = 999; fallingcon = 1; fallingtimer = 99999; jumpchargecon = 0; jumpchargeamount = 0; jumpchargetimer = 0; snd_stop(snd_chargeshot_charge); jumping = 0; climbcon = 0; neutralcon = 0; slipcon = 0; image_blend = c_white; } } } climbingcon = 0; } if (ccon != 0) { climbingcon = 0; climbinit = 0; } }