Deltarune script viewer

← back to main script listing

gml_Object_obj_fakespare_Draw_0

(view raw script w/o annotations or w/e)
1
repeat (reverse ? reversespeed : 1)
2
{
3
    if (reverse)
4
    {
5
        if (t >= 5 && t < 10)
6
            tone--;
7
        if (t >= 9)
8
            neotone--;
9
        else
10
            neotone = 0;
11
    }
12
    if (reverse)
13
    {
14
        if (t == 0)
15
            first_pass = false;
16
        else
17
            first_pass = !first_pass;
18
    }
19
    if (t != 0 && first_pass)
20
    {
21
        for (i = 0; i < starcount; i += 1)
22
        {
23
            with (star[i])
24
            {
25
                hspeed += gravity;
26
                x += hspeed;
27
            }
28
        }
29
    }
30
    if (t >= 6 && t <= 26)
31
    {
32
        if (!reverse)
33
            afterimage += 1;
34
        if (!first_pass)
35
        {
36
            d3d_set_fog(true, c_white, 0, 1);
37
            draw_sprite_ext(sprite_index, image_index, x + (afterimage * 4), y, image_xscale, image_yscale, 0, image_blend, 0.7 - (afterimage / 25));
38
            draw_sprite_ext(sprite_index, image_index, x + (afterimage * 8), y, image_xscale, image_yscale, 0, image_blend, 0.4 - (afterimage / 30));
39
            d3d_set_fog(false, c_black, 0, 0);
40
        }
41
        if (reverse)
42
            afterimage--;
43
    }
44
    if (t < 6)
45
    {
46
        if (!first_pass)
47
        {
48
            if (t < 5)
49
                draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, 0, image_blend, 1 - (neotone / 4));
50
            d3d_set_fog(true, c_white, 0, 1);
51
            maxwhite = t / 5;
52
            if (maxwhite > 1)
53
                maxwhite = 1;
54
            draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, 0, image_blend, maxwhite - (tone / 5));
55
            d3d_set_fog(false, c_black, 0, 0);
56
        }
57
    }
58
    if (!reverse)
59
    {
60
        if (t >= 1 && t <= 5)
61
        {
62
            for (i = 0; i < 2; i += 1)
63
            {
64
                star[starcount] = instance_create(x + random(sprite_width), y + random(sprite_height), obj_marker);
65
                star[starcount].reversespeed = reversespeed;
66
                with (star[starcount])
67
                {
68
                    image_xscale = 2;
69
                    image_yscale = 2;
70
                    sprite_index = spr_sparestar_anim;
71
                    image_alpha = 2;
72
                    image_speed = 0.25;
73
                    hspeed = -3;
74
                    gravity = 0.5;
75
                    gravity_direction = 0;
76
                }
77
                starcount += 1;
78
            }
79
        }
80
        if (t >= 5 && t <= 30)
81
        {
82
            for (i = 0; i < starcount; i += 1)
83
            {
84
                with (star[i])
85
                {
86
                    image_angle += 10;
87
                    image_alpha -= 0.1;
88
                    if (image_alpha <= 0)
89
                        visible = false;
90
                }
91
            }
92
        }
93
    }
94
    else
95
    {
96
        if (t >= 6 && t <= 31)
97
        {
98
            for (i = 0; i < starcount; i += 1)
99
            {
100
                with (star[i])
101
                {
102
                    image_angle -= 10;
103
                    image_alpha += 0.1;
104
                    if (!visible && image_alpha >= 0 && image_alpha < 2)
105
                        visible = true;
106
                }
107
            }
108
        }
109
        if (t >= 2 && t <= 6)
110
        {
111
            for (i = 0; i < 2; i += 1)
112
            {
113
                starcount--;
114
                with (star[starcount])
115
                    instance_destroy();
116
            }
117
        }
118
    }
119
    if (!reverse)
120
    {
121
        if (t >= 5 && t < 10)
122
            tone += 1;
123
        if (t >= 9)
124
            neotone += 1;
125
        else
126
            neotone = 0;
127
    }
128
    if (reverse && t == (15 * reversespeed))
129
        snd_play(snd_reverse_spare);
130
    if (t >= 50 && !reverse)
131
    {
132
        for (i = 0; i < starcount; i += 1)
133
        {
134
            with (star[i])
135
            {
136
                image_speed *= -reversespeed;
137
                hspeed = -hspeed - gravity;
138
            }
139
        }
140
        first_pass = false;
141
        reverse = true;
142
        t++;
143
    }
144
    if (reverse)
145
        t--;
146
    else
147
        t++;
148
    if (reverse && t < 0)
149
    {
150
        original.visible = true;
151
        instance_destroy();
152
        exit;
153
    }
154
}