Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_board_enemy_black_deer_Step_2

(view raw script w/o annotations or w/e)
1
if (active == false)
2
    exit;
3
bkx = 0;
4
bky = 0;
5
bkxy = 0;
6
xmeet = 0;
7
ymeet = 0;
8
xymeet = 0;
9
var lenient_x = px;
10
var lenient_y = py;
11
var _index = false;
12
if (place_meeting(x + px, y + py, obj_board_solid))
13
    xymeet = 1;
14
if (place_meeting(x + px, y, obj_board_solid))
15
{
16
    if (place_meeting(x + px, y, obj_board_solid))
17
    {
18
        for (g = wspeed; g > 0; g -= 1)
19
        {
20
            mvd = 0;
21
            if (press_d == 0 && !place_meeting(x + px, y - g, obj_board_solid))
22
            {
23
                y -= g;
24
                _index = true;
25
                py = 0;
26
                break;
27
                mvd = 1;
28
            }
29
            if (press_u == 0 && mvd == 0 && !place_meeting(x + px, y + g, obj_board_solid))
30
            {
31
                y += g;
32
                _index = true;
33
                py = 0;
34
                break;
35
            }
36
        }
37
    }
38
    xmeet = 1;
39
    bkx = 0;
40
    if (px > 0)
41
    {
42
        for (i = px; i >= 0; i -= 1)
43
        {
44
            if (!place_meeting(x + i, y, obj_board_solid))
45
            {
46
                px = i;
47
                bkx = 1;
48
                break;
49
            }
50
        }
51
    }
52
    if (px < 0)
53
    {
54
        for (i = px; i <= 0; i += 1)
55
        {
56
            if (!place_meeting(x + i, y, obj_board_solid))
57
            {
58
                px = i;
59
                bkx = 1;
60
                break;
61
            }
62
        }
63
    }
64
    if (bkx == 0)
65
        px = 0;
66
}
67
if (place_meeting(x, y + py, obj_board_solid))
68
{
69
    ymeet = 1;
70
    bky = 0;
71
    if (place_meeting(x, y + py, obj_board_solid))
72
    {
73
        for (g = wspeed; g > 0; g -= 1)
74
        {
75
            mvd = 0;
76
            if (press_r == 0 && !place_meeting(x - g, y + py, obj_board_solid))
77
            {
78
                x -= g;
79
                _index = true;
80
                px = 0;
81
                break;
82
                mvd = 1;
83
            }
84
            if (mvd == 0 && press_l == 0 && !place_meeting(x + g, y + py, obj_board_solid))
85
            {
86
                x += g;
87
                _index = true;
88
                px = 0;
89
                break;
90
            }
91
        }
92
    }
93
    if (py > 0)
94
    {
95
        for (i = py; i >= 0; i -= 1)
96
        {
97
            if (!place_meeting(x, y + i, obj_board_solid))
98
            {
99
                py = i;
100
                bky = 1;
101
                break;
102
            }
103
        }
104
    }
105
    if (py < 0)
106
    {
107
        for (i = py; i <= 0; i += 1)
108
        {
109
            if (!place_meeting(x, y + i, obj_board_solid))
110
            {
111
                py = i;
112
                bky = 1;
113
                break;
114
            }
115
        }
116
    }
117
    if (bky == 0)
118
        py = 0;
119
}
120
if (place_meeting(x + px, y + py, obj_board_solid))
121
{
122
    var block = instance_place(x + px, y + py, obj_board_solid);
123
    if (block.object_index == obj_pushableblock_board && block.jello == true)
124
    {
125
    }
126
    else
127
    {
128
        xymeet = 1;
129
        bkxy = 0;
130
        i = px;
131
        j = py;
132
        while (j != 0 || i != 0)
133
        {
134
            if (!place_meeting(x + i, y + j, obj_board_solid))
135
            {
136
                px = i;
137
                py = j;
138
                bkxy = 1;
139
                break;
140
            }
141
            if (abs(j) >= 1)
142
            {
143
                if (j > 0)
144
                    j -= 1;
145
                if (j < 0)
146
                    j += 1;
147
            }
148
            else
149
            {
150
                j = 0;
151
            }
152
            if (abs(i) >= 1)
153
            {
154
                if (i > 0)
155
                    i -= 1;
156
                if (i < 0)
157
                    i += 1;
158
            }
159
            else
160
            {
161
                i = 0;
162
            }
163
        }
164
        if (bkxy == 0)
165
        {
166
            px = 0;
167
            py = 0;
168
        }
169
    }
170
}
171
var lenient_amount = 8;
172
if (px == 0 && lenient_y == 0 && lenient_x > 0)
173
{
174
    var colllide_count = 0;
175
    for (i = 0; i <= 16; i += 1)
176
    {
177
        if (position_meeting(x + 32, (y + 32) - i, obj_board_solid))
178
            colllide_count = i;
179
    }
180
    if (colllide_count <= lenient_amount)
181
    {
182
        y -= wspeed;
183
        _index = true;
184
    }
185
    colllide_count = 0;
186
    for (i = 0; i <= 16; i += 1)
187
    {
188
        if (position_meeting(x + 32, y + 16 + i, obj_board_solid))
189
            colllide_count = i;
190
    }
191
    if (colllide_count <= lenient_amount)
192
    {
193
        y += wspeed;
194
        _index = true;
195
    }
196
}
197
if (px == 0 && lenient_y == 0 && lenient_x < 0)
198
{
199
    var colllide_count = 0;
200
    for (i = 0; i <= 16; i += 1)
201
    {
202
        if (position_meeting(x - 1, (y + 32) - i, obj_board_solid))
203
            colllide_count = i;
204
    }
205
    if (colllide_count <= lenient_amount)
206
    {
207
        y -= wspeed;
208
        _index = true;
209
    }
210
    colllide_count = 0;
211
    for (i = 0; i <= 16; i += 1)
212
    {
213
        if (position_meeting(x - 1, y + 16 + i, obj_board_solid))
214
            colllide_count = i;
215
    }
216
    if (colllide_count <= lenient_amount)
217
    {
218
        y += wspeed;
219
        _index = true;
220
    }
221
}
222
if (py == 0 && lenient_x == 0 && lenient_y > 0)
223
{
224
    lenient_amount = 12;
225
    var colllide_count = 0;
226
    for (i = 0; i <= 32; i += 1)
227
    {
228
        if (position_meeting((x + 32) - i, y + 32, obj_board_solid))
229
            colllide_count = i;
230
    }
231
    if (colllide_count <= lenient_amount)
232
    {
233
        x -= wspeed;
234
        _index = true;
235
    }
236
    colllide_count = 0;
237
    for (i = 0; i <= 32; i += 1)
238
    {
239
        if (position_meeting(x + i, y + 32, obj_board_solid))
240
            colllide_count = i;
241
    }
242
    if (colllide_count <= lenient_amount)
243
    {
244
        x += wspeed;
245
        _index = true;
246
    }
247
    lenient_amount = 8;
248
}
249
if (py == 0 && lenient_x == 0 && lenient_y < 0)
250
{
251
    var colllide_count = 0;
252
    for (i = 0; i <= 32; i += 1)
253
    {
254
        if (position_meeting((x + 32) - i, y, obj_board_solid))
255
            colllide_count = i;
256
    }
257
    if (colllide_count <= lenient_amount)
258
    {
259
        x -= wspeed;
260
        _index = true;
261
    }
262
    colllide_count = 0;
263
    for (i = 0; i <= 32; i += 1)
264
    {
265
        if (position_meeting(x + i, y, obj_board_solid))
266
            colllide_count = i;
267
    }
268
    if (colllide_count <= lenient_amount)
269
    {
270
        x += wspeed;
271
        _index = true;
272
    }
273
}
274
x += px;
275
y += py;
276
if (px != 0 || py != 0)
277
    image_index += 0.25;
278
px = 0;
279
py = 0;
280
press_r = 0;
281
press_l = 0;
282
press_d = 0;
283
press_u = 0;
284
if (obj_board_controller.kris_object.facing == 1)
285
    sprite_index = spr_board_deer_l_black;
286
if (obj_board_controller.kris_object.facing == 3)
287
    sprite_index = spr_board_deer_r_black;
288
if (sprite_index == spr_board_deer_r)
289
    hurt_sprite = spr_board_deer_r_hurt;
290
if (sprite_index == spr_board_deer_l)
291
    hurt_sprite = spr_board_deer_l_hurt;
292
if (toriel == true)
293
{
294
    sprite_index = spr_board_monster_black;
295
    hurt_sprite = spr_board_monster_angery;
296
}