Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_caterpillarchara_Step_2

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

function
scr_debug()
{ if (global.debug == 1) return 1; }
())
2
{
3
    if (keyboard_check(vk_shift) && keyboard_check_pressed(ord("N")))
4
    {
5
        target--;
6
        debug_message("name:" + name + " | target=" + string(target));
7
    }
8
}
9
if (!init)
10
{
11
    ignoredepth = 0;
12
    init = 1;
13
}
14
if (name != "susie" && !sprite_init)
15
{
16
    sprite_init = true;
17
    if (name == "noelle")
18
    {
19
        usprite = (global.darkzone == 1) ? spr_noelle_walk_up_dw : spr_noelle_walk_up_lw;
20
        rsprite = (global.darkzone == 1) ? spr_noelle_walk_right_dw : spr_noelle_walk_right_lw;
21
        lsprite = (global.darkzone == 1) ? spr_noelle_walk_left_dw : spr_noelle_walk_left_lw;
22
        dsprite = (global.darkzone == 1) ? spr_noelle_walk_down_dw : spr_noelle_walk_down_lw;
23
    }
24
    if (name == "ralsei")
25
        climbsprite = 4837;
26
}
27
if (!ignoredepth)
28
{
29
    if (name == "susie")
30
    {
31
        if (
scr_havechar
scr_havechar

function
scr_havechar(arg0)
{ var checker = arg0; if (checker == "susie" || checker == "su" || checker == "s") checker = 2; if (checker == "ralsei" || checker == "ra" || checker == "r") checker = 3; if (checker == "noelle" || checker == "no" || checker == "n") checker = 4; _rreturn = 0; if (global.char[0] == checker) _rreturn = 1; if (global.char[1] == checker) _rreturn = 1; if (global.char[2] == checker) _rreturn = 1; return _rreturn; }
("no") && global.darkzone == 0)
32
            target = 8;
33
        halign = (global.darkzone == 0) ? 3 : 6;
34
        valign = (global.darkzone == 0) ? 6 : 16;
35
        if (room == room_dw_castle_town)
36
        {
37
            if (
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ var flag_value = global.flag[arg0]; return flag_value; } function scr_flag_name_get(arg0) { if (!global.is_console) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } else { return ""; } } function scr_getflag(arg0) { return
scr_flag_get(arg0);
}
(793) == 1)
38
            {
39
                valign = 20;
40
                y = remy[target] - valign;
41
            }
42
        }
43
    }
44
}
45
if (name == "noelle")
46
{
47
    usprite = (global.darkzone == 1) ? spr_noelle_walk_up_dw : spr_noelle_walk_up_lw;
48
    rsprite = (global.darkzone == 1) ? spr_noelle_walk_right_dw : spr_noelle_walk_right_lw;
49
    lsprite = (global.darkzone == 1) ? spr_noelle_walk_left_dw : spr_noelle_walk_left_lw;
50
    dsprite = (global.darkzone == 1) ? spr_noelle_walk_down_dw : spr_noelle_walk_down_lw;
51
    if (global.darkzone == 0)
52
        target = 
scr_havechar
scr_havechar

function
scr_havechar(arg0)
{ var checker = arg0; if (checker == "susie" || checker == "su" || checker == "s") checker = 2; if (checker == "ralsei" || checker == "ra" || checker == "r") checker = 3; if (checker == "noelle" || checker == "no" || checker == "n") checker = 4; _rreturn = 0; if (global.char[0] == checker) _rreturn = 1; if (global.char[1] == checker) _rreturn = 1; if (global.char[2] == checker) _rreturn = 1; return _rreturn; }
("su") ? 17 : 12;
53
    halign = (global.darkzone == 0) ? 2 : 4;
54
    valign = (global.darkzone == 0) ? 9 : 18;
55
}
56
if (name == "ralsei")
57
{
58
    slidesprite = spr_ralsei_slide;
59
    climbsprite = 4837;
60
    halign = 2;
61
    valign = 12;
62
    if (global.chapter == 4)
63
    {
64
        if (sprite_index == spr_ralsei_splat_caterpillar)
65
            halign = 12;
66
        if (room == room_dw_castle_town)
67
        {
68
            if (
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ var flag_value = global.flag[arg0]; return flag_value; } function scr_flag_name_get(arg0) { if (!global.is_console) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } else { return ""; } } function scr_getflag(arg0) { return
scr_flag_get(arg0);
}
(793) == 1)
69
            {
70
                if (sprite_index == spr_ralsei_walk_left)
71
                    halign -= 12;
72
                if (sprite_index == spr_ralsei_walk_right)
73
                    halign += 12;
74
                valign = 16;
75
                y = remy[target] - valign;
76
            }
77
        }
