Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_titan_battle_finger_Step_0

(view raw script w/o annotations or w/e)
1
damage = 90;
2
target = 4;
3
if (!i_ex(obj_heart))
4
    exit;
5
with (obj_collidebullet)
6
{
7
    if (variable_instance_exists(id, "parent_id"))
8
    {
9
        if (place_meeting(x, y, other.id) && parent_id != other.master.id)
10
            instance_destroy();
11
    }
12
}
13
var hx = obj_heart.x + 10;
14
var hy = obj_heart.y + 10;
15
var cur_weak_dist = (weak_dist - (weak_off[image_index] * 2)) + weak_bonus;
16
var myx = x + lengthdir_x(cur_weak_dist, image_angle);
17
var myy = y + lengthdir_y(cur_weak_dist, image_angle);
18
if (point_distance(myx, myy, hx, hy) < (obj_darkshape_light_aura.radius + 8))
19
{
20
    light = 
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; }
(light, 1, 0.035);
21
    if (!irandom(2))
22
    {
23
        with (instance_create_depth(myx + random_range(-12, 12), myy + random_range(-12, 12), depth + 2, obj_particle_generic))
24
        {
25
            image_blend = c_white;
26
            direction = point_direction(obj_heart.x + 10, obj_heart.y + 10, x, y);
27
            speed = 1 + random(3);
28
            shrink_rate = 0.2;
29
        }
30
    }
31
}
32
else
33
{
34
    light = 
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; }
(light, 0, light_rate);
35
}
36
if (light >= 1)
37
{
38
    instance_destroy();
39
    snd_play(snd_explosion_firework);
40
    master.fingers_broken++;
41
    if (master.fingers_broken == 4)
42
        master.master.selfdestruct(master);
43
    for (var aa = 0; aa < 2; aa++)
44
    {
45
        for (var bb = -1; bb < 5; bb++)
46
        {
47
            if (bb > 0 && aa == 0)
48
                
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; }
(snd_play_pitch, bb * 2, 261, 0.75);
49
            if (aa == 0)
50
            {
51
                with (instance_create(x + lengthdir_x(20 * bb, image_angle) + irandom_range(-5, 5), y + lengthdir_y(20 * bb, image_angle) + irandom_range(-5, 5), obj_darkshape_greenblob))
52
                {
53
                    size = 1;
54
                    prime_me();
55
                }
56
            }
57
            with (instance_create(x + lengthdir_x(20 * bb, image_angle) + irandom_range(-15, 15), y + lengthdir_y(20 * bb, image_angle) + irandom_range(-15, 15), obj_battle_marker))
58
            {
59
                destroyoncomplete = true;
60
                sprite_index = spr_finisher_explosion;
61
                image_index = 0;
62
                image_speed = 0;
63
                image_alpha = 0;
64
                image_angle = irandom(360);
65
                image_xscale = 0.5;
66
                image_yscale = 0.5;
67
                direction = irandom(360);
68
                speed = 8;
69
                
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", 8, 1, 8);
70
                
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", 0.5, 0.25, 4 * ((0.25 * bb) + 0.5));
71
                
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", 0.5, 0.25, 4 * ((0.25 * bb) + 0.5));
72
                
scr_var
scr_var

function
scr_var(arg0, arg1)
{ variable_instance_set(id, arg0, arg1); }
("image_speed", (0.075 * bb) + 0.4);
73
                
scr_var
scr_var

function
scr_var(arg0, arg1)
{ variable_instance_set(id, arg0, arg1); }
("image_alpha", 1);
74
            }
75
        }
76
    }
77
}