Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_susiezilla_statue_enemy_Create_0

(view raw script w/o annotations or w/e)
1
event_inherited();
2
shake = 0;
3
polarity = 1;
4
flash = 0;
5
damage_cooldown = 0;
6
maxhp = 8;
7
hp = maxhp;
8
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
9
10
take_hit = function()
11
{
12
    shake += 10;
13
    shake = max(shake, 10);
14
    flash = 10;
15
    with (obj_susiezilla_gamecontroller)
16
        shake = 16;
17
    hp = 
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; }
(hp, 0, 1);
18
    image_xscale = 2.5;
19
    image_yscale = 1.75;
20
    repeat (2 + irandom(4))
21
    {
22
        with (instance_create_depth(x + ((10 + random(70)) * choose(-1, 1)), y - 24 - random(135), depth + choose(-1, 1), obj_dozer_parts))
23
        {
24
            var facing = x - other.x;
25
            sprite_index = spr_susiezilla_statue_chip;
26
            image_angle = irandom(360);
27
            
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));
28
            image_speed = 0;
29
            image_index = irandom(image_number - 1);
30
            image_xscale = 1 + (random(1.5) * choose(1, -1));
31
            image_yscale = image_xscale;
32
            h_speed = (sign(facing) * 2) + (random(10) * sign(facing));
33
            v_speed = -4 - random(8);
34
            ground = other.y;
35
        }
36
    }
37
    if (!damage_cooldown)
38
        damage_cooldown = 20;
39
    if (hp == 0)
40
    {
41
        mask_index = spr_nomask;
42
        snd_play_pitch(snd_explosion, 0.5);
43
        with (obj_susiezilla_gamecontroller)
44
        {
45
            mode = -1;
46
            if (time_timer && obj_tenna_zoom.con != 2 && obj_tenna_zoom.minigameinsanity == false)
47
            {
48
                finished = true;
49
                with (obj_tenna_zoom)
50
                {
51
                    con = 2;
52
                    timer = -30;
53
                }
54
            }
55
        }
56
        with (obj_susiezilla_singlescreen_shadowguy_parent)
57
        {
58
            if (object_index != obj_susiezilla_singlescreen_shadowguy_in_dozer)
59
                instant_defeat();
60
            else
61
                instant_defeat_dozer();
62
        }
63
        with (obj_susiezilla_singlescreen_hazard)
64
            bounce_off();
65
        with (obj_susiezilla_gamecontroller)
66
        {
67
            with (obj_script_delayed)
68
            {
69
                if (target == other.id)
70
                    instance_destroy();
71
            }
72
        }
73
    }
74
    snd_stop(snd_damage);
75
    snd_stop(snd_metal_hit_reverb);
76
    snd_play(snd_damage);
77
    snd_play_x(snd_metal_hit_reverb, 1, 0.9);
78
    with (obj_susiezilla_player)
79
    {
80
        direction = point_direction(other.x, other.y, myxcenter, y + 84);
81
        speed = max(32, speed);
82
    }
83
};