revo-jailbreak/menus/results.gd

68 lines
2.6 KiB
GDScript

extends Node
const Text3D = preload("res://objects/hud/3d_text.tscn")
const SubmitScore = preload("res://menus/submit_score.tscn")
const LevelSelect := preload("res://menus/level_select_scholar.tscn")
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
var text_3d = null
func _ready() -> void:
#preload final score
text_3d = Text3D.instance()
text_3d.anim = "final score"
yield(get_tree(), "idle_frame")
self.add_child(text_3d)
text_3d.animation_player.set_speed_scale(0)
Fade.fade_in(Options.transition_speed_secs)
# 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.format_time(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)
text_3d.animation_player.set_speed_scale(1)
func _on_AnimationPlayer_animation_finished(anim_name):
if Game.marathon_mode:
Game.current_level += 1
if Game.current_level > LevelData.marathon_end:
Fade.fade_out(Options.transition_speed_secs)
yield(Fade, "fade_finished")
SceneManager.change_scene(load("res://menus/marathon_results.tscn").instance())
else:
Game.change_map(LevelData.levels[Game.current_level].scene)
return
Fade.fade_out(Options.transition_speed_secs)
yield(Fade, "fade_finished")
if Debug.is_cheating == false:
SceneManager.change_scene(SubmitScore.instance())
else:
SceneManager.change_scene(LevelSelect.instance())