Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_ch5_LW01W_escape_Step_0

(view raw script w/o annotations or w/e)
1
if (!_input_enabled)
2
    exit;
3
if (_state < 0)
4
    exit;
5
_input_cooldown--;
6
if (_input_cooldown <= 0)
7
{
8
    if (left_p() || right_p() || up_p() || down_p())
9
    {
10
        _input_cooldown = 2;
11
        _input_counter++;
12
        if (_state == 0)
13
        {
14
            if ((_input_counter % 100) == 0)
15
                _reverse_modifier *= 2;
16
            _reverse_active = true;
17
            roll_attempt();
18
        }
19
        else if (_state == 1)
20
        {
21
            shake();
22
            image_index = 0;
23
            if (_input_counter >= 10)
24
            {
25
                _state = -1;
26
                _reverse_modifier = 1;
27
                fall_down();
28
            }
29
        }
30
        else if (_state == 2)
31
        {
32
            shake();
33
            if (_input_counter >= 20)
34
            {
35
                _state = -1;
36
                _reverse_modifier = 1;
37
                get_up();
38
            }
39
        }
40
        else if (_state == 3)
41
        {
42
            if ((_input_counter % 40) == 0)
43
                _reverse_modifier *= 2;
44
            _reverse_active = true;
45
            roll_attempt();
46
        }
47
    }
48
}
49
if (_shake)
50
{
51
    shakeamt -= shakereduct;
52
    on *= -1;
53
    _xx = x + (shakeamt * on);
54
    _yy = y;
55
    if (shakeamt <= 0)
56
    {
57
        _shake = false;
58
        _xx = x;
59
        _yy = y;
60
        if (_state == 1)
61
            image_index = 1;
62
    }
63
}
64
_reverse_timer--;
65
if (_reverse_timer <= 0)
66
{
67
    if (_state == 0)
68
        _reverse_time = lerp(30, 2, 
scr_ease_out
scr_ease_out

function
scr_ease_out(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_out_bounce(arg0, 0, 1, 1); case -2: return ease_out_elastic(arg0, 0, 1, 1); case -1: return ease_out_back(arg0, 0, 1, 1); case 0: return arg0; case 1: return sin(arg0 * 1.5707963267948966); case 2: return -arg0 * (arg0 - 2); case 6: return -power(2, -10 * arg0) + 1; case 7: arg0--; return sqrt(1 - (arg0 * arg0)); default: arg0--; if (arg1 == 4) { return -1 * (power(arg0, arg1) - 1); break; } return power(arg0, arg1) + 1; } }
(image_index / _max_frame, 2));
69
    else if (_state == 3)
70
        _reverse_time = 3;
71
    _reverse_timer = _reverse_time * _reverse_modifier;
72
    if (_reverse_active)
73
    {
74
        _reverse_active = false;
75
        shake();
76
        fight_attempt();
77
    }
78
}