Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_attack_orange_dragonpunch_Draw_0

(view raw script w/o annotations or w/e)
1
if (con == 0)
2
{
3
    var jumptime = 15;
4
    
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_growtangle.x + 22) - (sprite_width / 2), round(jumptime * 1.2), 1, "out");
5
    
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_growtangle.y + (obj_growtangle.sprite_height / 2) + 20, jumptime, 3, "out");
6
    con = -99;
7
    
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_var, jumptime, "con", 1);
8
    foodalpha = 0;
9
    foodtimer = 0;
10
    flash = 0;
11
    foodangle = 0;
12
}
13
if (con == 1)
14
{
15
    var mcx = x + (sprite_width / 2);
16
    var mcy = y + (sprite_height / 2);
17
    foodtimer += 4;
18
    foodalpha = lerp(foodalpha, 1, 0.125);
19
    foodangle = lerp(foodangle, 145, 0.1);
20
    var foodlength = 100 - foodtimer;
21
    if (foodcollected > 0 && foodlength > 0)
22
    {
23
        for (var i = 0; i < foodcollected; i++)
24
            draw_sprite_ext(spr_bullet_green_egg, 0, mcx + lengthdir_x(foodlength, ((360 / foodcollected) * i) + foodangle), mcy + lengthdir_y(foodlength, ((360 / foodcollected) * i) + foodangle), 1, 1, 0, c_white, foodalpha);
25
    }
26
    if (foodlength < 25 && flash == 0)
27
    {
28
        flash = 1;
29
        sprite_index = spr_enemy_orange_prepare;
30
        var oflash = 
scr_oflash
scr_oflash

function
scr_oflash()
{ _oflash = instance_create(x, y, obj_oflash); _oflash.image_xscale = image_xscale; _oflash.image_speed = 0; _oflash.image_angle = image_angle; _oflash.image_index = image_index; _oflash.image_yscale = image_yscale; _oflash.sprite_index = sprite_index; _oflash.depth = depth - 1; _oflash.target = id; return _oflash; }
();
31
        oflash.flashspeed = 0.5;
32
    }
33
    if (foodlength <= 0 && !i_ex(obj_oflash))
34
    {
35
        sprite_index = spr_enemy_orange_fly_withfist;
36
        
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_var, 20, "createhands", 1);
37
        aurasiner = 0;
38
        auraalpha = 0;
39
        gensiner = 0;
40
        con = 2;
41
        foodtimer = 0;
42
    }
43
    draw_self();
