Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_tenna_lightemup_bullet_Step_0

(view raw script w/o annotations or w/e)
1
if (init == 0)
2
{
3
    maxhp = hp;
4
    init = 1;
5
}
6
if (firstbullet == 1)
7
{
8
    with (obj_shadowman_sharpshoot_target)
9
        bullet_timer = 0;
10
}
11
if (i_ex(obj_tenna_zoom) && obj_tenna_zoom.con >= 2 && !vanish)
12
{
13
    image_blend = c_white;
14
    
scr_afterimage_grow
scr_afterimage_grow

function
scr_afterimage_grow()
{ afterimage = instance_create(x, y, obj_afterimage_grow); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; }
();
15
    instance_destroy();
16
    exit;
17
}
18
if (vanish)
19
{
20
    hspeed = 0;
21
    image_alpha -= 0.2;
22
    if (image_alpha < 0)
23
        instance_destroy();
24
    exit;
25
}
26
if (i_ex(obj_tenna_zoom) && obj_tenna_zoom.minigameinsanity == true)
27
    obj_tenna_zoom.minigameinsanitytimer = obj_tenna_zoom.minigameinsanitytimermax - 7;
28
timer++;
29
if (timer > 200 && firstbullet == 0)
30
{
31
    image_alpha -= 0.1;
32
    if (image_alpha <= 0)
33
        instance_destroy();
34
}
35
if (hittimer >= 0)
36
{
37
    baseimageblend = merge_color(c_red, c_white, hp / maxhp);
38
    image_blend = baseimageblend;
39
    hittimer--;
40
}
41
if (invincibility >= 0)
42
{
43
    invincibility--;
44
    if (invincibility <= 0)
45
        image_blend = c_white;
46
}
47
global.inv--;
48
if (firstbullet == 0)
49
    damagetimer--;
50
if (damagetimer == 2)
51
    snd_play(snd_heartshot_dr);
52
if (damagetimer <= 0)
53
{
54
    if (i_ex(obj_tenna_zoom) && obj_tenna_zoom.con > 1)
55
    {
56
    }
57
    else
58
    {
59
        snd_play(snd_explosion_mmx);
60
        snd_play(snd_hurt1);
61
        if (i_ex(obj_tenna_enemy) && obj_lightemup_controller.invincibility < 1)
62
        {
63
            obj_tenna_enemy.minigamefailcount++;
64
            obj_lightemup_controller.invincibility = 30;
65
            instance_create(x, y, obj_clearbullets_fx);
66
            if (obj_tenna_enemy.minigameinsanity == 1)
67
            {
68
                with (obj_tenna_enemy)
69
                    minigamefailcount = 1;
70
            }
71
        }
72
        else
73
        {
74
            global.inv = -1;
75
            damage = 0;
76
            target = 3;
77
            
scr_damage_all
scr_damage_all

function
scr_damage_all()
{ if (global.inv < 0) { remdamage = damage; _temptarget = target; for (ti = 0; ti < 3; ti += 1) { global.inv = -1; damage = remdamage; target = ti; if (global.hp[global.char[ti]] > 0 && global.char[ti] != 0)
scr_damage();
} global.inv = global.invc * 30; target = _temptarget; } }
(damage);
78
        }
79
        
scr_shakescreen
scr_shakescreen

function
scr_shakescreen()
{ instance_create(x, y, obj_shake); }
();
80
    }
81
    image_blend = c_white;
82
    
scr_afterimage_grow
scr_afterimage_grow

function
scr_afterimage_grow()
{ afterimage = instance_create(x, y, obj_afterimage_grow); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; }
();
83
    instance_destroy();
84
}
85
if ((damagetimer % 3) == 0 && spritechangecon == 0)
86
{
87
    var afterimage = 
scr_afterimage
scr_afterimage

function
scr_afterimage()
{ afterimage = instance_create(x, y, obj_afterimage); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; }
();
88
    afterimage.image_alpha = 0.5;
89
}
90
if (specialmovement == 1)
91
{
92
    if (specialmovementcon == 0)
93
    {
94
        
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; }
("x", xstart, xstart + random_range(-150, -20), specialmovementexpansiontime, 2, "out");
95
        
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; }
("y", ystart, ystart + random_range(-76, 76), specialmovementexpansiontime, 2, "out");
96
        specialmovementcon = 1;
97
        specialmovementtimer = 0;
98
    }
99
    if (specialmovementcon == 1)
100
    {
101
        specialmovementtimer++;
102
        if (specialmovementtimer > specialmovementexpansiontime)
103
        {
104
            specialmovementtimer = 0;
105
            specialmovementcon = 2;
106
        }
107
    }
108
    if (specialmovementcon == 2)
109
    {
110
        specialmovementtimer++;
111
        if (specialmovementtimer >= specialmovementwaittime)
112
        {
113
            specialmovementcon = 3;
114
            if (i_ex(obj_tenna_enemy) && obj_tenna_enemy.phaseturn == 18)
115
                damagetimer = round(specialmovementattacktime);
116
            
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; }
("x", x, camerax() + 160, specialmovementattacktime, 0, "out");
117
            var midy = cameray() + 180;
118
            vspeed = (y - midy) / (specialmovementattacktime / 1.7);
119
            gravity = -vspeed / (specialmovementattacktime / 1.7);
120
        }
121
    }
122
    if (x < (camerax() + 170))
123
    {
124
        if (y < (cameray() + 178))
125
            y += 2;
126
        if (y > (cameray() + 182))
127
            y -= 2;
128
    }
129
}
130
if (sprite_index != spr_ball_collision_full_3xscale)
131
{
132
    if (y < ((cameray() + 180) - 80))
133
        y = (cameray() + 180) - 80;
134
    if (y > (cameray() + 180 + 80))
135
        y = cameray() + 180 + 80;
136
}
137
if (auto >= 1)
138
{
139
    if (auto == 1 && x < (camerax() + 220))
140
    {
141
        auto = 2;
142
        
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; }
("y", y, cameray() + 160, 8, 2, "out");
143
        friction = 1;
144
        damagetimer = 5;
145
    }
146
}
147
if (bounce)
148
{
149
    if (y >= maxy)
150
        vspeed = -abs(vspeed);
151
    if (y <= miny)
152
        vspeed = abs(vspeed);
153
}