Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_pipis_controller_Draw_0

(view raw script w/o annotations or w/e)
1
siner += 0.25;
2
var xx = (camerax() + camerawidth()) - 10;
3
var yy = ((cameray() + cameraheight()) - 230) + (sin(siner / 6) * 21);
4
var shake = 0;
5
if (sprite_index == spr_sneo_arml_egg)
6
    shake = -4 + random(8);
7
if (movecon == 0)
8
{
9
    movetimer++;
10
    xx = lerp(camerax() + camerawidth() + 70, (camerax() + camerawidth()) - 10, movetimer / 10);
11
    if (movetimer == 10)
12
    {
13
        movetimer = 0;
14
        movecon = 1;
15
    }
16
}
17
if (global.turntimer < 16)
18
    movecon = 2;
19
if (movecon == 2)
20
{
21
    movetimer++;
22
    xx = lerp((camerax() + camerawidth()) - 10, camerax() + camerawidth() + 70, movetimer / 10);
23
    if (movetimer == 10)
24
        instance_destroy();
25
}
26
if (variant == 3 && movecon == 1)
27
{
28
    if (con == 0)
29
    {
30
        timer++;
31
        if (timer >= 1)
32
        {
33
            if (!instance_exists(obj_pipis_wall))
34
            {
35
                wall = instance_create(obj_growtangle.x + 200, obj_growtangle.y + (obj_growtangle.sprite_height / 2) + 60, obj_pipis_wall);
36
                wall.image_xscale = 2.5;
37
            }
38
            con = 1;
39
            timer = 0;
40
        }
41
    }
42
    if (con == 1)
43
    {
44
        repeat (3)
45
        {
46
            if (irandom(10) < 6)
47
            {
48
                bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_sneo_pipis_bomb);
49
                bul.gravity = 0.2 + (random(3) / 100);
50
                bul.vspeed = -6 - random(2);
51
                bul.hspeed = -1.8 - random(1.5);
52
                bul.target = target;
53
                bul.damage = damage;
54
                bul.depth = depth - 1;
55
                bul.directhit = 1;
56
            }
57
            else
58
            {
59
                bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_pipis_egg_bullet);
60
                bul.type = 3;
61
                bul.gravity = 0.2 + (random(3) / 100);
62
                bul.vspeed = -6 - random(2);
63
                bul.hspeed = -1.6 - random(3);
64
                bul.target = target;
65
                bul.damage = damage;
66
                bul.depth = depth - 1;
67
                bul.directhit = 1;
68
            }
69
        }
70
        sprite_index = spr_sneo_arml;
71
        angle_final = -180 + random(50);
72
        repeat (3)
73
        {
74
            bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_sneo_armcannon_smoke);
75
            bul.depth = depth - 2;
76
        }
77
        con = 2;
78
    }
79
    if (con == 2)
80
    {
81
        timer++;
82
        if (timer < 11)
83
            image_angle = lerp(image_angle, angle_final, timer / 10);
84
        if (timer < (timervariance - 15) && eggcount > 0.4)
85
            image_xscale = lerp(1.8, 2.5, timer / (timervariance - 15));
86
        if (timer == (timervariance - 15) && eggcount > 0.4)
87
        {
88
            sprite_index = spr_sneo_arml_egg;
89
            image_xscale = 2;
90
        }
91
        if (timer >= timervariance)
92
        {
93
            eggcount -= 0.4;
94
            timervariance = 60 + irandom(15);
95
            con = 1;
96
            timer = 0;
97
        }
98
    }
