2020-09-14 15:21:59 +00:00
|
|
|
extends CanvasLayer
|
|
|
|
class_name HUD
|
|
|
|
|
|
|
|
export var coins_amount:int = 0
|
2020-09-27 21:29:46 +00:00
|
|
|
export var PauseMenu: PackedScene;
|
2020-09-14 15:21:59 +00:00
|
|
|
onready var Lable = get_node("CoinsContainer/Label")
|
|
|
|
|
2020-09-27 21:29:46 +00:00
|
|
|
var _paused = false;
|
|
|
|
var _pause_ref;
|
2020-09-29 01:36:57 +00:00
|
|
|
var _data_ref = null;
|
|
|
|
func _ready() -> void:
|
|
|
|
_data_ref = GameState.get_run_data()
|
2020-10-20 13:51:17 +00:00
|
|
|
var time_remaining = (GameState.GAME_TIMEOUT_MIN * 60) - _data_ref.time
|
|
|
|
$UI/TimeLabel.text = Utils.parse_seconds_to_display_str(time_remaining)
|
2020-09-27 21:29:46 +00:00
|
|
|
|
|
|
|
func _physics_process(delta: float) -> void:
|
2020-09-29 01:36:57 +00:00
|
|
|
_handle_pause()
|
|
|
|
var fresh_data = GameState.get_run_data()
|
|
|
|
for key in fresh_data:
|
|
|
|
if not fresh_data[key] == _data_ref[key]:
|
|
|
|
match(str(key)):
|
|
|
|
"coins":
|
|
|
|
$UI/CoinLabel.text = str(fresh_data.coins)
|
2020-10-04 02:50:07 +00:00
|
|
|
_play_update_label_animation($UI/CoinLabel/AnimationPlayer)
|
2020-11-01 03:16:29 +00:00
|
|
|
"orbs":
|
|
|
|
$UI/OrbsLable.text = str(fresh_data.coins)
|
|
|
|
_play_update_label_animation($UI/OrbsLable/AnimationPlayer)
|
2020-09-29 01:36:57 +00:00
|
|
|
"deaths":
|
|
|
|
$UI/DeathsLabel.text = str(fresh_data.deaths)
|
2020-10-04 02:50:07 +00:00
|
|
|
_play_update_label_animation($UI/DeathsLabel/AnimationPlayer)
|
|
|
|
"time":
|
|
|
|
var time_remaining = (GameState.GAME_TIMEOUT_MIN * 60) - fresh_data.time
|
|
|
|
$UI/TimeLabel.text = Utils.parse_seconds_to_display_str(time_remaining)
|
2020-09-29 01:36:57 +00:00
|
|
|
|
|
|
|
pass
|
|
|
|
_data_ref = fresh_data
|
|
|
|
|
2020-10-04 02:50:07 +00:00
|
|
|
func _play_update_label_animation(player:AnimationPlayer):
|
|
|
|
player.seek(0)
|
|
|
|
player.play("updated")
|
|
|
|
|
2020-09-29 01:36:57 +00:00
|
|
|
func _handle_pause():
|
2020-09-27 21:29:46 +00:00
|
|
|
if Input.is_action_just_pressed("pause"):
|
|
|
|
if _paused:
|
|
|
|
_pause_ref.dismiss()
|
|
|
|
else:
|
|
|
|
_pause_ref = PauseMenu.instance()
|
|
|
|
_pause_ref.connect("dismissed", self,"_on_pause_menu_dismissed")
|
|
|
|
add_child(_pause_ref)
|
2020-09-28 02:37:03 +00:00
|
|
|
get_tree().paused = true
|
2020-09-27 21:29:46 +00:00
|
|
|
_paused = true
|
2020-09-29 01:36:57 +00:00
|
|
|
|
2020-09-27 21:29:46 +00:00
|
|
|
func _on_pause_menu_dismissed():
|
|
|
|
_paused = false
|
2020-09-28 02:37:03 +00:00
|
|
|
get_tree().paused = false
|