Deltarune 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(argument0, argument1, argument2) //gml_Script_scr_rotatetowards_unclamped { var __diff = angle_difference(argument1, argument0) return (argument0 + sign(__diff) * argument2); }
(targetdir, centerdir, random_range(15, 30))
19
            targetdir = scr_rotatetowards_unclamped
scr_rotatetowards_unclamped

function scr_rotatetowards_unclamped(argument0, argument1, argument2) //gml_Script_scr_rotatetowards_unclamped { var __diff = angle_difference(argument1, argument0) return (argument0 + sign(__diff) * argument2); }
(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(argument0, argument1, argument2) //gml_Script_scr_rotatetowards_unclamped { var __diff = angle_difference(argument1, argument0) return (argument0 + sign(__diff) * argument2); }
(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
        debug_message(string(direction))
32
    }
33
}
34
if (speed < target_speed)
35
{
36
    spawntimer++
37
    if (startcolor == c_orange)
38
        speed = scr_movetowards
scr_movetowards

function scr_movetowards(argument0, argument1, argument2) //gml_Script_scr_movetowards { if (argument0 == argument1) return argument0; else if (argument0 > argument1) return max((argument0 - argument2), argument1); else return min((argument0 + argument2), argument1); }
(speed, target_speed, 0.2)
39
    else
40
        speed = scr_movetowards
scr_movetowards

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

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