Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_churchc_insidetitan_Step_0

(view raw script w/o annotations or w/e)
1
if (con < 0)
2
    exit;
3
if (con == 0)
4
{
5
    con = 1;
6
    alarm[0]
 = 2;
gml_Object_obj_dw_churchc_insidetitan_Alarm_0.gml

con++;
7
    snd_stop_all();
8
    global.interact = 1;
9
    global.facing = 0;
10
    background = instance_create(0, 0, obj_dw_churchc_insidetitan_background);
11
    background.depth = 100000;
12
    rumble = snd_play_volume(snd_rumble, 0);
13
    global.plot = 259;
14
    fall_speed = 0;
15
    debug_print("background created");
16
    var _trail = instance_create(kris.x, kris.y, obj_darkness_trail);
17
    _trail.target = kris;
18
    _trail.xoff = 0;
19
    _trail.yoff = 0;
20
    _trail.depth = depth + 10;
21
    _trail = instance_create(susie.x, susie.y, obj_darkness_trail);
22
    _trail.target = susie;
23
    _trail.xoff = 0;
24
    _trail.yoff = 0;
25
    _trail.depth = depth + 10;
26
    for (var i = 0; i < 13; i++)
27
    {
28
        var _ball = instance_create((camerax() + 640) - (i * 70), cameray() + bottom, obj_make_fountain_ball_titan);
29
        _ball.topper = true;
30
        _ball.image_xscale = 2;
31
        _ball.image_yscale = 2;
32
        _ball.siner = random(20);
33
        _ball.hspeed = 3;
34
        _ball.depth = depth - 5;
35
        _ball.friction = 0;
36
        _ball.gravity = 0;
37
        _ball.vspeed = 0;
38
        _ball.type = 1;
39
        _ball.bounce = randomsign();
40
    }
41
}
42
if (con == 2)
43
{
44
    con = 10;
45
    cutscene_master = 
scr_cutscene_make
scr_cutscene_make

function
scr_cutscene_make()
{ _cutscene_master = instance_create(0, 0, obj_cutscene_master); _cutscene_master.master_object = id; return _cutscene_master; }
();
46
    
scr_maincharacters_actors
scr_maincharacters_actors

function
scr_maincharacters_actors()
{ actor_count = 0; kr = 0; kr_actor = instance_create(obj_mainchara.x, obj_mainchara.y, obj_actor);
scr_actor_setup(kr, kr_actor, "kris");
kr_actor.sprite_index = obj_mainchara.sprite_index; kr_actor.depth = obj_mainchara.depth; with (obj_mainchara) visible = 0; for (__jj = 0; __jj < array_length_1d(global.cinstance); __jj++) { if (i_ex(global.cinstance[__jj])) { if (global.cinstance[__jj].name == "susie") { actor_count++; su = __jj + 1; su_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(su, su_actor, "susie");
su_actor.sprite_index = global.cinstance[__jj].sprite_index; su_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "ralsei") { actor_count++; ra = __jj + 1; ra_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(ra, ra_actor, "ralsei");
ra_actor.sprite_index = global.cinstance[__jj].sprite_index; ra_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } if (global.cinstance[__jj].name == "noelle") { actor_count++; no = __jj + 1; no_actor = instance_create(global.cinstance[__jj].x, global.cinstance[__jj].y, obj_actor);
scr_actor_setup(no, no_actor, "noelle");
no_actor.sprite_index = global.cinstance[__jj].sprite_index; no_actor.depth = global.cinstance[__jj].depth; with (global.cinstance[__jj]) visible = 0; } } } }
();
47
    
c_customfunc
c_customfunc

function
c_customfunc(arg0, arg1 = -1)
{ if (instance_exists(obj_cutscene_master)) { with (obj_cutscene_master) array_push(customfuncs, arg0);
c_cmd("customfunc", arg1, 0, 0, 0);
} } function c_delay_customfunc(arg0, arg1, arg2 = -1) { if (instance_exists(obj_cutscene_master))
c_cmd_x("delaycmd", arg0, "customfunc", arg2, arg1, 0, 0);
}
(function()
48
    {
49
        rumble = snd_loop(snd_rumble);
50
        snd_volume(rumble, 0, 0);
51
        snd_volume(rumble, 0.5, 40);
52
    });
53
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(20);
54
    c_var_lerp_to_instance(fade, "image_alpha", 0, 80);
55
    
c_var_instance
c_var_instance

function
c_var_instance(arg0, arg1, arg2)
{
c_cmd_x("var", arg0, arg1, arg2, 0, 0, 0);
}
(id, "fall_speed", 1/30);
56
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(80);
57
    var _xease = 30;
58
    c_var_lerp_to_instance(id, "kris_y", 600, _xease, 2, "out");
59
    c_var_lerp_to_instance(id, "extra_y", 50, _xease, 2, "in");
60
    c_var_lerp_to_instance(id, "susie_y", 600, _xease, 2, "out");
61
    c_var_lerp_to_instance(id, "fall_speed", 1, _xease, 5, "in");
62
    c_var_lerp_to_instance(1229, "fall_speed", 2, 30);
63
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(5);
64
    c_var_lerp_to_instance(id, "spread", 50, 300);
65
    
c_customfunc
c_customfunc

function
c_customfunc(arg0, arg1 = -1)
{ if (instance_exists(obj_cutscene_master)) { with (obj_cutscene_master) array_push(customfuncs, arg0);
c_cmd("customfunc", arg1, 0, 0, 0);
} } function c_delay_customfunc(arg0, arg1, arg2 = -1) { if (instance_exists(obj_cutscene_master))
c_cmd_x("delaycmd", arg0, "customfunc", arg2, arg1, 0, 0);
}
(function()
66
    {
67
        with (obj_darkness_trail)
68
        {
69
        }
70
    });
71
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(5);
72
    c_snd_play_x(snd_dark_odd, 1, 0.5);
73
    c_snd_play_x(snd_dark_odd, 1, 0.4);
74
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(_xease - 10);
75
    c_var_lerp_to_instance(id, "kris_y", 240, 40, 2, "inout");
76
    c_var_lerp_to_instance(id, "susie_y", 240, 40, 2, "inout");
77
    c_var_lerp_to_instance(id, "extra_y", 0, 40, 2, "out");
78
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(10);
79
    c_var_lerp_to_instance(id, "siner", 282.74333882308133, 380, 2, "inout");
80
    c_var_lerp_to_instance(id, "gap", 70, 380, 2, "inout");
81
    
c_customfunc
c_customfunc

function
c_customfunc(arg0, arg1 = -1)
{ if (instance_exists(obj_cutscene_master)) { with (obj_cutscene_master) array_push(customfuncs, arg0);
c_cmd("customfunc", arg1, 0, 0, 0);
} } function c_delay_customfunc(arg0, arg1, arg2 = -1) { if (instance_exists(obj_cutscene_master))
c_cmd_x("delaycmd", arg0, "customfunc", arg2, arg1, 0, 0);
}
(function()
82
    {
83
        susie_y = susie.y;
84
        kris_y = kris.y;
85
        spin = true;
86
    });
87
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(35);
88
    c_var_lerp_to_instance(id, "kris_angle", 0, 180, 2, "inout");
89
    c_var_lerp_to_instance(id, "susie_angle", 0, 180, 2, "inout");
90
    
c_customfunc
c_customfunc

function
c_customfunc(arg0, arg1 = -1)
{ if (instance_exists(obj_cutscene_master)) { with (obj_cutscene_master) array_push(customfuncs, arg0);
c_cmd("customfunc", arg1, 0, 0, 0);
} } function c_delay_customfunc(arg0, arg1, arg2 = -1) { if (instance_exists(obj_cutscene_master))
c_cmd_x("delaycmd", arg0, "customfunc", arg2, arg1, 0, 0);
}
(function()
91
    {
92
        
scr_lerp_imageblend
scr_lerp_imageblend

function
scr_lerp_imageblend()
{ var lerpblend = instance_create(x, y, obj_lerpimageblend); lerpblend.target = argument0; lerpblend.color1 = argument1; lerpblend.color2 = argument2; var ___time = argument3; if (argument_count > 4) { var _style = argument4; var _ease = argument5; lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time, _style, _ease); } else { lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time); } with (lerpblend) alarm_set(0, ___time + 1); return lerpblend; }
(kris, c_white, c_black, 240);
93
        
scr_lerp_imageblend
scr_lerp_imageblend

function
scr_lerp_imageblend()
{ var lerpblend = instance_create(x, y, obj_lerpimageblend); lerpblend.target = argument0; lerpblend.color1 = argument1; lerpblend.color2 = argument2; var ___time = argument3; if (argument_count > 4) { var _style = argument4; var _ease = argument5; lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time, _style, _ease); } else { lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time); } with (lerpblend) alarm_set(0, ___time + 1); return lerpblend; }
(susie, c_white, c_black, 240);
94
    });
