Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_bullet_super_nubert_Step_0

(view raw script w/o annotations or w/e)
1
if (!nubert_done)
2
{
3
    nubert_length += nubert_speed;
4
    nubert_speed *= nubert_friction;
5
    nubert_friction -= 0.01;
6
}
7
if (!nubert_done && !nubert_reverse)
8
{
9
    if ((y + lengthdir_y(nubert_length, image_angle)) < (
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(5) - 175) || nubert_speed < 1)
10
    {
11
        nubert_done = true;
12
        nubert_reverse = true;
13
        nubert_speed = 0;
14
    }
15
}
16
if (nubert_reverse)
17
{
18
    nubert_length += nubert_speed;
19
    nubert_speed = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(nubert_speed, -30, 0.5);
20
    if (nubert_length <= 0)
21
    {
22
        if (nubert_first)
23
        {
24
        }
25
        else
26
        {
27
            nubert_previous.nubert_speed = nubert_speed;
28
            nubert_previous.nubert_reverse = true;
29
            nubert_previous.nubert_crown = true;
30
        }
31
        instance_destroy();
32
    }
33
}
34
if (!nubert_done && image_angle < 90)
35
{
36
    if ((x + lengthdir_x(nubert_length, image_angle)) > (
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(4) + 75))
37
    {
38
        while ((x + lengthdir_x(nubert_length, image_angle)) > (
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(4) + 75))
39
        {
40
            nubert_length--;
41
            nubert_overload++;
42
        }
43
        nubert_done = true;
44
        nubert_crown = false;
45
        nubert_next = instance_create(x + lengthdir_x(nubert_length, image_angle), y + lengthdir_y(nubert_length, image_angle), obj_bullet_super_nubert);
46
        with (nubert_next)
47
        {
48
            sprite_index = spr_nubert_segment_l;
49
            image_angle = (90 - other.image_angle) + 90;
50
            x += lengthdir_x(32, image_angle + 90);
51
            y += lengthdir_y(32, image_angle + 90);
52
            nubert_speed = other.nubert_speed;
53
            nubert_friction = other.nubert_friction;
54
            nubert_length = 24;
55
            nubert_previous = other.id;
56
            nubert_crown = true;
57
        }
58
    }
59
}
60
if (!nubert_done && image_angle > 90)
61
{
62
    if ((x + lengthdir_x(nubert_length, image_angle)) < (
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(4) - 75))
63
    {
64
        while ((x + lengthdir_x(nubert_length, image_angle)) < (
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(4) - 75))
65
        {
66
            nubert_length--;
67
            nubert_overload++;
68
        }
69
        nubert_done = true;
70
        nubert_crown = false;
71
        nubert_next = instance_create(x + lengthdir_x(nubert_length, image_angle), y + lengthdir_y(nubert_length, image_angle), obj_bullet_super_nubert);
72
        with (nubert_next)
73
        {
74
            sprite_index = spr_nubert_segment_r;
75
            image_angle = 90 - (other.image_angle - 90);
76
            x += lengthdir_x(32, image_angle - 90);
77
            y += lengthdir_y(32, image_angle - 90);
78
            nubert_speed = other.nubert_speed;
79
            nubert_friction = other.nubert_friction;
80
            nubert_length = 24;
81
            nubert_previous = other.id;
82
            nubert_crown = true;
83
        }
84
    }
85
}