78
    }
79
}
80
if (!ignoredepth)
81
{
82
    
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
83
    depth += 5;
84
    if (name == "ralsei")
85
        depth -= 80;
86
    if (name == "ralsei")
87
    {
88
        if (global.chapter == 4)
89
        {
90
            if (sprite_index == spr_ralsei_splat_caterpillar)
91
                depth += 100;
92
        }
93
    }
94
    if (name == "susie" && global.darkzone == 1)
95
        depth -= 60;
96
    if (name == "noelle")
97
        depth += 10;
98
}
99
nowx = x;
100
nowy = y;
101
moved = 0;
102
walk = 0;
103
runmove = 0;
104
slided = 0;
105
if (obj_mainchara.x != remx[0])
106
    moved = 1;
107
if (obj_mainchara.y != remy[0])
108
    moved = 1;
109
if (sliding[target] == 1)
110
    moved = 1;
111
if (moved == 1 && follow == 1)
112
{
113
    blushtimer = 0;
114
    for (i = 75; i > 0; i -= 1)
115
    {
116
        remx[i] = remx[i - 1];
117
        remy[i] = remy[i - 1];
118
        facing[i] = facing[i - 1];
119
        sliding[i] = sliding[i - 1];
120
        if (global.chapter == 4)
121
            special[i] = special[i - 1];
122
    }
123
    remx[0] = obj_mainchara.x;
124
    remy[0] = obj_mainchara.y;
125
    sliding[0] = obj_mainchara.sliding;
126
    facing[0] = global.facing;
127
    if (global.chapter == 4)
128
        special[0] = obj_mainchara.climbing;
129
    x = remx[target] - halign;
130
    y = remy[target] - valign;
131
    if (sliding[target] == 1)
132
    {
133
        x = remx[target];
134
        y = remy[target];
135
        sprite_index = slidesprite;
136
        slided = 1;
137
    }
138
    if (special[target] == 1 && global.chapter == 4)
139
    {
140
        sprite_index = climbsprite;
141
        specialed = 1;
142
    }
143
    else
144
    {
145
        specialed = 0;
146
    }
147
    if (abs(remx[target + 1] - remx[target]) > 4)
148
        runmove = 1;
149
    if (abs(remy[target + 1] - remy[target]) > 4)
150
        runmove = 1;
151
    dir = facing[target];
152
}
153
if (x != nowx)
154
    walk = 1;
155
if (y != nowy)
156
    walk = 1;
157
if (walk == 1)
158
    walkbuffer = 6;
