66 lines
2.0 KiB
GDScript
66 lines
2.0 KiB
GDScript
class_name UI extends Control
|
|
|
|
static var instance: UI
|
|
|
|
@onready var announcement: RichTextLabel = $PresentAnnouncement
|
|
@onready var timerText: RichTextLabel = $TimerText
|
|
@onready var timer: Timer = $Timer
|
|
@onready var compassArrow: TextureRect = $Compass/TextureRect2
|
|
@onready var compassText: RichTextLabel = $Compass/RichTextLabel
|
|
@onready var streak: Control = $Streak
|
|
@onready var streakCount: RichTextLabel = $Streak/Count
|
|
|
|
var tween: Tween
|
|
|
|
func _enter_tree():
|
|
if (instance != null && is_instance_valid(instance)): queue_free()
|
|
else: instance = self
|
|
|
|
func setStreak(length: int):
|
|
if (length < 2):
|
|
streak.hide()
|
|
if (length >= 2):
|
|
streakCount.text = str(length)
|
|
streak.show()
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
announcement.hide()
|
|
announcement.scale = Vector2(0.01, 0.01)
|
|
|
|
func _process(delta: float) -> void:
|
|
timerText.text = "[right]%s:%s[/right]" % [str(int(timer.time_left / 60)), str(int(timer.time_left) % 60).pad_zeros(2)]
|
|
var distance: int = int(Sleigh.instance.position.distance_to(City.instance.delivery.position) / 10)
|
|
compassText.text = "[center]Next Delivery In\n%s Belly Bounces[/center]" % str(distance)
|
|
if (City.instance.delivery.position.x < 0):
|
|
compassArrow.flip_h = false
|
|
else:
|
|
compassArrow.flip_h = true
|
|
|
|
func showTitle(text: String) -> void:
|
|
announcement.text = "[center]%s[/center]" % text
|
|
announcement.show()
|
|
if (tween): tween.kill()
|
|
tween = create_tween()
|
|
tween.tween_property(announcement, "scale", Vector2(1, 1), 0.2)
|
|
tween.tween_interval(2)
|
|
tween.tween_property(announcement, "scale", Vector2(0.01, 0.01), 0.2)
|
|
await tween.finished
|
|
announcement.hide()
|
|
|
|
func hideMost() -> void:
|
|
$Speedometer.hide()
|
|
$Compass.hide()
|
|
$Streak.hide()
|
|
|
|
func showMost() -> void:
|
|
$Speedometer.show()
|
|
$Compass.show()
|
|
if (Sleigh.streak > 1):
|
|
$Streak.show()
|
|
|
|
func _on_timer_timeout() -> void:
|
|
$GameFinish/RichTextLabel2.text = "[center]Your Score: %s[/center]" % str(Sleigh.score)
|
|
$GameFinish.show()
|
|
hideMost()
|