Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_rotating_tower_controller_old_Other_20

(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) + 4;
256
        if (_tower_angle < 90)
257
            xx = lerp(piecemaxdistance * -1, 0, (10 + _tower_angle) / 100) + 4;
258
        if (_tower_angle >= 90 && _tower_angle < 190)
259
            xx = lerp(0, piecemaxdistance, (_tower_angle - 90) / 100) + 4;
260
        if (_tower_angle > 190 && _tower_angle < 350)
261
            vis = false;
262
    }
263
    if (ii == 1)
264
    {
265
        if (_tower_angle >= 25 && _tower_angle < 125)
266
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 25) / 100) + 2;
267
        if (_tower_angle >= 125 && _tower_angle < 225)
268
            xx = lerp(0, piecemaxdistance, (_tower_angle - 125) / 100) + 2;
269
        if (_tower_angle > 225 || _tower_angle < 25)
270
        {
271
            vis = false;
272
            towerback = true;
273
        }
274
    }
275
    if (ii == 2)
276
    {
277
        if (_tower_angle >= 60 && _tower_angle < 160)
278
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 60) / 100);
279
        if (_tower_angle >= 160 && _tower_angle < 260)
280
            xx = lerp(0, piecemaxdistance, (_tower_angle - 160) / 100);
281
        if (_tower_angle > 260 || _tower_angle < 60)
282
        {
283
            vis = false;
284
            towerback = true;
285
        }
286
    }
287
    if (ii == 3)
288
    {
289
        if (_tower_angle >= 95 && _tower_angle < 195)
290
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 95) / 100);
291
        if (_tower_angle >= 195 && _tower_angle < 295)
292
            xx = lerp(0, piecemaxdistance, (_tower_angle - 195) / 100);
293
        if (_tower_angle > 330 || _tower_angle < 130)
294
        {
295
            vis = false;
296
            towerback = true;
297
        }
298
    }
299
    if (ii == 4)
300
    {
301
        if (_tower_angle >= 130 && _tower_angle < 230)
302
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 130) / 100);
303
        if (_tower_angle >= 230 && _tower_angle < 330)
304
            xx = lerp(0, piecemaxdistance, (_tower_angle - 230) / 100);
305
        if (_tower_angle > 330 || _tower_angle < 130)
306
        {
307
            vis = false;
308
            towerback = true;
309
        }
310
    }
311
    if (ii == 5)
312
    {
313
        if (_tower_angle >= 165 && _tower_angle < 265)
314
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 165) / 100);
315
        if (_tower_angle >= 265)
316
            xx = lerp(0, piecemaxdistance, (_tower_angle - 265) / 100);
317
        if (_tower_angle <= 5)
318
            xx = lerp(0, piecemaxdistance, (95 + _tower_angle) / 100);
319
        if (_tower_angle > 5 && _tower_angle < 165)
320
        {
321
            vis = false;
322
            towerback = true;
323
        }
324
    }
325
    if (ii == 6)
326
    {
327
        if (_tower_angle >= 200 && _tower_angle < 300)
328
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 200) / 100);
329
        if (_tower_angle >= 300)
330
            xx = lerp(0, piecemaxdistance, (_tower_angle - 300) / 100);
331
        if (_tower_angle <= 40)
332
            xx = lerp(0, piecemaxdistance, (60 + _tower_angle) / 100);
333
        if (_tower_angle > 40 && _tower_angle < 200)
334
        {
335
            vis = false;
336
            towerback = true;
337
        }
338
    }
339
    if (ii == 7)
340
    {
341
        if (_tower_angle >= 235 && _tower_angle < 335)
342
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 235) / 100);
343
        if (_tower_angle >= 335)
344
            xx = lerp(0, piecemaxdistance, (_tower_angle - 335) / 100);
345
        if (_tower_angle <= 75)
346
            xx = lerp(0, piecemaxdistance, (25 + _tower_angle) / 100);
347
        if (_tower_angle > 75 && _tower_angle < 235)
348
        {
349
            vis = false;
350
            towerback = true;
351
        }
352
    }
353
    if (ii == 8)
354
    {
355
        if (_tower_angle >= 270)
356
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 270) / 100) - 2;
357
        if (_tower_angle <= 10)
358
            xx = lerp(0, piecemaxdistance, (_tower_angle - 10) / 100) - 2;
359
        if (_tower_angle >= 10 && _tower_angle <= 110)
360
            xx = lerp(0, piecemaxdistance, (_tower_angle - 10) / 100) - 2;
361
        if (_tower_angle > 110 && _tower_angle < 270)
362
        {
363
            vis = false;
364
            towerback = true;
365
            if (_tower_angle >= 110 && _tower_angle < 190)
366
                xx = lerp(piecemaxdistance, 0, (_tower_angle - 110) / 80) + 2;
367
            if (_tower_angle >= 190 && _tower_angle < 270)
368
                xx = lerp(0, piecemaxdistance * -1, (_tower_angle - 190) / 80) + 2;
369
        }
370
    }
371
    if (ii == 9)
372
    {
373
        if (_tower_angle >= 305)
374
            xx = lerp(piecemaxdistance * -1, 0, (_tower_angle - 305) / 100) - 4;
375
        if (_tower_angle <= 45)
376
            xx = lerp(0, piecemaxdistance, (_tower_angle - 45) / 100) - 4;
377
        if (_tower_angle >= 45 && _tower_angle <= 145)
378
            xx = lerp(0, piecemaxdistance, (_tower_angle - 45) / 100) - 4;
379
        if (_tower_angle > 145 && _tower_angle < 305)
380
        {
381
            vis = false;
382
            towerback = true;
383
            if (_tower_angle >= 145 && _tower_angle < 225)
384
                xx = lerp(piecemaxdistance, 0, (_tower_angle - 145) / 80) + 2;
385
            if (_tower_angle >= 225 && _tower_angle < 305)
386
                xx = lerp(0, piecemaxdistance * -1, (_tower_angle - 225) / 80) + 2;
387
        }
388
    }
389
    if (xx < (piecemaxdistance * -0.93))
390
        ladder_index = 0;
391
    else if (xx < (piecemaxdistance * -0.7))
392
        ladder_index = 1;
393
    else if (xx < (piecemaxdistance * -0.65))
394
        ladder_index = 2;
395
    else if (xx < (piecemaxdistance * -0.44))
396
        ladder_index = 3;
397
    else if (xx < (piecemaxdistance * 0.44))
398
        ladder_index = 4;
399
    else if (xx < (piecemaxdistance * 0.65))
400
        ladder_index = 5;
401
    else if (xx < (piecemaxdistance * 0.78))
402
        ladder_index = 6;
403
    else if (xx <= (piecemaxdistance * 0.93))
404
        ladder_index = 7;
405
    else if (xx > (piecemaxdistance * 0.93))
406
        ladder_index = 8;
407
    else
408
        ladder_index = 9;
409
}