Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_intro_ch4_Step_0

(view raw script w/o annotations or w/e)
1
if (bgm != -1)
2
    bgm_pos = audio_sound_get_track_position(bgm);
3
if (!files_exist && !debug_force_nofiles)
4
{
5
    if (con == 0)
6
    {
7
        con = 1;
8
        bgm = mus_play(snd_init("ch4_first_intro.ogg"));
9
        scr_lerp_instance_var(logo_heart, "image_alpha", 0, 1, 120);
10
    }
11
    if (con == 1)
12
    {
13
        if (bgm_pos >= 4)
14
            con = 2;
15
    }
16
    if (con == 2)
17
    {
18
        con = 3;
19
        scr_lerp_instance_var(logo_all, "image_alpha", 0, 1, 90);
20
    }
21
    if (con == 3)
22
    {
23
        if (bgm_pos >= 7.5)
24
        {
25
            con = 4;
26
            scr_lerp_instance_var(prophecy_effect, "image_alpha", 0, 1, 70);
27
        }
28
    }
29
    if (con == 4)
30
    {
31
        if (bgm_pos >= 8)
32
        {
33
            con = 5;
34
            scr_lerp_instance_var(id, "chapter4_text_alpha", 0, 1, 90);
35
        }
36
    }
37
    if (con == 5)
38
    {
39
        if (bgm_pos >= 15)
40
        {
41
            con = 6;
42
            scr_lerp_instance_var(prophecy_effect, "scroll_speed", prophecy_effect_scroll_speed, 0, 60);
43
        }
44
    }
45
    if (con == 6)
46
    {
47
        if (bgm_pos == 0)
48
        {
49
            con = 7;
50
            timer = 0;
51
        }
52
    }
53
    if (con == 7)
54
    {
55
        con = 8;
56
        timer = 0;
57
        with (prophecy_effect)
58
            image_alpha = 0;
59
        with (logo_all)
60
            sprite_index = IMAGE_LOGO_CENTER_SHATTER;
61
        chapter4_text_alpha = 0;
62
        var _delay_sound_time = 20;
63
        var snd = snd_play_complex(0, 0, undefined);
64
        snd_add_complex(snd, 4, 321, 1, 0.95, 0, -1, 0);
65
        snd_add_complex(snd, 0, 236, 0.6, 0.4, (_delay_sound_time - 1) + 2, -1, 0);
66
        snd_add_complex(snd, 3, 269, 0.7, 0.95, (_delay_sound_time - 1) + 0, -1, 0);
67
        snd_play_delay(break_noise, _delay_sound_time, 0.5, 1);
68
        snd_play_delay(break_noise, _delay_sound_time, 0.5, 0.94);
69
        var _shattersprite = 4671;
70
        var _fragments = sprite_get_number(_shattersprite);
71
        var _delay = 20;
72
        for (var i = 0; i < _fragments; i++)
73
        {
74
            with (
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(room_center_x, room_center_y, _shattersprite, 2, 2, undefined, i, undefined, 19800))
75
            {
76
                direction = random(360);
77
                scr_delay_var("gravity", 0.4 + random(0.12), _delay);
78
                scr_delay_var("friction", 0, _delay);
79
                scr_delay_var("speed", 4, _delay);
80
                
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(id, 120);
81
            }
82
        }
83
        with (logo_all)
84
            instance_destroy();
85
    }
86
    if (con == 8)
87
    {
88
        if (timer++ >= 20)
89
        {
90
            timer = 0;
91
            con = 9;
92
            var sparklecount = 15;
93
            for (var i = 0; i < sparklecount; i++)
94
            {
95
                with (instance_create((room_center_x - 199) + ((i * 398) / sparklecount) + random_range(-30, 30), room_center_y + random(60), obj_dw_church_prophecy_groundshards))
96
                {
97
                    ytarg = 10000;
98
                    
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, 280);
99
                }
100
            }
101
        }
102
    }
103
    if (con == 9)
104
    {
105
        if (timer++ >= 45)
106
        {
107
            timer = 0;
108
            con = 10;
109
            scr_lerp_instance_var(logo_heart, "image_alpha", 1, 0, 120);
110
        }
111
    }
112
    if (con == 10)
113
    {
114
        if (timer++ >= 120)
115
        {
116
            timer = 0;
117
            con = 99;
118
        }
119
    }
