conductor/scripts/level.gd

78 lines
1.7 KiB
GDScript3
Raw Normal View History

2026-03-15 03:57:31 +00:00
#@tool
#@icon(icon_path: String)
class_name Level
extends Node2D
## Documentation comments
#signal
#enum
#const
2026-03-16 04:25:37 +00:00
const EINE_KLEINE_BLANK = preload("uid://diaivgv13xa8k")
const OUTRO = preload("uid://c7eypje2fjbyx")
2026-03-15 03:57:31 +00:00
@export var level_number: int = 0
2026-03-16 04:25:37 +00:00
@export var instruction_strings: Array[String]
2026-03-15 03:57:31 +00:00
2026-03-16 04:25:37 +00:00
#var musicians: Array[Musician]
var next_instruction: String
@onready var ok_button: Button = %OKButton
@onready var instructions: Label = %Instructions
@onready var tilemaps: Tilemaps = $Tilemaps
## Musicians
2026-03-15 03:57:31 +00:00
@onready var conductor: Musician = %Conductor
@onready var bassist: Musician = %Bassist
2026-03-16 04:25:37 +00:00
@onready var cellist: Musician = %Cellist
@onready var violinist: Musician = %Violinist
2026-03-15 03:57:31 +00:00
## OVERRIDES
func _ready() -> void:
2026-03-16 04:25:37 +00:00
_connect_signals()
2026-03-15 03:57:31 +00:00
tilemaps.canvas_modulate.visible = true
2026-03-16 04:25:37 +00:00
#if instruction_strings:
#next_instruction = instruction_strings.pop_front()
#SceneManager.load_level(level_number)
if level_number < 3:
violinist.queue_free()
if level_number < 2:
cellist.queue_free()
if level_number < 1:
bassist.queue_free()
else:
conductor.audio.stream = EINE_KLEINE_BLANK
conductor.input_prompt.visible = false
#musicians = [
#conductor,
#bassist,
#cellist,
#violinist
#]
2026-03-15 03:57:31 +00:00
#func _process(_delta: float) -> void:
#pass
#
#func _physics_process(_delta: float) -> void:
#pass
## CORE
2026-03-16 04:25:37 +00:00
func ui_continue() -> void:
if instruction_strings.size() > 0:
instructions.text = instruction_strings.pop_front()
else:
level_number += 1
if level_number <= 3:
SceneManager.load_level(level_number)
else:
get_tree().change_scene_to_packed(OUTRO)
2026-03-15 03:57:31 +00:00
## PRIVATE/HELPER
2026-03-16 04:25:37 +00:00
func _connect_signals() -> void:
ok_button.connect("pressed", on_ok_button_pressed)
2026-03-15 03:57:31 +00:00
## RECEIVERS
2026-03-16 04:25:37 +00:00
func on_ok_button_pressed() -> void:
ui_continue()
2026-03-15 03:57:31 +00:00
## SETTERS/GETTERS