trigger_cooldown--; if (always_retrigger && trigger_cooldown <= 0) check_trigger(); if (con == 0) { visible = false; if (trig == "noone") { if (instance_exists(collision_line(x + 20, y, x + 20, y - 180, obj_climb_kris, false, true))) { visible = true; con = 1; } } else { check_trigger(); } } if (con == 1) { x = xstart; y = cameray() + 240 + (240 * movedirection) + movespeed; con = 2; if (movedirection == -1) angle = 270; vsp = -movespeed; timer = 0; } if (con == 2) { if (global.interact == 0) { if (!haveeaten) { if (instance_place(x, y, obj_climb_climbable) || instance_place(x, y, obj_climb_vinecuttable)) haveeaten = true; } if (haveeaten) { if (!instance_place(x, y, obj_climb_climbable) && !instance_place(x, y, obj_climb_vinecuttable)) timer++; else timer = 0; } if (timer >= endtime || scr_trigcheck_ext("scissor_despawn_" + string(movedirection), self)) { if (destroy_on_complete) { instance_destroy(); exit; } con = 3; timer = 0; with (scr_marker_ext(x + 20, y + 20, 7331, 2, 2, 0.25, animindex, undefined, depth, undefined, undefined, undefined, true)) { vspeed = -other.movespeed; timer = 0; image_angle = other.angle; step_func = function() { image_alpha -= (1/30); if (image_alpha <= 0.01) instance_destroy(); }; } visible = false; setxy(room_width * 4, room_height * 4); } y += vsp; } } with (obj_climb_kris) { if ((fallingcon > 0 && fallingtimer < 10) || jumping || graboncon > 0) other.damage = 0; else other.damage = other.origdamage; } if (con == 3) { timer++; if (timer >= cooldown) { timer = 0; con = 0; x = xstart; y = ystart; haveeaten = false; } if (never_reset) instance_destroy(); }