small racing game im working on
Diffstat (limited to 'ui/finish.gd')
-rw-r--r--ui/finish.gd30
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/finish.gd b/ui/finish.gd
new file mode 100644
index 0000000..b34ea64
--- /dev/null
+++ b/ui/finish.gd
@@ -0,0 +1,30 @@
+extends ColorRect
+class_name FinishUI
+
+@export var diff: SplitsDifference
+@export var time_: Label
+@export var flag: Label
+@export var focus: Control
+
+signal retry
+signal next
+signal quit
+signal difference(diff: SplitsDifference.Change)
+
+func set_time(time: float, prev_time: float):
+ time_.text = GameTimer.format_precise(time)
+ if prev_time < 0 or SplitsDifference.diff(time, prev_time) == SplitsDifference.Change.EQUAL:
+ diff.hide()
+ flag.text = "󰈻"
+ flag.vertical_alignment = VERTICAL_ALIGNMENT_TOP
+ else:
+ flag.vertical_alignment = VERTICAL_ALIGNMENT_BOTTOM
+ var d := SplitsDifference.diff(time, prev_time);
+ match d:
+ SplitsDifference.Change.LOSS: flag.text = "󰮙"
+ SplitsDifference.Change.GAIN: flag.text = "󰮚"
+ diff.update(time, prev_time)
+ difference.emit(d)
+
+func _ready() -> void:
+ focus.grab_focus()