Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_church_candleLighter_Draw_0

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

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
2
if (active == 0)
3
{
4
    safe_delete(obj_candle_flamebullet);
5
    x = lerp(x, xstart, 0.05);
6
    y = lerp(y, ystart, 0.05);
7
    if (x < ((camerax() + 640) - (sprite_width / 2)) && obj_mainchara.battlemode == 1)
8
        active = 1;
9
}
10
if (active == 1)
11
{
12
    if (obj_mainchara.battlemode == 0)
13
        active = 0;
14
    desx = camerax() + 320 + (sin(siner / 20) * 20);
15
    desy = 40 + (cos(siner / 10) * 20);
16
    x = lerp(x, desx, 0.05);
17
    y = lerp(y, desy, 0.05);
18
    if (global.interact == 0)
19
        siner++;
20
    xmid = x + (sprite_width / 2);
21
    ymid = y + (sprite_height / 2);
22
    lightx = xmid + lengthdir_x(40, point_direction(xmid, ymid, obj_mainchara.x + (obj_mainchara.sprite_width / 2), obj_mainchara.y + (obj_mainchara.sprite_height / 2)));
23
    lighty = ymid + lengthdir_y(40, point_direction(xmid, ymid, obj_mainchara.x + (obj_mainchara.sprite_width / 2), obj_mainchara.y + (obj_mainchara.sprite_height / 2)));
24
    if (con == 0)
25
    {
26
        myball = instance_create(lightx, lighty, obj_candle_flamebullet);
27
        timer = 0;
28
        con++;
29
    }
30
    if (con == 1)
31
    {
32
        if (global.interact == 0)
33
            timer++;
34
        var timertarg = 25;
35
        if (timer > timertarg)
36
            timer = timertarg;
37
        if (i_ex(myball))
38
        {
39
            myball.x = lightx;
40
            myball.y = lighty;
41
            myball.image_xscale = timer / timertarg;
42
            myball.image_yscale = timer / timertarg;
43
        }
44
        if (timer >= timertarg)
45
            con = 2;
46
    }
47
    if (con == 2 && i_ex(obj_mainchara))
48
    {
49
        if (i_ex(myball))
50
        {
51
            myball.direction = point_direction(myball.x, myball.y, obj_mainchara.x + (obj_mainchara.sprite_width / 2), obj_mainchara.y);
52
            myball.speed = 4;
53
            myball.friction = -0.5;
54
            myball = 0;
55
        }
56
        timer = 0;
57
        con = 3;
58
    }
59
    if (con == 3)
60
    {
61
        timer++;
62
        if (timer == 10)
63
            con = 0;
64
    }
65
}
66
if (active == 2)
67
{
68
    with (obj_overworld_bulletarea)
69
        y = room_height * 2;
70
    desx = camerax() + 320 + (sin(siner / 20) * 20);
71
    desy = -sprite_width * 2;
72
    x = lerp(x, desx, 0.125);
73
    y = lerp(y, desy, 0.05);
74
    image_alpha *= 0.9;
75
    if (y == desy)
76
        instance_destroy();
77
}
78
draw_self();