Short songs (#30): a quiz settings switch and a Seconds per song row (30 by default, 10-120 in steps of 5), saved with the quiz settings. Only part of each quiz song plays, from a random point 10-60% into it, picked once per song so restart and repeat play the same part. The progress bar, time and seeking stay within the part, a hidden beginning counts inside it, and its end counts as the song ending (repeat, stop or go to the next song as set). Random songs (#51): the low-played switch in Settings is now a Normal / Low played / Classic choice, stored as Settings.random_mode and not saved. fetch_random_song(mode) picks /music/rand, /music/rand/low or /music/rand/classic. Closes #30 Closes #51 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0fc3be79e1
commit
a735c515bf
20 files changed
+1325
-327
No files matched your search
+11
-2
@@ -6,6 +6,10 @@ extends Node
|
||||
## Emitted when another theme is used, for code that reads theme colours itself.
|
||||
signal theme_changed
|
||||
|
||||
## How the server picks a random song: any soundtrack then any of its songs, preferring
|
||||
## soundtracks played less than average, or every song with the same chance.
|
||||
enum RandomMode { NORMAL, LOW_PLAYED, CLASSIC }
|
||||
|
||||
const MAX_NUMBER_OF_PLAYERS: int = 7
|
||||
## How many letters a search needs before it also finds names with the letters in order
|
||||
## but apart, e.g. "lttp" for "A Link to the Past". Shorter searches only find names
|
||||
@@ -26,7 +30,7 @@ const SAVED_SETTINGS: Dictionary[String, Array] = {
|
||||
"quiz": [
|
||||
&"auto_repeat_song", &"stop_after_current", &"hide_next_track", &"hide_beginning",
|
||||
&"hide_for_seconds", &"hide_length", &"hide_ticks", &"winning_score",
|
||||
&"inspiration_list_speed",
|
||||
&"inspiration_list_speed", &"short_songs", &"short_song_seconds",
|
||||
],
|
||||
"window": [&"fullscreen"],
|
||||
"app": [&"last_seen_version", &"theme_id", &"reduce_animations"],
|
||||
@@ -77,7 +81,8 @@ var stop_after_current: bool = true
|
||||
var auto_repeat_song: bool = true
|
||||
var hide_next_track: bool = true
|
||||
var add_to_stats: bool = true
|
||||
var use_low_played_mode: bool = false
|
||||
## How the server picks random songs. Not saved, like statistics counting.
|
||||
var random_mode: RandomMode = RandomMode.NORMAL
|
||||
var winning_score: int = 20
|
||||
var fullscreen: bool = false
|
||||
var inspiration_list_speed: int = 1
|
||||
@@ -85,6 +90,10 @@ var hide_for_seconds: float = 5.0
|
||||
var hide_beginning: bool = false
|
||||
var hide_length: bool = false
|
||||
var hide_ticks: bool = false
|
||||
## Plays only [member short_song_seconds] of each song, from a random point, so more
|
||||
## songs fit in a game.
|
||||
var short_songs: bool = false
|
||||
var short_song_seconds: int = 30
|
||||
var player_array: Array[PlayerObject]
|
||||
var edit_players: bool = false
|
||||
var currently_syncing: bool = false
|
||||
|
||||
@@ -17,6 +17,9 @@ var is_playing: bool = false
|
||||
var song_path: String = ""
|
||||
## The song itself, only when it could not be saved to a file.
|
||||
var song: AudioStream
|
||||
## Where the part played with Short songs starts, in seconds, or -1 before it is picked.
|
||||
## Picked once, so restarting and repeating play the same part.
|
||||
var short_start: float = -1.0
|
||||
|
||||
|
||||
func get_soundtrack_title() -> String:
|
||||
|
||||
Reference in new issue
Block a user