Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_room_castle_tv_rhythm_Create_0

(view raw script w/o annotations or w/e)
1
con = -1;
2
customcon = 0;
3
selected_song_id = 0;
4
scroller = -4;
5
door_list = [];
6
song_ids = [2, 4, 3];
7
song_list = [];
8
song_count = 5;
9
for (var i = 0; i < song_count; i++)
10
    song_list[i] = scr_rhythmgame_song_select_id(i);
11
var poster_readable = instance_create(920, 160, obj_readable_room1);
12
with (poster_readable)
13
{
14
    extflag = "poster";
15
    image_xscale = 4;
16
    image_yscale = 4;
17
}
18
var counter_marker = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(1080, 200, spr_dw_ranking_counter);
19
with (counter_marker)
20
{
21
    image_xscale = 3;
22
    
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
23
}
24
var pippins_marker = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(counter_marker.x + 20, counter_marker.y - 60, spr_npc_pippins_jump);
25
pippins_marker.depth = counter_marker.depth + 10;
26
pippins_marker.image_speed = 0.2;
27
var pippins_readable = instance_create(pippins_marker.x, pippins_marker.y + 60, obj_readable_room1);
28
with (pippins_readable)
29
{
30
    image_xscale = 4;
31
    extflag = "pippins";
32
}
33
shadow_timer = 0;
34
shadow_anim = 0;
35
shadow_npc = instance_create(counter_marker.x + 110, counter_marker.y - 80, obj_npc_room);
36
shadow_npc.depth = counter_marker.depth + 10;
37
with (shadow_npc)
38
{
39
    sprite_index = spr_shadowman_idle_a;
40
    
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
41
    extflag = "shadowguy";
42
    normalanim = 4;
43
}
44
var plugboy_npc = instance_create(1325, 220, obj_npc_room);
45
with (plugboy_npc)
46
{
47
    sprite_index = spr_npc_plugboy;
48
    
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
49
    extflag = "plugboy";
50
}
51
52
init_scores = function()
53
{
54
    for (var i = 0; i < song_count; i++)
55
    {
56
        highscore[i] = 
scr_rhythmgame_score_load
scr_rhythmgame_score_load

function
scr_rhythmgame_score_load(arg0, arg1 = false, arg2 = 0)
{ if (arg2 == 0) arg2 =
scr_rhythmgame_song_flag(arg0, arg1);
return global.flag[arg2]; }
(song_list[i]);
57
        highscore_hard[i] = 
scr_rhythmgame_score_load
scr_rhythmgame_score_load

function
scr_rhythmgame_score_load(arg0, arg1 = false, arg2 = 0)
{ if (arg2 == 0) arg2 =
scr_rhythmgame_song_flag(arg0, arg1);
return global.flag[arg2]; }
(song_list[i], true);
58
    }
59
    var _ranks = ["Z", "C", "B", "A", "S", "T"];
60
    for (var i = 0; i < song_count; i++)
61
    {
62
        if (highscore[i] > 0)
63
            highscore_rank[i] = _ranks[scr_rhythmgame_get_rank(song_list[i], highscore[i])];
64
        else
65
            highscore_rank[i] = "-";
66
        if (highscore_hard[i] > 0)
67
            highscore_rank_hard[i] = _ranks[scr_rhythmgame_get_rank(song_list[i], highscore_hard[i])];
68
        else
69
            highscore_rank_hard[i] = "-";
70
    }
71
};
72
73
create_door = function(arg0, arg1)
74
{
75
    var _door = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(180 + (arg0 * 260), 130, spr_dw_ranking_doors_narrow);
76
    with (_door)
77
        
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
78
    var door_readable = instance_create(_door.x + 20, _door.y + 80, obj_readable_room1);
79
    door_readable.extflag = "song_" + string(arg1);
80
    with (door_readable)
81
        image_xscale = 5;
82
    var door_data = [];
83
    door_data[0] = _door;
84
    door_data[1] = arg1;
85
    door_list[array_length(door_list)] = door_data;
86
    return _door;
87
};
88
89
create_symbol = function(arg0, arg1, arg2)
90
{
91
    var symbol = instance_create(arg0.x + 44, arg0.y - 40, obj_dw_rhythm_symbol);
92
    symbol.init_symbol(arg1);
93
    symbol.init_ranks(arg2);
94
    return symbol;
95
};
96
97
init_doors = function()
98
{
99
    var track_names = scr_rhythmgame_songlist();
100
    scroller = instance_create(0, 0, obj_dw_rhythm_scroller);
101
    for (var i = 0; i < array_length(song_ids); i++)
102
    {
103
        scr_rhythmgame_song_select(song_ids[i]);
104
        var _file = local_preview;
105
        var _track_id = song_ids[i];
106
        var door = create_door(i, song_ids[i]);
107
        var rank_data = [highscore_rank[_track_id], highscore_rank_hard[_track_id]];
108
        var symbol = create_symbol(door, song_ids[i], rank_data);
109
        var _speakers = instance_create(0, 0, obj_dw_rhythm_speakers);
110
        _speakers.init(door);
111
        _speakers.init_song(_file);
112
        _speakers.init_symbol(symbol);
113
        _speakers.x = door.x;
114
        _speakers.bpm = bpm;
115
        _speakers.song_id = i;
116
        if (i == 10)
117
            beat_start = ((60 / bpm) * 30) / 2;
118
    }
119
};
120
121
select_door = function(arg0)
122
{
123
    var _id_raw = string_digits(arg0);
124
    var _id = real(_id_raw);
125
    selected_song_id = _id;
126
};
127
128
show_scroller = function()
129
{
130
    var track_names = scr_rhythmgame_songlist();
131
    scr_rhythmgame_song_select(selected_song_id);
132
    var _song_id = song_id;
133
    score_id = song_list[selected_song_id];
134
    var song_data = [];
135
    song_data[0] = highscore[selected_song_id];
136
    song_data[1] = highscore_rank[selected_song_id];
137
    song_data[2] = highscore_rank_hard[selected_song_id];
138
    song_data[3] = highscore_hard[selected_song_id];
139
    song_data[4] = track_names[selected_song_id];
140
    song_data[5] = _song_id;
141
    scroller.init_song(song_data);
142
    scroller.show_banner();
143
};
144
145
enter_door = function()
146
{
147
    with (obj_dw_rhythm_speakers)
148
        fade_out();
149
    snd_play(snd_locker);
150
    for (var i = 0; i < array_length(door_list); i++)
151
    {
152
        if (door_list[i][1] != selected_song_id)
153
            continue;
154
        door_list[i][0].image_index = 1;
155
        break;
156
    }
157
    alarm[1]
 = 30;
gml_Object_obj_room_castle_tv_rhythm_Alarm_1.gml

instance_create(0, 0, obj_fadeout); alarm[2]
 = 35;
158
};
159
160
play_normal = function()
161
{
162
    con = 10;
163
    scr_rhythmgame_song_select(selected_song_id);
164
    global.band_song = song_id;
165
    global.band_difficulty = 0;
166
};
167
168
play_hard = function()
169
{
170
    con = 10;
171
    scr_rhythmgame_song_select(selected_song_id);
172
    global.band_song = song_id;
173
    global.band_difficulty = 1;
174
};
175
176
cancel = function()
177
{
178
    scroller.hide_banner();
179
};
180
181
clean_up = function()
182
{
183
    with (obj_dw_rhythm_speakers)
184
        clean_up();
185
};
186
187
init_scores();
188
init_doors();