Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_b3bs_zapper_c_Step_0

(view raw script w/o annotations or w/e)
1
if (con == 0)
2
{
3
    if (stealth.alert == 2)
4
    {
5
        con = 1;
6
        timer = 0;
7
        stealth.dir = 0;
8
        stealth.updatedir = 1;
9
    }
10
}
11
if (con == 1)
12
{
13
    headct[0] = 0;
14
    var headrange = 50;
15
    with (obj_dw_ch3_b3bs_zapperhead)
16
    {
17
        if (x > (camerax() + headrange) && x < ((camerax() + 640) - headrange))
18
            array_push(other.headct, id);
19
    }
20
    array_delete(headct, 0, 1);
21
    show_debug_message(string(headct));
22
    head = headct[irandom_range(0, array_length(headct) - 1)];
23
    zapper = 
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; }
(head.x + 64, head.y - 36, spr_zapper_jump_noshadow);
24
    with (zapper)
25
        
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_index", 0, 4, 7);
26
    zapper.vspeed = -40;
27
    zapper.gravity = 2;
28
    zapper.image_xscale = -2;
29
    zapper.image_blend = c_black;
30
    
scr_lerp_imageblend
scr_lerp_imageblend

function
scr_lerp_imageblend()
{ var lerpblend = instance_create(x, y, obj_lerpimageblend); lerpblend.target = argument0; lerpblend.color1 = argument1; lerpblend.color2 = argument2; var ___time = argument3; if (argument_count > 4) { var _style = argument4; var _ease = argument5; lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time, _style, _ease); } else { lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time); } with (lerpblend) alarm_set(0, ___time); return lerpblend; }
(zapper, c_black, c_white, 8, 2, "out");
31
    snd_play(snd_jump);
32
    var desxloc = obj_mainchara.x - 48;
33
    if (head.x > (obj_mainchara.x + 17))
34
    {
35
        desxloc = obj_mainchara.x + 90;
36
        zapper.image_xscale = 2;
37
        zapper.x -= 92;
38
    }
39
    with (zapper)
40
        
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, desxloc, 30, 2, "out");
41
    safe_delete(head);
42
    con = 2;
43
}
44
var groundpos = 
scr_even
scr_even

function
scr_even(arg0)
{ return round(arg0 / 2) * 2; }
(obj_mainchara.y - 60);
45
if (con == 2)
46
{
47
    if (zapper.y < groundpos)
48
        con = 3;
49
}
50
if (con == 3)
51
{
52
    if (zapper.y >= groundpos)
53
    {
54
        zapper.y = groundpos;
55
        zapper.image_index = 7;
56
        with (zapper)
57
            scr_delay_var("image_index", 8, 4);
58
        zapper.gravity = 0;
59
        zapper.vspeed = 0;
60
        zapper.depth = obj_mainchara.depth;
61
        snd_play(snd_wing);
62
        con = 4;
63
    }
64
}
65
if (con == 4)
66
{
67
    with (instance_create(350, 200, obj_chaseenemy_zapper))
68
    {
69
        visible = 0;
70
        con = 3;
71
    }
72
    con = 5;
73
}
74
if (con == 5 && d_ex())
75
    con = 6;
76
if (con == 6 && !d_ex() && global.interact == 0)
77
{
78
    global.interact = 1;
79
    with (obj_chaseenemy_zapper)
80
        instance_destroy();
81
    with (obj_dw__backstagelight)
82
        instance_destroy();
83
    with (obj_b3bs_stealthSolid)
84
        instance_destroy();
85
    timer = 0;
86
    con = 7;
87
}
88
if (con == 7)
89
{
90
    timer++;
91
    if (timer == 1)
92
    {
93
        with (zapper)
94
        {
95
            sprite_index = spr_zapper_jump_noshadow;
96
            
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_index", 0, 4, 8, 2, "out");
97
        }
98
    }
99
    if (timer > 1)
100
    {
101
        if (zapper.image_index >= 3 && zapper.gravity == 0)
102
        {
103
            with (zapper)
104
            {
105
                depth = 20;
106
                snd_play(snd_jump);
107
                vspeed = -12;
108
                hspeed = 4;
109
                gravity = 1;
110
            }
111
        }
112
        if (zapper.y > 276)
113
        {
114
            timer = 0;
115
            con = 8;
116
            
scr_lerp_imageblend
scr_lerp_imageblend

function
scr_lerp_imageblend()
{ var lerpblend = instance_create(x, y, obj_lerpimageblend); lerpblend.target = argument0; lerpblend.color1 = argument1; lerpblend.color2 = argument2; var ___time = argument3; if (argument_count > 4) { var _style = argument4; var _ease = argument5; lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time, _style, _ease); } else { lerpblend.mylerp = scr_lerp_var_instance(lerpblend, "blendindex", 0, 1, ___time); } with (lerpblend) alarm_set(0, ___time); return lerpblend; }
(zapper, c_white, c_black, 12, 2, "out");
117
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(zapper, 30);
118
            scr_delay_var("con", 9, 8);
119
        }
120
    }
121
}
122
if (con == 9)
123
{
124
    global.facing = 0;
125
    global.interact = 0;
126
    with (obj_caterpillarchara)
127
        
scr_caterpillar_interpolate
scr_caterpillar_interpolate

function
scr_caterpillar_interpolate()
{ _newfacing =
scr_facing_letter_to_number(
scr_get_cardinal_direction(point_direction(x, y, obj_mainchara.x, obj_mainchara.y)));
remx[0] = obj_mainchara.x; remy[0] = obj_mainchara.y; facing[0] = _newfacing; for (_iaia = target; _iaia > 0; _iaia -= 1) { remx[_iaia] = lerp(obj_mainchara.x, x, _iaia / target); if (global.darkzone == 1) remy[_iaia] = lerp(obj_mainchara.y, y + 16, _iaia / target); else remy[_iaia] = lerp(obj_mainchara.y, y + 6, _iaia / target); facing[_iaia] = _newfacing; } }
();
128
    with (obj_b3bs_stealtharea)
129
        y = 0;
130
    con = 10;
131
}