Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_queen_explodinghead_Step_0

(view raw script w/o annotations or w/e)
1
if (global.turntimer < 2)
2
    instance_destroy();
3
if (laugh && scr_queen_buffercheck
scr_queen_buffercheck

function scr_queen_buffercheck() { return instance_exists(obj_queen_buffercontroller) && obj_queen_buffercontroller.buffering == 1; }
())
4
{
5
    if (laughpause == 0 && snd_is_playing(laughsound))
6
    {
7
        laughpause = 1;
8
        snd_pause(laughsound);
9
    }
10
    exit;
11
}
12
else if (laughpause == 1)
13
{
14
    laughpause = 0;
15
    snd_resume(laughsound);
16
}
17
if (timer == 20)
18
{
19
    image_speed = 1;
20
    sprite_index = spr_queen_wireframe_laugh;
21
    if (laugh == 1)
22
        laughsound = snd_play(snd_queen_bitcrushlaugh);
23
}
24
timer--;
25
if (first == 1)
26
    timer -= 1;
27
if (timer == 8 && buffer && !instance_exists(obj_queen_buffercontroller))
28
{
29
    var bc = instance_create(0, 0, obj_queen_buffercontroller);
30
    bc.bufferdelay = 15;
31
    bc.bufferduration = 30;
32
}
33
if (timer == 0)
34
{
35
    snd_play(snd_explosion_mmx3);
36
    if (ultimate == 1)
37
    {
38
        for (i = 0; i < 10; i++)
39
        {
40
            var _shotdir = (i * 36) + irandom(20);
41
            var _shotspread = ((i % 2) == 0) ? 3 : 1;
42
            var _bullet = obj_queen_bufferbullet;
43
            if (i == banana && abs(angle_difference(_shotdir, point_direction(x, y, obj_growtangle.x, obj_growtangle.y))) <= 45)
44
                _bullet = obj_queen_bananabullet;
45
            d = instance_create(x + lengthdir_x(_shotspread, _shotdir), y + lengthdir_y(_shotspread, _shotdir), _bullet);
46
            d.direction = _shotdir;
47
            d.speed = 10 + random(4);
48
            if (abs(d.direction - point_direction(x, y, obj_heart.x, obj_heart.y)) < 22)
49
                d.speed = d.speed / 1.5;
50
            d.image_xscale = 2;
51
            d.image_yscale = 2;
52
            d.fadeaway = 1;
53
            d.sprite_index = spr_queen_wireframe_temp_bullet;
54
            if (buffer == 0)
55
                d.slowdown = 1;
56
        }
57
    }
58
    else if (type == 0)
59
    {
60
        for (i = 0; i < 14; i++)
61
        {
62
            var _shotdir = (i * 25.71) + irandom(15);
63
            var _shotspread = ((i % 2) == 0) ? 3 : 1;
64
            var _bullet = obj_queen_bufferbullet;
65
            if (i == banana && abs(angle_difference(_shotdir, point_direction(x, y, obj_growtangle.x, obj_growtangle.y))) <= 45)
66
                _bullet = obj_queen_bananabullet;
67
            d = instance_create(x + lengthdir_x(_shotspread, _shotdir), y + lengthdir_y(_shotspread, _shotdir), _bullet);
68
            d.direction = _shotdir;
69
            d.speed = 9 + random(4);
70
            if (abs(d.direction - point_direction(x, y, obj_heart.x, obj_heart.y)) < 22)
71
                d.speed = d.speed / 1.5;
72
            d.image_xscale = 1.5;
73
            d.image_yscale = 1.5;
74
            d.fadeaway = 1;
75
            d.sprite_index = spr_queen_wireframe_temp_bullet;
76
            if (buffer == 0)
77
                d.slowdown = 1;
78
        }
79
    }
80
    else
81
    {
82
        for (i = 0; i < 9; i++)
83
        {
84
            var _shotdir = (i * 40) + irandom(25);
85
            var _shotspread = ((i % 2) == 0) ? 3 : 1;
86
            var _bullet = obj_queen_bufferbullet;
87
            if (i == banana && abs(angle_difference(_shotdir, point_direction(x, y, obj_growtangle.x, obj_growtangle.y))) <= 45)
88
                _bullet = obj_queen_bananabullet;
89
            d = instance_create(x + lengthdir_x(_shotspread, _shotdir), y + lengthdir_y(_shotspread, _shotdir), _bullet);
90
            d.direction = _shotdir;
91
            d.speed = buffer ? 12 : (7 + random(4));
92
            if (abs(d.direction - point_direction(x, y, obj_heart.x, obj_heart.y)) < 22)
93
                d.speed = d.speed / 1.5;
94
            d.image_xscale = 1.5;
95
            d.image_yscale = 1.5;
96
            d.fadeaway = 1;
97
            d.sprite_index = spr_queen_wireframe_temp_bullet;
98
            if (buffer == 0)
99
                d.slowdown = 1;
100
        }
101
    }
102
    d = instance_create(x, y, obj_buffer_tempeffect);
103
    d.sprite_index = spr_queen_wireframe_explode;
104
}