Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_mike_grabcat_Step_0

(view raw script w/o annotations or w/e)
1
if (wall_destroy == 1)
2
{
3
    if (x < (__view_get(e__VW.XView, 0) - 80))
4
        instance_destroy();
5
    if (x > (__view_get(e__VW.XView, 0) + 760))
6
        instance_destroy();
7
    if (y < (__view_get(e__VW.YView, 0) - 80))
8
        instance_destroy();
9
    if (y > (__view_get(e__VW.YView, 0) + 580))
10
        instance_destroy();
11
}
12
else if (!
scr_outside_camera
scr_outside_camera

function
scr_outside_camera(arg0)
{ _offcamera = 0; rightx = x + sprite_width; leftx = x; bottomy = y + sprite_height; topy = y; if (x > (__view_get(e__VW.XView, 0) + __view_get(e__VW.WView, 0) + arg0)) _offcamera = 1; if (rightx < (__view_get(e__VW.XView, 0) - arg0)) _offcamera = 1; if (y > (__view_get(e__VW.YView, 0) + __view_get(e__VW.HView, 0) + arg0)) _offcamera = 1; if (bottomy < (__view_get(e__VW.YView, 0) - arg0)) _offcamera = 1; return _offcamera; } enum e__VW { XView, YView, WView, HView, Angle, HBorder, VBorder, HSpeed, VSpeed, Object, Visible, XPort, YPort, WPort, HPort, Camera, SurfaceID }
(32) && action == 4)
13
{
14
    wall_destroy = 1;
15
}
16
if (action != 2.5)
17
    image_speed = abs(speed) * 0.33;
18
if (action == 0)
19
{
20
    if (point_distance(x, y, xstart, ystart) > 25)
21
        motion_add(point_direction(x, y, xstart, ystart), 0.25);
22
    else
23
        friction = 0.3;
24
    if (instance_number(obj_mike_catbasket) == 0)
25
        action = 4;
26
}
27
if (action == 1)
28
{
29
    thrown = 0;
30
    x = obj_mike_controller.mx;
31
    y = obj_mike_controller.my + 24;
32
}
33
if (action == 2)
34
{
35
    if (speed == 0)
36
    {
37
        action = 3;
38
        wait = wait_max;
39
        xx = x;
40
        yy = y;
41
        image_index = 0;
42
        image_speed = 0;
43
    }
44
}
45
if (action == 3)
46
{
47
    wait -= 1;
48
    if (wait <= 0)
49
    {
50
        action = 2.5;
51
        image_speed = 1;
52
        sprite_index = spr_mike_cat_dance;
53
    }
54
}
55
if (action == 4)
56
{
57
    wait -= 1;
58
    if (wait < 0 && speed == 0)
59
    {
60
        sprite_index = spr_mike_cat_walk;
61
        image_speed = 2;
62
        friction = -0.25;
63
        xscale = -xscale;
64
        motion_set(direction, 0.25);
65
    }
66
}
67
if (action > 1)
68
{
69
    x = clamp(x, 40, 600);
70
    y = clamp(y, -40, room_height - 40);
71
    if (y < 0)
72
        vspeed += 2;
73
}
74
if (action == 5)
75
{
76
    if (thrown == 0)
77
    {
78
        var _averagex2frame = (x + xprevious) / 2;
79
        var _averagey2frame = (y + yprevious) / 2;
80
        var _averagex4frame = (last_x[1] + last_x[2]) / 2;
81
        var _averagey4frame = (last_y[1] + last_y[2]) / 2;
82
        var _spd = max(2, point_distance(_averagex4frame, _averagey4frame, _averagex2frame, _averagey2frame) / 4);
83
        motion_set(point_direction(_averagex4frame, _averagey4frame, _averagex2frame, _averagey2frame), _spd);
84
        if (_spd > 2)
85
        {
86
            thrown = 1;
87
            var _s = snd_play_pitch(snd_meow, random_range(0.8, 1));
88
            snd_volume(_s, 0.25, 0);
89
        }
90
    }
91
    throwing--;
92
    if (abs(hspeed) > 0 && throwing > 0)
93
    {
94
        var _a = 
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; }
();
95
        _a.image_blend = merge_colour(c_aqua, c_black, 0.8);
96
    }
97
    hspeed *= 0.9;
98
    if (y < -sprite_height)
99
        vspeed = 4;
100
    var yadd = 290;
101
    if (i_ex(obj_mike_minigame_controller))
102
        yadd = 330;
103
    if (y >= ((cameray() + yadd) - 10))
104
    {
105
        vspeed = 0;
106
        y = cameray() + yadd;
107
        gravity = 0;
108
        if (x < (camerax() + (camerawidth() / 2)))
109
            side = 1;
110
        else
111
            side = -1;
112
        xscale = side;
113
        sprite_index = spr_mike_cat_walk;
114
        hspeed = 0;
115
        friction = 0.25;
116
        action = 2;
117
    }
118
    else
119
    {
120
        gravity = 1;
121
    }
122
}
123
124
enum e__VW
125
{
126
    XView,
127
    YView,
128
    WView,
129
    HView,
130
    Angle,
131
    HBorder,
132
    VBorder,
133
    HSpeed,
134
    VSpeed,
135
    Object,
136
    Visible,
137
    XPort,
138
    YPort,
139
    WPort,
140
    HPort,
141
    Camera,
142
    SurfaceID
143
}