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)