tojam20-elevator/scenes/hud.gd

42 lines
1.4 KiB
GDScript

extends MarginContainer
var _displayed_floor := -1
func _ready():
$StatsColumn/FloorLabel.text = "FLOOR: 10"
$StatsColumn/SavedLabel.text = "SAVED: 0"
$StatsColumn/PeopleLabel.text = "PEOPLE: 0/2"
$StatsColumn/ScoreLabel.text = "SCORE: 0"
EventBus.floor_changed.connect(update_floor)
EventBus.saved_changed.connect(update_saved)
EventBus.people_changed.connect(update_people)
EventBus.score_changed.connect(update_score)
func update_floor(floor_num: int):
if _displayed_floor == floor_num:
return
var label = $StatsColumn/FloorLabel
var new_text = "FLOOR: " + str(floor_num)
if _displayed_floor == -1:
label.text = new_text
_displayed_floor = floor_num
return
_displayed_floor = floor_num
label.pivot_offset = Vector2(0, label.size.y)
var tween = create_tween()
tween.tween_property(label, "scale:y", 0.0, 0.15).set_trans(Tween.TRANS_CUBIC).set_ease(Tween.EASE_IN)
tween.tween_callback(func():
label.text = new_text
label.pivot_offset = Vector2.ZERO
)
tween.tween_property(label, "scale:y", 1.0, 0.15).set_trans(Tween.TRANS_CUBIC).set_ease(Tween.EASE_OUT)
func update_saved(count: int):
$StatsColumn/SavedLabel.text = "SAVED: " + str(count)
func update_people(count: int, threshold: int):
$StatsColumn/PeopleLabel.text = "PEOPLE: " + str(count) + "/" + str(threshold)
func update_score(new_score: int):
$StatsColumn/ScoreLabel.text = "SCORE: " + str(new_score)