104 lines
3.4 KiB
GDScript
104 lines
3.4 KiB
GDScript
extends Node2D
|
|
|
|
@onready var UpgradeTokensNode = $HBoxContainer2/Label
|
|
|
|
const credits = [
|
|
["Design", "Majenko"],
|
|
["Programming", "Majenko"],
|
|
["Music", "Jeremy Blake"],
|
|
["Sound Effects", "Majenko"]
|
|
]
|
|
|
|
var credit : int = 0
|
|
|
|
func _ready() -> void:
|
|
# dump_all("res://")
|
|
$VBoxContainer/Play/VBoxContainer/Exit.visible = not OS.has_feature("web")
|
|
UpgradeTokensNode.text = "%d" % Global.upgrade_tokens
|
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
|
EventBus.update_score.connect(_on_update_score)
|
|
EventBus.update_highscore.connect(_on_update_highscore)
|
|
_on_update_score(Global.score)
|
|
_on_update_highscore(Global.highscore)
|
|
$VBoxContainer/Play/VBoxContainer/Play.grab_focus()
|
|
Music.play_intro()
|
|
get_tree().create_timer(5).timeout.connect(_show_credits)
|
|
var tween = get_tree().create_tween()
|
|
tween.tween_property($ColorRect, "color", Color(0, 0, 0, 0), 1)
|
|
|
|
func _show_credits() -> void:
|
|
$HBoxContainer/Credits/CreditsRole.modulate = Color(0, 0, 0, 0)
|
|
$HBoxContainer/Credits/CreditsPerson.modulate = Color(0, 0, 0, 0)
|
|
$HBoxContainer/Credits/CreditsRole.text = credits[credit][0]
|
|
$HBoxContainer/Credits/CreditsPerson.text = credits[credit][1]
|
|
var tween = get_tree().create_tween()
|
|
tween.tween_property($HBoxContainer/Credits/CreditsRole, "modulate", Color(1, 1, 1, 1), 1)
|
|
tween.tween_property($HBoxContainer/Credits/CreditsPerson, "modulate", Color(1, 1, 1, 1), 1)
|
|
tween.finished.connect(_show_credits_done)
|
|
|
|
func _show_credits_done() -> void:
|
|
credit += 1
|
|
if credit >= credits.size():
|
|
credit = 0
|
|
get_tree().create_timer(5).timeout.connect(_hide_credits)
|
|
|
|
func _hide_credits() -> void:
|
|
var tween = get_tree().create_tween().set_parallel(true)
|
|
tween.tween_property($HBoxContainer/Credits/CreditsRole, "modulate", Color(0, 0, 0, 0), 1)
|
|
tween.tween_property($HBoxContainer/Credits/CreditsPerson, "modulate", Color(0, 0, 0, 0), 1)
|
|
tween.finished.connect(_hide_credits_done)
|
|
|
|
func _hide_credits_done() -> void:
|
|
get_tree().create_timer(1).timeout.connect(_show_credits)
|
|
|
|
|
|
|
|
|
|
func _on_update_score(score : int) -> void:
|
|
$HBoxContainer/Score/ScoreBox.text = "%08d" % score
|
|
|
|
func _on_update_highscore(score : int) -> void:
|
|
$HBoxContainer/HighScore/HighScoreBox.text = "%08d" % score
|
|
|
|
|
|
func _on_settings_pressed() -> void:
|
|
get_tree().change_scene_to_file("res://Settings.tscn")
|
|
|
|
func _on_editor_pressed() -> void:
|
|
get_tree().change_scene_to_file("res://LevelEditor.tscn")
|
|
|
|
|
|
func _on_exit_pressed() -> void:
|
|
get_tree().quit()
|
|
|
|
func dump_all(dir : String, indent : String = "") -> void:
|
|
for file in DirAccess.get_directories_at(dir):
|
|
print("%s%s" % [indent, file])
|
|
dump_all("%s/%s" % [dir, file], "%s " % indent)
|
|
|
|
for file in DirAccess.get_files_at(dir):
|
|
print("%s%s" % [indent, file])
|
|
|
|
func _on_play_level_pressed() -> void:
|
|
$LoadPanel.show_panel(true)
|
|
|
|
func _on_load_panel_load_level(level_name: String) -> void:
|
|
Music.fade_down(1)
|
|
Global.start_level = level_name
|
|
var tween = get_tree().create_tween()
|
|
tween.tween_property($ColorRect, "color", Color(0, 0, 0, 1), 1)
|
|
tween.finished.connect(_start_game)
|
|
|
|
func _start_game() -> void:
|
|
get_tree().change_scene_to_file("res://Dunkanoid.tscn")
|
|
|
|
func _on_button_pressed() -> void:
|
|
Music.fade_down(1)
|
|
Global.start_level = "DUNKANOID"
|
|
var tween = get_tree().create_tween()
|
|
tween.tween_property($ColorRect, "color", Color(0, 0, 0, 1), 1)
|
|
tween.finished.connect(_start_game)
|
|
|
|
func _on_upgrades_pressed() -> void:
|
|
get_tree().change_scene_to_file("res://Upgrades.tscn")
|