Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_church_old_man_ripple_Draw_0

(view raw script w/o annotations or w/e)
1
if (i_ex(obj_encounterbasic) || i_ex(obj_battlecontroller))
2
    exit;
3
var _xx = x - 50;
4
if (variant == 1)
5
    _xx = camerax() + 456;
6
if ((timer > 0 || con > 2) && type < 2)
7
{
8
    var _yy = y - 70;
9
    if (type == 0)
10
        _xx += distance;
11
    var _image = 0;
12
    var _shadow_col = 0;
13
    if (con < 2)
14
    {
15
        draw_sprite_ext(sprite[type], image_index, _xx, _yy, 2, 2, image_angle, c_black, 1);
16
        dust_timer = 0;
17
    }
18
    if (con == 2)
19
    {
20
        var _leaplerp = 
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; } }
(con_timer / leap_time, 4);
21
        var _leapy = lerp(_yy, _yy - 40, _leaplerp);
22
        var _leapx = lerp(_xx, (susie_x + 100) - 50, _leaplerp);
23
        draw_sprite_ext(spr_gerson_swing, 1, _leapx, _leapy, 2, 2, image_angle, _shadow_col, 1);
24
    }
25
    if (con == 2 || (con == 3 && dust_timer < 7))
26
    {
27
        draw_sprite_ext(spr_gerson_shadow_leap, dust_timer, _xx, _yy, 2, 2, image_angle, _shadow_col, 1);
28
        if (dust_timer < 2)
29
            dust_timer++;
30
        else
31
            dust_timer += 0.2;
32
    }
33
    if (con == 3)
34
    {
35
        if (version == 1 && version1timer == 0)
36
            version1timer++;
37
        var _duration = (variant == 0) ? 40 : 30;
38
        var _move = con_timer / 40;
39
        _image = (con_timer < (_duration - 20)) ? 1 : 0;
40
        if (con_timer == (_duration - 10))
41
            susie_con = 1;
42
        draw_sprite_ext(spr_gerson_swing, _image, (susie_x + 100) - 50 - (_move * 8), _yy - 40 - (_move * 6), 2, 2, image_angle, _shadow_col, 1);
43
    }
44
    else if (con >= 4 && con < 10)
45
    {
46
        var _duration = (variant == 0) ? 60 : 30;
47
        var _move = con_timer / 60;
48
        if (con == 5)
49
            _move = con_timer / 30;
50
        _image = (con == 5) ? 6 : min(con_timer + 4, 6);
51
        draw_sprite_ext(spr_gerson_swing, _image, (susie_x + 92) - 50 - (_move * 8), (_yy - 46) + (_move * 6), 2, 2, image_angle, _shadow_col, 1);
52
    }
53
    else if (con == 10)
54
    {
55
        var _xgerson = 0;
56
        extratimer++;
57
        if ((extratimer % 2) == 0)
58
            _xgerson = -2;
59
        else
60
            _xgerson = 2;
61
        draw_sprite_ext(spr_gerson_hurt2, 1, susie_x + _xgerson + 92, _yy + 4, 2, 2, image_angle, _shadow_col, 1);
62
        if (extratimer < 3)
63
        {
64
            d3d_set_fog(true, c_white, 0, 1);
65
            draw_sprite_ext(spr_gerson_hurt2, 1, susie_x + _xgerson + 92, _yy + 4, 2, 2, image_angle, c_white, 1);
66
            d3d_set_fog(false, c_black, 0, 0);
67
        }
68
        if (extratimer == 10)
69
        {
70
            con = 11;
71
            extratimer = 0;
72
        }
73
    }
74
    else if (con == 11)
75
    {
76
        if (extratimer < 8)
77
            extratimer++;
78
        var _xgerson = lerp(0, 100, extratimer / 8);
79
        draw_sprite_ext(spr_gerson_hurt2, 1, susie_x + _xgerson + 92, _yy + 4, 2, 2, image_angle, _shadow_col, 1);
80
    }
81
    if (con < 2)
82
    {
83
        var _alpha = 1;
84
        if (timer <= 12)
85
            _alpha = 
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; } }
(timer / 12, 5);
86
        else
87
            _alpha = clamp01(inverselerp(30, 15, timer));
88
        var _mult = 1 - (distance / 120);
89
        if (_alpha > 0)
90
            
scr_debug_print_persistent
scr_debug_print_persistent

function
scr_debug_print_persistent(arg0, arg1)
{ } function debug_print_persistent(arg0, arg1) { } function scr_debug_delete_persistent(arg0, arg1 = false) { } function scr_debug_clear_persistent() { }
("alpha", string(_mult));
91
        else
92
            scr_debug_delete_persistent("alpha");
93
        var _col = merge_color(c_black, color, _alpha);
94
        if (timer <= 12)
95
            shader_set(shd_linear_alpha);
96
        var _underlight = 2972;
97
        var _stindex = step_index;
98
        var _lightx = step_x - 50;
99
        if (con == 1)
100
        {
101
            _underlight = 1844;
102
            _stindex = image_index;
103
            step_index = image_index;
104
            _lightx = _xx;
105
        }
106
        draw_sprite_ext(_underlight, step_index, _lightx, _yy, 2, 2, image_angle, color, _alpha * _mult);
107
        if (timer <= 12)
108
            shader_reset();
109
    }
110
    var _susx = susie_x;
111
    var _susy = y - 80;
112
    if (susie_con == 0)
113
        draw_sprite_ext(susie_sprite, 0, _susx, _susy, 2, 2, 0, c_black, 1);
