Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_swatchling_bird_Step_0

(view raw script w/o annotations or w/e)
1
if (init == 0)
2
{
3
    startcolor = image_blend;
4
    init = 1;
5
    angle_offset = (startcolor == c_orange) ? random_range(-15, 15) : random_range(-10, 10);
6
    if (platter_spawn)
7
    {
8
        type = 1;
9
        direction = 270;
10
        image_alpha = 1;
11
        target_speed = speed;
12
        speed = 1;
13
        platterspawn = false;
14
        if (fixed_angle)
15
        {
16
            var targetdir = point_direction(x, y, obj_heart.x + 10, obj_heart.y + 10);
17
            var centerdir = point_direction(x, y, obj_growtangle.x, obj_growtangle.y);
18
            var centerdir2 = 
scr_rotatetowards_unclamped
scr_rotatetowards_unclamped

function
scr_rotatetowards_unclamped(arg0, arg1, arg2)
{ var __diff = angle_difference(arg1, arg0); return arg0 + (sign(__diff) * arg2); }
(targetdir, centerdir, random_range(15, 30));
19
            targetdir = 
scr_rotatetowards_unclamped
scr_rotatetowards_unclamped

function
scr_rotatetowards_unclamped(arg0, arg1, arg2)
{ var __diff = angle_difference(arg1, arg0); return arg0 + (sign(__diff) * arg2); }
(targetdir, centerdir, -random_range(15, 30));
20
            if (image_xscale > 0)
21
                targetdir = max(targetdir, 280);
22
            else
23
                targetdir = min(targetdir, 260);
24
            target_angle = 
scr_rotatetowards_unclamped
scr_rotatetowards_unclamped

function
scr_rotatetowards_unclamped(arg0, arg1, arg2)
{ var __diff = angle_difference(arg1, arg0); return arg0 + (sign(__diff) * arg2); }
(targetdir, centerdir, random_range(15, 30));
25
        }
26
    }
27
    else
28
    {
29
        type = 2;
30
        direction = point_direction(xstart, ystart, obj_heart.x + 10, obj_heart.y + 10) + random_range(-5, 5);
31
    }
32
}
33
if (speed < target_speed)
34
{
35
    spawntimer++;
36
    if (startcolor == c_orange)
37
        speed = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); }
(speed, target_speed, 0.2);
38
    else
39
        speed = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); }
(speed, target_speed, 0.25);
40
    if (fixed_angle)
41
    {
42
        direction = lerp(270, target_angle, (speed - 1) / (target_speed - 1));
43
    }
44
    else
45
    {
46
        target_angle = point_direction(x, y, obj_heart.x + 10, obj_heart.y + 10) + angle_offset;
47
        direction = 
scr_rotatetowards
scr_rotatetowards

function
scr_rotatetowards(arg0, arg1, arg2)
{ var __diff = angle_difference(arg1, arg0); if (abs(__diff) > arg2) return arg0 + (sign(__diff) * arg2); else return arg1; } function scr_angle_lerp(arg0, arg1, arg2) { var __diff = angle_difference(arg1, arg0); return arg0 + lerp(0, __diff, arg2); }
(direction, target_angle, 15);
48
    }
49
    if (spawntimer == 6)
50
        depth -= 11;
51
}
52
if (type == 2)
53
{
54
    if (x > xstart)
55
        image_xscale = 1;
56
    else
57
        image_xscale = -1;
58
}