Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_bullet_homing_Step_0

(view raw script w/o annotations or w/e)
1
mask_index = spr_sunspark;
2
event_inherited();
3
if (i_ex(obj_heart))
4
{
5
    if (home_level && home_timer >= home_delay)
6
    {
7
        direction += 
scr_anglechange
scr_anglechange

function
scr_anglechange(arg0, arg1, arg2)
{ arg0 = median(-arg2, arg2, angle_difference(arg1, arg0)); return arg0; }
(direction, point_direction(x, y, obj_heart.x + 10, obj_heart.y + 10), home_level / speed);
8
        speed = min(speed, speed_limit);
9
        home_level = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(home_level, home_floor, home_decay);
10
    }
11
}
12
home_timer++;
13
if (overpower && global.turntimer > 2)
14
{
15
    with (obj_precipitation_bullet_parent)
16
    {
17
        if (point_distance(x, y, other.x, other.y) < (15 * other.overpower))
18
        {
19
            instance_destroy();
20
            with (instance_create(x, y, obj_regularbullet))
21
            {
22
                active = false;
23
                spin = 1;
24
                spinspeed = random(5) - 0.25;
25
                direction = 70 + random(40);
26
                speed = 1 + random(1);
27
                image_xscale = 0.5;
28
                image_yscale = 0.5;
29
                sprite_index = spr_cakesmoke;
30
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_alpha", 1, 0, 30);
31
                
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; }
(instance_destroy, 30);
32
            }
33
        }
34
    }
35
}
36
timer++;
37
if (timer > 50)
38
    image_alpha -= 0.1;