Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_rotating_tower_controller_Other_19

(view raw script w/o annotations or w/e)
1
ladder_index = 4;
2
xx = 0;
3
vis = false;
4
towerback = false;
5
piecemaxdistance = 70;
6
if (wide_tower)
7
    piecemaxdistance = 110;
8
if (tower_object[i][ii] == 3 || tower_object[i][ii] == 4)
9
    piecemaxdistance = 100;
10
if (wide_tower == false)
11
{
12
    vis = true;
13
    if (ii == 0)
14
    {
15
        if (tower_angle >= 350 && tower_angle < 357)
16
            ladder_index = 0;
17
        else if (tower_angle >= 357 || tower_angle < 12)
18
            ladder_index = 1;
19
        else if (tower_angle >= 12 && tower_angle < 20)
20
            ladder_index = 2;
21
        else if (tower_angle >= 20 && tower_angle < 65)
22
            ladder_index = 3;
23
        else if (tower_angle >= 65 && tower_angle < 115)
24
            ladder_index = 4;
25
        else if (tower_angle >= 115 && tower_angle < 160)
26
            ladder_index = 5;
27
        else if (tower_angle >= 160 && tower_angle < 168)
28
            ladder_index = 6;
29
        else if (tower_angle >= 168 && tower_angle < 183)
30
            ladder_index = 7;
31
        else if (tower_angle >= 183 && tower_angle < 190)
32
            ladder_index = 8;
33
        else
34
            ladder_index = 9;
35
        if (tower_angle >= 350)
36
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 350) / 100);
37
        if (tower_angle < 90)
38
            xx = lerp(piecemaxdistance * -1, 0, (10 + tower_angle) / 100);
39
        if (tower_angle >= 90 && tower_angle < 190)
40
            xx = lerp(0, piecemaxdistance, (tower_angle - 90) / 100);
41
    }
42
    if (ii == 1)
43
    {
44
        if (tower_angle >= 35 && tower_angle < 42)
45
            ladder_index = 0;
46
        else if (tower_angle >= 42 && tower_angle < 57)
47
            ladder_index = 1;
48
        else if (tower_angle >= 57 && tower_angle < 65)
49
            ladder_index = 2;
50
        else if (tower_angle >= 65 && tower_angle < 110)
51
            ladder_index = 3;
52
        else if (tower_angle >= 110 && tower_angle < 160)
53
            ladder_index = 4;
54
        else if (tower_angle >= 160 && tower_angle < 205)
55
            ladder_index = 5;
56
        else if (tower_angle >= 205 && tower_angle < 213)
57
            ladder_index = 6;
58
        else if (tower_angle >= 213 && tower_angle < 228)
59
            ladder_index = 7;
60
        else if (tower_angle >= 228 && tower_angle < 235)
61
            ladder_index = 8;
62
        else
63
            ladder_index = 9;
64
        if (tower_angle >= 35 && tower_angle < 135)
65
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 35) / 100);
66
        if (tower_angle >= 135 && tower_angle < 235)
67
            xx = lerp(0, piecemaxdistance, (tower_angle - 135) / 100);
68
    }
69
    if (ii == 2)
70
    {
71
        if (tower_angle >= 80 && tower_angle < 87)
72
            ladder_index = 0;
73
        else if (tower_angle >= 87 && tower_angle < 102)
74
            ladder_index = 1;
75
        else if (tower_angle >= 102 && tower_angle < 110)
76
            ladder_index = 2;
77
        else if (tower_angle >= 110 && tower_angle < 155)
78
            ladder_index = 3;
79
        else if (tower_angle >= 155 && tower_angle < 205)
80
            ladder_index = 4;
81
        else if (tower_angle >= 205 && tower_angle < 250)
82
            ladder_index = 5;
83
        else if (tower_angle >= 250 && tower_angle < 258)
84
            ladder_index = 6;
85
        else if (tower_angle >= 258 && tower_angle < 273)
86
            ladder_index = 7;
87
        else if (tower_angle >= 273 && tower_angle < 280)
88
            ladder_index = 8;
89
        else
90
            ladder_index = 9;
91
        if (tower_angle >= 80 && tower_angle < 180)
92
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 80) / 100);
93
        if (tower_angle >= 180 && tower_angle < 280)
