Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_church_statue_shatter_Step_0

(view raw script w/o annotations or w/e)
1
if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
())
2
{
3
    if (keyboard_check_pressed(ord("R")))
4
        room_restart();
5
}
6
if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
() && room == room_vfx_tester)
7
{
8
    if (focus > 0 && keyboard_check_pressed(vk_right))
9
        focus++;
10
    if (focus > 1 && keyboard_check_pressed(vk_left))
11
        focus--;
12
    if (keyboard_check_pressed(ord("V")))
13
        show_debug = !show_debug;
14
    if (keyboard_check_pressed(ord("B")))
15
        shatter = true;
16
}
17
if ((!shattered && timer > 0) || shatter)
18
{
19
    shatter = false;
20
    if (!shattered)
21
    {
22
        timer++;
23
        if (timer == 10)
24
        {
25
            with (obj_church_old_man_ripple)
26
                snd_stop(hurt_noise);
27
        }
28
        if (timer >= delay)
29
        {
30
            shattered = true;
31
            snd_play(snd_damage, 1, 0.5);
32
            for (var i = 6; i < image_number; i++)
33
            {
34
                var _debris = instance_create(x + (pivot[i].x * 2), y + (pivot[i].y * 2), obj_vfx_debris);
35
                _debris.speed = remap_clamped(70, 0, 12, 24, abs(pivot[i].y - 76)) - (pivot[i].x / 20);
36
                _debris.image_index = i;
37
                _debris.sprite_index = sprite_index;
38
                _debris.depth = depth;
39
                _debris.fader = remap(6, image_number - 1, 2, 1, i);
40
                _debris.image_xscale = 2;
41
                _debris.interval = irandom_range(3, 6);
42
                if (i == 6)
43
                    _debris.interval = 3;
44
                if (i == 10)
45
                {
46
                    _debris.speed -= 6;
47
                    _debris.interval = 5;
48
                    _debris.split = true;
49
                    _debris.rot *= -1;
50
                }
51
                if (i == 13)
52
                    _debris.rot *= -1;
53
                _debris.image_yscale = 2;
54
                _debris.bottomy = (y + (sprite_height * 2)) - round(i / 2);
55
                _debris.direction = point_direction(x + (sprite_width * 2.5), y + (sprite_height * 1.4), x + (pivot[i].x * 2), y + (pivot[i].y * 2));
56
                _debris.hspeed *= 0.5;
57
                _debris.hspeed += 2;
58
                _debris.depth = depth + (i - 6);
59
                var _cap = -14;
60
                if (_debris.vspeed < _cap)
61
                    _debris.vspeed = _cap - ((_debris.vspeed + _cap) / 2);
62
            }
63
        }
64
    }
65
    else
66
    {
67
        timer = 0;
68
        shattered = false;
69
    }
70
}
71
if (shattered)
72
{
73
    if (timer == (delay + 15))
74
        snd_play(snd_damage, 0.5, 0.5);
75
    if (timer == (delay + 30))
76
        snd_play(snd_damage, 0.25, 0.5);
77
    if (timer == (delay + 45))
78
        snd_play(snd_damage, 0.125, 0.5);
79
    if (timer == (delay + 60))
80
        snd_play(snd_damage, 0.0625, 0.5);
81
    if (timer == (delay + 75))
82
        snd_play(snd_damage, 0.03125, 0.5);
83
}
84
if (shattered && timer < 100)
85
    timer++;