159
if (walkbuffer > 3 && fun == 0)
160
{
161
    walktimer += 1.5;
162
    if (runmove == 1)
163
        walktimer += 1.5;
164
    if (walktimer >= 40)
165
        walktimer -= 40;
166
    if (walktimer < 10)
167
        image_index = 0;
168
    if (walktimer >= 10)
169
        image_index = 1;
170
    if (walktimer >= 20)
171
        image_index = 2;
172
    if (walktimer >= 30)
173
        image_index = 3;
174
}
175
if (walkbuffer <= 0 && fun == 0)
176
{
177
    if (walktimer < 10)
178
        walktimer = 9.5;
179
    if (walktimer >= 10 && walktimer < 20)
180
        walktimer = 19.5;
181
    if (walktimer >= 20 && walktimer < 30)
182
        walktimer = 29.5;
183
    if (walktimer >= 30)
184
        walktimer = 39.5;
185
    image_index = 0;
186
}
187
walkbuffer -= 0.75;
188
if (fun == 0 && slided == 0 && specialed == 0)
189
{
190
    if (facing[target] == 0)
191
        sprite_index = dsprite;
192
    if (facing[target] == 1)
193
        sprite_index = rsprite;
194
    if (facing[target] == 2)
195
        sprite_index = usprite;
196
    if (facing[target] == 3)
197
        sprite_index = lsprite;
198
}
199
if ((dsprite == spr_ralseid || dsprite == spr_ralsei_walk_down) && global.interact == 0 && fun == 0)
200
{
201
    distfrommcx = obj_mainchara.x - (x + 2);
202
    distfrommcy = obj_mainchara.y - (y + 12);
203
    if (abs(distfrommcy) <= 14 && abs(distfrommcx) <= 20)
204
    {
205
        if (distfrommcx <= 0 && global.facing == 1)
206
            blushtimer += 1;
207
        if (distfrommcx >= 0 && global.facing == 3)
208
            blushtimer += 1;
209
    }
210
    else
211
    {
212
        blushtimer = 0;
213
    }
214
    if (blushtimer >= 300)
215
    {
216
        if (sprite_index == dsprite)
217
            sprite_index = dsprite_blush;
218
        if (sprite_index == rsprite)
219
            sprite_index = rsprite_blush;
220
        if (sprite_index == usprite)
221
            sprite_index = usprite_blush;
222
        if (sprite_index == lsprite)
223
            sprite_index = lsprite_blush;
224
    }
225
}
226
else
227
{
228
    blushtimer = 0;
229
}
230
if (name == "ralsei")
231
{
232
    if (sprite_index == dsprite)
233
        depth += 20;
234
    if (global.chapter == 4)
235
    {
236
        if (!init_clothes && i_ex(obj_ch4_PDC06) && 
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ var flag_value = global.flag[arg0]; return flag_value; } function scr_flag_name_get(arg0) { if (!global.is_console) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } else { return ""; } } function scr_getflag(arg0) { return
scr_flag_get(arg0);
}
(706) == 1)
237
        {
238
            init_clothes = true;
239
            dsprite = spr_ralsei_splat_caterpillar;
240
            rsprite = spr_ralsei_splat_caterpillar;
241
            lsprite = spr_ralsei_splat_caterpillar;
242
            usprite = spr_ralsei_splat_caterpillar;
243
        }
244
        if (room == room_dw_church_glass && global.plot < 120)
245
        {
246
            rsprite = spr_ralsei_walk_right_unhappy;
247
            dsprite = spr_ralsei_walk_down_unhappy;
248
            lsprite = spr_ralsei_walk_left_unhappy;
249
        }
250
        if (room == room_dw_church_jackenstein && global.plot >= 170 && global.plot < 190)
251
        {
252
            rsprite = spr_ralsei_walk_right_unhappy;
253
            dsprite = spr_ralsei_walk_down_unhappy;
254
            lsprite = spr_ralsei_walk_left_unhappy;
255
        }
256
        if (room == room_dw_churchc_titanclimb1_post || room == room_dw_churchc_titanclimb2_post)
257
        {
258
            rsprite = spr_ralsei_walk_right_unhappy;
259
            dsprite = spr_ralsei_walk_down_unhappy;
260
            lsprite = spr_ralsei_walk_left_unhappy;
261
        }
262
    }
