Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_giant_hammer_Step_0

(view raw script w/o annotations or w/e)
1
if ((con == 0 && timer > 8) || con != 0)
2
{
3
    fakex += fakehspeed;
4
    if (fakehspeed < 0)
5
        fakehspeed += 0.6;
6
    else
7
        fakehspeed = 0;
8
}
9
if (con == 0)
10
{
11
    timer++;
12
    if (timer == 3)
13
        snd_play(motor_upper_quick);
14
    if (dir == 270)
15
    {
16
        var a = lerp(900, 490, timer / 14);
17
        var b = lerp(100, 50, timer / 14);
18
        var c = lerp(200, 100, timer / 14);
19
        image_angle = lerp(250, a, timer / 14);
20
        if (timer < 16)
21
        {
22
            image_alpha += 0.06;
23
            x = lerp(xstart - b, xstart - b, timer / 14);
24
            y = lerp(ystart - 20, ystart - 20 - c, timer / 14);
25
        }
26
    }
27
    if (dir == 0)
28
    {
29
        var a = lerp(990, 580, timer / 14);
30
        image_angle = lerp(340, a, timer / 14);
31
        var c = lerp(200, 100, timer / 14);
32
        var b = lerp(100, 120, timer / 14);
33
        if (timer < 16)
34
        {
35
            image_alpha += 0.06;
36
            x = lerp(xstart - 20, xstart - 20 - c, timer / 14);
37
            y = lerp(ystart + b, ystart + b, timer / 14);
38
        }
39
    }
40
    if (dir == 90)
41
    {
42
        var a = lerp(1080, 670, timer / 14);
43
        image_angle = lerp(430, a, timer / 14);
44
        var b = lerp(100, 50, timer / 14);
45
        var c = lerp(200, 100, timer / 14);
46
        if (timer < 16)
47
        {
48
            image_alpha += 0.06;
49
            x = lerp(xstart + b, xstart + b, timer / 14);
50
            y = lerp(ystart + 20, ystart + 20 + c, timer / 14);
51
        }
52
    }
53
    if (dir == 180)
54
    {
55
        var a = lerp(1170, 760, timer / 14);
56
        image_angle = lerp(520, a, timer / 14);
57
        var c = lerp(200, 100, timer / 14);
58
        var b = lerp(100, 120, timer / 14);
59
        if (timer < 16)
60
        {
61
            image_alpha += 0.06;
62
            x = lerp(xstart + 20, xstart + 20 + c, timer / 14);
63
            y = lerp(ystart - b, ystart - b, timer / 14);
64
        }
65
    }
66
    if (timer == 15)
67
    {
68
        timer = 0;
69
        con = 1;
70
        fadecon = 1;
71
    }
72
}
73
if (con == 1)
74
{
75
    timer++;
76
    if (timer == 3)
77
        breakcon = 1;
78
    if (dir == 270)
79
    {
80
        var a = lerp(0, 260, timer / 9);
81
        image_angle = lerp(500, a, timer / 9);
82
        if (timer < 6)
83
        {
84
            x = lerp(xstart - 50, xstart, timer / 6);
85
            y = lerp(ystart - 120, ystart + 100, timer / 6);
86
        }
87
    }
88
    if (dir == 0)
89
    {
90
        var a = lerp(90, 350, timer / 9);
91
        image_angle = lerp(590, a, timer / 9);
92
        if (timer < 6)
93
        {
94
            x = lerp(xstart - 100, xstart + 100, timer / 6);
95
            y = lerp(ystart + 50, ystart, timer / 6);
96
        }
97
    }
98
    if (dir == 90)
99
    {
100
        var a = lerp(180, 440, timer / 9);
101
        image_angle = lerp(680, a, timer / 9);
102
        if (timer < 6)
103
        {
104
            x = lerp(xstart + 50, xstart, timer / 6);
105
            y = lerp(ystart + 120, ystart - 100, timer / 6);
106
        }
107
    }
108
    if (dir == 180)
109
    {
110
        var a = lerp(270, 530, timer / 9);
111
        image_angle = lerp(770, a, timer / 9);
112
        if (timer < 6)
113
        {
114
            x = lerp(xstart + 100, xstart - 100, timer / 6);
115
            y = lerp(ystart - 50, ystart, timer / 6);
116
        }
117
    }
118
    if (timer >= 9)
119
    {
120
        timer = 0;
121
        con = 2;
122
    }
123
}
124
if (con == 2)
125
{
126
    timer++;
127
    if (timer > 5)
128
        image_alpha -= 0.2;
129
    if (image_alpha < 0)
130
        instance_destroy();
131
}
132
if (fadecon == 1)
133
{
134
    fakealpha += 0.2;
135
    if (fakealpha > 1.2)
136
        fadecon = 2;
137
}
138
if (fadecon == 2)
139
{
140
    fakealpha -= 0.2;
141
    if (fakealpha < 0)
142
        fadecon = 0;
143
}
144
if ((type == 2 && con == 2) || breakcon == 2)
145
{
146
}
147
else
148
{
149
    var a = 
scr_afterimage
scr_afterimage

function
scr_afterimage()
{ afterimage = instance_create(x, y, obj_afterimage); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; }
();
150
    a.fadeSpeed = 0.08;
151
    a.image_alpha = image_alpha;
152
}
153
if (breakcon == 1)
154
{
155
    breakcon = 3;
156
    var shielddir = obj_spearblocker.image_angle + 180;
157
    if (shielddir >= 360)
158
        shielddir -= 360;
159
    if (abs(angle_difference(dir, shielddir)) < 61)
160
    {
161
        breakcon = 2;
162
        timer = 0;
163
        con = 3;
164
    }
165
}
166
if (breakcon == 2)
167
{
168
    timer++;
169
    if (timer == 1)
170
    {
171
        if (dir == 270)
172
        {
173
            image_angle = 0;
174
            y -= 39;
175
        }
176
        if (dir == 0)
177
        {
178
            image_angle = 90;
179
            x -= 39;
180
        }
181
        if (dir == 90)
182
        {
183
            image_angle = 180;
184
            y += 39;
185
        }
186
        if (dir == 180)
187
        {
188
            image_angle = 270;
189
            x += 39;
190
        }
191
        fadealpha = 1;
192
        snd_play(snd_impact);
193
        
scr_shakeobj
scr_shakeobj

function
scr_shakeobj()
{ var _shakeobj = instance_create(x, y, obj_shakeobj); _shakeobj.target = id; if (argument_count >= 1) { if (i_ex(argument0)) _shakeobj.target = argument0; } if (argument_count >= 2) { if (argument1 != -1) _shakeobj.shakeamt = argument1; } if (argument_count >= 3) { if (argument2 != -1) _shakeobj.shakereduct = argument2; } with (_shakeobj) event_user(0); }
();
194
        instance_create(x, y, obj_shake);
195
        with (obj_afterimage)
196
            instance_destroy();
197
        with (obj_spearblocker)
198
        {
199
            shake = 10;
200
            fadealpha = 1;
201
        }
202
    }
203
    if (timer >= 8)
204
    {
205
        image_alpha -= 0.1;
206
        if (image_alpha < 0)
207
            instance_destroy();
208
    }
209
    if (timer == 7)
210
    {
211
        with (obj_heart)
212
        {
213
            anim = instance_create(x + 10, y + 10, obj_animation);
214
            anim.sprite_index = spr_finisher_explosion;
215
            anim.image_speed = 0.5;
216
            anim.image_index = 0;
217
            anim.image_xscale = 1;
218
            anim.image_yscale = 1;
219
        }
220
    }
221
    if (timer == 8)
222
    {
223
        with (obj_spearblocker)
224
        {
225
            snd_play(snd_break2);
226
            piece1 = instance_create(x + lengthdir_x(32, image_angle - 35), y + lengthdir_y(32, image_angle - 35), obj_spearblocker_piece);
227
            piece1.image_angle = image_angle;
228
            piece1.image_index = 1;
229
            piece2 = instance_create(x + lengthdir_x(32, image_angle + 35), y + lengthdir_y(32, image_angle + 35), obj_spearblocker_piece);
230
            piece2.image_angle = image_angle;
231
            piece2.image_index = 0;
232
            piece3 = instance_create(x + lengthdir_x(30, 45), y + lengthdir_y(30, 45), obj_spearblocker_piece);
233
            piece3.sprite_index = spr_green_circle_piece;
234
            piece3.image_angle = 0;
235
            piece4 = instance_create(x + lengthdir_x(30, 135), y + lengthdir_y(30, 135), obj_spearblocker_piece);
236
            piece4.sprite_index = spr_green_circle_piece;
237
            piece4.image_angle = 90;
238
            piece5 = instance_create(x + lengthdir_x(30, 225), y + lengthdir_y(30, 225), obj_spearblocker_piece);
239
            piece5.sprite_index = spr_green_circle_piece;
240
            piece5.image_angle = 180;
241
            piece6 = instance_create(x + lengthdir_x(30, 315), y + lengthdir_y(30, 315), obj_spearblocker_piece);
242
            piece6.sprite_index = spr_green_circle_piece;
243
            piece6.image_angle = 270;
244
            if (idealdir == 180)
245
            {
246
                piece1.vspeed = -9 - random(6);
247
                piece1.hspeed = 1 + random(2);
248
                piece2.vspeed = 5 + random(6);
249
                piece2.hspeed = 1 + random(2);
250
                piece3.vspeed = -9 - random(6);
251
                piece3.hspeed = 1 + random(2);
252
                piece4.vspeed = -9 - random(6);
253
                piece4.hspeed = 1 + random(2);
254
                piece5.vspeed = 5 + random(6);
255
                piece5.hspeed = 1 + random(2);
256
                piece6.vspeed = 5 + random(6);
257
                piece6.hspeed = 1 + random(2);
258
            }
259
            if (idealdir == 0)
260
            {
261
                piece1.vspeed = -9 - random(6);
262
                piece1.hspeed = -1 - random(2);
263
                piece2.vspeed = 5 + random(6);
264
                piece2.hspeed = -1 - random(2);
265
                piece3.vspeed = -9 - random(6);
266
                piece3.hspeed = -1 - random(2);
267
                piece4.vspeed = -9 - random(6);
268
                piece4.hspeed = -1 - random(2);
269
                piece5.vspeed = 5 + random(6);
270
                piece5.hspeed = -1 - random(2);
271
                piece6.vspeed = 5 + random(6);
272
                piece6.hspeed = -1 - random(2);
273
            }
274
            if (idealdir == 90)
275
            {
276
                piece1.vspeed = 1 - random(6);
277
                piece1.hspeed = 9 + random(5);
278
                piece2.vspeed = 1 - random(6);
279
                piece2.hspeed = -9 + random(5);
280
                piece3.vspeed = 1 - random(6);
281
                piece3.hspeed = 9 + random(5);
282
                piece4.vspeed = 1 - random(6);
283
                piece4.hspeed = -9 + random(5);
284
                piece5.vspeed = 1 - random(6);
285
                piece5.hspeed = -9 + random(5);
286
                piece6.vspeed = 1 - random(6);
287
                piece6.hspeed = 9 + random(5);
288
            }
289
            if (idealdir == 270)
290
            {
291
                piece1.vspeed = 1 - random(6);
292
                piece1.hspeed = 9 + random(5);
293
                piece2.vspeed = 1 - random(6);
294
                piece2.hspeed = -9 + random(5);
295
                piece3.vspeed = 1 - random(6);
296
                piece3.hspeed = 9 + random(5);
297
                piece4.vspeed = 1 - random(6);
298
                piece4.hspeed = -9 + random(5);
299
                piece5.vspeed = 1 - random(6);
300
                piece5.hspeed = -9 + random(5);
301
                piece6.vspeed = 1 - random(6);
302
                piece6.hspeed = 9 + random(5);
303
            }
304
            with (obj_heart)
305
            {
306
                color = c_black;
307
                sprite_index = spr_heart;
308
            }
309
            instance_destroy();
310
        }
311
    }
312
}
313
if (breakcon == 3)
314
{
315
    breakcon = 4;
316
    timer = 0;
317
    with (obj_spearblocker)
318
        vanish = 1;
319
    with (obj_spearshot)
320
        instance_destroy();
321
    with (obj_heart)
322
    {
323
        color = c_black;
324
        sprite_index = spr_heart;
325
        anim = instance_create(x + 10, y + 10, obj_animation);
326
        anim.sprite_index = spr_finisher_explosion;
327
        anim.image_speed = 0.5;
328
        anim.image_index = 0;
329
        anim.image_xscale = 1;
330
        anim.image_yscale = 1;
331
        inst = instance_create(obj_heart.x, obj_heart.y, obj_gerson_fakeheart);
332
        if (obj_spearblocker.idealdir == 180)
333
        {
334
        }
335
        inst.directionhit = 280;
336
    }
337
    instance_create(x, y, obj_shake);
338
    snd_play(snd_screenshake);
339
}
340
if (breakcon == 4)
341
{
342
    timer++;
343
    if (timer == 2)
344
    {
345
        global.inv = -1;
346
        
scr_damage
scr_damage

function
scr_damage()
{ if (global.inv < 0) {
scr_damage_cache();
var __element = 0; if (variable_instance_exists(id, "element") && is_real(element)) __element = element; if (global.chapter == 4 && i_ex(obj_hammer_of_justice_enemy)) obj_hammer_of_justice_enemy.gothitlastturn++; if (global.chapter == 4 && i_ex(obj_sound_of_justice_enemy)) obj_sound_of_justice_enemy.gothitlastturn++; if (global.chapter == 4 && i_ex(obj_guei_enemy)) obj_guei_enemy.gothitthisturn = true; if (global.chapter == 4 && global.encounterno == 157 && !i_ex(obj_herosusie) && !i_ex(obj_heroralsei)) damage = round(damage * 0.7); if (global.chapter == 4 && i_ex(obj_jackenstein_enemy) && obj_jackenstein_enemy.scaredycat) damage = round(damage * 1.5); with (obj_mike_minigame_controller) hurt = true; if (target < 3) { var skipthis = false; if (global.chapter == 4) { if (i_ex(obj_climb_kris)) skipthis = true; } if (!skipthis) { if (global.hp[global.char[target]] <= 0) {
scr_randomtarget_old();
target = mytarget; with (global.charinstance[target]) { image_blend = c_white; darkify = 0; } } } } var __remtarget = -1; if (target == 4) { __remtarget = 4;
scr_randomtarget_old();
target = mytarget; var getList = array_length(global.char); if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (
scr_party_hpaverage() / 2))
{
scr_randomtarget_old();
target = mytarget; } if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (
scr_party_hpaverage() / 2))
{
scr_randomtarget_old();
target = mytarget; } if (target == 0 && (global.hp[global.char[target]] / global.maxhp[global.char[target]]) < 0.35) {
scr_randomtarget_old();
target = mytarget; } with (global.charinstance[target]) { image_blend = c_white; darkify = 0; } } chartarget = 3; if (global.chapter == 4 && i_ex(obj_titan_enemy) && obj_titan_enemy.forcehitralsei) { damage *= 0.5; if (global.hp[3] > 0) target = 2; } if (global.chapter == 4 && i_ex(obj_sound_of_justice_enemy) && obj_sound_of_justice_enemy.phase == 2) { if (global.hp[1] > 0 && global.hp[2] < (global.maxhp[2] * 0.4)) target = 0; } if (i_ex(obj_titan_enemy) || i_ex(obj_titan_spawn_enemy)) { if ((target == 0 && (global.chararmor1[1] == 23 || global.chararmor2[1] == 23)) || (target == 1 && (global.chararmor1[2] == 23 || global.chararmor2[2] == 23)) || (target == 2 && (global.chararmor1[3] == 23 || global.chararmor2[3] == 23))) damage = round(damage * 0.5); } tdamage = damage; var oldcalculation = 0; if (target < 3) { if (oldcalculation) tdamage = ceil(tdamage - (global.battledf[target] * 3)); else tdamage =
scr_damage_calculation(tdamage, target);
chartarget = global.char[target]; if (global.charaction[target] == 10) tdamage = ceil((2 * tdamage) / 3); tdamage = ceil(tdamage *
scr_element_damage_reduction(__element, global.char[target]));
debug_message("The element is: " + string(__element)); if (tdamage < 1) ...
();
347
    }
348
}