Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_darkshape_greenblob_Step_0

(view raw script w/o annotations or w/e)
1
image_blend = make_color_rgb(255 * r, 255 * g, 255 * b);
2
image_index %= 6;
3
speed *= 0.85;
4
if (active)
5
{
6
    var accel = acc / point_distance(x, y, obj_heart.x + 10, obj_heart.y + 10);
7
    direction = 
scr_at_player
scr_at_player

function
scr_at_player(arg0 = x, arg1 = y)
{ return point_direction(arg0, arg1, obj_heart.x + (obj_heart.sprite_width / 2), obj_heart.y + (obj_heart.sprite_height / 2)); }
(x, y);
8
    speed = 
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; }
(speed, max_speed, accel);
9
}
10
if (point_distance(x, y, obj_heart.x + 10, obj_heart.y + 10) <= 20 && active)
11
{
12
    snd_stop(snd_swallow);
13
    snd_stop(snd_eye_telegraph);
14
    snd_play(snd_swallow, size * 0.2);
15
    snd_play(snd_eye_telegraph, size * 0.2, 2);
16
    var tensionscale = 1;
17
    var tensionscale_perloss = 1;
18
    with (obj_titan_enemy)
19
        tensionscale = tensionscaling;
20
    if (i_ex(obj_titan_spawn_enemy) && obj_titan_spawn_enemy.turns >= 4)
21
        tensionscale = 2;
22
    if (i_ex(obj_titan_enemy) && global.flag[1640] >= 8)
23
    {
24
        if (global.flag[1640] == 8)
25
            tensionscale_perloss = 1.2;
26
        if (global.flag[1640] == 9)
27
            tensionscale_perloss = 1.3;
28
        if (global.flag[1640] == 10)
29
            tensionscale_perloss = 1.4;
30
        if (global.flag[1640] == 11)
31
            tensionscale_perloss = 1.5;
32
        if (global.flag[1640] == 12)
33
            tensionscale_perloss = 1.6;
34
        if (global.flag[1640] == 13)
35
            tensionscale_perloss = 1.7;
36
        if (global.flag[1640] == 14)
37
            tensionscale_perloss = 1.8;
38
        if (global.flag[1640] == 15)
39
            tensionscale_perloss = 1.9;
40
        if (global.flag[1640] >= 16)
41
            tensionscale_perloss = 2;
42
    }
43
    
scr_tensionheal
scr_tensionheal

function
scr_tensionheal(arg0)
{ if (i_ex(obj_jackenstein_enemy) && global.tempflag[89] >= 3) global.tension += ceil(arg0 * 1.5); else global.tension += arg0; if (global.tension > global.maxtension) global.tension = global.maxtension; }
(size * 2 * tensionscale * tensionscale_perloss);
44
    with (instance_create_depth(x, y, depth + 1, obj_bulletparent))
45
    {
46
        image_angle = 0;
47
        image_xscale = 0.0625;
48
        image_yscale = 0.0625;
49
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_xscale", image_xscale, image_xscale * 3, 4);
50
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_yscale", image_yscale, image_yscale * 3, 4);
51
        sprite_index = spr_finisher_explosion;
52
        image_index = 2;
53
        image_speed = 1;
54
        image_blend = c_yellow;
55
        
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; }
(instance_destroy, 5);
56
    }
57
    if (instance_exists(obj_darkshape_tension_glow))
58
    {
59
        with (obj_darkshape_tension_glow)
60
            alphamod = 1;
61
    }
62
    else
63
    {
64
        instance_create_depth(0, 0, 0, obj_darkshape_tension_glow);
65
    }
66
    repeat (3 + irandom(2))
67
    {
68
        with (obj_tensionbar)
69
        {
70
            with (instance_create(x + irandom(25), y + 40 + irandom(160), obj_marker))
71
            {
72
                var _dur = 10 + irandom(5);
73
                sprite_index = spr_sparestar_anim;
74
                image_speed = 5 / _dur;
75
                speed = 3 + random(3);
76
                direction = 90;
77
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("speed", speed, 0, _dur);
78
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ 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_lerpvar_respect() { 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]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_alpha", 1, 0.25, _dur);
79
                
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; }
(instance_destroy, _dur);
80
            }
81
        }
82
    }
83
    instance_destroy();
84
}