Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_spamton_wordbullet_Step_0

(view raw script w/o annotations or w/e)
1
event_inherited();
2
if (init == 0)
3
{
4
    rawspeed = speed;
5
    init = 1;
6
}
7
if (x >= (mouthx - 16) && i_ex(creator))
8
    offset = (creator.y + creator.mouthy) - 4 - ystart;
9
else if (x < (mouthx - 16))
10
    offset = 
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); }
(offset, 0, 3);
11
if (type == 1 && x < mouthx)
12
{
13
    speed = 0;
14
    if (!tracked)
15
    {
16
        var __targetdir = point_direction(x, truey, targetx, targety);
17
        var __diff = angle_difference(fauxdirection, __targetdir);
18
        if (abs(__diff) > 10)
19
        {
20
            fauxdirection -= (sign(__diff) * 10);
21
        }
22
        else
23
        {
24
            tracked = true;
25
            fauxdirection = __targetdir;
26
        }
27
    }
28
    var _xdir = lengthdir_x(5, fauxdirection);
29
    x += (_xdir * abs(5 / _xdir));
30
    truey += (lengthdir_y(5, fauxdirection) * abs(5 / _xdir));
31
}
32
y = truey + (cos(x / ((x > (mouthx - 16)) ? 12 : clamp(sinesize, 10, 20))) * 10 * sinesign) + offset;
33
if (type == 0 || x >= mouthx)
34
    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, 5, 0.25);