95
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(85);
96
    c_var_lerp_to_instance(id, "fall_speed", 0, 90);
97
    c_var_lerp_to_instance(kris, "image_speed", 0.15, 60);
98
    c_var_lerp_to_instance(susie, "image_speed", 0.15, 60);
99
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(50);
100
    c_snd_play(snd_great_shine);
101
    
c_customfunc
c_customfunc

function
c_customfunc(arg0, arg1 = -1)
{ if (instance_exists(obj_cutscene_master)) { with (obj_cutscene_master) array_push(customfuncs, arg0);
c_cmd("customfunc", arg1, 0, 0, 0);
} } function c_delay_customfunc(arg0, arg1, arg2 = -1) { if (instance_exists(obj_cutscene_master))
c_cmd_x("delaycmd", arg0, "customfunc", arg2, arg1, 0, 0);
}
(function()
102
    {
103
        heart.visible = true;
104
        heart.x = kris.x;
105
        heart.y = kris.y;
106
        heart.con = 1;
107
    });
108
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(20);
109
    c_move_to_instance(heart, 320, 252, 40, 2, "inout");
110
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(120);
111
    c_lerp_var_instance(kris_over, "image_alpha", 0, 1, 20);
112
    c_lerp_var_instance(susie_over, "image_alpha", 0, 1, 20);
