Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_climb_mover_Step_0

(view raw script w/o annotations or w/e)
1
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
2
depth += 1000;
3
if (init == 0)
4
{
5
    if (x1 == -1)
6
        x1 = xstart;
7
    if (y1 == -1)
8
        y1 = ystart;
9
    if (r_traveltime == -1)
10
        traveltime = clamp(round(point_distance(x1, y1, x2, y2) / 12) + 1, 15, 60);
11
    else
12
        traveltime = r_traveltime;
13
    if (r_travelstyle != -1)
14
        travelstyle = r_travelstyle;
15
    init = 1;
16
}
17
if (con == 0)
18
{
19
    if (global.interact == 0)
20
    {
21
        var trig = 0;
22
        trigtype = 0;
23
        if (i_ex(obj_climb_kris))
24
            trig = 2;
25
        if (trig == 0)
26
        {
27
            if (place_meeting(x, y, obj_mainchara))
28
                trig = 10;
29
        }
30
        if (trig == 2)
31
        {
32
            if (obj_climb_kris.neutralcon == 1)
33
            {
34
                if (place_meeting(x, y, obj_climb_kris))
35
                {
36
                    global.interact = 1;
37
                    trig = 4;
38
                }
39
            }
40
        }
41
        if (trig == 10)
42
        {
43
            global.interact = 1;
44
            con = 1;
45
            timer = 0;
46
        }
47
        if (trig == 4)
48
        {
49
            snd_play(snd_noise);
50
            timer = 0;
51
            con = 2;
52
            stick = true;
53
            xprediction = x;
54
            yprediction = y;
55
            trigtype = 1;
56
        }
57
    }
58
}
59
if (con == 0.5)
60
{
61
    timer++;
62
    if (timer == 1)
63
        global.interact = 1;
64
}
65
if (con == 1)
66
{
67
    timer++;
68
    if (timer == 1)
69
    {
70
        obj_mainchara.visible = false;
71
        obj_mainchara.freeze = true;
72
        obj_mainchara.cutscene = true;
73
        endtime = 8;
74
        with (obj_caterpillarchara)
75
        {
76
            visible = 1;
77
            image_alpha = 1;
78
            
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 + 1); return lerpblend; }
(id, c_white, c_gray, 7);
79
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_alpha", 1, 0, 7);
80
        }
81
        jumpmarker = 
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)
{ var thismarker = instance_create(arg0, arg1, obj_marker); 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) { 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 thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); 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]; }
(obj_mainchara.x, obj_mainchara.y, spr_kris_jump_ball_fixed, 2, 2, 0.25, 0, c_white, obj_mainchara.depth);
82
        with (jumpmarker)
83
            
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; }
(other.x - 2, other.y - 22, 8, other.endtime, true);
84
        snd_play(snd_wing);
85
    }
86
    if (timer == (1 + endtime))
87
    {
88
        snd_play(snd_noise);
89
        safe_delete(jumpmarker);
90
        instance_create(x + 20, y + 20, obj_climb_kris);
91
        timer = 0;
92
        con = 2;
93
        stick = true;
94
        xprediction = x;
95
        yprediction = y;
96
    }
97
}
98
if (con == 2)
99
{
100
    timer++;
101
    if (timer == (1 + waittime))
102
    {
103
        var ver = 0;
104
        if (x == x2 && y == y2)
105
            ver = 1;
106
        var xtarg = x2;
107
        var ytarg = y2;
108
        if (ver == 1)
109
        {
110
            xtarg = x1;
111
            ytarg = y1;
112
        }
113
        debug_print("ver=" + string(ver));
114
        if (travelstyle == 0)
115
        {
116
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, xtarg, traveltime, 2, "out");
117
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("y", y, ytarg, traveltime, -1, "in");
118
        }
119
    }
120
    if (i_ex(obj_rotating_tower_controller_new))
