Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_knight_pointing_cone_Step_0

(view raw script w/o annotations or w/e)
1
timerb++;
2
if (timerb == 3)
3
{
4
    snd_play_x(snd_knight_drawpower, 1, 1.3);
5
    snd_play_x(snd_knight_drawpower, 1, 1.3);
6
    snd_play_x(snd_knight_drawpower, 1, 1.3);
7
}
8
if (timerb == 120)
9
{
10
    var a = 2;
11
    var b = 0.7;
12
    snd_play_x(snd_knight_star_explosion_close, a, b);
13
    snd_play_x(snd_knight_star_explosion_close, a, b);
14
    snd_play_x(snd_knight_star_explosion_close, a, b);
15
}
16
if (con == 4)
17
{
18
    x = lerp(x, obj_knight_enemy.x, 0.15);
19
    y = lerp(y, obj_knight_enemy.y, 0.15);
20
    if (tween == 0)
21
    {
22
        con = 5;
23
        if (i_ex(obj_knight_enemy))
24
        {
25
            obj_knight_enemy.visible = true;
26
            obj_knight_enemy.aetimer = aetimer;
27
        }
28
    }
29
}
30
else if (tween < 1)
31
{
32
    tween = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); } function scr_obj_movetowards_obj(arg0, arg1, arg2 = 0, arg3 = 0) { scr_obj_movetowards_point(arg0.x + arg2, arg0.y + arg3, arg1); } function scr_obj_movetowards_point(arg0, arg1, arg2) { var _distance = point_distance(x, y, arg0, arg1); if (arg2 >= _distance) { x = arg0; y = arg1; } else { var _direction = point_direction(x, y, arg0, arg1); x += lengthdir_x(arg2, _direction); y += lengthdir_y(arg2, _direction); } }
(tween, 1, 0.05);
33
    var _ease = 
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; } }
(tween, 4);
34
    x = lerp(xstart, obj_growtangle.x + 115, _ease);
35
    y = lerp(ystart, obj_growtangle.y - 56, _ease);
36
}
37
if (con < 2)
38
{
39
    exit;
40
}
41
else if (global.turntimer <= endtimer)
42
{
43
    if (angle_lerp == 1)
44
    {
45
        var _count = 0;
46
        with (obj_knight_pointing_star)
47
        {
48
            other.starlist[_count] = self;
49
            con = 1;
50
            _count++;
51
        }
52
        for (i = 0; i < _count; i++)
53
        {
54
            with (starlist[i])
55
            {
56
                timer = -other.i;
57
                if ((other.i % 2) == 1)
58
                    playSound = false;
59
            }
60
        }
61
        knockback = 10;
62
    }
63
    if (angle_lerp == 0 && con < 3)
64
    {
65
        timer = 10;
66
        con = 3;
67
        yoff = 120 + irandom_range(-60, 60);
68
    }
69
    angle_lerp = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); } function scr_obj_movetowards_obj(arg0, arg1, arg2 = 0, arg3 = 0) { scr_obj_movetowards_point(arg0.x + arg2, arg0.y + arg3, arg1); } function scr_obj_movetowards_point(arg0, arg1, arg2) { var _distance = point_distance(x, y, arg0, arg1); if (arg2 >= _distance) { x = arg0; y = arg1; } else { var _direction = point_direction(x, y, arg0, arg1); x += lengthdir_x(arg2, _direction); y += lengthdir_y(arg2, _direction); } }
(angle_lerp, 0, 0.1);
70
    angle = lerp(0, target_angle, 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
(angle_lerp, 6));
71
}
72
else if (angle < target_angle)
73
{
74
    angle_lerp = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); } function scr_obj_movetowards_obj(arg0, arg1, arg2 = 0, arg3 = 0) { scr_obj_movetowards_point(arg0.x + arg2, arg0.y + arg3, arg1); } function scr_obj_movetowards_point(arg0, arg1, arg2) { var _distance = point_distance(x, y, arg0, arg1); if (arg2 >= _distance) { x = arg0; y = arg1; } else { var _direction = point_direction(x, y, arg0, arg1); x += lengthdir_x(arg2, _direction); y += lengthdir_y(arg2, _direction); } }
(angle_lerp, 1, 0.025);
75
    angle = lerp(0, target_angle, 
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; } }
(angle_lerp, 6));
76
}
77
else
78
{
79
    x += 0.25;
80
}
81
if (knockback != 0)
82
{
83
    var _knockback = 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
(knockback / 10, 5) * 10;
84
    gt_x -= _knockback;
85
    knockback = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); } function scr_obj_movetowards_obj(arg0, arg1, arg2 = 0, arg3 = 0) { scr_obj_movetowards_point(arg0.x + arg2, arg0.y + arg3, arg1); } function scr_obj_movetowards_point(arg0, arg1, arg2) { var _distance = point_distance(x, y, arg0, arg1); if (arg2 >= _distance) { x = arg0; y = arg1; } else { var _direction = point_direction(x, y, arg0, arg1); x += lengthdir_x(arg2, _direction); y += lengthdir_y(arg2, _direction); } }
(knockback, 0, 0.5);
86
    fake_gt.xoffset = random_range(-1, 1) * (_knockback / 10);
87
    fake_gt.yoffset = random_range(-1, 1) * (_knockback / 10);
88
}
89
else
90
{
91
    gt_x -= (angle / target_angle / 2);
92
    fake_gt.xoffset = random_range(-1, 1) * (angle / target_angle);
93
    fake_gt.yoffset = random_range(-1, 1) * (angle / target_angle);
94
}
95
obj_growtangle.x = round(gt_x);
96
obj_heart.x = min(obj_heart.x, gt_maxx() - 22);