Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_knight_split_growtangle_Step_2

(view raw script w/o annotations or w/e)
1
var _dist = round(distance);
2
if (con == 0)
3
    _dist = 0;
4
var _sw = vertical ? _dist : 0;
5
var _sh = vertical ? 0 : _dist;
6
if (diagonal)
7
{
8
    _sw = sqrt(0.5) * _dist;
9
    _sh = sqrt(0.5) * _dist;
10
}
11
var _tl = new Vector2(obj_growtangle.xstart - 70 - _sw, obj_growtangle.ystart - 70 - _sh);
12
var _br = new Vector2(obj_growtangle.xstart + 52 + _sw, obj_growtangle.ystart + 52 + _sh);
13
var _dist_change = sqrt(0.5) * (_dist - round(old_distance));
14
var _heart_start;
15
if (diagonal && _dist_change != 0)
16
    _heart_start = new Vector2(obj_heart.x, obj_heart.y);
17
if (obj_heart.x < _tl.x)
18
    obj_heart.x = _tl.x;
19
if (obj_heart.x > _br.x)
20
    obj_heart.x = _br.x;
21
if (obj_heart.y < _tl.y)
22
    obj_heart.y = _tl.y;
23
if (obj_heart.y > _br.y)
24
    obj_heart.y = _br.y;
25
if (diagonal && _dist_change != 0)
26
{
27
    var _heart_change = _heart_start;
28
    _heart_change.x = clamp(obj_heart.x - _heart_start.x, -abs(_dist_change), abs(_dist_change));
29
    _heart_change.y = clamp(obj_heart.y - _heart_start.y, -abs(_dist_change), abs(_dist_change));
30
    if (_heart_change.x != 0)
31
    {
32
        if (!vertical)
33
            obj_heart.y += _heart_change.x;
34
        else
35
            obj_heart.y -= _heart_change.x;
36
    }
37
    if (_heart_change.y != 0)
38
    {
39
        if (!vertical)
40
            obj_heart.x += _heart_change.y;
41
        else
42
            obj_heart.x -= _heart_change.y;
43
    }
44
}
45
obj_heart.x = round(obj_heart.x);
46
obj_heart.y = round(obj_heart.y);