Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_knight_split_growtangle_Other_13

(view raw script w/o annotations or w/e)
1
debug_print("new 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
            if (_speed != 8)
36
            {
37
                _b = instance_create(_xstart, y, obj_roaringknight_fountain_bullet);
38
                _b.speed = 0;
39
                _b.top_speed = _speed + random_range(-0.1, 0.1);
40
                _b.image_speed = _speed / 8;
41
                _b.depth = depth + 1;
42
                _b.image_xscale = 1;
43
                _b.image_yscale = 1;
44
                if ((_i % 2) == 1)
45
                {
46
                    _b.direction = -90;
47
                    _b.image_angle = 180;
48
                }
49
                else
50
                {
51
                    _b.direction = 90;
52
                }
53
                
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);
54
                child_bullet[count] = _b;
55
                count++;
56
            }
57
            if ((_i % 2) == 1)
58
                _xstart += 22;
59
        }
60
    }
61
}
62
else if (con == 1)
63
{
64
    if (timer == 15)
65
    {
66
        for (i = 0; i < count; i++)
67
        {
68
            if (i_ex(child_bullet[i]))
69
                child_bullet[i].depth = obj_growtangle.depth - 10;
70
        }
71
    }
72
    if (timer <= 30)
73
    {
74
        var _old_distance = distance;
75
        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;
76
        obj_heart.y += ((distance - _old_distance) * heart_y * 1.25);
77
    }
78
    else
79
    {
80
        event_user(0);
81
    }
82
}
83
if (con >= 1)
84
{
85
    var _quarterbox = 37.5;
86
    var _boxy = y + ((distance + _quarterbox) * heart_y);
87
    if (obj_heart.y < ((_boxy - _quarterbox) + 4))
88
        obj_heart.y = (_boxy - _quarterbox) + 4;
89
    if (obj_heart.y > ((_boxy + _quarterbox) - 24))
90
        obj_heart.y = (_boxy + _quarterbox) - 24;
91
}
92
var _dist = round(distance);
93
marker[0].y = y - _dist - 1;
94
marker[1].y = y + _dist + 3;