94
            xx = lerp(0, piecemaxdistance, (tower_angle - 180) / 100);
95
    }
96
    if (ii == 3)
97
    {
98
        if (tower_angle >= 125 && tower_angle < 132)
99
            ladder_index = 0;
100
        else if (tower_angle >= 132 && tower_angle < 147)
101
            ladder_index = 1;
102
        else if (tower_angle >= 147 && tower_angle < 155)
103
            ladder_index = 2;
104
        else if (tower_angle >= 155 && tower_angle < 200)
105
            ladder_index = 3;
106
        else if (tower_angle >= 200 && tower_angle < 250)
107
            ladder_index = 4;
108
        else if (tower_angle >= 250 && tower_angle < 295)
109
            ladder_index = 5;
110
        else if (tower_angle >= 295 && tower_angle < 303)
111
            ladder_index = 6;
112
        else if (tower_angle >= 303 && tower_angle < 318)
113
            ladder_index = 7;
114
        else if (tower_angle >= 318 && tower_angle < 325)
115
            ladder_index = 8;
116
        else
117
            ladder_index = 9;
118
        if (tower_angle >= 125 && tower_angle < 225)
119
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 125) / 100);
120
        if (tower_angle >= 225 && tower_angle < 325)
121
            xx = lerp(0, piecemaxdistance, (tower_angle - 225) / 100);
122
    }
123
    if (ii == 4)
124
    {
125
        if (tower_angle >= 170 && tower_angle < 177)
126
            ladder_index = 0;
127
        else if (tower_angle >= 177 && tower_angle < 192)
128
            ladder_index = 1;
129
        else if (tower_angle >= 192 && tower_angle < 200)
130
            ladder_index = 2;
131
        else if (tower_angle >= 200 && tower_angle < 245)
132
            ladder_index = 3;
133
        else if (tower_angle >= 245 && tower_angle < 295)
134
            ladder_index = 4;
135
        else if (tower_angle >= 295 && tower_angle < 340)
136
            ladder_index = 5;
137
        else if (tower_angle >= 340 && tower_angle < 348)
138
            ladder_index = 6;
139
        else if (tower_angle >= 348 || tower_angle < 3)
140
            ladder_index = 7;
141
        else if (tower_angle >= 3 && tower_angle < 10)
142
            ladder_index = 8;
143
        else
144
            ladder_index = 9;
145
        if (tower_angle >= 170 && tower_angle < 270)
146
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 170) / 100);
147
        if (tower_angle >= 270)
148
            xx = lerp(0, piecemaxdistance, (tower_angle - 270) / 100);
149
        if (tower_angle <= 10)
150
            xx = lerp(0, piecemaxdistance, (90 + tower_angle) / 100);
151
    }
152
    if (ii == 5)
153
    {
154
        if (tower_angle >= 215 && tower_angle < 222)
155
            ladder_index = 0;
156
        else if (tower_angle >= 222 && tower_angle < 237)
157
            ladder_index = 1;
158
        else if (tower_angle >= 237 && tower_angle < 245)
159
            ladder_index = 2;
160
        else if (tower_angle >= 245 && tower_angle < 290)
161
            ladder_index = 3;
162
        else if (tower_angle >= 290 && tower_angle < 340)
163
            ladder_index = 4;
164
        else if (tower_angle >= 340 || tower_angle < 25)
165
            ladder_index = 5;
166
        else if (tower_angle >= 25 && tower_angle < 33)
167
            ladder_index = 6;
168
        else if (tower_angle >= 33 && tower_angle < 48)
169
            ladder_index = 7;
170
        else if (tower_angle >= 48 && tower_angle < 55)
171
            ladder_index = 8;
172
        else
173
            ladder_index = 9;
174
        if (tower_angle >= 215 && tower_angle < 315)
175
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 215) / 100);
176
        if (tower_angle >= 315)
