Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_board_grabbablegrass_Step_0

(view raw script w/o annotations or w/e)
1
if (!reqactive)
2
    active = true;
3
siner++;
4
var destroy = false;
5
if (init == 0)
6
    init = 1;
7
if (active)
8
{
9
    if (room == room_dw_puzzlecloset_1)
10
    {
11
        if (i_ex(obj_board_swordhitbox))
12
        {
13
            if (place_meeting(x, y, obj_board_swordhitbox))
14
            {
15
                if (type == "marker")
16
                    dirt = 
scr_board_marker
scr_board_marker

function
scr_board_marker()
{ var _thismarker = instance_create(argument0, argument1, obj_board_marker); _thismarker.sprite_index = argument2; _thismarker.image_xscale = 2; _thismarker.image_yscale = 2; if (argument_count >= 4) _thismarker.image_speed = argument3; if (argument_count >= 5) { if (argument4 != -1) _thismarker.depth = argument4; } if (argument_count >= 6) _thismarker.image_xscale = argument5; if (argument_count >= 6) _thismarker.image_yscale = argument5; if (argument_count >= 7) _thismarker.animateonce = argument6; return _thismarker; }
(x, y, spr_board_holemarker, 0, 999999, 2);
17
                instance_create(x + 16, y + 16, obj_board_enemydefeatsplash);
18
                instance_destroy();
19
            }
20
        }
21
    }
22
    if (con == 1)
23
    {
24
        con = -1;
25
        if (type != "marker")
26
            snd_play_delay(snd_board_lift, 10);
27
        scr_delay_var("con", 2, 10);
28
        if (!infinite)
29
            visible = false;
30
        var _su = 0;
31
        with (obj_mainchara_board)
32
        {
33
            if (name == "susie")
34
                _su = id;
35
        }
36
    }
37
    if (con == 2.1)
38
    {
39
        con = 99999;
40
        if (type == "coin")
41
        {
42
            var movetime = 4;
43
            var waittime = 6;
44
            coin = instance_create(x, y, obj_board_marker);
45
            with (coin)
46
            {
47
                
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
48
                sprite_index = spr_board_pointsGet;
49
                
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, (y - 32) + 4, movetime, 2, "out");
50
            }
51
            scr_delay_var("con", 10, movetime + waittime);
52
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(coin, movetime + waittime + 5);
53
        }
54
        if (type == "marker")
55
        {
56
            var movetime = 4;
57
            var waittime = 6;
58
            snd_play(snd_board_splash);
59
            with (instance_create(x, y, obj_board_smokepuff))
60
                image_blend = #FFECBD;
61
            dirt = 
scr_board_marker
scr_board_marker

function
scr_board_marker()
{ var _thismarker = instance_create(argument0, argument1, obj_board_marker); _thismarker.sprite_index = argument2; _thismarker.image_xscale = 2; _thismarker.image_yscale = 2; if (argument_count >= 4) _thismarker.image_speed = argument3; if (argument_count >= 5) { if (argument4 != -1) _thismarker.depth = argument4; } if (argument_count >= 6) _thismarker.image_xscale = argument5; if (argument_count >= 6) _thismarker.image_yscale = argument5; if (argument_count >= 7) _thismarker.animateonce = argument6; return _thismarker; }
(x, y, spr_board_holemarker, 0, 999999, 2);
62
            scr_delay_var("con", 10, movetime + waittime);
63
        }
64
    }
65
    if (con == 2 && obj_board_camera.con == 0 && obj_board_camera.shift == "none")
66
    {
67
        con = -1;
68
        with (grabdaddy)
69
            image_index = 1;
70
        if (!infinite)
71
            image_alpha = 0;
72
        if (type == "coin")
73
        {
74
            var movetime = 4;
75
            var waittime = 6;
76
            var targx = x;
77
            var targy = y;
78
            with (grabdaddy)
79
            {
80
                targx = x;
81
                targy = y;
82
            }
83
            coin = instance_create(targx, targy, obj_board_marker);
84
            with (coin)
85
            {
86
                
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
87
                sprite_index = spr_board_pointsGet;
88
                
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, (y - 32) + 4, movetime, 2, "out");
89
            }
90
            trig = movetime + waittime + 4;
91
            trigtime = 0;
92
            dofun = 0;
93
            dograb = 0;
94
            docanfreemove = 1;
95
            resetcon = 1;
96
            scr_delay_var("con", 10, movetime + waittime);
97
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(coin, movetime + waittime + 5);
98
        }
99
        if (type == "marker")
100
        {
101
            var movetime = 4;
102
            var waittime = 6;
103
            snd_play(snd_board_splash);
104
            with (instance_create(x, y, obj_board_smokepuff))
105
                image_blend = #FFECBD;
106
            dirt = 
scr_board_marker
scr_board_marker

function
scr_board_marker()
{ var _thismarker = instance_create(argument0, argument1, obj_board_marker); _thismarker.sprite_index = argument2; _thismarker.image_xscale = 2; _thismarker.image_yscale = 2; if (argument_count >= 4) _thismarker.image_speed = argument3; if (argument_count >= 5) { if (argument4 != -1) _thismarker.depth = argument4; } if (argument_count >= 6) _thismarker.image_xscale = argument5; if (argument_count >= 6) _thismarker.image_yscale = argument5; if (argument_count >= 7) _thismarker.animateonce = argument6; return _thismarker; }
(x, y, spr_board_holemarker, 0, 999999, 2);
107
            trig = movetime + waittime + 4;
108
            trigtime = 0;
109
            dofun = 0;
110
            dograb = 0;
111
            docanfreemove = 1;
112
            resetcon = 1;
113
            scr_delay_var("con", 10, movetime + waittime);
114
        }
