Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_bell_spin_attack_Step_0

(view raw script w/o annotations or w/e)
1
if (global.turntimer < 14)
2
{
3
    timer = 0;
4
    con = 3;
5
    active = 0;
6
    image_alpha = 0.5;
7
    with (obj_bell_spin_attack_trail)
8
        visible = false;
9
}
10
if (con == 0)
11
{
12
    timer++;
13
    if (timer == 1)
14
    {
15
        gravity_direction = 90;
16
        gravity = 1;
17
    }
18
    if (timer < 10)
19
        x = lerp(x, (obj_growtangle.x + obj_growtangle.sprite_width) - 40, timer / 9);
20
    if (y < ((obj_growtangle.y - (obj_growtangle.sprite_height / 2) - vspeed) + 10))
21
    {
22
        gravity = 0;
23
        vspeed = 0;
24
    }
25
    if (timer == 9)
26
    {
27
        x = (obj_growtangle.x + obj_growtangle.sprite_width) - 40;
28
        timer = 0;
29
        con = 1;
30
        gravity = 0;
31
        vspeed = 0;
32
        alarm[0]
 = 15;
gml_Object_obj_bell_spin_attack_Alarm_0.gml

exit;
33
        targety = (obj_growtangle.y - (obj_growtangle.sprite_height / 2)) + 30 + irandom(130);
34
        if (choose(1, 2, 3, 4) == 1)
35
            targety = obj_heart.y + 10;
36
    }
37
}
38
if (con == 1 && alarm[0]
 <= 0)
gml_Object_obj_bell_spin_attack_Alarm_0.gml

exit;
39
{
40
    timer++;
41
    if (timer < 16)
42
    {
43
        y = lerp(y, targety, 0.1);
44
    }
45
    else if (timer <= 30)
46
    {
47
        savepos--;
48
        y = saveypos[savepos];
49
    }
50
    if (timer >= 0 && timer <= 16)
51
    {
52
        saveypos[savepos] = y;
53
        savepos++;
54
    }
55
    x = lerp((obj_growtangle.x + obj_growtangle.sprite_width) - 40, (obj_growtangle.x - obj_growtangle.sprite_width) + 40, timer / 30);
56
    if (timer == 30)
57
    {
58
        timer = 0;
59
        con = 2;
60
        savepos = 0;
61
        alarm[0]
 = 15;
gml_Object_obj_bell_spin_attack_Alarm_0.gml

exit;
62
        targety = (obj_growtangle.y - (obj_growtangle.sprite_height / 2)) + 30 + irandom(130);
63
        if (choose(1, 2, 3, 4) == 1)
64
            targety = obj_heart.y + 10;
65
    }
66
}
67
if (con == 2 && alarm[0]
 <= 0)
gml_Object_obj_bell_spin_attack_Alarm_0.gml

exit;
68
{
69
    timer++;
70
    if (timer < 16)
71
    {
72
        y = lerp(y, targety, 0.1);
73
    }
74
    else if (timer <= 30)
75
    {
76
        savepos--;
77
        y = saveypos[savepos];
78
    }
79
    if (timer >= 0 && timer <= 16)
80
    {
81
        saveypos[savepos] = y;
82
        savepos++;
83
    }
84
    x = lerp((obj_growtangle.x - obj_growtangle.sprite_width) + 40, (obj_growtangle.x + obj_growtangle.sprite_width) - 40, timer / 30);
85
    if (timer == 30)
86
    {
87
        timer = 0;
88
        con = 1;
89
        savepos = 0;
90
        alarm[0]
 = 15;
gml_Object_obj_bell_spin_attack_Alarm_0.gml

exit;
91
        targety = (obj_growtangle.y - (obj_growtangle.sprite_height / 2)) + 30 + irandom(130);
92
        if (choose(1, 2, 3, 4) == 1)
93
            targety = obj_heart.y + 10;
94
    }
95
}
96
if (con == 3 && alarm[0]
 <= 0)
gml_Object_obj_bell_spin_attack_Alarm_0.gml

exit;
97
{
98
    x = lerp(x, xstart, 0.22);
99
    y = lerp(y, ystart, 0.22);
100
}
101
trailtimer++;
102
if (trailtimer >= 1 && x < ((obj_growtangle.x + (obj_growtangle.sprite_width / 2)) - 3) && x > ((obj_growtangle.x - (obj_growtangle.sprite_width / 2)) + 3) && y < (obj_growtangle.y + (obj_growtangle.sprite_height / 2)) && y > (obj_growtangle.y - (obj_growtangle.sprite_height / 2)) && active == 1)
103
{
104
    trailtimer = 0;
105
    trail = instance_create(x, y - 18, obj_bell_spin_attack_trail);
106
    trail.x1 = savex;
107
    trail.y1 = savey - 10;
108
    trail.x2 = x;
109
    trail.y2 = y - 10;
110
    trail.depth = depth + 1;
111
    if (instance_number(obj_bell_spin_attack_trail) <= 1)
112
        trail.visible = false;
113
    savex = x;
114
    savey = y;
115
}
116
else
117
{
118
    savex = x;
119
    savey = y;
120
}