44
}
45
if (con == 2)
46
{
47
    foodtimer++;
48
    auraalpha = lerp(auraalpha, 1, 0.125);
49
    aurasiner++;
50
    auracolor = merge_color(c_white, hexcolor(#33ADFF), aurasiner / 10);
51
    if (aurasiner == 10)
52
        aurasiner = 0;
53
    gensiner++;
54
    if (foodtimer == 2)
55
        dustlift = 1;
56
    var attacktime = 90;
57
    var _endy = -60;
58
    gravity = -0.5;
59
    var etx = -21;
60
    var ety = -32;
61
    draw_sprite_ext(spr_enemy_orange_energytrail, 0, etx + x + (sprite_width / 2), (ety + y) - 2, 1.3, 2, 0, auracolor, 0.5 * auraalpha);
62
    draw_sprite_ext(sprite_index, image_index, x + choose(-2, 0, 2), y + choose(-2, 0, 2), image_xscale, image_yscale, image_angle, image_blend, image_alpha);
63
    draw_sprite_ext(spr_enemy_orange_energytrail, 0, etx + x + (sprite_width / 2), (ety + y) - 2, 1.4, 2, 0, auracolor, 0.15 * auraalpha);
64
    if (y <= _endy)
65
        con = 3;
66
}
67
if (con == 3)
68
{
69
    sprite_index = spr_enemy_orange_down;
70
    x = obj_orange_enemy.xstart - 5;
71
    gravity = 0.65;
72
    con = 4;
73
}
74
if (con == 4)
75
{
76
    if (y >= (obj_orange_enemy.ystart + 4))
77
    {
78
        y = obj_orange_enemy.ystart + 4;
79
        dust = instance_create(x + 16, y + 28, obj_animation);
80
        dust.sprite_index = spr_dust2;
81
        
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
(dust);
82
        dust.image_speed = 0.5;
83
        dust.depth = depth - 5;
84
        dust.hspeed = -2;
85
        dust = instance_create(x + 36, y + 28, obj_animation);
86
        dust.sprite_index = spr_dust2;
87
        
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
(dust);
88
        dust.image_speed = 0.5;
89
        dust.depth = depth - 5;
90
        dust.hspeed = 2;
91
        gravity = 0;
92
        vspeed = 0;
93
        mode = 0;
94
        siner = 0;
95
        con = -999;
96
        snd_play(snd_impact);
97
        
scr_shakescreen
scr_shakescreen

function
scr_shakescreen(arg0 = 4)
{ with (instance_create(x, y, obj_shake)) { shakex = arg0; shakey = arg0; } }
();
98
        with (obj_orange_enemy)
99
        {
100
            x = xstart;
101
            y = ystart;
102
            scr_var_delayed("visible", 1, 30);
103
        }
104
        
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, 30);
105
        global.turntimer = 30;
106
    }
107
}
108
draw_self();
109
if (dustlift == 1)
110
{
111
    dustlift = 0;
112
    for (var i = 0; i < 6; i++)
113
    {
114
        dust = instance_create(x + 16, y + 28, obj_animation);
115
        dust.sprite_index = spr_dust2;
116
        
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
(dust);
117
        dust.image_speed = 0.5 - random(0.2);
118
        dust.depth = depth - 5;
119
        dust.hspeed = -(2 + i + random(0.5));
120
        dust.vspeed = (i / 3) + random(0.5);
121
        dust.friction = 0.1;
122
        dust = instance_create(x + 36, y + 28, obj_animation);
123
        dust.sprite_index = spr_dust2;
124
        
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
(dust);
125
        dust.image_speed = 0.5 - random(0.2);
126
        dust.depth = depth - 5;
127
        dust.hspeed = 2 + i + random(0.5);
128
        dust.vspeed = (i / 3) + random(0.5);
129
        dust.friction = 0.1;
130
    }
131
}
132
if (createhands == 1)
133
{
134
    var fistcount = 3;
135
    if (foodcollected < 10)
136
        fistcount = 3;
137
    if (foodcollected < 5)
138
        fistcount = 5;
139
    if (foodcollected == 0)
140
        fistcount = 10;
141
    var growtanglesize = obj_growtangle.sprite_width;
142
    for (var i = 0; i < fistcount; i++)
143
    {
144
        var xloc = 24 + (obj_growtangle.x - (growtanglesize / 2)) + (i * (growtanglesize / fistcount));
145
        var yloc = obj_growtangle.y + (obj_growtangle.sprite_height / 2) + 20;
146
        var fist = instance_create(xloc, yloc, obj_regularbullet);
147
        fist.sprite_index = spr_enemy_orange_glove_front;
148
        fist.image_xscale = 2 + random(1);
149
        fist.image_yscale = image_xscale;
150
        fist.vspeed = -4 - random(2);
151
        fist.friction = 0.002;
152
        fist.image_angle -= 90;
153
        
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ var _doom = instance_create_depth(0, 0, 0, obj_doom); with (_doom) { alarm[0] target = arg0; } return _doom; }
(fist, 120);
154
        createhands = 0;
155
        fist.image_alpha = 0;
156
        fist.damage = 200;
157
        fist.target = 4;
158
        with (fist)
159
            
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_alpha", 0, 1, 10);
160
    }
161
}
162
if (global.turntimer < 1)
163
    instance_destroy();