Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_mike_combo_Collision_obj_hand_collision

(view raw script w/o annotations or w/e)
1
if (cooldown <= 0 && action > 2 && action < 6)
2
{
3
    fade = 1;
4
    cooldown = 30;
5
alarm[0]
6
    hp -= 1;
7
    with (obj_mike_bigcat)
8
        happiness_speed = 
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_speed, 0.5, 0.1);
9
    if (hp < (hp_max / 2))
10
    {
11
        spin_timer = 30;
12
        spin_speed = 4;
13
    }
14
    attack_timer -= 1;
15
    if (hp > 0)
16
    {
17
        snd_play(snd_explosion_mmx);
18
        
scr_shakescreen
scr_shakescreen

function
scr_shakescreen(arg0 = 4, arg1 = 4)
{ var shaker = instance_create(x, y, obj_shake); if (i_ex(shaker)) { shaker.shakex = arg0; shaker.shakey = arg1; } }
();
19
        var num = 8;
20
        dir = irandom(360);
21
        for (i = 0; i < num; i++)
22
        {
23
            with (instance_create_depth(x + lengthdir_x(16, (i / num) * 360), y + lengthdir_y(16, (i / num) * 360), depth - 1, obj_heart_sparkle))
24
                motion_set(other.dir, irandom_range(4, 6));
25
            dir += ((i / num) * 360);
26
        }
27
    }
28
    else
29
    {
30
        phase = 2;
31
        vspeed = 0;
32
        timer = 0;
33
        action = 0;
34
        shake = 1;
35
alarm[2]
36
        with (obj_mike_bigcat)
37
        {
38
            action = 2;
39
            happiness = 100;
40
        }
41
        with (obj_mike_hairball)
42
        {
43
            
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);
44
            instance_destroy();
45
        }
46
        mus_volume(global.batmusic[1], 0, 0);
47
        active = false;
48
alarm[2]
49
        motion_set(point_direction(x, y, xstart, ystart), 16);
50
    }
51
}