Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_mike_bigcat_Step_0

(view raw script w/o annotations or w/e)
1
if (meowsnd == 1)
2
{
3
    meow = snd_play(snd_meow);
4
    sound_pitch(meow, 0.75);
5
    meowsnd = 2;
6
}
7
if (!place_meeting(x, y, obj_hand_collision))
8
    meowsnd = 0;
9
if (action == 0)
10
{
11
    x = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(x, xstart, 4);
12
    if (x == xstart)
13
        action = 1;
14
}
15
if (action == 1)
16
    happiness = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(happiness, 0, happiness_speed);
17
if (action == 2)
18
{
19
    x = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(x, oldx, 12);
20
    act = 0;
21
    if (x == oldx)
22
        instance_destroy();
23
}
24
xscale2 = 1 + (sin(current_time / 120) * 0.1);
25
yscale = 1 + (sin(32 + (current_time / 120)) * 0.1);
26
timer += 1;
27
if (act == 1)
28
{
29
    act = 2;
30
    timer = 0;
31
    xscale = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(xscale, 2, 0.01);
32
    image_yscale = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(image_yscale, 2, 0.01);
33
}
34
if (act == 2)
35
{
36
    xscale += ((xscale2 - xscale) * 0.9);
37
    image_yscale += ((yscale - image_yscale) * 0.9);
38
    if (timer > 30)
39
    {
40
        act = 0;
41
        timer = irandom_range(0, -120);
42
    }
43
}
44
if (action == 1)
45
{
46
    if (happiness <= 0 && act < 3)
47
    {
48
        act = 3;
49
        timer = 0;
50
        xscale = 1;
51
        image_yscale = 1;
52
        timer = 90;
53
    }
54
    if (act == 3)
55
    {
56
        image_blend = merge_color(c_white, c_red, timer / 90);
57
        timer += 1;
58
        if (timer >= 90)
59
        {
60
            var bullet_space = 25;
61
            var my_x = x + (56 * image_xscale);
62
            var my_y = y - 36;
63
            var my_dir = point_direction(my_x, my_y, obj_mike_controller.x, obj_mike_controller.y) - bullet_space;
64
            timer = 0;
65
            sound_play(snd_meow_angry);
66
            for (i = 0; i < 3; i++)
67
            {
68
                var ob = instance_create_depth(my_x, my_y, depth - 1, obj_mike_hairball);
69
                ob.speed = 5;
70
                ob.direction = my_dir;
71
                my_dir += bullet_space;
72
            }
73
        }
74
    }
75
}
76
if (act > 2)
77
    image_index = 1;
78
else
79
    image_index = 0;