Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_church_watercooler_Step_0

(view raw script w/o annotations or w/e)
1
var foughtbefore = false;
2
if (!init)
3
{
4
    if (global.flag[encounterflag] != 0)
5
    {
6
        alertrad = 90;
7
        foughtbefore = true;
8
        var _list = ds_list_create();
9
        var _num = instance_place_list(x, y, 334, _list, false);
10
        if (_num > 0)
11
        {
12
            for (var i = 0; i < _num; i++)
13
            {
14
                ds_list_find_value(_list, i).extflag = "removemizzle";
15
                instance_destroy();
16
            }
17
        }
18
        ds_list_destroy(_list);
19
    }
20
    init = 1;
21
}
22
if (con == 0)
23
{
24
    var dist = point_distance(x + 20, y + 38, obj_mainchara.x + 20, obj_mainchara.y + 70);
25
    if (dist < alertrad || (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
() && keyboard_check_pressed(ord("P"))))
26
    {
27
        doappear = 2;
28
        con = 1;
29
    }
30
}
31
if (con == 1 && mizzle.image_alpha == 2)
32
{
33
    var mx = mizzle.x + 24;
34
    var my = mizzle.y + 28;
35
    var mwid = 52;
36
    var mhei = 50;
37
    var inst = collision_rectangle(mx, my, (mx + mwid) - 1, (my + mhei) - 1, obj_mainchara, 1, 1);
38
    if (i_ex(obj_climb_kris) || global.interact != 0)
39
        inst = -4;
40
    if (i_ex(inst))
41
    {
42
        with (object_index)
43
            con = 20;
44
        con = 2;
45
        var snd = snd_play_complex(0, 0, -1);
46
        snd_add_complex(snd, 0, 272, 1.2, 1, 0, -1, 0);
47
        snd_add_complex(snd, 0, 272, 1.3, 0.7, 1, -1, 0);
48
        snd_add_complex(snd, 0, 272, 1.4, 0.5, 2, -1, 0);
49
        snd_add_complex(snd, 1, 352, 1.8, 0.9, 0, -1, 0);
50
        mizzle.con = 99;
51
        mizzle.speed = 0;
52
        global.interact = 1;
53
    }
54
}
55
if (con == 20)
56
{
57
    with (mizzle)
58
    {
59
        
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
60
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_alpha", image_alpha, 0, 12, 2, "out");
61
        con = 999;
62
        gravity = -0.2;
63
    }
64
    scr_lerpvar_respect("haswater", haswater, 0, 12, 2, "out");
65
    con = 21;
66
}
67
if (con == 21)
68
{
69
    if (i_ex(mizzle))
70
    {
71
        if (mizzle.image_alpha <= 0)
72
        {
73
            safe_delete(mizzle);
74
            mizzle = 0;
75
            con = 22;
76
        }
77
    }
78
}
79
if (i_ex(mizzle))
80
{
81
    if (mizzle.con == 0)
82
    {
83
        var __amt = 1;
84
        if (dir == 1)
85
            __amt = -1;
86
        if (global.interact == 0)
87
            siner += __amt;
88
        mizzle.x = 
scr_even
scr_even

function
scr_even(arg0)
{ return round(arg0 / 2) * 2; }
((x - 32) + (sin(siner / 20) * patrolradius));
89
        mizzle.y = 
scr_even
scr_even

function
scr_even(arg0)
{ return round(arg0 / 2) * 2; }
((y - 12) + (cos(siner / 20) * patrolradius));
90
    }
91
}
92
with (mizzle)
93
{
94
    if (alerted == 1)
95
    {
96
        if (image_alpha > 0.5)
97
        {
98
            alerted = 2;
99
            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]; }
(x + 34, y + 4, spr_exc, 2, 2, 0, undefined, undefined, undefined, undefined, 30))
100
            {
101
                depth = 50;
102
                scr_limitval_upper(id, "y", y);
103
                gravity = 0.75;
104
                vspeed = -6;
105
            }
106
        }
107
    }
108
    if (con == 20 && image_alpha == 2)
109
    {
110
        sprite_index = spr_holywater_alarm;
111
        con = 21;
112
    }
113
    if (con == 30)