177
            xx = lerp(0, piecemaxdistance, (tower_angle - 315) / 100);
178
        if (tower_angle <= 55)
179
            xx = lerp(0, piecemaxdistance, (45 + tower_angle) / 100);
180
    }
181
    if (ii == 6)
182
    {
183
        if (tower_angle >= 260 && tower_angle < 266)
184
            ladder_index = 0;
185
        else if (tower_angle >= 267 && tower_angle < 282)
186
            ladder_index = 1;
187
        else if (tower_angle >= 282 && tower_angle < 290)
188
            ladder_index = 2;
189
        else if (tower_angle >= 290 && tower_angle < 335)
190
            ladder_index = 3;
191
        else if (tower_angle >= 335 || tower_angle < 25)
192
            ladder_index = 4;
193
        else if (tower_angle >= 25 && tower_angle < 70)
194
            ladder_index = 5;
195
        else if (tower_angle >= 70 && tower_angle < 78)
196
            ladder_index = 6;
197
        else if (tower_angle >= 78 && tower_angle < 93)
198
            ladder_index = 7;
199
        else if (tower_angle >= 93 && tower_angle < 100)
200
            ladder_index = 8;
201
        else
202
            ladder_index = 9;
203
        if (tower_angle >= 260)
204
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 260) / 100);
205
        if (tower_angle < 100)
206
            xx = lerp(0, piecemaxdistance, tower_angle / 100);
207
    }
208
    if (ii == 7)
209
    {
210
        if (tower_angle >= 305 && tower_angle < 312)
211
            ladder_index = 0;
212
        else if (tower_angle >= 312 && tower_angle < 327)
213
            ladder_index = 1;
214
        else if (tower_angle >= 327 && tower_angle < 335)
215
            ladder_index = 2;
216
        else if (tower_angle >= 335 || tower_angle < 20)
217
            ladder_index = 3;
218
        else if (tower_angle >= 20 && tower_angle < 70)
219
            ladder_index = 4;
220
        else if (tower_angle >= 70 && tower_angle < 115)
221
            ladder_index = 5;
222
        else if (tower_angle >= 115 && tower_angle < 123)
223
            ladder_index = 6;
224
        else if (tower_angle >= 123 && tower_angle < 138)
225
            ladder_index = 7;
226
        else if (tower_angle >= 138 && tower_angle < 145)
227
            ladder_index = 8;
228
        else
229
            ladder_index = 9;
230
        if (tower_angle >= 305)
231
            xx = lerp(piecemaxdistance * -1, 0, (tower_angle - 305) / 100);
232
        if (tower_angle < 45)
233
            xx = lerp(piecemaxdistance * -1, 0, (45 + tower_angle) / 100);
234
        if (tower_angle >= 45 && tower_angle < 145)
235
            xx = lerp(0, piecemaxdistance, (tower_angle - 45) / 100);
236
    }
237
}
238
if (wide_tower == true)
239
{
240
    vis = true;
241
    _tower_angle = tower_angle;
242
    _tower_x_origin = 320 + tower_xoffset[i];
243
    if (tower_object[i][ii] == 4 && tower_eyeoffset[i] > 0)
244
    {
245
        tower_eyeoffset[i] += 2;
246
        if (tower_eyeoffset[i] >= 360)
247
            tower_eyeoffset[i] -= 360;
248
        _tower_angle = tower_angle + tower_eyeoffset[i];
249
        if (_tower_angle >= 360)
250
            _tower_angle -= 360;
251
    }
252
    if (ii == 0)
253
    {
254
        if (_tower_angle >= 350)
255
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 350) / 100);
256
        if (_tower_angle < 90)