120
}
121
else
122
{
123
    skip_safety++;
124
    if (con == 0)
125
    {
126
        con = 0.5;
127
        timer = 0;
128
        black_all.visible = true;
129
        black_all.image_alpha = 0;
130
        prophecy_effect.tile_object = logo_prophecy;
131
        with (prophecy_effect)
132
            image_alpha = 1;
133
        with (logo_prophecy)
134
            image_alpha = 1;
135
    }
136
    if (button1_p() && con < 3 && skip_safety > 3)
137
        con = 3;
138
    if (con == 0.5)
139
    {
140
        if (timer++ >= 75)
141
        {
142
            con = 1;
143
            timer--;
144
            scr_lerp_instance_var(prophecy_effect, "scroll_speed", prophecy_effect_scroll_speed, 0, 52);
145
        }
146
    }
147
    if (con == 1)
148
    {
149
        if (timer++ > 135)
150
        {
151
            con = 2;
152
            timer = 0;
153
            with (logo_prophecy)
154
                image_alpha = 0;
155
            var _delay_sound_time = 20;
156
            var snd = snd_play_complex(0, 0, undefined);
157
            snd_add_complex(snd, 4, 321, 1, 0.95, 0, -1, 0);
158
            snd_add_complex(snd, 0, 236, 0.6, 0.4, (_delay_sound_time - 1) + 2, -1, 0);
159
            snd_add_complex(snd, 3, 269, 0.7, 0.95, (_delay_sound_time - 1) + 0, -1, 0);
160
            snd_play_delay(break_noise, _delay_sound_time, 0.5, 0.5);
161
            snd_play_delay(break_noise, _delay_sound_time, 0.5, 0.44);
162
            var _shattersprite = 5773;
163
            var _fragments = sprite_get_number(_shattersprite);
164
            var _delay = 20;
165
            for (var i = 0; i < _fragments; i++)
166
            {
167
                with (
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth_alt();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; } function scr_marker_fromasset(arg0, arg1 = depth, arg2 = false) { if (is_undefined(arg0)) { debug_message("Warning: scr_marker_fromasset() sprite_instance didn't exist"); return -4; } var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var imagespeed = layer_sprite_get_speed(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var thismarker = instance_create_depth(xloc, yloc, arg1, obj_marker); with (thismarker) { sprite_index = sprite; image_index = index; image_speed = imagespeed; image_xscale = xscale; image_yscale = yscale; image_angle = angle; image_blend = blend; image_alpha = alpha; if (arg2)
scr_depth_alt(id, arg2);
} return thismarker; } function scr_assetgetinfo(arg0) { var sprite = layer_sprite_get_sprite(arg0); var index = layer_sprite_get_index(arg0); var xloc = layer_sprite_get_x(arg0); var yloc = layer_sprite_get_y(arg0); var xscale = layer_sprite_get_xscale(arg0); var yscale = layer_sprite_get_yscale(arg0); var angle = layer_sprite_get_angle(arg0); var blend = layer_sprite_get_blend(arg0); var alpha = layer_sprite_get_alpha(arg0); var imagespeed = layer_sprite_get_speed(arg0); return [sprite, index, xloc, yloc, xscale, yscale, angle, blend, alpha, imagespeed]; }
(logo_prophecy.x, logo_prophecy.y, _shattersprite, 2, 2, undefined, i, undefined, 19800))
168
                {
169
                    direction = random(360);
170
                    scr_delay_var("gravity", 0.4 + random(0.12), _delay);
171
                    scr_delay_var("friction", 0, _delay);
172
                    scr_delay_var("speed", 4, _delay);
173
                    
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(id, 120);
174
                }
175
            }
176
        }
177
    }
178
    if (con == 2)
179
    {
180
        if (timer++ >= 20)
181
        {
182
            timer = 0;
183
            con = 4;
184
            var sparklecount = 15;
185
            for (var i = 0; i < sparklecount; i++)
186
            {
187
                var _width = 90;
188
                var _xx = (room_center_x - _width) + (i * ((_width * 2) / sparklecount)) + random_range(-30, 30);
189
                var _yy = room_center_y + random(70);
190
                if (i == 0)
191
                    _xx = room_center_x - _width;
192
                if (i == (sparklecount - 1))
193
                    _xx = room_center_x + _width;
194
                with (instance_create(_xx, _yy, obj_dw_church_prophecy_groundshards))
195
                {
196
                    ytarg = 10000;
197
                    
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, 280);
198
                }
199
            }
200
        }
201
    }
202
    if (con == 3)
203
    {
204
        con = 5;
205
        timer = 0;
206
        scr_lerp_instance_var(black_all, "image_alpha", black_all.image_alpha, 1, skip_time);
207
    }
208
    if (con == 4)
209
    {
210
        if (timer++ >= 120)
211
        {
212
            timer = 0;
213
            con = 99;
214
        }
215
    }
216
    if (con == 5)
217
    {
218
        if (timer++ > skip_time)
219
        {
220
            timer = 0;
221
            con = 99;
222
        }
223
    }
224
}
225
if (con == 99)
226
    room_goto(PLACE_MENU );