Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_ghosthouse_jackolantern_merciful_Other_20

(view raw script w/o annotations or w/e)
1
var closest_dist = 0;
2
var closest_dist2 = 0;
3
var min_dist = 40;
4
var storex = targ_x;
5
var storey = targ_y;
6
var backupx = last_tx;
7
var backupy = last_ty;
8
var walled = false;
9
if (end_con >= 2)
10
{
11
    x = targ_x;
12
    y = targ_y;
13
    debug_print("forcing exit");
14
    exit;
15
}
16
if (mercy >= battle_end)
17
{
18
    end_con = 2;
19
    debug_print("targeting heart");
20
    targ_x = obj_heart.x + 4;
21
    targ_y = obj_heart.y + 4;
22
}
23
else
24
{
25
    for (var xx = -1; xx <= 1; xx++)
26
    {
27
        for (var yy = -1; yy <= 1; yy++)
28
        {
29
            var _x = obj_growtangle.x + (xx * 88);
30
            var _y = obj_growtangle.y + (66 * yy);
31
            var dist = point_distance((obj_heart.x + 4) * 0.75, obj_heart.y + 4, _x * 0.75, _y);
32
            var dist2 = point_distance(x * 0.75, y, _x * 0.75, _y);
33
            if (dist > closest_dist)
34
            {
35
                closest_dist = dist;
36
                targ_x = _x;
37
                targ_y = _y;
38
            }
39
            if (dist2 < dist && dist2 > closest_dist2 && dist2 > min_dist)
40
            {
41
                closest_dist2 = dist2;
42
                backupx = _x;
43
                backupy = _y;
44
            }
45
        }
46
    }
47
    if (closest_dist2 != 0 && closest_dist2 < closest_dist)
48
    {
49
        targ_x = backupx;
50
        targ_y = backupy;
51
    }
52
    debug_print_persistent("state", "moving");
53
}
54
last_tx = storex;
55
last_ty = storey;