Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_blue_cat_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))
13
{
14
    wall_destroy = 1;
15
}
16
var _bottom = 340;
17
var _vol = obj_mike_controller.microphone_volume / 50;
18
if (action == 1)
19
{
20
    angle = 0;
21
    thrown = 0;
22
    x = obj_mike_controller.mx;
23
    y = obj_mike_controller.my + 24;
24
    sprite_index = spr_mike_cat_hold;
25
    if (!grab_snd)
26
    {
27
        grab_snd = 1;
28
        var _s = snd_play(snd_item);
29
        snd_volume(_s, 0.25, 0);
30
    }
31
    image_xscale = 0.5;
32
    image_yscale = 1.5;
33
}
34
else
35
{
36
    image_xscale = 1;
37
    image_yscale = 1;
38
    grab_snd = -1;
39
    sprite_index = spr_mike_cat_dance;
40
}
41
if (action == 0)
42
{
43
    if (thrown == 0)
44
    {
45
        var _averagex2frame = (x + xprevious) / 2;
46
        var _averagey2frame = (y + yprevious) / 2;
47
        var _averagex4frame = (last_x[1] + last_x[2]) / 2;
48
        var _averagey4frame = (last_y[1] + last_y[2]) / 2;
49
        var _spd = max(2, point_distance(_averagex4frame, _averagey4frame, _averagex2frame, _averagey2frame) / 4);
50
        motion_set(point_direction(_averagex4frame, _averagey4frame, _averagex2frame, _averagey2frame), _spd);
51
        if (_spd > 2)
52
        {
53
            thrown = 1;
54
            var _s = snd_play_pitch(snd_meow, random_range(0.8, 1));
55
            snd_volume(_s, 0.25, 0);
56
        }
57
    }
58
    if (speed > 0 && gravity == 0)
59
    {
60
        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; }
();
61
        _a.image_blend = merge_colour(c_gray, c_black, 0.75);
62
    }
63
}
64
angle -= hspeed;
65
if (action == 5)
66
    action = 0;
67
var _o = collision_circle(x, y, 10, obj_blue_cat, 1, 1);
68
if (_o)
69
{
70
    if (_o.action != 1)
71
    {
72
        var _h = lengthdir_x(1, point_direction(_o.x, _o.y, x, y));
73
        var _v = lengthdir_y(1, point_direction(_o.x, _o.y, x, y));
74
        hspeed += (_h / 2);
75
        vspeed += (_v / 2);
76
        x += _h;
77
        y += _v;
78
    }
79
}
80
score_buffer--;
81
fever_timer--;
82
83
enum e__VW
84
{
85
    XView,
86
    YView,
87
    WView,
88
    HView,
89
    Angle,
90
    HBorder,
91
    VBorder,
92
    HSpeed,
93
    VSpeed,
94
    Object,
95
    Visible,
96
    XPort,
97
    YPort,
98
    WPort,
99
    HPort,
100
    Camera,
101
    SurfaceID
102
}