Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_bullet_almond_Other_15

(view raw script w/o annotations or w/e)
1
event_inherited();
2
if (obj_heart.press_u || obj_heart.press_d || obj_heart.press_l || obj_heart.press_r)
3
{
4
    if (!active)
5
    {
6
        instance_destroy();
7
        if (creatorid != -1)
8
        {
9
            with (creatorid)
10
            {
11
                idlesprite = spr_holywater_alarm;
12
                awake = true;
13
            }
14
        }
15
        snd_play(snd_rocket);
16
        global.turntimer = 180;
17
        with (obj_dbulletcontroller)
18
        {
19
            if (variable_instance_exists(id, "alm_activated"))
20
                alm_activated = true;
21
        }
22
        var eye_list = ds_list_create();
23
        with (obj_bullet_almond)
24
        {
25
            active = true;
26
            activated = true;
27
            image_blend = c_white;
28
            image_alpha = 1;
29
            if (irandom(1))
30
                my_dir = 
scr_at_player
scr_at_player

function
scr_at_player(arg0 = x, arg1 = y)
{ return point_direction(arg0, arg1, obj_heart.x + (obj_heart.sprite_width / 2), obj_heart.y + (obj_heart.sprite_height / 2)); }
(x, y) + irandom_range(-30, 30);
31
            else
32
                my_dir = point_direction(x, y, obj_growtangle.x + irandom_range(-70, 70), obj_growtangle.y + irandom_range(-70, 70));
33
            direction = my_dir;
34
            speed = 0.5;
35
            alarm[0]
 = 3;
gml_Object_obj_bullet_almond_Alarm_0.gml

alarm[2]
 = 3;
image_blend = c_gray;
36
            gravity_direction = my_dir;
37
            friction = -0.15;
38
            ds_list_add(eye_list, id);
39
        }
40
        ds_list_shuffle(eye_list);
41
        if (ds_list_size(eye_list) > (5 + danger_level))
42
        {
43
            repeat (ds_list_size(eye_list) - (5 + danger_level))
44
            {
45
                with (ds_list_find_value(eye_list, 0))
46
                {
47
                    my_dir = 
scr_at_player
scr_at_player

function
scr_at_player(arg0 = x, arg1 = y)
{ return point_direction(arg0, arg1, obj_heart.x + (obj_heart.sprite_width / 2), obj_heart.y + (obj_heart.sprite_height / 2)); }
(x, y) + 180 + irandom_range(-30, 30);
48
                    direction = my_dir;
49
                    gravity_direction = my_dir;
50
                }
51
                ds_list_delete(eye_list, 0);
52
            }
53
        }
54
        if (ds_list_size(eye_list))
55
        {
56
            ds_list_find_value(eye_list, 0).my_dir = 
scr_at_player
scr_at_player

function
scr_at_player(arg0 = x, arg1 = y)
{ return point_direction(arg0, arg1, obj_heart.x + (obj_heart.sprite_width / 2), obj_heart.y + (obj_heart.sprite_height / 2)); }
(ds_list_find_value(eye_list, 0).x, ds_list_find_value(eye_list, 0).y);
57
            ds_list_find_value(eye_list, 0).direction = ds_list_find_value(eye_list, 0).my_dir;
58
            ds_list_find_value(eye_list, 0).gravity_direction = ds_list_find_value(eye_list, 0).my_dir;
59
        }
60
        ds_list_destroy(eye_list);
61
    }
62
}
63
if (active)
64
    event_user(1);