50 lines
1.9 KiB
GDScript
50 lines
1.9 KiB
GDScript
extends Node
|
|
|
|
|
|
onready var shards: Node2D = $ShardsAndBonuses/Shards
|
|
onready var score = $Score
|
|
onready var time = $Time
|
|
onready var final_score: Label = $FinalScore
|
|
onready var animation_player = $AnimationPlayer
|
|
#Score bonuses
|
|
onready var collection_bonus_score = $ShardsAndBonuses/Bonuses/CollectionBonus/CollectionBonusScore
|
|
onready var time_bonus_score = $ShardsAndBonuses/Bonuses/TimeBonus/TimeBonusScore
|
|
onready var life_bonus_score = $ShardsAndBonuses/Bonuses/LifeBonus/LifeBonusScore
|
|
onready var arrow_bonus_score = $ShardsAndBonuses/Bonuses/ArrowBonus/ArrowBonusScore
|
|
onready var perfect_bonus_score = $ShardsAndBonuses/Bonuses/PerfectBonus/PerfectBonusScore
|
|
const Text3D = preload("res://objects/hud/3d_text.tscn")
|
|
|
|
func _ready() -> void:
|
|
Fade.fade_in(0.4)
|
|
# fill in shard names
|
|
var level: LevelEntry = LevelData.levels[Game.current_level]
|
|
for i in 5:
|
|
var shard = shards.get_child(i)
|
|
shard.get_node("Title").text = level.shard_titles[i]
|
|
score.text = str("SCORE:") + "%05d" % Game.score
|
|
time.text = str("TIME: ") + Game.timeify(Game.time)
|
|
#Determine score bonuses
|
|
collection_bonus_score.text = str("+") + str(Game.collection_bonus)
|
|
time_bonus_score.text = str("+") + str(Game.time_bonus)
|
|
life_bonus_score.text = str("+") + str(Game.life_bonus)
|
|
arrow_bonus_score.text = str("+") + str(Game.arrows_bonus)
|
|
perfect_bonus_score.text = str("+") + str(Game.perfect_bonus)
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
if Input.is_action_just_released("ui_accept"):
|
|
animation_player.set_speed_scale(4)
|
|
|
|
|
|
func final_score():
|
|
animation_player.set_speed_scale(2)
|
|
var text_3d = Text3D.instance()
|
|
text_3d.anim = "final score"
|
|
yield(get_tree(), "idle_frame")
|
|
self.add_child(text_3d)
|
|
|
|
|
|
func _on_AnimationPlayer_animation_finished(anim_name):
|
|
Game.clear_collectibles()
|
|
Fade.fade_out(0.4)
|
|
yield(Fade, "fade_finished")
|
|
SceneManager.change_scene(preload("res://menus/level_select_scholar.tscn").instance())
|