115
        if (type == "pot")
116
        {
117
            grabdaddy.grabmarker = instance_create(x, y, obj_board_grabobject);
118
            sprite_index = potsprite;
119
            with (grabdaddy.grabmarker)
120
            {
121
                snd_play(snd_board_lift);
122
                grabdaddy = other.grabdaddy;
123
                grabbedid = other.id;
124
                image_xscale = 2;
125
                image_yscale = 2;
126
                image_speed = 0;
127
                sourcex = other.x;
128
                sourcey = other.y;
129
            }
130
            var postpickupwait = 4;
131
            with (grabdaddy)
132
                scr_delay_var("canfreemove", true, postpickupwait);
133
            with (grabdaddy)
134
                scr_delay_var("fun", false, postpickupwait);
135
            con = 20;
136
        }
137
        if (type == "bomb" || type == "puzzlebomb")
138
        {
139
            grabdaddy.grabmarker = instance_create(x, y, obj_board_grabobject);
140
            var puzzle = false;
141
            bomb = instance_create(x, y, obj_board_bomb);
142
            if (type == "puzzlebomb")
143
            {
144
                puzzle = true;
145
                bomb.throwdist = 1;
146
                bomb.fatal = false;
147
                bomb.ignoreplayer = true;
148
            }
149
            bomb.visible = false;
150
            sprite_index = potsprite;
151
            with (grabdaddy.grabmarker)
152
            {
153
                snd_play(snd_board_lift);
154
                grabdaddy = other.grabdaddy;
155
                grabbedid = other.bomb;
156
                if (puzzle == true)
157
                {
158
                    type = 2;
159
                    throwdist = 1;
160
                    ignoreplayer = 1;
161
                }
162
                image_xscale = 2;
163
                image_yscale = 2;
164
                image_speed = 0;
165
                sourcex = other.x;
166
                sourcey = other.y;
167
            }
168
            var postpickupwait = 4;
169
            with (grabdaddy)
170
                scr_delay_var("canfreemove", true, postpickupwait);
171
            with (grabdaddy)
172
                scr_delay_var("fun", false, postpickupwait);
173
            con = 30;
174
        }
175
    }
176
    if (con == 10)
177
    {
178
        if (i_ex(coin))
179
        {
180
            var puff = instance_create(coin.x, coin.y, obj_board_smokepuff);
181
            puff.depth = coin.depth + 1;
182
            var pointsDisplay = instance_create(coin.x + 16, coin.y + 16, obj_board_pointsGetDisplay);
183
            pointsDisplay.amount = value;
184
            pointsDisplay.depth = coin.depth - 1;
185
            safe_delete(coin);
186
            destroy = true;
187
        }
188
        else
189
        {
190
            destroy = true;
191
        }
192
    }
193
    if (con == 20 && !i_ex(obj_board_grabobject))
194
    {
195
        instance_create(x, y, obj_board_breakpoof);
196
        destroy = true;
197
    }
198
    if (con == 30)
199
    {
200
        if (obj_board_camera.con != 0)
201
        {
202
            safe_delete(bomb);
203
            destroy = true;
204
        }
205
        if (!i_ex(obj_board_grabobject))
206
            destroy = true;
207
    }
208
    if (destroy == true)
209
    {
210
        if (infinite)
211
        {
212
            var newGrass = instance_create(x, y, object_index);
213
            newGrass.type = type;
214
            newGrass.value = value;
215
            newGrass.potsprite = potsprite;
216
            newGrass.puzzleid = puzzleid;
217
            newGrass.infinite = infinite;
218
        }
219
        else
220
        {
221
            x = room_width * 2;
222
            con = 31;
223
        }
224
    }
225
}
226
else if (room != room_dw_puzzlecloset_1)
227
{
228
    instance_destroy();
229
}
230
if (resetcon == 1)
231
{
232
    if (obj_board_camera.con != 0 || obj_board_camera.shift != "none" || !instance_exists(grabdaddy))
233
    {
234
        resetcon = -1;
235
        exit;
236
    }
237
    if (global.interact == 0 && !d_ex() && !bw_ex())
238
        trigtime++;
239
    if (trigtime >= trig)
240
    {
241
        if (dofun != -1)
242
            grabdaddy.fun = dofun;
243
        if (dograb != -1)
244
            grabdaddy.grab = dograb;
245
        if (docanfreemove != -1)
246
            grabdaddy.canfreemove = docanfreemove;
247
        dofun = -1;
248
        dograb = -1;
249
        docanfreemove = -1;
250
        resetcon = 0;
251
    }
252
}