Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_mike_combo_bounce_Collision_obj_hand_collision

(view raw script w/o annotations or w/e)
1
if (action > 2 && action < 6)
2
{
3
    fade = 1;
4
    if (cooldown < 0)
5
    {
6
        cooldown = 30;
7
alarm[0]
8
        hp -= 1;
9
    }
10
    if (hp < (hp_max * 0.75))
11
        active = false;
12
    if (image_xscale > 1)
13
    {
14
        image_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; }
(image_xscale, 0.25, 0.025);
15
        image_yscale = image_xscale;
16
    }
17
    else
18
    {
19
        sc = 
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; }
(sc, 0.5, 0.05);
20
    }
21
    maxspeed += 2;
22
    if (hp > 0)
23
    {
24
        snd_play(snd_swat);
25
        friction = 0.1;
26
        motion_set(point_direction(obj_mike_controller.x, obj_mike_controller.y, x, y) + irandom_range(-30, 30), speed + 8);
27
    }
28
    else
29
    {
30
        shake = 1;
31
alarm[2]
32
        mus_volume(global.currentsong[1], 0, 0);
33
        with (obj_mike_cat)
34
        {
35
            
scr_sparkle
scr_sparkle

function
scr_sparkle(arg0)
{ var num = arg0; dir = irandom(360); for (i = 0; i < num; i++) { var _ob = instance_create_depth(x + lengthdir_x(16, dir + ((i / num) * 360)), y + lengthdir_y(16, dir + ((i / num) * 360)), depth - 1, obj_heart_sparkle); _ob.speed = 4; _ob.direction = (i / num) * 360; } } function scr_sparkle_pos(arg0, arg1, arg2) { var num = arg0; dir = irandom(360); for (i = 0; i < num; i++) { var _ob = instance_create_depth(arg1 + lengthdir_x(16, dir + ((i / num) * 360)), arg2 + lengthdir_y(16, dir + ((i / num) * 360)), depth - 1, obj_heart_sparkle); _ob.speed = 4; _ob.direction = (i / num) * 360; } } function scr_sparkle_colour(arg0, arg1) { var num = arg0; dir = 0; for (i = 0; i < num; i++) { var _ob = instance_create_depth(x + lengthdir_x(16, dir + ((i / num) * 360)), y + lengthdir_y(16, dir + ((i / num) * 360)), depth - 5, obj_heart_sparkle); _ob.speed = 4; _ob.direction = (i / num) * 360; _ob.image_blend = arg1; } } function scr_sparkle_random(arg0) { var num = arg0; dir = irandom(360); for (i = 0; i < num; i++) { with (instance_create_depth(x + lengthdir_x(16, (i / num) * 360), y + lengthdir_y(16, (i / num) * 360), depth - 1, obj_heart_sparkle)) motion_set(other.dir, irandom_range(4, 6)); dir += irandom(30); } }
(5);
36
            instance_destroy();
37
        }
38
alarm[1]
39
        room_speed = 1;
40
        motion_set(point_direction(x, y, xstart, ystart), speed + 16);
41
        with (obj_mike_boundary)
42
            instance_destroy();
43
    }
44
    var num = 8;
45
    dir = irandom(360);
46
    for (i = 0; i < num; i++)
47
    {
48
        with (instance_create_depth(x + lengthdir_x(16, (i / num) * 360), y + lengthdir_y(16, (i / num) * 360), depth - 1, obj_heart_sparkle))
49
            motion_set(other.dir, irandom_range(4, 6));
50
        dir += ((i / num) * 360);
51
    }
52
    with (other)
53
        instance_destroy();
54
}