Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_bqueen_missle_controller_Draw_0

(view raw script w/o annotations or w/e)
1
draw_sprite_ext(sprite_index, image_index, x - 2, y + 135, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
2
introtimer++;
3
if (introtimer == 15)
4
    image_speed = 0.4;
5
if (image_index >= 2)
6
{
7
    if (openmisslechambertimer == 0)
8
        snd_play(snd_grab);
9
    if (openmisslechambertimer < 5)
10
    {
11
        openmisslechambertimer += 1;
12
        x = (xstart + (4 / openmisslechambertimer)) - irandom(8 / openmisslechambertimer);
13
        y = (ystart + (4 / openmisslechambertimer)) - irandom(8 / openmisslechambertimer);
14
        image_speed = 0;
15
    }
16
    else
17
    {
18
        misslewaittimer++;
19
        x = xstart;
20
        y = ystart;
21
    }
22
}
23
if (misslewaittimer < 1)
24
    exit;
25
if (!oldmode)
26
{
27
    if (con == 0)
28
    {
29
        timer++;
30
        if (timer >= 20)
31
        {
32
            timer = 0;
33
            con = 1;
34
        }
35
    }
36
    if (con == 1)
37
    {
38
        var makeshot = 0;
39
        timer--;
40
        if (timer <= 0 && shotcount < (3 + difficulty))
41
        {
42
            volleytimer--;
43
            if (volleytimer <= 0)
44
            {
45
                makeshot = 1;
46
                volleycount++;
47
                volleytimer = 5;
48
            }
49
            if (volleycount >= volleytotal)
50
            {
51
                makeshot = 0;
52
                side = choose(1, -1);
53
                timer = 30;
54
                if (difficulty == 1)
55
                    timer = 15;
56
                volleycount = -1;
57
                shotcount++;
58
            }
59
        }
60
        if (makeshot && volleycount != 3)
61
        {
62
            var _y = 0;
63
            if (volleycount >= 3)
64
                _y += 20;
65
            snd_stop(snd_rocket);
66
            snd_play(snd_rocket);
67
            d = instance_create(x + missilex[volleycount], y + 16 + _y, obj_bqueen_missle_homing);
68
            d.vspeed = -6;
69
            d.hspeed = choose(2, -2, 4, -4);
70
            d.damage = damage;
71
            d.target = target;
72
            d.depth = bulletdepth;
73
            with (d)
74
            {
75
                image_angle = direction - 90;
76
                var cloud = scr_afterimage_grow
scr_afterimage_grow

function scr_afterimage_grow() { afterimage = instance_create(x, y, obj_afterimage_grow); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; }
();
77
                cloud.sprite_index = spr_cakesmoke_white;
78
            }
79
        }
80
    }
81
    if (global.turntimer < 3)
82
        instance_destroy();
83
}
84
else if (oldmode)
85
{
86
    siner += 0.7;
87
    x = xstart + 20 + (sin(siner / 6) * 54);
88
    timer++;
89
    if (timer > 9)
90
    {
91
        bulletcount++;
92
        if (bulletcount == bulletcountmax)
93
        {
94
            timer = -7;
95
            bulletcount = 0;
96
            bulletcountmax = 8;
97
        }
98
        else
99
        {
100
            d = instance_create((x - 55) + random(20), y + 36, obj_bqueen_missle);
101
            d.damage = damage;
102
            d.target = target;
103
            d.depth = bulletdepth;
104
            d = instance_create((x + 55) - random(20), y + 36, obj_bqueen_missle);
105
            d.damage = damage;
106
            d.target = target;
107
            d.depth = bulletdepth;
108
            timer = 5;
109
        }
110
    }
111
    if (global.turntimer < 3)
112
        instance_destroy();
113
}