263
}
264
if (name == "susie")
265
{
266
    if (global.chapter == 4)
267
    {
268
        if (!init_clothes && global.darkzone == 0)
269
        {
270
            init_clothes = true;
271
            if (global.plot >= 11 && global.plot < 35)
272
            {
273
                dsprite = spr_susie_walk_down_church;
274
                rsprite = spr_susie_walk_right_church;
275
                lsprite = spr_susie_walk_left_church;
276
                usprite = spr_susie_walk_up_church;
277
            }
278
            else
279
            {
280
                usprite = spr_susie_walk_up_lw;
281
                rsprite = spr_susie_walk_right_lw;
282
                lsprite = spr_susie_walk_left_lw;
283
                dsprite = spr_susie_walk_down_lw;
284
                if (global.plot >= 220)
285
                {
286
                    rsprite = spr_susie_walk_right_lw_unhappy;
287
                    dsprite = spr_susie_walk_down_lw_unhappy;
288
                    lsprite = spr_susie_walk_left_lw_unhappy;
289
                }
290
            }
291
        }
292
        if (global.darkzone == 1)
293
        {
294
            if (room == room_dw_castle_town)
295
            {
296
                if (
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ var flag_value = global.flag[arg0]; return flag_value; } function scr_flag_name_get(arg0) { if (!global.is_console) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } else { return ""; } } function scr_getflag(arg0) { return
scr_flag_get(arg0);
}
(793) == 1)
297
                {
298
                    dsprite = spr_susie_lancer_carry_walk_down;
299
                    rsprite = spr_susie_lancer_carry_walk_right;
300
                    lsprite = spr_susie_lancer_carry_walk_left;
301
                    usprite = spr_susie_lancer_carry_walk_up;
302
                    depth += 135;
303
                }
304
            }
305
            if (room == room_dw_church_glass && global.plot < 120)
306
            {
307
                rsprite = spr_susie_walk_right_dw_unhappy;
308
                dsprite = spr_susie_walk_down_dw_unhappy;
309
                lsprite = spr_susie_walk_left_dw_unhappy;
310
            }
311
            if (room == room_dw_church_jackenstein && global.plot >= 170 && global.plot < 190)
312
            {
313
                rsprite = spr_susie_walk_right_dw_unhappy;
314
                dsprite = spr_susie_walk_down_dw_unhappy;
315
                lsprite = spr_susie_walk_left_dw_unhappy;
316
            }
317
            if (room == room_dw_churchc_titanclimb1_post || room == room_dw_churchc_titanclimb2_post)
318
            {
319
                rsprite = spr_susie_walk_right_dw_unhappy;
320
                dsprite = spr_susie_walk_down_dw_unhappy;
321
                lsprite = spr_susie_walk_left_dw_unhappy;
322
            }
323
        }
324
        else if (global.chapter == 4 && room == room_krishallway)
325
        {
326
            if (i_ex(obj_hallway_mirror))
327
            {
328
                var _sprite_index = sprite_index;
329
                var _sprite_d = dsprite;
330
                var _sprite_u = usprite;
331
                var _image_index = image_index;
332
                var _x = x;
333
                var _y = y;
334
                with (obj_hallway_mirror)
335
                {
336
                    if (shadow_susie != -4)
337
                    {
338
                        with (shadow_susie)
339
                        {
340
                            x = _x;
341
                            sprite_index = _sprite_index;
342
                            image_index = _image_index;
343
                            y = 180 - _y;
344
                            if (_sprite_index == _sprite_d)
345
                                sprite_index = _sprite_u;
346
                            if (_sprite_index == _sprite_u)
347
                                sprite_index = _sprite_d;
348
                        }
349
                        if ((shadow_susie.y + 6) < shadow.y)
350
                            shadow_susie.depth = shadow.depth + 10;
351
                        else
352
                            shadow_susie.depth = shadow.depth - 10;
353
                    }
354
                }
355
            }
356
        }
357
    }
358
}
359
with (obj_mouse_hat)
360
{
361
    if (linked_char == other.id)
362
    {
363
        var _xoff = 0;
364
        var _yoff = 0;
365
        if (linked_char.object_index == obj_caterpillarchara)
366
        {
367
            switch (linked_char.name)
368
            {
369
                case "susie":
370
                    _yoff = 4;
371
                    _xoff = 7;
372
                    if (sprite_index == spr_treasurebox)
373
                        _xoff = 10;
374
                    break;
375
                case "ralsei":
376
                    _yoff = 12;
377
                    _xoff = 7;
378
                    if (sprite_index == spr_treasurebox)
379
                        _xoff = 10;
380
                    break;
381
            }
382
        }
383
        if (linked_char.facing[linked_char.target] == 1)
384
            image_xscale = -2;
385
        if (linked_char.facing[linked_char.target] == 3)
386
            image_xscale = 2;
387
        _xoff = -_xoff * image_xscale;
388
        x = linked_char.x + _xoff + (linked_char.sprite_width / 2);
389
        y = ((linked_char.y + _yoff) - 28) + sin(linked_char.image_index * 2);
390
        with (linked_char)
391
        {
392
            if (name == "ralsei")
393
                depth += 1;
394
        }
395
        depth = linked_char.depth - 1;
396
    }
397
}