Deltarune (Chapter 4) script viewer

← back to main script listing

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