Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_rotating_tower_controller_Step_0

(view raw script w/o annotations or w/e)
1
if (using_rotating_caterpillars == false)
2
{
3
    if (obj_mainchara.y < 221)
4
    {
5
        using_rotating_caterpillars = true;
6
        with (obj_caterpillarchara)
7
        {
8
            var _a = 0;
9
            if (name == "susie")
10
            {
11
                susie_caterpillar = instance_create_depth(x, y, obj_mainchara.depth - 1, obj_rotating_tower_caterpillar);
12
                var _susie_yoffset = -1;
13
                for (var i = 0; i < instance_number(obj_caterpillarchara); i += 1)
14
                {
15
                    hero[i] = instance_find(obj_caterpillarchara, i);
16
                    if (hero[i].name == "susie")
17
                        _susie_yoffset = 480 - (hero[i].y - 220);
18
                }
19
                repeat (36)
20
                {
21
                    obj_rotating_tower_controller.yoffset_record[36 - _a] = lerp(_susie_yoffset, 480, _a / 36);
22
                    _a++;
23
                }
24
            }
25
            else
26
            {
27
                ralsei_caterpillar = instance_create_depth(x, y, obj_mainchara.depth - 2, obj_rotating_tower_caterpillar);
28
                ralsei_caterpillar.hero = "ralsei";
29
                var _ralsei_offset = -1;
30
                for (var i = 0; i < instance_number(obj_caterpillarchara); i += 1)
31
                {
32
                    hero[i] = instance_find(obj_caterpillarchara, i);
33
                    if (hero[i].name == "ralsei")
34
                        _ralsei_offset = 480 - (hero[i].y - 220);
35
                }
36
                repeat (36)
37
                {
38
                    obj_rotating_tower_controller.yoffset_record[72 - _a] = lerp(_ralsei_offset, obj_rotating_tower_controller.yoffset_record[36], _a / 36);
39
                    _a++;
40
                }
41
            }
42
            instance_destroy();
43
        }
44
    }
45
}
46
if (using_rotating_caterpillars == true)
47
{
48
    if (obj_mainchara.y > 220)
49
    {
50
        using_rotating_caterpillars = false;
51
        with (obj_rotating_tower_caterpillar)
52
        {
53
            if (hero == "susie")
54
                inst = 
scr_makecaterpillar
scr_makecaterpillar

function
scr_makecaterpillar(arg0, arg1, arg2, arg3)
{ global.cinstance[arg3] = instance_create(arg0, arg1, obj_caterpillarchara); global.cinstance[arg3].target = 12 + (arg3 * 12); if (arg2 == 3) { with (global.cinstance[arg3]) { usprite = spr_ralseiu; dsprite = spr_ralseid; rsprite = spr_ralseir; lsprite = spr_ralseil; if (global.chapter >= 2) { name = "ralsei"; usprite = spr_ralsei_walk_up; dsprite = spr_ralsei_walk_down; rsprite = spr_ralsei_walk_right; lsprite = spr_ralsei_walk_left; } } } if (arg2 == 4) { with (global.cinstance[arg3]) { name = "noelle"; usprite = spr_noelle_walk_up_dw; dsprite = spr_noelle_walk_down_dw; rsprite = spr_noelle_walk_right_dw; lsprite = spr_noelle_walk_left_dw; if (global.darkzone == 0) { usprite = spr_noelle_walk_up_lw; dsprite = spr_noelle_walk_down_lw; rsprite = spr_noelle_walk_right_lw; lsprite = spr_noelle_walk_left_lw; } } } if (arg2 == 5) { with (global.cinstance[arg3]) { name = "berdly"; usprite = spr_berdly_walk_up_dw; dsprite = spr_berdly_walk_down_dw; rsprite = spr_berdly_walk_right_dw; lsprite = spr_berdly_walk_left_dw; } } if (arg2 == 6) { with (global.cinstance[arg3]) { name = "starwalker"; usprite = spr_npc_originalstarwalker; dsprite = spr_npc_originalstarwalker; rsprite = spr_npc_originalstarwalker; lsprite = spr_npc_originalstarwalker; } } if (arg2 == 7) { with (global.cinstance[arg3]) { name = "lancer"; usprite = spr_lancer_ut; dsprite = spr_lancer_dt; rsprite = spr_lancer_rt; lsprite = spr_lancer_lt; } } return global.cinstance[arg3]; }
(x, y, 2, 0);
55
            else
56
                
scr_makecaterpillar
scr_makecaterpillar

function
scr_makecaterpillar(arg0, arg1, arg2, arg3)
{ global.cinstance[arg3] = instance_create(arg0, arg1, obj_caterpillarchara); global.cinstance[arg3].target = 12 + (arg3 * 12); if (arg2 == 3) { with (global.cinstance[arg3]) { usprite = spr_ralseiu; dsprite = spr_ralseid; rsprite = spr_ralseir; lsprite = spr_ralseil; if (global.chapter >= 2) { name = "ralsei"; usprite = spr_ralsei_walk_up; dsprite = spr_ralsei_walk_down; rsprite = spr_ralsei_walk_right; lsprite = spr_ralsei_walk_left; } } } if (arg2 == 4) { with (global.cinstance[arg3]) { name = "noelle"; usprite = spr_noelle_walk_up_dw; dsprite = spr_noelle_walk_down_dw; rsprite = spr_noelle_walk_right_dw; lsprite = spr_noelle_walk_left_dw; if (global.darkzone == 0) { usprite = spr_noelle_walk_up_lw; dsprite = spr_noelle_walk_down_lw; rsprite = spr_noelle_walk_right_lw; lsprite = spr_noelle_walk_left_lw; } } } if (arg2 == 5) { with (global.cinstance[arg3]) { name = "berdly"; usprite = spr_berdly_walk_up_dw; dsprite = spr_berdly_walk_down_dw; rsprite = spr_berdly_walk_right_dw; lsprite = spr_berdly_walk_left_dw; } } if (arg2 == 6) { with (global.cinstance[arg3]) { name = "starwalker"; usprite = spr_npc_originalstarwalker; dsprite = spr_npc_originalstarwalker; rsprite = spr_npc_originalstarwalker; lsprite = spr_npc_originalstarwalker; } } if (arg2 == 7) { with (global.cinstance[arg3]) { name = "lancer"; usprite = spr_lancer_ut; dsprite = spr_lancer_dt; rsprite = spr_lancer_rt; lsprite = spr_lancer_lt; } } return global.cinstance[arg3]; }
(x, y, 3, 1);
57
            instance_destroy();
58
        }
59
    }
60
}
61
rising_shadow_x = 0;
62
var moveright = false;
63
var moveleft = false;
64
var moveup = false;
65
var movedown = false;
66
var falling = 0;
67
var canmove = true;
68
var yoffsettruestart = 740;
69
if (instance_exists(obj_tower_falling_kris_falls) && obj_tower_falling_kris_falls.con == 0)
70
    falling = 1;
