Fixed _on_shield_changed logic to smoothly tween shield bar. Added a

function call to trigger shader to flash shield bar.
This commit is contained in:
Henry 2025-12-16 13:09:52 +00:00
parent 9f2569a73c
commit afc5c68569

24
ui.gd
View file

@ -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)