121
    {
122
        if (timer == waittime)
123
        {
124
            var ver = 0;
125
            if (x == x2 && y == y2)
126
                ver = 1;
127
            var xtarg = x2;
128
            var ytarg = y2;
129
            movedwithclimb = 1 - ver;
130
            if (ver == 1)
131
            {
132
                xtarg = x1;
133
                ytarg = y1;
134
            }
135
            xprediction = x;
136
            yprediction = y;
137
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("xprediction", x, xtarg, traveltime, 2, "out");
138
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("yprediction", y, ytarg, traveltime, -1, "in");
139
        }
140
        if (timer > (1 + waittime) && timer <= (1 + waittime + traveltime))
141
        {
142
            var starttime = 1 + waittime;
143
            var scale = 2 + (sin(min((timer - starttime) / (traveltime - starttime), 1) * pi) * 0.5);
144
            image_xscale = scale;
145
            image_yscale = scale;
146
        }
147
    }
148
    if (timer == (1 + traveltime + 1))
149
    {
150
        snd_play(snd_impact, 0.6, 1.2);
151
        snd_play(snd_noise, 0.7, 0.9);
152
    }
153
    if (timer == (1 + traveltime + (waittime * 2)))
154
    {
155
        con = 3;
156
        timer = 0;
157
    }
158
}
159
if (movedwithclimb == 1 && (!i_ex(obj_climb_kris) || !obj_climb_kris.onrotatingtower))
160
{
161
    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, x1, traveltime, 2, "out");
162
    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("y", y, y1, traveltime, -1, "in");
163
    movedwithclimb = 0;
164
}
165
if (con == 3)
166
{
167
    if (trigtype == 0)
168
    {
169
        var targname = extflag;
170
        if (x == x1 && y == y1)
171
            targname = extflag2;
172
        var mytarg = -4;
173
        with (obj_climbloc)
174
        {
175
            if (exitmarkerflag == targname)
176
                mytarg = id;
177
        }
178
        with (obj_krmarker)
179
        {
180
            if (extflag == targname)
181
                mytarg = id;
182
        }
183
        if (mytarg == -4)
184
        {
185
            with (obj_climbstarter)
186
            {
187
                if (exitmarkerflag == targname)
188
                    mytarg = id;
189
            }
190
        }
191
        stick = false;
192
        with (obj_climb_kris)
193
        {
194
            neutralcon = -1;
195
            climbcon = -1;
196
            jumpchargecon = -1;
197
            fallingcon = -1;
198
            graboncon = -1;
199
            damagecon = -1;
200
            camera = 0;
201
            timer = 0;
202
            exitcon = 1;
203
            myexitloc = mytarg;
204
        }
205
        con = 4;
206
        timer = 0;
207
    }
208
    else
209
    {
210
        stick = false;
211
        con = 3.1;
212
        timer = 0;
213
        global.interact = 0;
214
    }
215
}
216
if (con == 3.1)
217
{
218
    if (!place_meeting(x, y, obj_climb_kris))
219
    {
220
        con = 4;
221
        timer = 0;
222
    }
223
    else if (button2_p())
224
    {
225
        con = 0;
226
    }
227
}
228
if (con == 4)
229
{
230
    timer++;
231
    if (timer == (1 + (waittime * 2)))
232
    {
233
        if (oneway)
234
        {
235
            var xtarg = x1;
236
            var ytarg = y1;
237
            if (x == x1 && y == y1)
238
            {
239
                xtarg = x2;
240
                ytarg = y2;
241
            }
242
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, xtarg, traveltime);
243
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("y", y, ytarg, traveltime);
244
        }
245
    }
246
    if (timer >= (1 + (waittime * 2) + traveltime) || !oneway)
247
    {
248
        con = 0;
249
        timer = 0;
250
    }
251
}
252
if (reset == 1)
253
{
254
    var returntime = 4;
255
    con = -1;
256
    timer = 0;
257
    scr_delay_var("con", 0, returntime);
258
    with (obj_lerpvar)
259
    {
260
        if (target == other.id)
261
            instance_destroy();
262
    }
263
    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, x1, returntime, 2, "out");
264
    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("y", y, y1, returntime, 2, "out");
265
    reset = 0;
266
}