39 lines
1.1 KiB
GDScript
39 lines
1.1 KiB
GDScript
extends MarginContainer
|
|
|
|
@onready var shield_bar = $HBoxContainer/ShieldBar
|
|
@onready var score_counter = $HBoxContainer/ScoreCounter
|
|
|
|
var shader_active = false
|
|
|
|
func _ready():
|
|
get_node("Player.Ship").node_ready.connect("shield_ui", self, "_on_shield_ui")
|
|
EventBus.shield_changed.connect(_on_shield_changed)
|
|
|
|
func update_score(value):
|
|
score_counter.display_digits(value)
|
|
|
|
|
|
func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
|
|
|
|
shield_bar.max_value = max_value
|
|
shield_bar.value = new_value
|
|
|
|
print("update_shield"," ","Current ",(new_value), " ", "(Max ",(max_value),")"," ","Old Value:"," ",old_value)
|
|
|
|
if new_value >= max_value:
|
|
print("No need to tween!")
|
|
|
|
else:
|
|
print("I should be tweening!")
|
|
var tween = create_tween()
|
|
tween.tween_property(shield_bar, "value", (old_value/max_value)*100, .25).set_trans(Tween.TRANS_LINEAR)
|
|
|
|
|
|
|
|
func _on_shield_ui():
|
|
print("SHIELD FX!")
|
|
shader_active = true
|
|
shield_bar.material.set_shader_parameter("toggle", 1.0)
|
|
await get_tree().create_timer(1).timeout
|
|
shader_active = false
|
|
shield_bar.material.set_shader_parameter("toggle", 0.0)
|