Deltarune (Chapter 1) script viewer

← back to main script listing

gml_Object_obj_lancerbike_neo_Step_0

(view raw script w/o annotations or w/e)
1
if (racecon == 0)
2
{
3
    orx = x;
4
    ory = y;
5
    ang = 0;
6
    vdir = choose(1, -1);
7
    racecon = 1;
8
    rtimer = 0;
9
    with (obj_susieenemy)
10
        visible = 0;
11
    s = instance_create(susiex, susiey, obj_regularbullet_permanent);
12
    
scr_bullet_inherit
scr_bullet_inherit

function
scr_bullet_inherit(arg0)
{ if (instance_exists(arg0)) { arg0.damage = damage; arg0.grazepoints = grazepoints; arg0.timepoints = timepoints; arg0.inv = inv; arg0.target = target; arg0.grazed = 0; arg0.grazetimer = 0; } }
(s);
13
    s.wall_destroy = 0;
14
    s.sprite_index = spr_susiel_dark;
15
    s.image_xscale = 2;
16
    s.image_yscale = 2;
17
    s.active = 1;
18
    s.depth = depth - 1;
19
    s.image_speed = 0;
20
    s.image_index = 1;
21
    s.lx = x;
22
    s.ly = y - 108;
23
    snd_play(snd_jump);
24
    with (s)
25
    {
26
        hspeed = -2;
27
        vspeed -= 7;
28
        gravity = 1;
29
    }
30
}
31
if (racecon == 1)
32
{
33
    siner = 0;
34
    rtimer += 1;
35
    if (rtimer == 13)
36
    {
37
        snd_stop(snd_jump);
38
        snd_play(snd_splat);
39
    }
40
    if (rtimer >= 13)
41
    {
42
        image_xscale += 0.1;
43
        image_yscale -= 0.15;
44
    }
45
    if (rtimer == 16)
46
    {
47
        with (s)
48
        {
49
            speed = 0;
50
            gravity = 0;
51
            image_index = 0;
52
        }
53
        sfitx = s.x - x;
54
        sfity = s.y - y;
55
        s_tracking = 1;
56
        ax_timer = 0;
57
        s_timer = 0;
58
        racecon = 2;
59
        rtimer = 0;
60
    }
61
}
62
if (s_attack == 1)
63
{
64
    ax_timer += 1;
65
    s_timer += 1;
66
    if (s_timer == 1)
67
    {
68
        axe = instance_create(s.x - 40, s.y - 15, obj_axebullet);
69
        
scr_bullet_inherit
scr_bullet_inherit

function
scr_bullet_inherit(arg0)
{ if (instance_exists(arg0)) { arg0.damage = damage; arg0.grazepoints = grazepoints; arg0.timepoints = timepoints; arg0.inv = inv; arg0.target = target; arg0.grazed = 0; arg0.grazetimer = 0; } }
(axe);
70
        axe.depth = depth + 2;
71
        with (axe)
72
        {
73
            hspeed = -16;
74
            if (obj_heart.y >= y)
75
            {
76
                gravity_direction = -15 + random(10);
77
                vspeed = 2;
78
            }
79
            else
80
            {
81
                gravity_direction = 5 + random(10);
82
                vspeed = -2;
83
            }
84
            gravity = 0.5;
85
        }
86
        axe.hspeed += 0.3 * ax_timer;
87
        snd_play(snd_laz_c);
88
        s.sprite_index = spr_susie_enemy_attack;
89
        s.active = 0;
90
        s.image_index = 0;
91
        s.image_speed = 0.5;
92
    }
93
    if (s_timer == 4)
94
        s.active = 0;
95
    if (s_timer == 8)
96
        s.image_speed = 0;
97
    if (s_timer == 8 && ax_timer <= 60)
98
        s_timer = 0;
99
}
100
if (racecon == 2)
101
{
102
    rtimer += 1;
103
    if (rtimer >= 1)
104
    {
105
        if (y <= (ory - 120) || y >= (ory + 120))
106
        {
107
            if (y <= (ory - 120) && vspeed < 0)
108
                vspeed = -vspeed;
109
            if (y >= (ory + 120) && vspeed > 0)
110
                vspeed = -vspeed;
111
        }
112
    }
113
    if (rtimer == 5 || rtimer == 10)
114
    {
115
        vspeed = 0;
116
        snd_play(snd_lancerhonk);
117
        honkimg = instance_create(x - 60, y - 40, obj_afterimage_grow);
118
        with (honkimg)
119
            sprite_index = spr_lancernoise;
120
    }
121
    if (rtimer == 30)
122
    {
123
        active = 1;
124
        s_attack = 1;
125
        racecon = 3;
126
        rtimer = 0;
127
        ang = 0;
128
        snd_play(snd_drive);
129
        hspeed = -10;
130
        vspeed = -11;
131
        gravity = 0.5;
132
    }
133
}
134
if (racecon == 3)
135
{
136
    rtimer += 1;
137
    if (x <= (__view_get(e__VW.XView, 0) - 40))
138
    {
139
        speed = 0;
140
        gravity = 0;
141
        friction = 0;
142
        s_attack = 0;
143
        s_tracking = 0;
144
        image_xscale = 2;
145
        image_yscale = 2;
146
        x = __view_get(e__VW.XView, 0) + 740;
147
        y = ory;
148
        s.x = susiex + 200;
149
        s.hspeed = -8;
150
        s.y = susiey;
151
        s.sprite_index = spr_susie_enemy;
152
        hspeed = -6;
153
        racecon = 4;
154
    }
155
}
156
if (racecon == 4)
157
{
158
    donecount = 0;
159
    if (s.x <= susiex)
160
    {
161
        donecount += 1;
162
        s.hspeed = 0;
163
        s.x = susiex;
164
    }
165
    if (x <= (orx + 5))
166
    {
167
        donecount += 1;
168
        hspeed = 0;
169
        x = orx;
170
    }
171
    if (donecount >= 2)
172
    {
173
        global.turntimer = 5;
174
        with (obj_susieenemy)
175
            visible = 1;
176
        with (obj_lancerboss3)
177
            visible = 1;
178
        racecon = -1;
179
    }
180
}
181
if (s_tracking == 1)
182
{
183
    s.x = x + sfitx;
184
    s.y = y + sfity;
185
}
186
187
enum e__VW
188
{
189
    XView,
190
    YView,
191
    WView,
192
    HView,
193
    Angle,
194
    HBorder,
195
    VBorder,
196
    HSpeed,
197
    VSpeed,
198
    Object,
199
    Visible,
200
    XPort,
201
    YPort,
202
    WPort,
203
    HPort,
204
    Camera,
205
    SurfaceID
206
}