Deltarune (Chapter 3) script viewer

← back to main script listing

gml_GlobalScript_ease_inout_elastic

(view raw script w/o annotations or w/e)
1
function ease_inout_elastic(arg0, arg1, arg2, arg3)
2
{
3
    var _s = 1.70158;
4
    var _p = 0;
5
    var _a = arg2;
6
    if (arg0 == 0 || _a == 0)
7
        return arg1;
8
    arg0 /= (arg3 * 0.5);
9
    if (arg0 == 2)
10
        return arg1 + arg2;
11
    if (!_p)
12
        _p = arg3 * 0.44999999999999996;
13
    if (_a < abs(arg2))
14
    {
15
        _a = arg2;
16
        _s = _p * 0.25;
17
    }
18
    else
19
    {
20
        _s = (_p / (2 * pi)) * arcsin(arg2 / _a);
21
    }
22
    if (arg0 < 1)
23
        return (-0.5 * (_a * power(2, 10 * --arg0) * sin((((arg0 * arg3) - _s) * (2 * pi)) / _p))) + arg1;
24
    return (_a * power(2, -10 * --arg0) * sin((((arg0 * arg3) - _s) * (2 * pi)) / _p) * 0.5) + arg2 + arg1;
25
}