71
if (room == room_dw_church_dogclimb)
72
    yoffsettruestart = 650;
73
if (room == room_dw_church_dogclimb && global.inv > 15)
74
    canmove = false;
75
if (i_ex(obj_tower_dog_controller) && obj_tower_dog_controller.con != 6)
76
    exit;
77
if (endclimb == true)
78
{
79
    endclimbtimer++;
80
    if (endclimbtimer == 1)
81
        
scr_pan_lerp
scr_pan_lerp

function
scr_pan_lerp(arg0, arg1, arg2, arg3 = -1)
{ panner = instance_create(arg0, arg1, obj_panner); panner.panmax = arg2; panner.type = 1; if (arg3 != -1) panner.locktype = arg3; }
(camerax(), cameray(), 80);
82
    if (endclimbtimer < 80)
83
    {
84
        yoffset += 4;
85
        obj_rotating_bg_controller.tunnel_offset_y += 2;
86
    }
87
    if (endclimbtimer == 80)
88
    {
89
        endclimbcon = 2;
90
        
scr_pan_lerp
scr_pan_lerp

function
scr_pan_lerp(arg0, arg1, arg2, arg3 = -1)
{ panner = instance_create(arg0, arg1, obj_panner); panner.panmax = arg2; panner.type = 1; if (arg3 != -1) panner.locktype = arg3; }
(camerax(), -372, 40);
91
    }
92
}
93
if (endclimbcon < 2)
94
{
95
    if (obj_mainchara.y <= 220 || endclimb == true)
96
    {
97
        if (left_h() && falling == 0 && canmove == true)
98
        {
99
            if (obj_mainchara.run == 0)
100
            {
101
                tower_angle += 3;
102
                rising_shadow_x += 2;
103
            }
104
            if (obj_mainchara.run == 1)
105
            {
106
                tower_angle += 6;
107
                rising_shadow_x += 4;
108
            }
109
            moveleft = true;
110
        }
111
        if (right_h() && falling == 0 && canmove == true)
112
        {
113
            if (obj_mainchara.run == 0)
114
            {
115
                tower_angle -= 3;
116
                rising_shadow_x -= 2;
117
            }
118
            if (obj_mainchara.run == 1)
119
            {
120
                tower_angle -= 6;
121
                rising_shadow_x -= 4;
122
            }
123
            moveright = true;
124
            if (obj_mainchara.y >= 220 && obj_mainchara.y < 1500 && obj_rotating_tower_controller.yoffset <= (yoffsettruestart + 80))
125
            {
126
                if (tower_angle > 340 || tower_angle < 0)
127
                {
128
                    moveright = false;
129
                    tower_image_index = 0;
130
                }
131
            }
132
        }
133
    }
134
    if (obj_mainchara.y <= 220 || endclimb == true)
135
    {
136
        if (down_h() && falling == 0 && canmove == true)
137
        {
138
            if (obj_mainchara.run == 0)
139
                yoffset -= 2;
140
            if (obj_mainchara.run == 1)
141
                yoffset -= 5;
142
            movedown = true;
143
        }
144
        if (up_h() && falling == 0 && canmove == true)
145
        {
146
            if (obj_mainchara.run == 0)
147
                yoffset += 2;
148
            if (obj_mainchara.run == 1)
149
                yoffset += 5;
150
            moveup = true;
151
            if (endclimbtimer > 0 && endclimbtimer < 80)
152
            {
153
                if (obj_mainchara.run == 0)
154
                    obj_tower_dog.draw_y -= 2;
155
                if (obj_mainchara.run == 1)
156
                    obj_tower_dog.draw_y -= 5;
157
            }
158
        }
159
    }
160
    else
161
    {
162
        if (obj_mainchara.run == 0 && canmove == true)
163
            obj_rotating_bg_controller.tunnel_offset_y += ((up_h() - down_h()) * 1);
164
        if (obj_mainchara.run == 1 && canmove == true)
165
            obj_rotating_bg_controller.tunnel_offset_y += ((up_h() - down_h()) * 2);
166
    }
167
}
168
var climbanimplayed = false;
169
if (obj_mainchara.y != maincharayprevious || (endclimb == true && obj_tower_dog_controller.con == 6 && obj_mainchara.walk == 0))
170
{
171
    obj_mainchara.walkbuffer = 6;
172
    obj_mainchara.walktimer += 1.5;
173
    if (obj_mainchara.run == 1)
174
        obj_mainchara.walktimer += 1.5;
175
    maincharayprevious = obj_mainchara.y;
176
    climbanimplayed = true;
177
}
178
var kris_xpos, kris_xpos_prev;
179
if (wide_tower == false)
180
{
181
    kris_xpos = -1;
182
    if (tower_angle >= 20 && tower_angle < 70)
183
        kris_xpos = 7;
184
    if (tower_angle >= 335 || tower_angle < 25)
185
        kris_xpos = 6;
186
    if (tower_angle >= 65 && tower_angle < 115)
187
        kris_xpos = 0;
188
    if (tower_angle >= 110 && tower_angle < 160)
189
        kris_xpos = 1;
190
    if (tower_angle >= 155 && tower_angle < 205)
191
        kris_xpos = 2;
192
    if (tower_angle >= 200 && tower_angle < 250)
193
        kris_xpos = 3;
194
    if (tower_angle >= 245 && tower_angle < 295)
195
        kris_xpos = 4;
196
    if (tower_angle >= 290 && tower_angle < 340)
197
        kris_xpos = 5;
198
    kris_xpos_prev = -1;
199
    if (tower_angle_prev >= 20 && tower_angle_prev < 70)
200
        kris_xpos_prev = 7;
201
    if (tower_angle_prev >= 335 || tower_angle_prev < 25)
202
        kris_xpos_prev = 6;
203
    if (tower_angle_prev >= 65 && tower_angle_prev < 115)
204
        kris_xpos_prev = 0;
205
    if (tower_angle_prev >= 110 && tower_angle_prev < 160)
206
        kris_xpos_prev = 1;
207
    if (tower_angle_prev >= 155 && tower_angle_prev < 205)
208
        kris_xpos_prev = 2;
209
    if (tower_angle_prev >= 200 && tower_angle_prev < 250)
210
        kris_xpos_prev = 3;
211
    if (tower_angle_prev >= 245 && tower_angle_prev < 295)
212
        kris_xpos_prev = 4;
213
    if (tower_angle_prev >= 290 && tower_angle_prev < 340)
214
        kris_xpos_prev = 5;
215
}
216
else
217
{
218
    var offset = -10;
219
    kris_xpos = -1;
220
    if (tower_angle >= (355 + offset) || tower_angle < (30 + offset))
221
        kris_xpos = 8;
222
    if (tower_angle >= (30 + offset) && tower_angle < (67 + offset))
223
        kris_xpos = 9;
224
    if (tower_angle >= (67 + offset) && tower_angle < (107 + offset))
225
        kris_xpos = 0;
226
    if (tower_angle >= (107 + offset) && tower_angle < (139 + offset))
227
        kris_xpos = 1;
228
    if (tower_angle >= (139 + offset) && tower_angle < (185 + offset))
229
        kris_xpos = 2;
230
    if (tower_angle >= (185 + offset) && tower_angle < (211 + offset))
231
        kris_xpos = 3;
232
    if (tower_angle >= (211 + offset) && tower_angle < (247 + offset))
233
        kris_xpos = 4;
234
    if (tower_angle >= (247 + offset) && tower_angle < (283 + offset))
235
        kris_xpos = 5;
236
    if (tower_angle >= (283 + offset) && tower_angle < (319 + offset))
237
        kris_xpos = 6;
238
    if (tower_angle >= (319 + offset) && tower_angle < (355 + offset))
239
        kris_xpos = 7;
240
    kris_xpos_prev = -1;
241
    if (tower_angle_prev >= (355 + offset) || tower_angle_prev < (30 + offset))
242
        kris_xpos_prev = 8;
243
    if (tower_angle_prev >= (30 + offset) && tower_angle_prev < (67 + offset))
244
        kris_xpos_prev = 9;
245
    if (tower_angle_prev >= (67 + offset) && tower_angle_prev < (107 + offset))
246
        kris_xpos_prev = 0;
247
    if (tower_angle_prev >= (107 + offset) && tower_angle_prev < (139 + offset))
248
        kris_xpos_prev = 1;
249
    if (tower_angle_prev >= (139 + offset) && tower_angle_prev < (180 + offset))
250
        kris_xpos_prev = 2;
251
    if (tower_angle_prev >= (180 + offset) && tower_angle_prev < (211 + offset))
252
        kris_xpos_prev = 3;
253
    if (tower_angle_prev >= (211 + offset) && tower_angle_prev < (247 + offset))
254
        kris_xpos_prev = 4;
255
    if (tower_angle_prev >= (247 + offset) && tower_angle_prev < (283 + offset))
256
        kris_xpos_prev = 5;
257
    if (tower_angle_prev >= (283 + offset) && tower_angle_prev < (319 + offset))
258
        kris_xpos_prev = 6;
259
    if (tower_angle_prev >= (319 + offset) && tower_angle_prev < (355 + offset))
260
        kris_xpos_prev = 7;
261
}
262
var kris_ypos = (494 - (round(yoffset / 40) - 12)) + round((obj_mainchara.y - 220) / 40);
263
if (kris_ypos > 500)
264
    exit;
