Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_queen_search_flail_old_Step_0

(view raw script w/o annotations or w/e)
1
if (broken > 0)
2
{
3
    if (broken == 1)
4
    {
5
        direction = 
scr_getlaunchdirection
scr_getlaunchdirection

function
scr_getlaunchdirection(arg0, arg1, arg2, arg3)
{ if ((sqr(arg0) / arg2) <= arg1) return 45; var __resultangle = radtodeg(arcsin((arg1 * arg2) / sqr(arg0))) / 2; if (arg3 >= 1) return 90 - __resultangle; else if (arg3 <= -1) return __resultangle; else return choose(__resultangle, 90 - __resultangle); }
(18, 636 - x, 0.75, 1);
6
        speed = 18;
7
        gravity = 0.75;
8
        var chaindirection = point_direction(xstart, ystart, x, y);
9
        for (i = 0; i < 4; i++)
10
        {
11
            xx = lerp(xstart, x, i / 4);
12
            yy = lerp(ystart, y, i / 4);
13
            d = instance_create(xx, yy, obj_afterimage);
14
            d.direction = chaindirection + (flip * -90) + random_range(-15, 15);
15
            d.gravity = 0.75;
16
            d.speed = random_range(2, 15);
17
            d.sprite_index = sprite_index;
18
            d.image_speed = 0;
19
            d.image_index = 1;
20
            d.depth = depth;
21
        }
22
        broken = 2;
23
    }
24
    exit;
25
}
26
if (hitstun > 0)
27
{
28
    hitstun--;
29
    exit;
30
}
31
if (bufferstate == 0 && 
scr_queen_buffercheck
scr_queen_buffercheck

function
scr_queen_buffercheck()
{ return instance_exists(obj_queen_buffercontroller) && obj_queen_buffercontroller.buffering == 1; }
())
32
{
33
    image_blend = c_gray;
34
    bufferstate = 1;
35
}
36
else if (bufferstate == 1 && !
scr_queen_buffercheck
scr_queen_buffercheck

function
scr_queen_buffercheck()
{ return instance_exists(obj_queen_buffercontroller) && obj_queen_buffercontroller.buffering == 1; }
())
37
{
38
    image_blend = c_white;
39
    bufferstate = 2;
40
}
41
if (bufferstate == 1)
42
    exit;
43
if (loading > 0)
44
    exit;
45
if (timer < 165)
46
{
47
    
scr_orbitaroundpoint_dx
scr_orbitaroundpoint_dx

function
scr_orbitaroundpoint_dx(arg0, arg1, arg2, arg3)
{ x = arg0 + lengthdir_x(arg2, arg3); y = arg1 + lengthdir_y(arg2, arg3); }
(xstart, ystart, min(timer * 2, 340), (timer * 10 * flip) + direction);
48
}
49
else if (timer >= 165 && impact == 0)
50
{
51
    timer = 164.6;
52
    
scr_orbitaroundpoint_dx
scr_orbitaroundpoint_dx

function
scr_orbitaroundpoint_dx(arg0, arg1, arg2, arg3)
{ x = arg0 + lengthdir_x(arg2, arg3); y = arg1 + lengthdir_y(arg2, arg3); }
(xstart, ystart, min(timer * 2, 340), (timer * 10 * flip) + direction);
53
    d = instance_exists(obj_shake) ? 196 : instance_create(0, 0, obj_shake);
54
    d.shakex = ceil(2);
55
    d.shakey = ceil(2);
56
    snd_play(snd_screenshake);
57
    for (i = 0; i < 4; i++)
58
    {
59
        d = instance_create(x, y, obj_regularbullet);
60
        d.sprite_index = spr_spadebullet;
61
        d.updateimageangle = 1;
62
        d.gravity = 0.75;
63
        d.direction = 90 + (flip * (-25 + (i * 10) + irandom(10)));
64
        d.speed = 20;
65
    }
66
    impact = 1;
67
}
68
timer++;
69
bufferstate = 0;