Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_knight_split_growtangle_vertical_Other_13

(view raw script w/o annotations or w/e)
1
timer++;
2
if (con == 0)
3
{
4
    if (timer == 20)
5
    {
6
        snd_play_x(snd_knight_boxbreak, 1, 1.1);
7
        var _speed = 0;
8
        var _balance_top = 0;
9
        var _balance_bottom = 0;
10
        var _change = 0;
11
        event_user(0);
12
        event_user(1);
13
        if ((obj_heart.y + 10) < obj_growtangle.y)
14
            heart_y = -1;
15
        else
16
            heart_y = 1;
17
        snd_play(snd_chargeshot_fire);
18
        var _xstart = obj_growtangle.x - 66;
19
        var _b = -4;
20
        for (var _i = 0; _i < 14; _i++)
21
        {
22
            var _balance = ((_i % 2) == 0) ? _balance_top : _balance_bottom;
23
            if (_balance >= 3)
24
                _change = -1;
25
            else if (_balance <= -3)
26
                _change = 1;
27
            else
28
                _change = choose(1, -1);
29
            _speed = _change ? 8 : 4;
30
            if ((_i % 2) == 0)
31
                _balance_top += _change;
32
            else
33
                _balance_bottom += _change;
34
            if (_speed != 8)
35
            {
36
                _b = instance_create(_xstart, y, obj_roaringknight_fountain_bullet);
37
                _b.speed = 0;
38
                _b.top_speed = _speed + random_range(-0.1, 0.1);
39
                _b.image_speed = _speed / 8;
40
                _b.depth = depth + 1;
41
                _b.image_xscale = 1;
42
                _b.image_yscale = 1;
43
                if ((_i % 2) == 1)
44
                {
45
                    _b.direction = -90;
46
                    _b.image_angle = 180;
47
                }
48
                else
49
                {
50
                    _b.direction = 90;
51
                }
52
                
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);
53
                child_bullet[count] = _b;
54
                count++;
55
            }
56
            if ((_i % 2) == 1)
57
                _xstart += 22;
58
        }
59
    }
60
}
61
else if (con == 1)
62
{
63
    if (timer == 15)
64
    {
65
        for (i = 0; i < count; i++)
66
        {
67
            if (i_ex(child_bullet[i]))
68
                child_bullet[i].depth = obj_growtangle.depth - 10;
69
        }
70
    }
71
    if (timer <= 30)
72
    {
73
        var _old_distance = distance;
74
        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) * 50;
75
        obj_heart.y += ((distance - _old_distance) * heart_y * 1.25);
76
    }
77
    else
78
    {
79
        event_user(0);
80
    }
81
}
82
if (con >= 1)
83
{
84
    var _quarterbox = 37.5;
85
    var _boxy = y + ((distance + _quarterbox) * heart_y);
86
    if (obj_heart.y < ((_boxy - _quarterbox) + 4))
87
        obj_heart.y = (_boxy - _quarterbox) + 4;
88
    if (obj_heart.y > ((_boxy + _quarterbox) - 24))
89
        obj_heart.y = (_boxy + _quarterbox) - 24;
90
}
91
var _dist = round(distance);
92
marker[0].y = y - _dist - 1;
93
marker[1].y = y + _dist + 3;