Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_sneo_warped_box_Step_2

(view raw script w/o annotations or w/e)
1
if (instance_exists(obj_heart))
2
{
3
    if (state == 0)
4
    {
5
        if (obj_heart.x < (minx + 3))
6
            obj_heart.x = minx + 3;
7
        if (obj_heart.y < (miny + 3))
8
            obj_heart.y = miny + 3;
9
        if (obj_heart.y > (maxy - 20))
10
            obj_heart.y = maxy - 20;
11
        if (obj_heart.x > (maxx - 20))
12
            obj_heart.x = maxx - 20;
13
        exit;
14
    }
15
    rborder = lerp(maxx, suckx, suckpower);
16
    uborder = miny;
17
    dborder = maxy;
18
    if (snapback == 0)
19
    {
20
        if (stopthesucc == 0)
21
            obj_heart.x += suckpower;
22
    }
23
    if (snapback <= 0 && global.turntimer <= 30 && obj_heart.x >= (rborder - 22))
24
    {
25
        snapback = suckpower;
26
        if (suckpower > 0.5)
27
        {
28
            if (!instance_exists(obj_shake))
29
            {
30
                d = instance_create(0, 0, obj_shake);
31
                d.shakex = ceil(suckpower * 4);
32
                d.shakey = ceil(suckpower * 4);
33
            }
34
        }
35
    }
36
    if (snapback > 0)
37
    {
38
        obj_heart.x -= (20 * 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
(snapback, 2));
39
        snapback -= 0.1;
40
    }
41
    if (obj_heart.x < (minx + 3))
42
        obj_heart.x = minx + 3;
43
    if (obj_heart.x > (rborder - 20))
44
        obj_heart.x = rborder - 20;
45
    var xoffset = (obj_heart.x - (minx + 3)) / (rborder - 20 - (minx + 3));
46
    var uppersuckoffset = (upper_sucky - miny) * xoffset * suckpower;
47
    var lowersuckoffset = (maxy - lower_sucky) * xoffset * suckpower;
48
    if (obj_heart.y < (uborder + 3 + uppersuckoffset))
49
        obj_heart.y = uborder + 3 + uppersuckoffset;
50
    if (obj_heart.y > (dborder - 20 - lowersuckoffset))
51
        obj_heart.y = dborder - 20 - lowersuckoffset;
52
    if (obj_heart.y < (uborder + 3))
53
        obj_heart.y = uborder + 3;
54
    if (obj_heart.y > (dborder - 20))
55
        obj_heart.y = dborder - 20;
56
}