257
            xx = lerp(piecemaxdistance * -1, 0, (10 + _tower_angle) / 100);
258
        if (_tower_angle >= 90 && _tower_angle < 190)
259
            xx = lerp(0, piecemaxdistance, (_tower_angle - 90) / 100);
260
        if (_tower_angle >= 190 && _tower_angle < 350)
261
        {
262
            vis = false;
263
            vis[i][0] = false;
264
            towerback = true;
265
        }
266
        else
267
        {
268
            vis[i][0] = true;
269
        }
270
    }
271
    if (ii == 1)
272
    {
273
        if (_tower_angle >= 25 && _tower_angle < 125)
274
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 25) / 100) + 2;
275
        if (_tower_angle >= 125 && _tower_angle < 225)
276
            xx = lerp(0, piecemaxdistance, (_tower_angle - 125) / 100) + 2;
277
        if (_tower_angle >= 225 || _tower_angle < 25)
278
        {
279
            vis = false;
280
            vis[i][1] = false;
281
            towerback = true;
282
        }
283
        else
284
        {
285
            vis[i][1] = true;
286
        }
287
    }
288
    if (ii == 2)
289
    {
290
        if (_tower_angle >= 60 && _tower_angle < 160)
291
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 60) / 100);
292
        if (_tower_angle >= 160 && _tower_angle < 260)
293
            xx = lerp(0, piecemaxdistance, (_tower_angle - 160) / 100);
294
        if (_tower_angle >= 260 || _tower_angle < 60)
295
        {
296
            vis = false;
297
            vis[i][2] = false;
298
            towerback = true;
299
        }
300
        else
301
        {
302
            vis[i][2] = true;
303
        }
304
    }
305
    if (ii == 3)
306
    {
307
        if (_tower_angle >= 95 && _tower_angle < 195)
308
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 95) / 100);
309
        if (_tower_angle >= 195 && _tower_angle < 295)
310
            xx = lerp(0, piecemaxdistance, (_tower_angle - 195) / 100);
311
        if (_tower_angle >= 295 || _tower_angle < 95)
312
        {
313
            vis = false;
314
            vis[i][3] = false;
315
            towerback = true;
316
        }
317
        else
318
        {
319
            vis[i][3] = true;
320
        }
321
    }
322
    if (ii == 4)
323
    {
324
        if (_tower_angle >= 130 && _tower_angle < 230)
325
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 130) / 100);
326
        if (_tower_angle >= 230 && _tower_angle < 330)
327
            xx = lerp(0, piecemaxdistance, (_tower_angle - 230) / 100);
328
        if (_tower_angle >= 330 || _tower_angle < 130)
329
        {
330
            vis = false;
331
            vis[i][4] = false;
332
            towerback = true;
333
        }
334
        else
335
        {
336
            vis[i][4] = true;
337
        }
338
    }
339
    if (ii == 5)
340
    {
341
        if (_tower_angle >= 165 && _tower_angle < 265)
342
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 165) / 100);
343
        if (_tower_angle >= 265)
344
            xx = lerp(0, piecemaxdistance, (_tower_angle - 265) / 100);
345
        if (_tower_angle <= 5)
346
            xx = lerp(0, piecemaxdistance, (95 + _tower_angle) / 100);
347
        if (_tower_angle > 5 && _tower_angle < 165)
348
        {
349
            vis = false;
350
            vis[i][5] = false;
351
            towerback = true;
352
        }
353
        else
354
        {
355
            vis[i][5] = true;
356
        }
357
    }
358
    if (ii == 6)
359
    {
360
        if (_tower_angle >= 200 && _tower_angle < 300)
361
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 200) / 100);
362
        if (_tower_angle >= 300)
363
            xx = lerp(0, piecemaxdistance, (_tower_angle - 300) / 100);
364
        if (_tower_angle <= 40)
365
            xx = lerp(0, piecemaxdistance, (60 + _tower_angle) / 100);
