Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_knight_split_growtangle_Other_12

(view raw script w/o annotations or w/e)
1
debug_print("old called");
2
timer++;
3
if (con == 0)
4
{
5
    if (timer == 20)
6
    {
7
        snd_play_x(snd_knight_boxbreak, 1, 1.1);
8
        var _speed = 0;
9
        var _balance_top = 0;
10
        var _balance_bottom = 0;
11
        var _change = 0;
12
        event_user(0);
13
        event_user(1);
14
        if ((obj_heart.y + 10) < obj_growtangle.y)
15
            heart_y = -1;
16
        else
17
            heart_y = 1;
18
        snd_play(snd_chargeshot_fire);
19
        var _xstart = obj_growtangle.x - 66;
20
        var _b = -4;
21
        for (var _i = 0; _i < 14; _i++)
22
        {
23
            var _balance = ((_i % 2) == 0) ? _balance_top : _balance_bottom;
24
            if (_balance >= 3)
25
                _change = -1;
26
            else if (_balance <= -3)
27
                _change = 1;
28
            else
29
                _change = choose(1, -1);
30
            _speed = _change ? 8 : 4;
31
            if ((_i % 2) == 0)
32
                _balance_top += _change;
33
            else
34
                _balance_bottom += _change;
35
            _b = instance_create(_xstart, y, obj_roaringknight_fountain_bullet);
36
            _b.speed = 0;
37
            _b.top_speed = _speed + random_range(-0.1, 0.1);
38
            _b.image_speed = _speed / 8;
39
            _b.depth = depth + 1;
40
            _b.image_xscale = 1;
41
            _b.image_yscale = 1;
42
            if ((_i % 2) == 1)
43
            {
44
                _b.direction = -90;
45
                _b.image_angle = 180;
46
            }
47
            else
48
            {
49
                _b.direction = 90;
50
            }
51
            
scr_bullet_inherit
scr_bullet_inherit

function
scr_bullet_inherit(arg0)
{ if (i_ex(arg0)) { if (damage != -1) arg0.damage = damage; if (grazepoints != -1) arg0.grazepoints = grazepoints; if (timepoints != -1) arg0.timepoints = timepoints; if (inv != -1) arg0.inv = inv; if (target != -1) arg0.target = target; if (grazed != -1) arg0.grazed = 0; if (grazetimer != -1) arg0.grazetimer = 0; if (object_index == obj_dbulletcontroller) { arg0.creatorid = creatorid; arg0.creator = creator; } arg0.element = element; } }
(_b);
52
            child_bullet[count] = _b;
53
            count++;
54
            if (_change)
55
            {
56
                _b = instance_create(_xstart, y, obj_roaringknight_fountain_bullet);
57
                _b.speed = 0;
58
                _b.top_speed = 2 + random_range(-0.1, 0.1);
59
                _b.image_speed = 0.25;
60
                _b.depth = depth + 1;
61
                _b.image_xscale = 1;
62
                _b.image_yscale = 1;
63
                if ((_i % 2) == 0)
64
                {
65
                    _b.direction = -90;
66
                    _b.image_angle = 180;
67
                }
68
                else
69
                {
70
                    _b.direction = 90;
71
                }
72
                
scr_bullet_inherit
scr_bullet_inherit

function
scr_bullet_inherit(arg0)
{ if (i_ex(arg0)) { if (damage != -1) arg0.damage = damage; if (grazepoints != -1) arg0.grazepoints = grazepoints; if (timepoints != -1) arg0.timepoints = timepoints; if (inv != -1) arg0.inv = inv; if (target != -1) arg0.target = target; if (grazed != -1) arg0.grazed = 0; if (grazetimer != -1) arg0.grazetimer = 0; if (object_index == obj_dbulletcontroller) { arg0.creatorid = creatorid; arg0.creator = creator; } arg0.element = element; } }
(_b);
73
                child_bullet[count] = _b;
74
                count++;
75
            }
76
            if ((_i % 2) == 1)
77
                _xstart += 22;
78
        }
79
    }
80
}
81
else if (con == 1)
82
{
83
    if (timer == 15)
84
    {
85
        for (i = 0; i < count; i++)
86
        {
87
            if (i_ex(child_bullet[i]))
88
                child_bullet[i].depth = obj_growtangle.depth - 10;
89
        }
90
    }
91
    if (timer <= 30)
92
    {
93
        var _old_distance = distance;
94
        distance = 
scr_ease_out
scr_ease_out

function
scr_ease_out(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_out_bounce(arg0, 0, 1, 1); case -2: return ease_out_elastic(arg0, 0, 1, 1); case -1: return ease_out_back(arg0, 0, 1, 1); case 0: return arg0; case 1: return sin(arg0 * 1.5707963267948966); case 2: return -arg0 * (arg0 - 2); case 6: return -power(2, -10 * arg0) + 1; case 7: arg0--; return sqrt(1 - (arg0 * arg0)); default: arg0--; if (arg1 == 4) { return -1 * (power(arg0, arg1) - 1); break; } return power(arg0, arg1) + 1; } }
(timer / 30, 6) * split_dist;
95
        obj_heart.y += ((distance - _old_distance) * heart_y * 1.25);
96
    }
97
    else
98
    {
99
        event_user(0);
100
    }
101
}
102
if (con >= 1)
103
{
104
    var _quarterbox = 37.5;
105
    var _boxy = y + ((distance + _quarterbox) * heart_y);
106
    if (obj_heart.y < ((_boxy - _quarterbox) + 4))
107
        obj_heart.y = (_boxy - _quarterbox) + 4;
108
    if (obj_heart.y > ((_boxy + _quarterbox) - 24))
109
        obj_heart.y = (_boxy + _quarterbox) - 24;
110
}
111
var _dist = round(distance);
112
marker[0].y = y - _dist - 1;
113
marker[1].y = y + _dist + 3;