113
    
c_var_instance
c_var_instance

function
c_var_instance(arg0, arg1, arg2)
{
c_cmd_x("var", arg0, arg1, arg2, 0, 0, 0);
}
(heart, "con", 2);
114
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(20);
115
    c_var_add_instance(heart, "depth", -2);
116
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(10);
117
    
c_var_instance
c_var_instance

function
c_var_instance(arg0, arg1, arg2)
{
c_cmd_x("var", arg0, arg1, arg2, 0, 0, 0);
}
(id, "spawner", 999999);
118
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(10);
119
    
c_var_lerp_instance
c_var_lerp_instance

function
c_var_lerp_instance()
{ if (argument_count < 6)
c_cmd_x("var", argument[0], argument[1], argument[2], argument[3], argument[4], 0);
else if (argument_count == 6)
c_cmd_x("var", argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
else if (argument_count == 7)
c_cmd_x("var", argument[0], argument[1], argument[2], argument[3], argument[4], string(argument[5]) + string(argument[6]));
} function c_lerp_var_instance() { if (argument_count >= 6)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4);
} function c_lerpvar_instance() { if (argument_count >= 6)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4);
}
(id, "shake", 1, 2, 30);
120
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(10);
121
    
c_customfunc
c_customfunc

function
c_customfunc(arg0, arg1 = -1)
{ if (instance_exists(obj_cutscene_master)) { with (obj_cutscene_master) array_push(customfuncs, arg0);
c_cmd("customfunc", arg1, 0, 0, 0);
} } function c_delay_customfunc(arg0, arg1, arg2 = -1) { if (instance_exists(obj_cutscene_master))
c_cmd_x("delaycmd", arg0, "customfunc", arg2, arg1, 0, 0);
}
(function()
122
    {
123
        snd_volume(rumble, 0, 60);
124
    });
