Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_climb_scissors_Step_0

(view raw script w/o annotations or w/e)
1
trigger_cooldown--;
2
if (always_retrigger && trigger_cooldown <= 0)
3
    check_trigger();
4
if (con == 0)
5
{
6
    visible = false;
7
    if (trig == "noone")
8
    {
9
        if (instance_exists(collision_line(x + 20, y, x + 20, y - 180, obj_climb_kris, false, true)))
10
        {
11
            visible = true;
12
            con = 1;
13
        }
14
    }
15
    else
16
    {
17
        check_trigger();
18
    }
19
}
20
if (con == 1)
21
{
22
    x = xstart;
23
    y = cameray() + 240 + (240 * movedirection) + movespeed;
24
    con = 2;
25
    if (movedirection == -1)
26
        angle = 270;
27
    vsp = -movespeed;
28
    timer = 0;
29
}
30
if (con == 2)
31
{
32
    if (global.interact == 0)
33
    {
34
        if (!haveeaten)
35
        {
36
            if (instance_place(x, y, obj_climb_climbable) || instance_place(x, y, obj_climb_vinecuttable))
37
                haveeaten = true;
38
        }
39
        if (haveeaten)
40
        {
41
            if (!instance_place(x, y, obj_climb_climbable) && !instance_place(x, y, obj_climb_vinecuttable))
42
                timer++;
43
            else
44
                timer = 0;
45
        }
46
        if (timer >= endtime || scr_trigcheck_ext("scissor_despawn_" + string(movedirection), self))
47
        {
48
            if (destroy_on_complete)
49
            {
50
                instance_destroy();
51
                exit;
52
            }
53
            con = 3;
54
            timer = 0;
55
            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 + 20, y + 20, 7331, 2, 2, 0.25, animindex, undefined, depth, undefined, undefined, undefined, true))
56
            {
57
                vspeed = -other.movespeed;
58
                timer = 0;
59
                image_angle = other.angle;
60
                
61
                step_func = function()
62
                {
63
                    image_alpha -= (1/30);
64
                    if (image_alpha <= 0.01)
65
                        instance_destroy();
66
                };
67
            }
68
            visible = false;
69
            setxy(room_width * 4, room_height * 4);
70
        }
71
        y += vsp;
72
    }
73
}
74
with (obj_climb_kris)
75
{
76
    if ((fallingcon > 0 && fallingtimer < 10) || jumping || graboncon > 0)
77
        other.damage = 0;
78
    else
79
        other.damage = other.origdamage;
80
}
81
if (con == 3)
82
{
83
    timer++;
84
    if (timer >= cooldown)
85
    {
86
        timer = 0;
87
        con = 0;
88
        x = xstart;
89
        y = ystart;
90
        haveeaten = false;
91
    }
92
    if (never_reset)
93
        instance_destroy();
94
}