99
}
100
if (variant == 2 && movecon == 1)
101
{
102
    if (con == 0)
103
    {
104
        timer++;
105
        if (timer >= 1)
106
        {
107
            if (!instance_exists(obj_pipis_wall))
108
            {
109
                wall = instance_create(obj_growtangle.x + 200, obj_growtangle.y + (obj_growtangle.sprite_height / 2), obj_pipis_wall);
110
                wall.image_xscale = 2.9;
111
            }
112
            con = 1;
113
            timer = 0;
114
        }
115
    }
116
    if (con == 1)
117
    {
118
        var aa = 1;
119
        pipiscount++;
120
        if (pipiscount == 3 || pipiscount == 5 || pipiscount == 9)
121
            aa = 0;
122
        if (pipiscount == 0 || pipiscount == 4 || pipiscount == 8 || pipiscount == 11)
123
            aa = 1;
124
        if (obj_spamton_neo_enemy.difficulty == 0)
125
        {
126
            var rand = 0.8;
127
            if (global.turntimer > 380)
128
                rand = 0.5;
129
            var rr = 0;
130
            if (instance_number(obj_pipis_egg_bullet) < 2 && global.turntimer < 250)
131
                rr = 1;
132
            if (instance_number(obj_pipis_egg_bullet) < 3 && pipiscount < maxpipis)
133
            {
134
                if (aa == 1)
135
                {
136
                    bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_pipis_egg_bullet);
137
                    bul.type = 2;
138
                    bul.gravity = 0.5 + (random(10) / 100);
139
                    bul.vspeed = -14;
140
                    bul.hspeed = -1.55 - rr - random(rand);
141
                    bul.target = target;
142
                    bul.damage = damage;
143
                    bul.depth = depth - 1;
144
                }
145
                else
146
                {
147
                    bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_pipis_egg_bullet);
148
                    bul.type = 2;
149
                    bul.gravity = 0.063 + (random(4) / 100);
150
                    bul.vspeed = -4.25;
151
                    bul.hspeed = -4;
152
                    bul.target = target;
153
                    bul.damage = damage;
154
                    bul.depth = depth - 1;
155
                    bul.directhit = 1;
156
                }
157
            }
158
        }
159
        else
160
        {
161
            var rr = 0;
162
            if (instance_number(obj_pipis_egg_bullet) < 2 && global.turntimer < 250)
163
                rr = 1;
164
            if (instance_number(obj_pipis_egg_bullet) < 3)
165
            {
166
                var a = -1.6 - random(0.6);
167
                if (aa == 1)
168
                {
169
                    repeat (2)
170
                    {
171
                        bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_pipis_egg_bullet);
172
                        bul.type = 2;
173
                        bul.gravity = 0.5 + (random(10) / 100);
174
                        bul.vspeed = -14;
175
                        bul.hspeed = -1.55 - rr - random(0.8);
176
                        bul.target = target;
177
                        bul.damage = damage;
178
                        bul.depth = depth - 1;
179
                        a = -2.2 - random(0.6);
180
                    }
181
                }
182
                else
183
                {
184
                    bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_pipis_egg_bullet);
185
                    bul.type = 2;
186
                    bul.gravity = 0.063 + (random(4) / 100);
187
                    bul.vspeed = -4.25;
188
                    bul.hspeed = -4;
189
                    bul.target = target;
190
                    bul.damage = damage;
191
                    bul.depth = depth - 1;
192
                    bul.directhit = 1;
193
                    bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_pipis_egg_bullet);
194
                    bul.type = 2;
195
                    bul.gravity = 0.5 + (random(10) / 100);
196
                    bul.vspeed = -14;
197
                    bul.hspeed = -1.4 - random(0.4);
198
                    bul.target = target;
199
                    bul.damage = damage;
200
                    bul.depth = depth - 1;
201
                    a = -2.2 - random(0.6);
202
                }
203
            }
204
        }
205
        sprite_index = spr_sneo_arml;
206
        angle_final = -180 + random(50);
207
        repeat (3)
208
        {
209
            bul = instance_create(xx + 5 + lengthdir_x(50, image_angle + 270), yy + lengthdir_y(50, image_angle + 270), obj_sneo_armcannon_smoke);
210
            bul.depth = depth - 2;
211
        }
212
        con = 2;
213
    }
214
    var r = 1;
215
    if (instance_number(obj_pipis_egg_bullet) < 1)
216
        r = 3;
217
    repeat (r)
218
    {
219
        if (con == 2)
220
        {
221
            timer++;
222
            if (timer < 11)
223
                image_angle = lerp(image_angle, angle_final, timer / 10);
224
            if (timer < (timervariance - 15) && eggcount > 0.4)
225
                image_xscale = lerp(1.8, 2.5, timer / (timervariance - 15));
226
            if (timer == (timervariance - 15) && eggcount > 0.4 && pipiscount < maxpipis)
227
            {
228
                sprite_index = spr_sneo_arml_egg;
229
                image_xscale = 2;
230
            }
231
            if (timer >= timervariance)
232
            {
233
                eggcount -= 0.4;
234
                timervariance = 30 + irandom(15);
235
                if (eggcount > 0)
236
                {
237
                    con = 0;
238
                    timer = 0;
239
                }
240
                else
241
                {
242
                    instance_destroy();
243
                }
244
            }
245
        }
246
    }
