Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_susiezilla_statue_enemy_Step_0

(view raw script w/o annotations or w/e)
1
depth = 10000 - y;
2
if (hp != 0)
3
{
4
    image_xscale = 
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; }
(image_xscale, 2, 0.1);
5
    image_yscale = 
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; }
(image_yscale, 2, 0.05);
6
}
7
shake = 
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; }
(shake, 0, 0.5);
8
flash = 
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; }
(flash, 0, 0.5);
9
damage_cooldown = 
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; }
(damage_cooldown, 0, 1);
10
if (shake < 0.5)
11
    shake = 0;
12
polarity *= -1;
13
if (hp == 0)
14
{
15
    with (obj_susiezilla_gamecontroller)
16
        shake = 8;
17
    flash = 10;
18
    shake = 4;
19
    image_xscale = 
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; }
(image_xscale, 3, 0.025);
20
    image_yscale = 
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; }
(image_yscale, 0, 0.025);
21
    if ((global.time % 3) == 0)
22
    {
23
        with (
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(x + random_range(-58, 58), y - irandom(120), spr_realisticexplosion))
24
        {
25
            image_speed = 1;
26
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(id, 16);
27
            
scr_scale
scr_scale

function
scr_scale()
{ if (argument_count == 1) { image_xscale = argument0; image_yscale = argument0; } if (argument_count == 2) { with (argument1) { image_xscale = argument0; image_yscale = argument0; } } } function scr_set_scale() { if (argument_count == 2) { image_xscale = argument0; image_yscale = argument1; } if (argument_count == 3) { with (argument2) { image_xscale = argument0; image_yscale = argument1; } } }
(2, id);
28
            depth = other.depth - 1;
29
        }
30
        repeat (3 + irandom(5))
31
        {
32
            with (instance_create_depth(x + ((10 + random(70)) * choose(-1, 1)), y - 24 - random(135), depth + choose(-1, 1), obj_dozer_parts))
33
            {
34
                var facing = x - other.x;
35
                sprite_index = spr_susiezilla_statue_chip;
36
                image_angle = irandom(360);
37
                
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_angle", image_angle, image_angle + ((90 + irandom(270)) * choose(-1, 1)), 30 + irandom(60));
38
                image_speed = 0;
39
                image_index = irandom(image_number - 1);
40
                image_xscale = 1 + (random(2) * choose(1, -1));
41
                image_yscale = image_xscale;
42
                h_speed = (sign(facing) * 2) + (random(10) * sign(facing));
43
                v_speed = -4 - random(8);
44
                ground = other.y;
45
            }
46
        }
47
    }
48
}
49
var dohit = false;
50
with (obj_susiezilla_player)
51
    dohit = hitactive;
52
if (hp)
53
{
54
    if (collision_rectangle(x - 50, y - 20, x + 50, y + 20, obj_susiezilla_player, false, true) && !damage_cooldown && dohit)
55
        take_hit();
56
}