125
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(20);
126
    
c_var_lerp_instance
c_var_lerp_instance

function
c_var_lerp_instance()
{ if (argument_count < 6)
c_cmd_x("var", argument[0], argument[1], argument[2], argument[3], argument[4], 0);
else if (argument_count == 6)
c_cmd_x("var", argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
else if (argument_count == 7)
c_cmd_x("var", argument[0], argument[1], argument[2], argument[3], argument[4], string(argument[5]) + string(argument[6]));
} function c_lerp_var_instance() { if (argument_count >= 6)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4);
} function c_lerpvar_instance() { if (argument_count >= 6)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
c_var_lerp_instance(argument0, argument1, argument2, argument3, argument4);
}
(id, "shake", 2, 0, 10);
127
    
c_wait
c_wait

function
c_wait(arg0)
{
c_cmd("wait", arg0, 0, 0, 0);
}
(150);
128
    
c_actortokris
c_actortokris

function
c_actortokris()
{
c_cmd("actortokris", 0, 0, 0, 0);
}
();
129
    
c_actortocaterpillar
c_actortocaterpillar

function
c_actortocaterpillar()
{
c_cmd("actortocaterpillar", 0, 0, 0, 0);
}
();
130
    
c_var_instance
c_var_instance

function
c_var_instance(arg0, arg1, arg2)
{
c_cmd_x("var", arg0, arg1, arg2, 0, 0, 0);
}
(id, "con", 50);
131
}
132
if (con == 50 && !i_ex(obj_cutscene_master))
133
{
134
    con = -1;
135
    debug_print("scene done!");
136
    snd_free_all();
137
    pers = instance_create(0, 0, obj_persistentfadein);
138
    pers.image_blend = c_white;
139
    pers.fadespeed = -0.02;
140
    global.interact = 0;
141
    global.facing = 0;
142
    room_goto(room_dw_churchc_titandefeated);
143
}
144
if (con <= 1)
145
    exit;
