Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_knight_split_growtangle_backup_Step_0

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