Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_tracking_sword1_Step_0

(view raw script w/o annotations or w/e)
1
if (con < 2)
2
{
3
    x = obj_heart.x + 10 + lengthdir_x(len, direction);
4
    y = clamp(obj_heart.y + 10 + lengthdir_y(len, direction), cameray() + 40, cameray() + 320);
5
}
6
if (con == 0)
7
{
8
    timer++;
9
    if (timer == 1)
10
        snd_play_x(snd_knight_jump_quick, 1, 1.3);
11
    image_alpha = lerp(0, 0.5, timer / fadetohalftime);
12
    if (image_alpha == 0.5)
13
    {
14
        con = 1;
15
        timer = 0;
16
    }
17
}
18
if (con == 1)
19
{
20
    timer++;
21
    if (timer >= waittime)
22
    {
23
        image_alpha = lerp(0.8, 1, (timer - waittime) / fadetofulltime);
24
        len = lerp(len, lenstart + 10, (timer - waittime) / fadetofulltime);
25
        image_blend = merge_color(c_white, c_red, timer / 30);
26
    }
27
    if (image_alpha == 1)
28
    {
29
        con = 2;
30
        timer = 0;
31
        
scr_afterimage_grow
scr_afterimage_grow

function
scr_afterimage_grow()
{ afterimage = instance_create(x, y, obj_afterimage_grow); 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; }
();
32
        afterimage.xrate = 0.2;
33
        afterimage.yrate = 0.2;
34
        afterimage.fade = 0.3;
35
    }
36
}
37
if (con == 2)
38
{
39
    timer++;
40
    if (timer == (flashtime + 1))
41
    {
42
        con = 3;
43
        timer = 0;
44
    }
45
}
46
if (con == 3)
47
{
48
    timer++;
49
    if (timer == 1)
50
    {
51
        afterimagecon = 1;
52
        targetx = x + lengthdir_x(900, direction + 180);
53
        targety = y + lengthdir_y(900, direction + 180);
54
        snd_play_x(snd_knight_cut2, 1, 1.3);
55
    }
56
    if (timer == 2)
57
    {
58
        slash = instance_create(x, y, obj_tracking_sword_slash);
59
        slash.image_angle = image_angle;
60
        slash.direction = direction;
61
        slash.damage = damage;
62
        slash2 = instance_create(x, y, obj_tracking_sword_slash_extra_graze);
63
        slash2.image_angle = image_angle;
64
        slash2.direction = direction;
65
        var a = 200;
66
        var b = 18;
67
        var c = 1;
68
        b = 27;
69
        if (variant == 1)
70
        {
71
            for (i = 0; i < b; i++)
72
            {
73
                c = lerp(1, 5, i / b);
74
                if (lerp(x, targetx, i / b) < (obj_growtangle.x + a) && lerp(x, targetx, i / b) > (obj_growtangle.x - a) && lerp(y, targety, i / b) > (obj_growtangle.y - a) && lerp(y, targety, i / b) < (obj_growtangle.y + a))
75
                {
76
                    inst = instance_create(lerp(x, targetx, (i / b) * c), lerp(y, targety, (i / b) * c), obj_tracking_sword2);
77
                    inst.damage = damage;
78
                    inst.target = target;
79
                }
80
            }
81
        }
82
    }
83
    if (timer == 5)
84
        instance_destroy();
85
}