Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_shadowman_tommygun_Step_0

(view raw script w/o annotations or w/e)
1
with (obj_dmgwriter)
2
    depth = -99999999999;
3
if (i_ex(obj_growtangle))
4
{
5
    timer++;
6
    if (timer < 14)
7
        x = lerp(x, 
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(0) + 122, 0.16);
8
    if (timer == 14)
9
    {
10
        sprite_index = spr_shadowman_idle_b;
11
        image_speed = 1;
12
    }
13
}
14
if (global.turntimer < 13)
15
{
16
    if (global.turntimer < 1)
17
    {
18
        instance_destroy();
19
        exit;
20
    }
21
    x = lerp(x, creatorid.x, (12 - global.turntimer) / 12);
22
    y = lerp(y, creatorid.y, (12 - global.turntimer) / 12);
23
}
24
if (paused || timer < 14 || (global.turntimer < 29 && bullet_counter == 0))
25
    exit;
26
if (bullet_timer > 0)
27
{
28
    bullet_timer--;
29
}
30
else
31
{
32
    snd_stop(snd_gunshot_b);
33
    snd = audio_play_sound(snd_gunshot_b, 0, 0);
34
    snd_pitch(snd_gunshot_b, 0.95 + (random(10) / 100));
35
    snd_volume(snd_gunshot_b, 0.7, 0);
36
    sprite_index = spr_shadowman_firing;
37
    shootsfx = 6;
38
    firefx = 2;
39
    gunshake = 6;
40
    var rep = 1;
41
    if (type == 1)
42
        rep = 5;
43
    var bullet_speed = 5.5 + random(2);
44
    if (type == 1)
45
        bullet_speed = 4 + random(2);
46
    if (instance_number(obj_dbulletcontroller) == 1)
47
        bullet_speed = 4 + random(2);
48
    if (instance_number(obj_dbulletcontroller) == 2)
49
        bullet_speed = 4 + random(1);
50
    if (instance_number(obj_dbulletcontroller) == 3)
51
        bullet_speed = 4 + random(1);
52
    if (i_ex(obj_volumeup))
53
        bullet_speed = 3 + random(1);
54
    repeat (rep)
55
    {
56
        var ang = (point_direction(x + 6 + lengthdir_x(gunshake, gun_angle), y + 63 + lengthdir_y(gunshake, gun_angle), obj_growtangle.x, obj_growtangle.y) - 30) + irandom(60);
57
        if (type == 1)
58
            ang = 120 + irandom(90);
59
        count++;
60
        if (count == 5 && instance_number(obj_dbulletcontroller) != 3)
61
        {
62
            count = -10;
63
            ang = (point_direction(x + 6 + lengthdir_x(gunshake, gun_angle), y + 63 + lengthdir_y(gunshake, gun_angle), obj_heart.x + 10, obj_heart.y + 10) + 6) - irandom(12);
64
        }
65
        if (type == 0)
66
            gun_angle = ang;
67
        var tommybullet = 
scr_fire_bullet
scr_fire_bullet

function
scr_fire_bullet(arg0, arg1, arg2, arg3, arg4, arg5 = -4, arg6 = 0, arg7 = false, arg8 = 87135)
{ var bullet; if (arg8 != 87135) bullet = instance_create_depth(arg0, arg1, arg8, arg2); else bullet = instance_create(arg0, arg1, arg2); with (bullet) { direction = arg3; speed = arg4; if (arg5 != -4) sprite_index = arg5; updateimageangle = arg6; if (arg6) image_angle = arg3; if (arg7) { with (other)
scr_bullet_inherit(other.id);
} } return bullet; } function scr_fire_bullet_colorize(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 = 0) { var bullet = instance_create(arg0, arg1, arg2); with (bullet) { direction = arg3; speed = arg4; sprite_index = arg5; image_blend = arg6; updateimageangle = arg7; if (arg7) image_angle = arg3; } return bullet; }
(x + 6 + lengthdir_x(60, gun_angle), y + 64 + lengthdir_y(60, gun_angle), obj_regularbullet, 180, bullet_speed, spr_tommygun_bullet);
68
        tommybullet.direction = ang;
69
        tommybullet.damage = 55;
70
        tommybullet.grazepoints = 9;
71
        tommybullet.target = target;
72
        tommybullet.image_angle = tommybullet.direction;
73
        depth = -9999;
74
        tommybullet.depth = depth + 1;
75
        with (tommybullet)
76
            
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; }
(scr_lerpvar_instance, abs(x -
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(2)) / abs(hspeed), id, "image_alpha", 1, 0, 10);
77
        if (i_ex(obj_rouxls_ch3_enemy) && y < obj_rouxls_ch3_enemy.y)
78
            depth = obj_rouxls_ch3_enemy.depth + 1;
79
        if (i_ex(obj_volumeup))
80
        {
81
            tommybullet.image_xscale = 1.3;
82
            tommybullet.image_yscale = 1.3;
83
            tommybullet.grazepoints += 6;
84
            tommybullet.x += 30;
85
        }
86
    }
87
    if (type == 0)
88
    {
89
        bullet_timer = 3;
90
        bullet_counter++;
91
        if (instance_number(obj_dbulletcontroller) == 1)
92
            bullet_timer = 2;
93
        if (instance_number(obj_dbulletcontroller) == 2)
94
            bullet_timer = 4;
95
        if (instance_number(obj_dbulletcontroller) == 3)
96
            bullet_timer = 8;
97
        if (bullet_counter == 12 || (bullet_counter == 6 && instance_number(obj_dbulletcontroller) == 2) || (bullet_counter == 4 && instance_number(obj_dbulletcontroller) == 3))
98
        {
99
            sprite_index = spr_shadowman_reload;
100
            image_speed = 0.13333333333333333;
101
            bullet_counter = 0;
102
            bullet_timer += (10 + (irandom(1) * 5) + (4 * sameattack));
103
            gun_angle = 180;
104
        }
105
    }
106
    if (type == 1)
107
    {
108
        bullet_timer = 24;
109
        bullet_counter++;
110
        if (bullet_counter == 3)
111
        {
112
            sprite_index = spr_shadowman_reload;
113
            image_speed = 0.13333333333333333;
114
            bullet_counter = 0;
115
            bullet_timer += (10 + (irandom(1) * 5) + (4 * sameattack));
116
            gun_angle = 180;
117
        }
118
    }
119
}