Shmup-01b/ui.gd
Henry 1ebba28e5d Updated event_bus to have shield change single; attempted to update
player's set shield but running into problems at runtime.
2025-12-15 10:20:23 +00:00

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)