247
}
248
draw_sprite_ext(spr_sneo_wingl, 0, xx, yy + 20, 2, 2, 20, c_white, 1);
249
draw_sprite_ext(sprite_index, 1, xx, yy + 11 + (shake / 2), image_xscale, 2, image_angle + shake, c_white, 1);
250
draw_sprite_ext(spr_sneo_body, 0, xx, yy + 20, 2, 2, 0, c_white, 1);
251
draw_sprite_ext(spr_sneo_head, 1, xx + 26, yy, 2, 2, 0, c_white, 1);
252
if (pipiscount >= maxpipis && global.turntimer > 10 && !instance_exists(obj_pipis_egg_bullet))
253
    global.turntimer = 10;
254
if (global.turntimer < 1)
255
    instance_destroy();
256
if (variant == 0)
257
{
258
    if (con == 0)
259
    {
260
        timer++;
261
        if (timer == 1)
262
        {
263
            savex = ((obj_growtangle.x + 220) - 80) + random(160);
264
            instance_create(savex, (obj_growtangle.y - random(30)) + (obj_growtangle.sprite_height / 2), obj_pipis_wall);
265
        }
266
        if (timer >= 10)
267
        {
268
            con = 1;
269
            timer = 0;
270
        }
271
    }
272
    if (con == 1)
273
    {
274
        bul = instance_create(savex, cameray() - 20, obj_pipis_egg_bullet);
275
        bul.gravity = 0.2 + (random(10) / 100);
276
        bul.target = target;
277
        bul.damage = damage;
278
        con = 2;
279
    }
280
    if (con == 2)
281
    {
282
        timer++;
283
        if (timer >= 50)
284
        {
285
            eggcount--;
286
            if (eggcount > 0)
287
            {
288
                con = 0;
289
                timer = 0;
290
                with (obj_pipis_wall)
291
                    con = 1;
292
            }
293
            else
294
            {
295
                instance_destroy();
296
            }
297
        }
298
    }
299
}
300
if (variant == 1)
301
{
302
    if (con == 0)
303
    {
304
        timer++;
305
        if (timer == 1)
306
        {
307
            wall = instance_create(((obj_growtangle.x + 190) - 50) + random(100), obj_growtangle.y + (obj_growtangle.sprite_height / 2), obj_pipis_wall);
308
            wall.type = 1;
309
        }
310
        if (timer >= 10)
311
        {
312
            con = 1;
313
            timer = 0;
314
        }
315
    }
316
    if (con == 1)
317
    {
318
        bul = instance_create(wall.x, cameray() - 20, obj_pipis_egg_bullet);
319
        bul.gravity = 0.2 + (random(10) / 100);
320
        bul.type = 1;
321
        bul.parent = wall.id;
322
        bul.target = target;
323
        bul.damage = damage;
324
        con = 2;
325
    }
326
    if (con == 2)
327
    {
328
        timer++;
329
        if (timer >= 50)
330
        {
331
            eggcount--;
332
            if (eggcount > 0)
333
            {
334
                con = 0;
335
                timer = -40;
336
                with (wall)
337
                    con = 1;
338
            }
339
            else
340
            {
341
                instance_destroy();
342
            }
343
        }
344
    }
345
    if (con2 == 0)
346
    {
347
        timer2++;
348
        if (timer2 == 40)
349
        {
350
            wall2 = instance_create(((obj_growtangle.x + 280) - 50) + random(100), obj_growtangle.y - (obj_growtangle.sprite_height / 2), obj_pipis_wall);
351
            wall2.type = 1;
352
        }
353
        if (timer2 >= 50)
354
        {
355
            con2 = 1;
356
            timer2 = 0;
357
        }
358
    }
359
    if (con2 == 1)
360
    {
361
        bul = instance_create(wall2.x, cameray() + cameraheight() + 20, obj_pipis_egg_bullet);
362
        bul.gravity = 0.2 + (random(10) / 100);
363
        bul.gravity_direction = 90;
364
        bul.type = 1;
365
        bul.parent = wall2.id;
366
        bul.target = target;
367
        bul.damage = damage;
368
        con2 = 2;
369
    }
370
    if (con2 == 2)
371
    {
372
        timer2++;
373
        if (timer2 >= 50)
374
        {
375
            eggcount--;
376
            if (eggcount > 0)
377
            {
378
                con2 = 0;
379
                timer2 = 0;
380
                with (wall2)
381
                    con = 1;
382
            }
383
            else
384
            {
385
                instance_destroy();
386
            }
387
        }
388
    }
389
    timer3++;
390
    if (timer3 == 150)
391
    {
392
        bul = instance_create(camerax() + camerawidth(), obj_growtangle.y, obj_pipis_egg_bullet);
393
        bul.gravity = 0.6 + (random(10) / 100);
394
        bul.gravity_direction = 180;
395
        bul.target = target;
396
        bul.damage = damage;
397
    }
398
}