Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_churchc_finalclimb_Create_0

(view raw script w/o annotations or w/e)
1
con = -1;
2
customcon = 0;
3
timer = 0;
4
init = 0;
5
siner = 0;
6
wobble = 0;
7
kris_down_face = true;
8
layer_set_visible("DEBUG_ASSETS", 0);
9
if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
())
10
{
11
    
scr_setparty
scr_setparty

function
scr_setparty(arg0 = false, arg1 = false, arg2 = false)
{ var kris = obj_mainchara; var slot = 0; var __make = true; if (!i_ex(kris)) __make = false;
scr_losechar();
safe_delete(obj_caterpillarchara); if (arg0 == true) {
scr_getchar(2);
if (__make) { with (
scr_makecaterpillar(kris.x, kris.y, 2, slot))
{ halign = (global.darkzone == 0) ? 3 : 6; valign = (global.darkzone == 0) ? 6 : 16; x -= halign; y -= valign; } } slot++; } if (arg1 == true) {
scr_getchar(3);
if (__make) { with (
scr_makecaterpillar(kris.x, kris.y, 3, slot))
{ halign = 2; valign = 12; x -= halign; y -= valign; } } slot++; } if (arg2 == true) {
scr_getchar(4);
if (__make) { with (
scr_makecaterpillar(kris.x, kris.y, 4, slot))
{ halign = (global.darkzone == 0) ? 2 : 4; valign = (global.darkzone == 0) ? 9 : 18; x -= halign; y -= valign; } } slot++; } }
(1, 1, 0);
12
    if (keyboard_check(ord("P")))
13
    {
14
    }
15
}
16
glassrows = [];
17
glasslayers = [];
18
glassshakerows = [];
19
with (obj_border_controller)
20
    show_border();
21
if (global.plot < 245)
22
{
23
    con = 0;
24
    camera_y_pos = 0;
25
    camera_y_target = 2000;
26
    camera_y_cache = 0;
27
    glasslayer = layer_get_id("TOWER");
28
    glassrows_unsorted = layer_get_all_elements(layer_get_id("TOWER"));
29
    array_sort(glassrows_unsorted, function(arg0, arg1)
30
    {
31
        return -(layer_sprite_get_y(arg0) - layer_sprite_get_y(arg1));
32
    });
33
    var _glasstiles = array_length(glassrows_unsorted);
34
    var _column = 0;
35
    var _tile = 0;
36
    for (var i = 0; i < 14; i++)
37
    {
38
        glassrows[i] = [];
39
        glassheights[i] = layer_sprite_get_y(glassrows_unsorted[_tile]);
40
        glasslayers[i] = layer_create(layer_get_depth(glasslayer) + 1);
41
        var _cols = (i > 8) ? 6 : 5;
42
        for (var j = 0; j < _cols; j++)
43
        {
44
            array_push(glassrows[i], glassrows_unsorted[_tile++]);
45
            layer_element_move(glassrows[i][j], glasslayers[i]);
46
        }
47
        array_sort(glassrows[i], function(arg0, arg1)
48
        {
49
            return layer_sprite_get_x(arg0) - layer_sprite_get_x(arg1);
50
        });
51
    }
52
    glasscrackedrows = array_create(array_length(glassrows), 0);
53
    
54
    glass_row_crack = function(arg0)
55
    {
56
        if (glasscrackedrows[arg0] == 0)
57
        {
58
            glasscrackedrows[arg0] = 1;
59
            var _cols = (arg0 > 8) ? 6 : 5;
60
            for (var i = 0; i < _cols; i++)
61
            {
62
                var _glass = glassrows[arg0][i];
63
                var _shift = sprite_get_number(layer_sprite_get_sprite(_glass)) / 2;
64
                layer_sprite_index(_glass, layer_sprite_get_index(_glass) + _shift);
65
            }
66
        }
67
    };
68
    
69
    glass_row_shatter = function(arg0, arg1 = true, arg2 = 20)
70
    {
71
        var _cols = (arg0 > 8) ? 6 : 5;
72
        for (var i = 0; i < _cols; i++)
73
        {
74
            var _glass = glassrows[arg0][i];
75
            if (layer_sprite_exists(glasslayers[arg0], _glass))
76
                glass_tile_shatter(_glass, false, arg2);
77
        }
78
        if (arg1)
79
        {
80
            var snd = snd_play_complex(0, 0, undefined);
81
            snd_add_complex(snd, 0, 236, 0.6, 0.7, 1, -1, 0);
82
            snd_add_complex(snd, 3, 269, 0.7, 0.95, -1, -1, 0);
83
        }
84
    };
85
    
86
    glass_row_shake = function(arg0)
87
    {
88
        array_push(glassshakerows, arg0);
89
    };
90
    
91
    glass_tile_shatter = function(arg0, arg1 = true, arg2 = 20)
92
    {
93
        if (arg1)
94
        {
95
            var snd = snd_play_complex(0, 0, undefined);
96
            snd_add_complex(snd, 0, 236, 0.6, 0.7, 1, -1, 0);
97
            snd_add_complex(snd, 3, 269, 0.7, 0.95, -1, -1, 0);
98
        }
99
        var _glassx = layer_sprite_get_x(arg0);
100
        var _glassy = layer_sprite_get_y(arg0);
101
        var _glass_sprite = layer_sprite_get_sprite(arg0);
102
        var _glass_index = layer_sprite_get_index(arg0);
103
        var _glass_depth = layer_get_depth(layer_get_element_layer(arg0));
104
        var _shatter_sprite = -1;
105
        if (_glass_sprite == 2781)
106
        {
107
            switch (_glass_index)
108
            {
109
                case 0:
110
                case 5:
111
                default:
112
                    _shatter_sprite = 5306;
113
                    break;
114
                case 1:
115
                case 6:
116
                    _shatter_sprite = 1684;
117
                    break;
118
                case 2:
119
                case 7:
120
                    _shatter_sprite = 4499;
121
                    break;
122
                case 3:
123
                case 8:
124
                    _shatter_sprite = 4899;
125
                    break;
126
                case 4:
127
                case 9:
128
                    _shatter_sprite = 4155;
129
                    break;
130
            }
131
        }
132
        if (_glass_sprite == 4987)
133
        {
134
            switch (_glass_index)
135
            {
136
                case 0:
137
                case 6:
138
                default:
139
                    _shatter_sprite = 586;
140
                    break;
141
                case 1:
142
                case 7:
143
                    _shatter_sprite = 4274;
144
                    break;
145
                case 2:
146
                case 8:
147
                    _shatter_sprite = 5386;
148
                    break;
149
                case 3:
150
                case 9:
151
                    _shatter_sprite = 2968;
152
                    break;
153
                case 4:
154
                case 10:
155
                    _shatter_sprite = 2348;
156
                    break;
157
                case 5:
158
                case 11:
159
                    _shatter_sprite = 1738;
160
                    break;
161
            }
162
        }
163
        var _fragments = sprite_get_number(_shatter_sprite);
164
        for (var i = 0; i < _fragments; i++)
165
        {
166
            with (instance_create_depth(_glassx + choose(2, -2), _glassy + choose(2, -2), _glass_depth, obj_marker_fancy))
167
            {
168
                sprite_index = _shatter_sprite;
169
                image_index = i;
170
                image_xscale = 2;
171
                image_yscale = 2;
172
                direction = random(360);
173
                image_speed = 0;
174
                timer = 0;
175
                mydelay = arg2;
176
                
177
                step_func = function()
178
                {
179
                    timer++;
180
                    if (timer == mydelay)
181
                    {
182
                        gravity = 0.5 + random(0.1);
183
                        friction = 0;
184
                        speed = 2;
185
                    }
186
                    if (y > (ystart + 480) || timer >= 120)
187
                        instance_destroy();
188
                };
189
            }
190
        }
191
        layer_sprite_destroy(arg0);
192
    };
193
    
194
    wall_cover = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(236, 2200, spr_blank_tile_black);
195
    with (wall_cover)
196
    {
197
        image_xscale = 4.2;
198
        image_yscale = 3;
199
        depth = 999990;
200
        visible = 0;
201
    }
202
    jackenstein = instance_create(210, 2600, obj_ch4_DCC00_jackenstein);
203
    with (jackenstein)
204
    {
205
        
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
206
        visible = 0;
207
        sprite_index = spr_jackenstein_walk_up;
208
    }
209
    sword_controller = instance_create(0, 0, obj_ch4_DCC00_sword);
210
    sword_controller_b = instance_create(0, 0, obj_ch4_DCC00_sword);
211
    sword_controller_c = instance_create(0, 0, obj_ch4_DCC00_sword);
212
    recruit_version = scr_get_total_recruits(4) > 0 && 
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ var flag_value = global.flag[arg0]; return flag_value; } function scr_flag_name_get(arg0) { if (!global.is_console) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } else { return ""; } } function scr_getflag(arg0) { return
scr_flag_get(arg0);
}
(1580) == 0;
213
    cup_stack = -4;