114
    if (susie_con == 1)
115
    {
116
        if (variant == 1)
117
            draw_sprite_ext(spr_susieb_victory, 2, _susx, _susy, 2, 2, 0, c_black, 1);
118
        else
119
            draw_sprite_ext(spr_susie_surprised_step_back_look_up, 1, _susx, _susy, 2, 2, 0, c_black, 1);
120
    }
121
    if (susie_con == 2)
122
    {
123
        if (susie_timer < 30)
124
            susie_timer++;
125
        _susx -= (
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; } }
(susie_timer / 30, 4) * 50);
126
        if (variant == 1 && susie_timer < 10)
127
        {
128
            draw_sprite_ext(spr_susie_hurt_lookright, 0, _susx, _susy, 2, 2, 0, c_black, 1);
129
        }
130
        else if (variant == 1)
131
        {
132
            var _shake = remap_clamped(10, 24, 4, 0, susie_timer) * (((susie_timer % 2) == 0) ? -1 : 1);
133
            draw_sprite_ext(spr_susieb_defeat, 0, _susx + _shake, _susy, 2, 2, 0, c_black, 1);
134
        }
135
        else
136
        {
137
            draw_sprite_ext(spr_susie_shock_r, 0, _susx, _susy, 2, 2, 0, c_black, 1);
138
        }
139
    }
140
    if (susie_con == 3)
141
        draw_sprite_ext(spr_susieb_defeat, 0, _susx, _susy, 2, 2, 0, c_black, 1);
142
}
143
else
144
{
145
    if (type >= 3)
146
        susie_x = camerax() + 50;
147
    var _susy = y - 80;
148
    if (type >= 5)
149
    {
150
        susie_x += 10;
151
        if (punch > 0 || timer > 15)
152
            draw_sprite_ext(spr_susie_hurt_lookright, 0, susie_x + 80, _susy - 4, 2, 2, 0, c_black, 1);
153
        else
154
            draw_sprite_ext(spr_susie_idle, timer / 3, susie_x + 80, _susy - 4, 2, 2, 0, c_black, 1);
155
        if (type == 6)
156
            draw_sprite_ext(spr_krisb_victory, clamp(timer / 4, 0, 8), susie_x, _susy + 10, 2, 2, 0, c_black, 1);
157
        else
158
            draw_sprite_ext(spr_krisb_idle, (timer / 3) + punch, susie_x, _susy + 10, 2, 2, 0, c_black, 1);
159
    }
160
    else
161
    {
162
        draw_sprite_ext(susie_sprite, 0, susie_x, _susy, 2, 2, 0, c_black, 1);
163
    }
164
}
165
var _gersx = x + 50;
166
if (type == 3)
167
{
168
    _gersx = x + 36;
169
    var _col = 16777215;
170
    if (timer == 0)
171
        _col = 8421504;
172
    if (timer >= 5)
173
        _col = merge_color(c_white, c_black, clamp01((timer - 5) / 15));
174
    draw_sprite_ext(spr_old_man_clash_black, timer, _gersx, y - 6, 2, 2, 0, c_black, 1);
175
}
176
if (type == 4)
177
{
178
    _gersx = x + 36;
179
    var _gerse = clamp01(
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; } }
(timer / 50, 2));
180
    spinner += min(1, lerp(2, 0, _gerse));
181
    if (timer > 50)
182
        _gerse = 50;
183
    else
184
        _gerse *= 50;
185
    draw_sprite_ext(spr_gerson_spin, scr_loop(spinner, 12), _gersx + 10 + (_gerse * 6), y, 2, 2, 0, c_black, 1);
186
    shader_set(shd_linear_alpha);
187
    draw_sprite_ext(spr_gerson_spin_outline, scr_loop(spinner, 12), _gersx + 10 + (_gerse * 6), y, 2, 2, 0, c_aqua, 1 - clamp01((timer - 5) / 15));
188
    shader_reset();
189
}
190
if (type == 2)
191
    draw_sprite_ext(spr_gerson_laugh_scene, 1 + (timer / 4), x - 50, y - 64, 2, 2, image_angle, c_black, 1);
192
if (type == 5)
193
{
194
    var _frame = 0;
195
    var _crumbler = 4408;
196
    if (punch == 0)
197
        _frame = min(timer / 3, 6);
198
    else
199
        _frame = min((timer + 6) / 3, 17);
200
    var _col = merge_color(c_white, c_black, clamp01(timer / 8));
201
    var _shake = remap_clamped(0, 4, 4, 0, timer) * (((timer % 2) == 0) ? -1 : 1);
202
    draw_sprite_ext(_crumbler, _frame, (x - 80) + _shake, y - 114, 2, 2, 0, _col, 1);
203
}
204
if (type == 6)
205
{
206
}
207
if (shiner >= 0)
208
{
209
    if (variant == 2)
210
        _xx = x + 60;
211
    if (shiner == 0)
212
        snd_play(snd_eye_telegraph, 1, 1);
213
    if (shiner >= 8)
214
        draw_sprite_ext(spr_eye_shine, (shiner - 8) / 2, _xx + 14, (y - 70) + 20, 2, 2, 0, c_white, 1);
215
    shiner++;
216
    if (shiner > 16)
217
        shiner = -1;
218
}
219
draw_set_blend_mode(bm_normal);
220
draw_set_alpha(1);
221
draw_set_color(c_white);
222
if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
() && debug_marker)
223
    draw_sprite_ext(spr_crosshair_7x7, 0, x, y, 1, 1, 0, c_red, 1);