extends RefCounted class_name SongObject var song_number: int var song_title: String var soundtrack_title: String ## Ids of the players who got a point for this song. var players_given_point: Array[String] = [] var is_answered: bool = false var has_played: bool = false var is_playing: bool = false ## The song's file in [method Playlist.songs_folder]. Read the song with ## [method Playlist.get_song]. var song_path: String = "" ## The song itself, only when it could not be saved to a file. var song: AudioStream func get_soundtrack_title() -> String: if is_answered: return soundtrack_title else: return "????????" func get_song_title() -> String: if is_answered: return song_title else: return "??????" func get_song_info() -> String: if Settings.is_debug: var format_string: String = "%d. %s - %s | played: %s | answered: %s" return format_string % [(song_number + 1), soundtrack_title, song_title, has_played, is_answered] elif is_answered: var format_string: String = "%d. %s - %s" return format_string % [(song_number + 1), soundtrack_title, song_title] else: return "??? - ???" func add_point(player_id: String) -> void: GameLog.debug("add_point") if !players_given_point.has(player_id): players_given_point.append(player_id) func remove_point(player_id: String) -> void: GameLog.debug("remove_point") players_given_point.erase(player_id) func _to_string() -> String: var format_string: String = "song_number: %d | soundtrack_title: %s | song_title: %s" \ + " | is_answered: %s | has_played: %s | is_playing: %s" return format_string % [song_number, soundtrack_title, song_title, is_answered, has_played, is_playing]