Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_homealone_basement_boombox_Create_0

(view raw script w/o annotations or w/e)
1
event_inherited();
2
can_interact = true;
3
boombox_active = false;
4
music_track[0] = -4;
5
music_track[1] = -4;
6
basement_parent = instance_find(obj_noellehouse_basement, 0);
7
8
play_music = function()
9
{
10
    if (snd_is_playing(music_track[1]))
11
        exit;
12
    music_track[0] = snd_init("noelle_normal.ogg");
13
    music_track[1] = mus_loop_ext(music_track[0], 0.7, 1);
14
};
15
16
stop_music = function()
17
{
18
    if (!snd_is_playing(music_track[1]))
19
        exit;
20
    snd_free(music_track[0]);
21
};
22
23
show_note = function()
24
{
25
    if (!boombox_active)
26
        exit;
27
    var start_x = (x - 8) + irandom(10);
28
    var start_y = y - 16;
29
    var note_marker = 
scr_marker
scr_marker

function
scr_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; } return thismarker; }
(start_x, start_y, spr_musical_notes_small);
30
    note_marker.depth = depth - 10;
31
    note_marker.image_alpha = 0;
32
    var note_speed = 1;
33
    scr_lerp_var_instance(note_marker, "image_alpha", 0, 1, 10 * note_speed);
34
    scr_lerp_var_instance(note_marker, "x", start_x, start_x + 20 + irandom(10), 30 * note_speed);
35
    scr_lerp_var_instance(note_marker, "y", start_y, start_y - (30 + irandom(10)), 30 * note_speed);
36
    with (note_marker)
37
        
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; }
(scr_lerp_var_instance, 11 * note_speed, id, "image_alpha", 1, 0, 10 * note_speed);
38
    
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(note_marker, 61 * note_speed);
39
    alarm[1]
 = 45;
gml_Object_obj_homealone_basement_boombox_Alarm_1.gml

show_note();
40
};
41
42
disable = function()
43
{
44
    can_interact = false;
45
    boombox_active = false;
46
    stop_music();
47
};
48
49
trigger = function()
50
{
51
    if (boombox_active)
52
        exit;
53
    boombox_active = true;
54
    with (basement_parent)
55
        make_noise();
56
    snd_play(snd_noise);
57
    
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_yscale", 0.5, 1, 12, -2, "out");
58
    play_music();
59
    alarm[1]
 = 12;
gml_Object_obj_homealone_basement_boombox_Alarm_1.gml

show_note();
60
alarm[10]
61
};