Undertale script viewer

← back to main script listing

gml_Object_obj_runaway_Step_0

(view raw script w/o annotations or w/e)
1
if (instance_exists(obj_mainchara))
2
{
3
    if (movement == 1)
4
    {
5
        if (obj_mainchara.x != obj_mainchara.xprevious || obj_mainchara.y != obj_mainchara.yprevious)
6
        {
7
            shouldir = -1;
8
            jim = distance_to_object(obj_mainchara);
9
            if (jim < 80)
10
            {
11
                movement = 0;
12
                alarm[0] = 15;
gml_Object_obj_runaway_Alarm_0.gml

movement = 1; xmovement = 1;
13
                if (abs(x - obj_mainchara.x) >= abs(y - obj_mainchara.y))
14
                {
15
                    vspeed = 0;
16
                    if (x > obj_mainchara.x)
17
                    {
18
                        hspeed = 4;
19
                        x += 4;
20
                        shoulddir = 0;
21
                    }
22
                    else
23
                    {
24
                        hspeed = -4;
25
                        x -= 4;
26
                        shoulddir = 2;
27
                    }
28
                    hedge = 0;
29
                }
30
                else
31
                {
32
                    hspeed = 0;
33
                    if (y > obj_mainchara.y)
34
                    {
35
                        vspeed = 4;
36
                        y += 4;
37
                        shoulddir = 3;
38
                    }
39
                    else
40
                    {
41
                        vspeed = -4;
42
                        y -= 4;
43
                        shoulddir = 1;
44
                    }
45
                    vedge = 0;
46
                }
47
            }
48
        }
49
    }
50
    if (y < u && vspeed < 0)
51
    {
52
        vspeed = 0;
53
        vedge = 1;
54
        y = u;
55
    }
56
    if (y > d && vspeed > 0)
57
    {
58
        vspeed = 0;
59
        vedge = 2;
60
        y = d;
61
    }
62
    if (x > r && hspeed > 0)
63
    {
64
        hspeed = 0;
65
        hedge = 2;
66
        x = r;
67
    }
68
    if (x < l && hspeed < 0)
69
    {
70
        hspeed = 0;
71
        hedge = 1;
72
        x = l;
73
    }
74
    if (vedge > 0 || hedge > 0)
75
    {
76
        if (xmovement == 1)
77
        {
78
            if (obj_mainchara.x != obj_mainchara.xprevious || obj_mainchara.y != obj_mainchara.yprevious)
79
            {
80
                vspeed = 0;
81
                hspeed = 0;
82
                if (vedge == 1 && hedge == 1)
83
                {
84
                    if (shoulddir == 2)
85
                        vspeed = 4;
86
                    if (shoulddir == 1)
87
                        hspeed = 4;
88
                    hedge = 0;
89
                    vedge = 0;
90
                }
91
                if (vedge == 2 && hedge == 2)
92
                {
93
                    if (shoulddir == 3)
94
                        hspeed = -4;
95
                    if (shoulddir == 0)
96
                        vspeed = -4;
97
                    hedge = 0;
98
                    vedge = 0;
99
                }
100
                if (vedge == 2 && hedge == 1)
101
                {
102
                    if (shoulddir == 2)
103
                        vspeed = -4;
104
                    if (shoulddir == 3)
105
                        hspeed = 4;
106
                    hedge = 0;
107
                    vedge = 0;
108
                }
109
                if (vedge == 1 && hedge == 2)
110
                {
111
                    if (shoulddir == 1)
112
                        hspeed = -4;
113
                    if (shoulddir == 0)
114
                        vspeed = 4;
115
                    hedge = 0;
116
                    vedge = 0;
117
                }
118
                if (hedge == 1 || hedge == 2)
119
                {
120
                    vspeed = choose(4, -4);
121
                    hedge = 0;
122
                }
123
                if (vedge == 1 || vedge == 2)
124
                {
125
                    hspeed = choose(4, -4);
126
                    vedge = 0;
127
                }
128
                movement = 0;
129
                xmovement = 0;
130
                alarm[0] = 12;
gml_Object_obj_runaway_Alarm_0.gml

movement = 1; xmovement = 1;
131
            }
132
        }
133
    }
134
    mykid.x = x;
135
    mykid.y = y;
136
    if (mykid.using == 1)
137
        instance_destroy();
138
}