From afc5c68569554398c79c84dd0e16bb094f5203bd Mon Sep 17 00:00:00 2001 From: Henry Date: Tue, 16 Dec 2025 13:09:52 +0000 Subject: [PATCH] Fixed _on_shield_changed logic to smoothly tween shield bar. Added a function call to trigger shader to flash shield bar. --- ui.gd | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/ui.gd b/ui.gd index 70f1282..0b68d23 100644 --- a/ui.gd +++ b/ui.gd @@ -3,7 +3,7 @@ extends MarginContainer @onready var shield_bar = $HBoxContainer/ShieldBar @onready var score_counter = $HBoxContainer/ScoreCounter -# var shader_active = false +var shader_active = false func _ready(): # get_node("Player.Ship").node_ready.connect("shield_ui", self, "_on_shield_ui") @@ -18,22 +18,26 @@ 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) + 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 shield_depletion = int(old_value - new_value) + print("Shield Depletion:", old_value, "-", new_value, " = ", shield_depletion) var tween = create_tween() - tween.tween_property(shield_bar, "value", (old_value/max_value)*100, .25).set_trans(Tween.TRANS_LINEAR) + tween.tween_property(shield_bar, "value", new_value - shield_depletion, .20).set_trans(Tween.TRANS_LINEAR) + _on_shield_ui() -# 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) + +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)