Updated event_bus to have shield change single; attempted to update

player's set shield but running into problems at runtime.
This commit is contained in:
Henry 2025-12-15 10:20:23 +00:00
parent d64504189a
commit 1ebba28e5d
7 changed files with 18 additions and 12 deletions

7
event_bus.gd Normal file
View file

@ -0,0 +1,7 @@
extends Node
@warning_ignore_start("unused_signal") # since otherwise Godot will throw a warning that the signal is unused in current scope
signal shield_changed(max_value: int, old_value: int, new_value: int)
@warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations

View file

@ -1,2 +0,0 @@
extends Node

View file

@ -61,6 +61,9 @@ region_rect = Rect2(0, 0, 240, 320)
[node name="Player" parent="." instance=ExtResource("2_0xm2m")] [node name="Player" parent="." instance=ExtResource("2_0xm2m")]
position = Vector2(123, 270) position = Vector2(123, 270)
max_shield = null
speed = null
cooldown = null
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = { libraries = {
@ -89,6 +92,4 @@ texture_normal = ExtResource("5_lquwl")
layout_mode = 2 layout_mode = 2
texture = ExtResource("6_7mycd") texture = ExtResource("6_7mycd")
[connection signal="died" from="Player" to="." method="_on_player_died"]
[connection signal="shield_changed" from="Player" to="CanvasLayer/UI" method="update_shield"]
[connection signal="pressed" from="CanvasLayer/CenterContainer/Start" to="." method="_on_start_pressed"] [connection signal="pressed" from="CanvasLayer/CenterContainer/Start" to="." method="_on_start_pressed"]

View file

@ -1,7 +1,6 @@
extends Area2D extends Area2D
signal died signal died
signal shield_changed(max_value: int, old_value: int, new_value: int)
signal damage_taken signal damage_taken
signal shield_damage signal shield_damage
signal shield_ui signal shield_ui
@ -31,7 +30,7 @@ func start():
func set_shield(value: int): func set_shield(value: int):
var old_value: int = shield var old_value: int = shield
shield = min(max_shield, value) shield = min(max_shield, value)
shield_changed.emit(max_shield, old_value, shield) EventBus.shield_changed.emit(max_shield, old_value, shield)
shield_damage.emit() shield_damage.emit()
if shield <= 0: if shield <= 0:
set_process(false) set_process(false)

View file

@ -16,7 +16,7 @@ config/icon="res://icon.svg"
[autoload] [autoload]
Events="*res://events.gd" EventBus="*res://event_bus.gd"
[display] [display]

9
ui.gd
View file

@ -7,19 +7,20 @@ var shader_active = false
func _ready(): func _ready():
get_node("Player.Ship").node_ready.connect("shield_ui", self, "_on_shield_ui") get_node("Player.Ship").node_ready.connect("shield_ui", self, "_on_shield_ui")
EventBus.shield_changed.connect(_on_shield_changed)
func update_score(value): func update_score(value):
score_counter.display_digits(value) score_counter.display_digits(value)
func update_shield(max_value, value, old_value): func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
shield_bar.max_value = max_value shield_bar.max_value = max_value
shield_bar.value = value shield_bar.value = new_value
print("update_shield"," ","Current ",(value), " ", "(Max ",(max_value),")"," ","Old Value:"," ",old_value) print("update_shield"," ","Current ",(new_value), " ", "(Max ",(max_value),")"," ","Old Value:"," ",old_value)
if value >= max_value: if new_value >= max_value:
print("No need to tween!") print("No need to tween!")
else: else: