Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_attack_knifechain_manager2_Step_2

(view raw script w/o annotations or w/e)
1
if (global.turntimer <= 5)
2
{
3
    if (!im_done)
4
    {
5
        im_done = true;
6
        with (obj_attack_knifechain_manager2)
7
        {
8
            alarm[0]
 = -1;
gml_Object_obj_attack_knifechain_manager2_Alarm_0.gml

if (global.turntimer <= 5) exit; with (obj_bullet_knife) { if (variable_instance_exists(id, "on_a_chain")) grazed = 0; } if (first) { first = false; back_index++; front_index++; } if (knife_direction_goal == 215) { var xchange = 20 + irandom(40); var ychange = irandom_range(-12, 12); with (obj_attack_knifechain_manager2) { ax += xchange; if (ax >= 80) ax -= 80; ay = ychange;
scr_lerpvar("x", x, anchor_x + ax, 24, 2, "out");
scr_lerpvar("y", y, anchor_y + ay, 24, 2, "out");
} knife_swing(145, 12, true); with (obj_bullet_knife) { if (variable_instance_exists(id, "on_a_chain")) knife_distance_goal = knife_distance_anchor + 0; } with (obj_aqua_enemy) { if (fight_type == "seth" && turns == 5) { other.alarm[1] = 20; other.alarm[2] = 16; } } } else { knife_swing(215, 12, true); } alarm[0]
 = 35;
9
            alarm[1]
 = -1;
gml_Object_obj_attack_knifechain_manager2_Alarm_1.gml

if (global.turntimer <= 5) exit; with (obj_purple_enemy) { snd_play_pitch(snd_jump, 1.5); seth_sprite(4411, 1, 0); var _randheight = 40 + irandom(25);
scr_lerpvar("y", y, y - _randheight, 10, 2, "out");
scr_var_delayed("siner", 0, 10);
scr_script_delayed(scr_lerpvar, 10, "y", y - _randheight, y, 10, 2, "in");
with (instance_create(x - 32, y + 78, obj_bulletparent)) { sprite_index = spr_seth_shadow; image_index = 2; image_speed = 0; image_yscale = 0; image_xscale = 0; image_blend = #3E1616; depth = obj_growtangle.depth - 0.1;
scr_lerpvar("image_xscale", 4, 3, 10, 2, "out");
scr_lerpvar("image_yscale", 2, 1.5, 10, 2, "out");
scr_script_delayed(scr_lerpvar, 10, "image_xscale", 3, 4, 10, 2, "in");
scr_script_delayed(scr_lerpvar, 10, "image_yscale", 1.5, 2, 10, 2, "in");
scr_script_delayed(instance_destroy, 20);
} if (rope_counter > 3) { scr_var_delayed("idlesprite", 8141, 20); scr_var_delayed("sparesprite", 8141, 20); scr_var_delayed("image_speed", 0.16666666666666666, 20);
scr_script_delayed(scr_minishakeobj, 20);
} else { scr_var_delayed("idlesprite", 4408, 20); scr_var_delayed("sparesprite", 4408, 20); } var seth_panic; seth_panic[0] = stringsetloc(
A-Aqua--Close MessageClose Message
"A-Aqua--%%", "obj_attack_knifechain_manager2_slash_Alarm_1_gml_49_0"
);
seth_panic[1] = stringsetloc(
What are--Close MessageClose Message
"What are--%%", "obj_attack_knifechain_manager2_slash_Alarm_1_gml_50_0"
);
seth_panic[2] = stringsetloc(
You're--Close MessageClose Message
"You're--%%", "obj_attack_knifechain_manager2_slash_Alarm_1_gml_51_0"
);
seth_panic[3] = stringsetloc(
Supposed to--Close MessageClose Message
"Supposed to--%%", "obj_attack_knifechain_manager2_slash_Alarm_1_gml_52_0"
);
seth_panic[4] = stringsetloc(
WE'RE ON THE--Close MessageClose Message
"WE'RE ON THE--%%", "obj_attack_knifechain_manager2_slash_Alarm_1_gml_53_0"
);
seth_panic[5] = stringsetloc(
SAME TEAM--!!Close MessageClose Message
"SAME TEAM--!!%%", "obj_attack_knifechain_manager2_slash_Alarm_1_gml_54_0"
);
seth_panic[6] = stringsetloc(
QUIT IT!!!Close MessageClose Message
"QUIT IT!!!%%", "obj_attack_knifechain_manager2_slash_Alarm_1_gml_55_0"
);
msgset_add(seth_panic[rope_counter], x, y - 75, 10, 50, function() { with (obj_battleblcon) side = 0; with (obj_writer) { disablebutton1 = true; disablebutton2 = true; preventcskip = true; } }); rope_counter =
scr_approach(rope_counter, 6, 1);
seth_balloon(); }
10
            alarm[2]
 = -1;
gml_Object_obj_attack_knifechain_manager2_Alarm_2.gml

if (global.turntimer <= 5) exit; with (obj_purple_enemy) { if (rope_counter == 6) exit; } with (obj_purple_enemy) seth_sprite(4411, 0, 0);
11
        }
12
        if (!audio_is_playing(snd_jump))
13
            snd_play_x(snd_jump, 0.5, 2);
14
        snd_stop(snd_swing);
15
        image_speed = 0;
16
        image_index = 0;
17
        sprite_index = spr_enemy_aqua_spin;
18
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_index", 2, 12, 18, 2, "out");
19
        for (var a = 0; a < ds_list_size(knife_list); a++)
20
        {
21
            var cur_knife = ds_list_find_value(knife_list, a);
22
            var lastknife = -1;
23
            with (cur_knife)
24
            {
25
                var timescale = clamp(floor((15 / ds_list_size(other.knife_list)) * a), 1, 15);
26
                with (instance_create(x, y, obj_marker))
27
                {
28
                    if (lastknife != -1)
29
                        senpai = lastknife;
30
                    else
31
                        senpai = -1;
32
                    lastknife = id;
33
                    sprite_index = spr_attack_knifechain_spin;
34
                    image_index = other.image_index;
35
                    image_speed = other.image_speed;
36
                    depth = other.depth;
37
                    image_angle = 0;
38
                    image_xscale = other.image_xscale;
39
                    image_yscale = other.image_yscale;
40
                    myscale = timescale;
41
                    counter = 1;
42
                    my_manager = 974;
43
                    if (i_ex(senpai))
44
                        distance = point_distance(senpai.x, senpai.y, x, y);
45
                    else
46
                        distance = point_distance(my_manager.x + 20, my_manager.y + 71, x, y);
47
                    if (i_ex(senpai))
48
                        angle = point_direction(senpai.x, senpai.y, x, y);
49
                    else
50
                        angle = point_direction(obj_attack_knifechain_manager2.x + 20, obj_attack_knifechain_manager2.y + 71, x, y);
51
                    
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function scr_script_delayed_until() { var __scriptdelay = instance_create(0, 0, obj_script_delayed_function); __scriptdelay.script = argument[0]; __scriptdelay.condition = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function delay_function(arg0, arg1) { return
scr_script_delayed(arg0, arg1);
}
(instance_destroy, timescale);
52
                    
53
                    funct = function()
54
                    {
55
                        counter = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(counter, 0, 1 / myscale);
56
                        if (i_ex(senpai))
57
                        {
58
                            x = senpai.x + lengthdir_x(distance * counter, angle);
59
                            y = senpai.y + lengthdir_y(distance * counter, angle);
60
                            angle = point_direction(senpai.x, senpai.y, x, y);
61
                        }
62
                        else
63
                        {
64
                            x = my_manager.x + 20 + lengthdir_x(distance * counter, angle);
65
                            y = my_manager.y + 71 + lengthdir_y(distance * counter, angle);
66
                            angle = point_direction(obj_attack_knifechain_manager2.x + 20, obj_attack_knifechain_manager2.y + 71, x, y);
67
                        }
68
                    };
69
                    
70
                    
scr_script_repeat
scr_script_repeat

function
scr_script_repeat()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = -2; __scriptdelay.max_time = argument[1]; __scriptdelay.rate = argument[2]; __scriptdelay.constant = 1; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 3); __i++) __scriptdelay.script_arg[__i] = argument[__i + 3]; __scriptdelay.arg_count = argument_count - 3; return __scriptdelay; }
(scr_use_funct, 15, 1);
71
                }
72
                instance_destroy();
73
            }
74
        }
75
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("x", x, obj_aqua_enemy.x, 20);
76
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("y", y, obj_aqua_enemy.y - 60, 10, 2, "out");
77
        
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function scr_script_delayed_until() { var __scriptdelay = instance_create(0, 0, obj_script_delayed_function); __scriptdelay.script = argument[0]; __scriptdelay.condition = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function delay_function(arg0, arg1) { return
scr_script_delayed(arg0, arg1);
}
(scr_lerpvar, 10, "y", obj_aqua_enemy.y - 60, obj_aqua_enemy.y - 29, 10, 2, "in");
78
        
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function scr_script_delayed_until() { var __scriptdelay = instance_create(0, 0, obj_script_delayed_function); __scriptdelay.script = argument[0]; __scriptdelay.condition = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function delay_function(arg0, arg1) { return
scr_script_delayed(arg0, arg1);
}
(instance_destroy, 20);
79
    }
80
    exit;
81
}
82
knife_x = x + 3 + 17;
83
knife_y = ((y + 40) - 29) + 60;
84
knife_direction = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(knife_direction, knife_direction_goal, min(abs(knife_direction_goal - knife_direction) * 0.15, knife_change_max));
85
for (var a = 0; a < ds_list_size(knife_list); a++)
86
{
87
    var cur_knife = ds_list_find_value(knife_list, a);
88
    with (cur_knife)
89
    {
90
        if (a == 0)
91
        {
92
            knife_angle = other.knife_direction;
93
        }
94
        else
95
        {
96
            var prev_knife_angle = ds_list_find_value(other.knife_list, a - 1).knife_angle + (side * a * 0.5);
97
            knife_angle = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(knife_angle, prev_knife_angle, min(abs(prev_knife_angle - knife_angle) * other.knife_arc, other.knife_change_max));
98
        }
99
        knife_distance = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(knife_distance, knife_distance_goal, abs(knife_distance_goal - knife_distance) * 0.15);
100
        image_angle = knife_angle - (90 * side);
101
        x = other.knife_x + lengthdir_x(knife_distance, knife_angle);
102
        y = other.knife_y + lengthdir_y(knife_distance, knife_angle);
103
    }
104
}