Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_overworld_danmaku_spawner_Step_0

(view raw script w/o annotations or w/e)
1
if (init == 0)
2
{
3
    if (image_index != 0)
4
    {
5
        start_angle = (image_index - 1) * 45;
6
        rotation = 0;
7
    }
8
    else
9
    {
10
        image_index = round(scr_loop(true_angle, 360) / 45) + 1;
11
    }
12
    init = 1;
13
    timer = start_delay;
14
    if (range < 360)
15
        true_angle = lerp(-range / 2, range / 2, start_amount);
16
}
17
if (init == -1)
18
    exit;
19
timer--;
20
if (timer <= 0)
21
{
22
    var _trangle = true_angle;
23
    if (loop_type == 0)
24
        _trangle = scr_loop_ext(true_angle, -range / 2, range / 2);
25
    else if (loop_type == 1)
26
        _trangle = scr_pingpong_ext(true_angle, -range / 2, range / 2);
27
    else if (loop_type == 2)
28
        _trangle = random_range(-range / 2, range / 2);
29
    image_index = round(scr_loop(true_angle, 360) / 45) + 1;
30
    var _sangle = _trangle + start_angle;
31
    if (loop_type != 2 && spread_angle < 360)
32
        _sangle -= (spread_angle / 2);
33
    repeat (shot_count)
34
    {
35
        d = instance_create(x, y, child_bullet);
36
        d.direction = _sangle;
37
        if (angle_bullet)
38
            d.image_angle = _sangle;
39
        d.damage = damage;
40
        if (child_speed > -999)
41
            d.speed = child_speed;
42
        d.destroyoffscreen = false;
43
        d.special = special;
44
        if (loop_type == 2)
45
            _sangle = start_angle + random_range(-range / 2, range / 2);
46
        else if (spread_angle < 360)
47
            _sangle += (spread_angle / (shot_count - 1));
48
        else
49
            _sangle += (spread_angle / shot_count);
50
    }
51
    timer = fire_rate;
52
    if (loop_type != 2)
53
    {
54
        true_angle += rotation;
55
        if (true_angle > (range * 2))
56
            true_angle -= (range * 2);
57
        else if (true_angle < (-range * 2))
58
            true_angle += (range * 2);
59
    }
60
}