Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_church_legender_Draw_0

(view raw script w/o annotations or w/e)
1
xx = lerp(xx, camerax() + relx, 0.4);
2
yy = lerp(yy, cameray() + rely, 0.4);
3
var xsin = 0;
4
var ysin = cos(siner / 12) * 4;
5
draw_sprite_ext(sprite_index, image_index, xx + xsin, yy + ysin, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
6
var spacer = 3;
7
var rate = 24;
8
for (var i = 1; i < 4; i++)
9
    draw_sprite_ext(sprite_index, image_index, xx + xsin + (sin(activetimer / rate) * spacer * i), yy + ysin + (cos(activetimer / rate) * spacer * i), image_xscale, image_yscale, image_angle, image_blend, image_alpha / 5);
10
if (image_only)
11
    exit;
12
draw_set_color(c_white);
13
draw_set_font(fnt_mainbig);
14
draw_set_alpha(image_alpha);
15
var ver = 1;
16
if (ver == 0)
17
{
18
    for (var i = 0; i < stringmax; i++)
19
    {
20
        if (activetimer >= textstartwait[i])
21
        {
22
            textactivetimer[i]++;
23
            var stringlength = string_length(textstring[i]);
24
            for (var j = 1; j <= textchar[i]; j++)
25
            {
26
                var chary = 0;
27
                rate = 6;
28
                if (textactivetimer[i] < ((textrate[i] * j) + rate))
29
                    chary = textactivetimer[i] - ((textrate[i] * j) + rate);
30
                var xdraw = (xx + (j * charspace) + textx[i]) - (sin(chary / rate) * 16);
31
                var ydraw = (yy + texty[i] + chary) - ysin - j;
32
                draw_set_alpha((1 + (chary / 4)) * image_alpha * 0.5);
33
                draw_set_color(c_darkblue);
34
                for (var n = 3; n < 5; n++)
35
                    draw_text(xdraw + n, ydraw + n, string_char_at(textstring[i], j));
36
                draw_set_alpha((1 + (chary / 4)) * image_alpha * 0.8);
37
                draw_set_color(c_white);
38
                draw_text(xdraw, ydraw, string_char_at(textstring[i], j));
39
                draw_set_alpha((1 + (chary / 4)) * image_alpha * 0.3);
40
                draw_text(xdraw - 1, ydraw, string_char_at(textstring[i], j));
41
                draw_set_alpha(image_alpha);
42
            }
43
            texttimer[i]++;
44
            if (texttimer[i] >= textrate[i])
45
            {
46
                if (textchar[i] < stringlength)
47
                    textchar[i]++;
48
                texttimer[i] = 0;
49
            }
50
        }
51
    }
52
}
53
if (ver == 1)
54
{
55
    for (var i = 0; i < stringmax; i++)
56
    {
57
        if (activetimer >= textstartwait[i])
58
        {
59
            var stringlength = string_length(textstring[i]);
60
            textactivetimer[i]++;
61
            var delay = i * 30;
62
            var xdraw = xx + textx[i];
63
            var ydraw = yy + texty[i] + (sin(siner / 24) * 4);
64
            var count = 8;
65
            var truetimer = textactivetimer[i] - delay;
66
            for (var j = 0; j < count; j++)
67
            {
68
                for (var k = 0; k < count; k++)
69
                {
70
                    alph = clamp((truetimer / 40) - (k / 4), 0, 0.2) * image_alpha;
71
                    draw_set_alpha(alph);
72
                    var shadcolor = merge_color(c_black, c_darkblue, clamp(alph * 10, 0, 1));
73
                    draw_set_color(shadcolor);
74
                    var rotspeed = 4;
75
                    var startdist = 20;
76
                    var len = clamp(startdist - truetimer, 2, startdist);
77
                    var xd2 = xdraw + lengthdir_x(len + (k / 4), (j * (360 / count)) + (truetimer * rotspeed));
78
                    var yd2 = ydraw + lengthdir_y(len + (k / 4), (j * (360 / count)) + (truetimer * rotspeed)) + (k / 4);
79
                    var maxdist = 12;
80
                    var amt = clamp(maxdist - truetimer, 4, maxdist);
81
                    draw_text(xd2, yd2, textstring[i]);
82
                }
83
            }
84
            var alph = clamp(truetimer / 30, 0, 1) * image_alpha;
85
            draw_set_color(#94A9DC);
86
            draw_set_alpha((alph / 2) * sin((truetimer + 12) / 12));
87
            draw_text(xdraw - 1, ydraw - 1, textstring[i]);
88
            draw_set_alpha((alph / 2) * sin((truetimer + 24) / 12));
89
            draw_text(xdraw + 1, ydraw - 1, textstring[i]);
90
            draw_set_alpha((alph / 2) * sin((truetimer + 36) / 12));
91
            draw_text(xdraw + 1, ydraw + 1, textstring[i]);
92
            draw_set_alpha((alph / 2) * sin((truetimer + 48) / 12));
93
            draw_text(xdraw - 1, ydraw + 1, textstring[i]);
94
            draw_set_alpha(alph);
95
            draw_set_color(c_white);
96
            draw_text(xdraw, ydraw, textstring[i]);
97
            texttimer[i]++;
98
            if (texttimer[i] >= textrate[i])
99
            {
100
                if (textchar[i] < stringlength)
101
                    textchar[i]++;
102
                texttimer[i] = 0;
103
            }
104
        }
105
    }
106
}
107
draw_set_alpha(1);