146
var _krisfall = kris_y;
147
var _susiefall = susie_y;
148
var _kris_spin = kris.sub_index;
149
var _susie_spin = susie.sub_index;
150
if (spin)
151
{
152
    var _sin = sin(siner / 30);
153
    var _cos = cos(siner / 30);
154
    _krisfall = kris_y + (_sin * 10);
155
    _susiefall = susie_y - (_sin * 10);
156
    kris.depth = depth - (round(_sin * 2) * 2);
157
    susie.depth = depth + (round(_sin * 2) * 2);
158
    kris.x = ((camerax() + 320) - (_cos * gap)) + xoff;
159
    susie.x = camerax() + 320 + (_cos * gap) + xoff;
160
    var _circle = 188.49555921538757;
161
    _circle = (siner % _circle) / _circle;
162
    _kris_spin = 2.5 + (_circle * 8);
163
    _susie_spin = 6.5 + (_circle * 8);
164
    kris.sub_index = scr_loop(_kris_spin + kris_angle, 8);
165
    
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() { }
("susie_spin", string(scr_loop(_susie_spin + susie_angle, 8)));
166
    susie.sub_index = scr_loop(_susie_spin + susie_angle, 8);
167
}
168
kris.y = _krisfall - extra_y;
169
susie.y = _susiefall - extra_y;
170
spawner -= max(0.5, fall_speed);
171
if (spawner <= 0)
172
{
173
    spawner = spawntime;
174
    var _ball = instance_create(camerax() + 320 + (spread * toggle), cameray() + 600, obj_make_fountain_ball_titan);
175
    with (_ball)
176
    {
177
        speed = random_range(3, 7);
178
        direction = 90 - (other.toggle * 90);
179
        depth = other.depth + 10;
180
        size = 80;
181
        image_xscale = size / 50;
182
        image_yscale = size / 50;
183
        friction = 0.1;
184
        big = true;
185
    }
186
    _ball = instance_create(camerax() + 320 + ((spread + 100) * toggle), cameray() + 600, obj_make_fountain_ball_titan);
187
    with (_ball)
188
    {
189
        speed = random_range(3, 7);
190
        direction = 90 - (other.toggle * 90);
191
        depth = other.depth + 10;
192
        size = 120;
193
        image_xscale = size / 50;
194
        image_yscale = size / 50;
195
        friction = 0.1;
196
        big = true;
197
    }
198
    _ball = instance_create(camerax() + 320 + ((spread + 100) * toggle), cameray() + 600, obj_make_fountain_ball_titan);
199
    with (_ball)
200
    {
201
        speed = random_range(3, 7);
202
        direction = 90 - (other.toggle * 90);
203
        depth = other.depth - 10;
204
        size = 120;
205
        image_xscale = size / 50;
206
        image_yscale = size / 50;
207
        friction = 0.1;
208
        type = 2;
209
        big = true;
210
    }
211
    _ball = instance_create(camerax() + 320 + ((spread + 200) * toggle), cameray() + 600, obj_make_fountain_ball_titan);
212
    with (_ball)
213
    {
214
        speed = random_range(3, 7);
215
        direction = 90 - (other.toggle * 90);
216
        depth = other.depth - 10;
217
        size = 240;
218
        image_xscale = size / 50;
219
        image_yscale = size / 50;
220
        friction = 0.1;
221
        type = 2;
222
        big = true;
223
    }
224
    toggle = 0 - toggle;
225
}
226
with (obj_make_fountain_ball_titan)
227
{
228
    if (type == 1)
229
        y -= (other.fall_speed * 20);
230
    else if (type == 2)
231
        y -= (3 + (other.fall_speed * 10));
232
    else
233
        y -= (2 + (other.fall_speed * 8));
234
}
235
with (obj_darkness_trail)
236
{
237
    if (target == -4)
238
    {
239
        y -= (other.fall_speed * 20);
240
    }
241
    else if (target.y > (obj_dw_churchc_insidetitan_background.cover.y + 440) && !active)
242
    {
243
        debug_print("burst occurred at " + string(other.debug_timer) + " frames");
244
        active = true;
245
    }
246
}
247
debug_timer++;
248
kris_over.x = kris.x;
249
kris_over.y = kris.y;
250
kris_over.image_index = kris.image_index;
251
kris_over.sub_index = kris.sub_index;
252
kris_over.depth = kris.depth - 1;
253
if (shake > 0 || i_ex(obj_shake))
254
{
255
    if (!i_ex(obj_shake))
256
        
scr_shakescreen
scr_shakescreen

function
scr_shakescreen(arg0 = 4, arg1 = 4)
{ var shaker = instance_create(x, y, obj_shake); if (i_ex(shaker)) { shaker.shakex = arg0; shaker.shakey = arg1; } }
(shake, shake);
257
    with (obj_shake)
258
    {
259
        permashake = true;
260
        shakex = other.shake;
261
        shakey = other.shake;
262
    }
263
}
264
if (shake == 0 && i_ex(obj_shake))
265
{
266
    with (obj_shake)
267
    {
268
        shakex = other.shake;
269
        shakey = other.shake;
270
    }
271
    with (obj_shake)
272
        permashake = false;
273
}
274
susie_over.x = susie.x;
275
susie_over.y = susie.y;
276
susie_over.image_index = susie.image_index;
277
susie_over.sub_index = susie.sub_index;
278
susie_over.depth = susie.depth - 1;