366
        if (_tower_angle > 40 && _tower_angle < 200)
367
        {
368
            vis = false;
369
            vis[i][6] = false;
370
            towerback = true;
371
        }
372
        else
373
        {
374
            vis[i][6] = true;
375
        }
376
    }
377
    if (ii == 7)
378
    {
379
        if (_tower_angle >= 235 && _tower_angle < 335)
380
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 235) / 100);
381
        if (_tower_angle >= 335)
382
            xx = lerp(0, piecemaxdistance, (_tower_angle - 335) / 100);
383
        if (_tower_angle <= 75)
384
            xx = lerp(0, piecemaxdistance, (25 + _tower_angle) / 100);
385
        if (_tower_angle > 75 && _tower_angle < 235)
386
        {
387
            vis = false;
388
            vis[i][7] = false;
389
            towerback = true;
390
        }
391
        else
392
        {
393
            vis[i][7] = true;
394
        }
395
    }
396
    if (ii == 8)
397
    {
398
        if (_tower_angle >= 270)
399
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 270) / 100);
400
        if (_tower_angle <= 10)
401
            xx = lerp(0, piecemaxdistance, (_tower_angle - 10) / 100);
402
        if (_tower_angle >= 10 && _tower_angle <= 110)
403
            xx = lerp(0, piecemaxdistance, (_tower_angle - 10) / 100);
404
        if (_tower_angle > 110 && _tower_angle < 270)
405
        {
406
            vis = false;
407
            vis[i][8] = false;
408
            towerback = true;
409
            if (_tower_angle >= 110 && _tower_angle < 190)
410
                xx = lerp(piecemaxdistance, 0, (_tower_angle - 110) / 80);
411
            if (_tower_angle >= 190 && _tower_angle < 270)
412
                xx = lerp(0, piecemaxdistance * -1, (_tower_angle - 190) / 80);
413
        }
414
        else
415
        {
416
            vis[i][8] = true;
417
        }
418
    }
419
    if (ii == 9)
420
    {
421
        if (_tower_angle >= 305)
422
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 305) / 100);
423
        if (_tower_angle <= 45)
424
            xx = lerp(0, piecemaxdistance, (_tower_angle - 45) / 100);
425
        if (_tower_angle >= 45 && _tower_angle <= 145)
426
            xx = lerp(0, piecemaxdistance, (_tower_angle - 45) / 100);
427
        if (_tower_angle > 145 && _tower_angle < 305)
428
        {
429
            vis = false;
430
            vis[i][9] = false;
431
            towerback = true;
432
            if (_tower_angle >= 145 && _tower_angle < 225)
433
                xx = lerp(piecemaxdistance, 0, (_tower_angle - 145) / 80) + 2;
434
            if (_tower_angle >= 225 && _tower_angle < 305)
435
                xx = lerp(0, piecemaxdistance * -1, (_tower_angle - 225) / 80) + 2;
436
        }
437
        else
438
        {
439
            vis[i][9] = true;
440
        }
441
    }
442
    if (xx < (piecemaxdistance * -0.93))
443
        ladder_index = 0;
444
    else if (xx < (piecemaxdistance * -0.7))
445
        ladder_index = 1;
446
    else if (xx < (piecemaxdistance * -0.65))
447
        ladder_index = 2;
448
    else if (xx < (piecemaxdistance * -0.44))
449
        ladder_index = 3;
450
    else if (xx < (piecemaxdistance * 0.44))
451
        ladder_index = 4;
452
    else if (xx < (piecemaxdistance * 0.65))
453
        ladder_index = 5;
454
    else if (xx < (piecemaxdistance * 0.78))
455
        ladder_index = 6;
456
    else if (xx <= (piecemaxdistance * 0.93))
457
        ladder_index = 7;
458
    else if (xx > (piecemaxdistance * 0.93))
459
        ladder_index = 8;
460
    else
461
        ladder_index = 9;
462
}