265
var kris_ypos_prev = (494 - (round(yoffset_prev / 40) - 12)) + round((obj_mainchara.yprevious - 220) / 40);
266
if (kris_ypos_prev > 500)
267
    exit;
268
if (tower_object[kris_ypos_prev][kris_xpos] <= 0)
269
{
270
    obj_mainchara.x = obj_mainchara.xprevious;
271
    tower_angle = tower_angle_prev;
272
}
273
else
274
{
275
    if (moveleft == true)
276
    {
277
        obj_mainchara.walkbuffer = 6;
278
        if (obj_mainchara.run == 0)
279
            tower_image_index -= 0.3;
280
        if (obj_mainchara.run == 1)
281
            tower_image_index -= 0.6;
282
        for (var i = 0; i < towerpiececount; i++)
283
            tower_piece_image_index[i] += 1;
284
    }
285
    if (moveright == true)
286
    {
287
        if (obj_mainchara.run == 0)
288
            tower_image_index += 0.3;
289
        if (obj_mainchara.run == 1)
290
            tower_image_index += 0.6;
291
        for (var i = 0; i < towerpiececount; i++)
292
            tower_piece_image_index[i] -= 1;
293
    }
294
    if (tower_angle != tower_angle_prev && yoffset > 740 && climbanimplayed == false)
295
    {
296
        obj_mainchara.walktimer += 1.5;
297
        if (obj_mainchara.run == 1)
298
            obj_mainchara.walktimer += 1.5;
299
        climbanimplayed = true;
300
    }
301
    if (obj_mainchara.run == 0 && canmove == true)
302
    {
303
        if (moveleft == true || moveright == true)
304
            obj_rotating_bg_controller.tunnel_offset_x += ((right_h() - left_h()) * 8);
305
    }
306
    if (obj_mainchara.run == 1 && canmove == true)
307
    {
308
        if (moveleft == true || moveright == true)
309
            obj_rotating_bg_controller.tunnel_offset_x += ((right_h() - left_h()) * 16);
310
    }
311
}
312
if (tower_object[kris_ypos][kris_xpos_prev] <= 0)
313
{
314
    obj_mainchara.y = obj_mainchara.yprevious;
315
    if (renderalt == false)
316
        yoffset = yoffset_prev;
317
}
318
else
319
{
320
    if (obj_mainchara.run == 0 && canmove == true && endclimbcon < 2)
321
    {
322
        if (moveup == true || movedown == true)
323
            obj_rotating_bg_controller.tunnel_offset_y += ((up_h() - down_h()) * 1);
324
    }
325
    if (obj_mainchara.run == 1 && canmove == true && endclimbcon < 2)
326
    {
327
        if (moveup == true || movedown == true)
328
            obj_rotating_bg_controller.tunnel_offset_y += ((up_h() - down_h()) * 2);
329
    }
330
    if (yoffset != yoffset_prev && climbanimplayed == false)
331
    {
332
        obj_mainchara.walktimer += 1.5;
333
        if (obj_mainchara.run == 1)
334
            obj_mainchara.walktimer += 1.5;
335
    }
336
    maincharayprevious = obj_mainchara.y;
337
    if (instance_exists(obj_cloud_controller))
338
    {
339
        if (movedown == true)
340
        {
341
            if (obj_mainchara.run == 0)
342
            {
343
                with (obj_cloud_controller)
344
                    y -= 2;
345
            }
346
            if (obj_mainchara.run == 1)
347
            {
348
                with (obj_cloud_controller)
349
                    y -= 5;
350
            }
351
        }
352
        if (moveup == true)
353
        {
354
            if (obj_mainchara.run == 0)
355
            {
356
                with (obj_cloud_controller)
357
                    y += 2;
358
            }
359
            if (obj_mainchara.run == 1)
360
            {
361
                with (obj_cloud_controller)
362
                    y += 5;
363
            }
364
        }
365
    }
366
}
367
if (wide_tower == false && tower_image_index < 0)
368
    tower_image_index = 3;
369
if (wide_tower == true && tower_image_index < 0)
370
    tower_image_index = 6;
371
if (obj_mainchara.y >= 220 && obj_mainchara.y < 1500 && yoffset < yoffsettruestart)
372
{
373
    repeat (10)
374
    {
375
    }
376
    if (tower_image_index > 0)
377
        tower_image_index = -1;
378
    if (tower_image_index < 0)
379
        tower_image_index += 1;
380
}
381
tower_angle_prev = tower_angle;
382
yoffset_prev = yoffset;
383
if (tower_angle > 360)
384
    tower_angle -= 360;
385
if (tower_angle < 0)
386
    tower_angle += 360;