Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_watercooler_bullet_rainball_Step_0

(view raw script w/o annotations or w/e)
1
timer++;
2
var mybulletsprite = bulletsprite;
3
var destroybulletid = -4;
4
if (timer >= threshold)
5
{
6
    var bulletangle = floor(random(360));
7
    var bulletdist = 150;
8
    var bulletgravity = 0.2;
9
    var heartangle = point_direction(x, y, obj_heart.x + 8, obj_heart.y + 8);
10
    if (count == 4)
11
        bulletangle = heartangle + random_range(-30, 30);
12
    if (count == 5)
13
    {
14
        bulletangle = heartangle;
15
        count = 0;
16
    }
17
    var rainbullet = 
scr_bullet_create
scr_bullet_create

function
scr_bullet_create(arg0, arg1, arg2)
{ var __newbullet = instance_create(arg0, arg1, arg2); __newbullet.damage = damage; __newbullet.target = target; if (variable_instance_exists(self, "element")) __newbullet.element = element; return __newbullet; }
(x + lengthdir_x(bulletdist, bulletangle), y + lengthdir_y(bulletdist, bulletangle), obj_regularbullet);
18
    rainbullet.sprite_index = mybulletsprite;
19
    rainbullet.mybulletgravity = bulletgravity;
20
    rainbullet.mybulletdist = bulletdist;
21
    rainbullet.mybulletangle = bulletangle;
22
    rainbullet.mybulletspeed = 0;
23
    rainbullet.image_alpha = 0;
24
    rainbullet.boss = id;
25
    rainbullet.grazepoints = 1;
26
    snd_play_x(snd_wing, 0.3 + (size / 8), 0.5 + random(0.1));
27
    count++;
28
    timer = 0;
29
}
30
if (amount > 1 && global.turntimer > 10)
31
{
32
    var colcheck = collision_rectangle(bbox_left, bbox_top, bbox_right, bbox_bottom, obj_regularbullet, false, 1);
33
    if (colcheck != -4)
34
    {
35
        if (colcheck.object_index == object_index)
36
            colcheck = -4;
37
        else
38
            destroybulletid = colcheck;
39
    }
40
}
41
with (obj_regularbullet)
42
{
43
    if (sprite_index == mybulletsprite)
44
    {
45
        if (boss == other.id)
46
        {
47
            image_angle = mybulletangle + 180;
48
            image_alpha += 0.1;
49
            mybulletspeed += mybulletgravity;
50
            mybulletdist -= mybulletspeed;
51
            x = other.x + lengthdir_x(mybulletdist, mybulletangle);
52
            y = other.y + lengthdir_y(mybulletdist, mybulletangle);
53
            if (mybulletdist <= (0 + (other.sprite_width / 2)))
54
                destroybulletid = id;
55
        }
56
    }
57
}
58
if (destroybulletid != -4)
59
{
60
    with (destroybulletid)
61
    {
62
        other.size += 0.05;
63
        var myanim = instance_create(x, y, obj_animation);
64
        myanim.image_angle = image_angle + 90;
65
        myanim.sprite_index = spr_raindrop_splash;
66
        myanim.image_xscale = 0.5;
67
        myanim.image_yscale = 0.5;
68
        snd_play_x(snd_bump, 0.5, 0.5 + ((other.size - 1) / 4));
69
        if (global.turntimer < 10)
70
        {
71
            with (myanim)
72
                instance_destroy();
73
        }
74
        instance_destroy();
75
    }
76
}
77
regrazetimer++;
78
if (regrazetimer >= 10)
79
{
80
    grazed = 0;
81
    regrazetimer = 0;
82
}
83
if (special == 1)
84
{
85
    siner++;
86
    x = xstart + (((sin(siner / 10) * siner) / 10) * side);
87
}
88
if (special == 2)
89
{
90
    siner++;
91
    x = xstart + (sin(siner / 10) * 2);
92
    y = ystart + (cos(siner / 10) * 2);
93
    var angleadd = sin(siner / 20) * 2;
94
    with (obj_regularbullet)
95
    {
96
        if (sprite_index == mybulletsprite)
97
        {
98
            if (boss == other.id)
99
                mybulletangle += angleadd;
100
        }
101
    }
102
}
103
if (special == 3 || special == 4)
104
{
105
    threshold = 8;
106
    siner++;
107
    if (i_ex(obj_growtangle))
108
    {
109
        x = obj_growtangle.x + (sin(siner / 40) * 50 * side);
110
        y = obj_growtangle.y + (cos(siner / 40) * 50 * side);
111
    }
112
    if (special == 4)
113
    {
114
        with (obj_regularbullet)
115
        {
116
            if (sprite_index == mybulletsprite)
117
            {
118
                if (boss == other.id)
119
                    mybulletangle += (1 * other.side);
120
            }
121
        }
122
    }
123
}