214
    cup_top_y_pos = 0;
215
    cup_bottom_y_pos = 0;
216
    if (recruit_version)
217
    {
218
        cup_stack = instance_create(290, 2360, obj_ch4_DCC00_cupstack);
219
        with (cup_stack)
220
            visible = 0;
221
        cup_top_y_pos = cup_stack.y - cup_stack.get_total_height();
222
        cup_bottom_y_pos = 2000;
223
    }
224
}
225
else
226
{
227
    var tower_block = instance_create(240, 2240, obj_solidblockDark);
228
    with (tower_block)
229
        image_xscale = 4;
230
    var tower_cover = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(200, 1960, spr_blank_tile_black);
231
    with (tower_cover)
232
    {
233
        depth = 999990;
234
        image_yscale = 8;
235
        image_xscale = 6;
236
    }
237
    recruit_version = scr_get_total_recruits(4) > 0 && 
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ var flag_value = global.flag[arg0]; return flag_value; } function scr_flag_name_get(arg0) { if (!global.is_console) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } else { return ""; } } function scr_getflag(arg0) { return
scr_flag_get(arg0);
}
(1580) == 0;
238
    cup_stack = -4;
239
    cup_top_y_pos = 0;
240
    cup_bottom_y_pos = 0;
241
    if (recruit_version)
242
    {
243
        var base_y = 1920;
244
        cup_stack = instance_create(290, base_y + 360, obj_ch4_DCC00_cupstack);
245
        cup_stack.cutscene_mode = false;
246
        cup_top_y_pos = cup_stack.y - cup_stack.get_total_height();
247
        cup_bottom_y_pos = 2000;
248
        var cup_readable = instance_create(280, base_y + 360, obj_readable_room1);
249
        with (cup_readable)
250
        {
251
            extflag = "cup_stack";
252
            image_xscale = 4;
253
        }
254
        var cup_block = instance_create(240, base_y + 340, obj_solidblockDark);
255
        with (cup_block)
256
            image_xscale = 4;
257
    }
258
}