114
    {
115
        if (global.interact == 0)
116
        {
117
            movespeed = lerp(movespeed, 10, 1/30);
118
            direction = point_direction(x, y, obj_mainchara.x, obj_mainchara.y);
119
            x += lengthdir_x(movespeed, direction);
120
            y += lengthdir_y(movespeed, direction);
121
            setxy(
scr_even
scr_even

function
scr_even(arg0)
{ return round(arg0 / 2) * 2; }
(x),
scr_even
scr_even

function
scr_even(arg0)
{ return round(arg0 / 2) * 2; }
(y));
122
            if ((x + 51) > (obj_mainchara.x + 20))
123
                sprite_index = spr_holywater_alarm;
124
            else
125
                sprite_index = spr_holywater_alarm_right;
126
            var fleeaway = false;
127
            with (obj_mainchara)
128
            {
129
                if (place_meeting(x, y, obj_solidenemy))
130
                    fleeaway = true;
131
            }
132
            if (i_ex(obj_climb_kris))
133
                fleeaway = true;
134
            with (obj_climbstarter)
135
            {
136
                if (con != 0)
137
                    fleeaway = true;
138
            }
139
            if (fleeaway == true)
140
            {
141
                with (obj_dw_church_watercooler)
142
                    drain = 0;
143
                debug_print("flee!");
144
                other.con = 20;
145
            }
146
            
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
147
            depth -= 92341;
148
        }
149
        else
150
        {
151
        }
152
    }
153
    if (con == 99)
154
    {
155
        image_speed = 0;
156
        sprite_index = spr_holywater_alarm;
157
        image_index %= 9;
158
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_index", image_index, 6, 12);
159
        var targx = obj_mainchara.x + 40;
160
        var targy = obj_mainchara.y - 22;
161
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, targx, 12, 2, "in");
162
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("y", y, targy, 12, 2, "out");
163
        con++;
164
    }
165
    if (con == 100)
166
    {
167
        if ((x + 51) > (obj_mainchara.x + 20))
168
            global.facing = 1;
169
        timer++;
170
        if (timer == 12)
171
        {
172
            snd_play(snd_tensionhorn);
173
            snd_play_delay(snd_tensionhorn, 10, undefined, 1.1);
174
        }
175
        if (timer == 36)
176
        {
177
            other.con = 21;
178
            other.mizzle = 0;
179
            global.flag[54 encounter_pointer] = other.encounterflag;
180
            
scr_battle
scr_battle

function
scr_battle(arg0, arg1, arg2, arg3, arg4)
{ global.specialbattle = arg1; global.encounterno = arg0; if (global.flag[9 battle_music] != 2) { global.flag[9 battle_music] = 1; if (global.chapter == 4 && room != room_dw_castle_dojo) global.batmusic[0] = snd_init("ch4_battle.ogg"); else global.batmusic[0] = snd_init("battle.ogg"); } instance_create(0, 0, obj_battleback); instance_create(0, 0, obj_encounterbasic); __enemymarker[0] = arg2; __enemymarker[1] = arg3; __enemymarker[2] = arg4; for (__ien = 0; __ien < 3; __ien++) { if (global.monstertype[__ien] != 0(None)) { if (!i_ex(__enemymarker[__ien])) { __enemymarker[__ien] =
scr_dark_marker(global.monstermakex[__ien] + 300, global.monstermakey[__ien], object_get_sprite(global.monsterinstancetype[__ien]));
__enemymarker[__ien].depth = -__ien; } __enemymarker[__ien].__ien = __ien; with (__enemymarker[__ien]) {
scr_move_to_point_over_time(global.monstermakex[__ien], global.monstermakey[__ien], 20);
__doom = instance_create(x, y, obj_doom); __doom.target = id; __doom.alarm[0] = 25; } } } }
(other.encounterno, 0, id);
181
            with (obj_dw_church_watercooler)
182
                dodrain = true;
183
        }
184
    }
185
}
186
if (doappear)
187
{
188
    with (mizzle)
189
    {
190
        image_alpha = 0;
191
        var count = 1;
192
        scr_delay_var("image_alpha", 0.125, count);
193
        count++;
194
        scr_delay_var("image_alpha", 0, count);
195
        count++;
196
        scr_delay_var("image_alpha", 0.5, count);
197
        count++;
198
        scr_delay_var("image_alpha", 0.25, count);
199
        count++;
200
        scr_delay_var("image_alpha", 0.75, count);
201
        count++;
202
        scr_delay_var("image_alpha", 0.5, count);
203
        count++;
204
        scr_delay_var("image_alpha", 1, count);
205
        count++;
206
        scr_delay_var("image_alpha", 2, count + 4);
207
        count++;
208
    }
209
    if (foughtbefore)
210
        scr_lerpvar_respect("patrolradius", 0, 100, 120);
211
    else
212
        scr_lerpvar_respect("patrolradius", 0, 100, 60, 2, "out");
213
    if (doappear == 2)
214
    {
215
        var snd = snd_play_complex(0, 0, -1);
216
        snd_add_complex(snd, 0, 271, 0.9, 1, 0, -1, 0);
217
        snd_add_complex(snd, 1, 271, 0.8, 1, 2, -1, 0);
218
        snd_add_complex(snd, 2, 271, 0.7, 1, 4, -1, 0);
219
        snd_add_complex(snd, 2, 271, 0.6, 1, 6, -1, 0);
220
        snd_add_complex(snd, 2, 271, 0.5, 1, 7, -1, 0);
221
    }
222
    doappear = 0;
223
}