Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_ch5_DW29_power_up_bullet_spawner_Create_0

(view raw script w/o annotations or w/e)
1
_parent = -4;
2
_init_pos = -4;
3
_target_pos = -4;
4
_bullet_sprite = -4;
5
_bullet_pool = [];
6
_active = false;
7
_timer = 0;
8
_time = 8;
9
10
create_bullet = function(arg0, arg1)
11
{
12
    var bullet = instance_create(0, 0, obj_ch5_DW29_power_up_bullet);
13
    bullet.create(id, arg0, new Vector2(view_wport[0] / 2, 970), arg1);
14
    return bullet;
15
};
16
17
get_bullet = function()
18
{
19
    var ready_bullet = -4;
20
    for (var i = 0; i < array_length(_bullet_pool); i++)
21
    {
22
        var bullet = _bullet_pool[i];
23
        if (bullet.is_active())
24
            continue;
25
        ready_bullet = bullet;
26
        break;
27
    }
28
    if (ready_bullet == -4)
29
    {
30
        ready_bullet = create_bullet(new Vector2(x, y - 10), _bullet_sprite);
31
        _bullet_pool[array_length(_bullet_pool)] = ready_bullet;
32
    }
33
    return ready_bullet;
34
};
35
36
start_spawning = function(arg0, arg1, arg2, arg3)
37
{
38
    _parent = arg0;
39
    _bullet_sprite = arg3;
40
    x = arg1.x;
41
    y = arg1.y;
42
    _target_pos = arg2;
43
    _active = true;
44
};
45
46
fade_out = function()
47
{
48
    stop();
49
    for (var i = 0; i < array_length(_bullet_pool); i++)
50
    {
51
        var bullet = _bullet_pool[i];
52
        with (bullet)
53
            fade_out();
54
    }
55
};
56
57
trigger_event = function(arg0)
58
{
59
    if (arg0 != "bullet_finished")
60
        exit;
61
    var all_stopped = true;
62
    for (var i = 0; i < array_length(_bullet_pool); i++)
63
    {
64
        var bullet = _bullet_pool[i];
65
        if (bullet.is_active())
66
        {
67
            all_stopped = false;
68
            break;
69
        }
70
    }
71
    if (!all_stopped)
72
        exit;
73
    with (_parent)
74
        trigger_event("spawner_finished");
75
};
76
77
stop = function()
78
{
79
    _active = false;
80
};
81
82
clean_up = function()
83
{
84
    for (var i = 0; i < array_length(_bullet_pool); i++)
85
    {
86
        var bullet = _bullet_pool[i];
87
        with (bullet)
88
            clean_up();
89
    }
90
    instance_destroy();
91
};