Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_spamton_warped_box_Step_2

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