From b5d97c0ffb062210cd6a1ea725c978008e45f0a8 Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 27 Dec 2025 16:25:06 +0000 Subject: [PATCH] Fixed shield issue by removing old experiments and ensuring the right values were being used! --- main.gd | 6 +++--- player.gd | 44 ++++++++++++++++++++++++++++---------------- ui.gd | 2 +- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/main.gd b/main.gd index 92826d5..c91f8de 100644 --- a/main.gd +++ b/main.gd @@ -75,6 +75,9 @@ func new_game(): Global.score = 0 $CanvasLayer/UI.update_score(Global.score) + # Tell the shield to recharge. + # EventBus.initialize_shieldbar.emit() + # await EventBus.initialize_shieldbar # instantiate the Player # await get_tree().create_timer(1).timeout @@ -82,9 +85,6 @@ func new_game(): add_child(instance) $Player.start() - # Tell the shield to recharge. - EventBus.initialize_shieldbar.emit() - # Tell the enemies to spawn! #await get_tree().create_timer(.5).timeout spawn_enemies() diff --git a/player.gd b/player.gd index f7c688f..0f483bd 100644 --- a/player.gd +++ b/player.gd @@ -9,11 +9,18 @@ signal damage_taken @export var cooldown: float = 0.25 @export var bullet_scene : PackedScene @export var max_shield: int = 10 -var shield: int = 1: +var shield: int = 0: set = set_shield + var can_shoot = false -var shader_active = false +var shader_active: bool = false: + set(value): + if value == true: + print_debug("Shader active!", get_stack()) + else: + print_debug("Shader inactive!", get_stack()) + var clamp_shield = clamp(shield, 0, max_shield) @onready var screensize = get_viewport_rect().size @@ -35,10 +42,11 @@ func start(): position = Vector2(screensize.x / 2, screensize.y) var tween = create_tween() tween.tween_property(self, "position:y", 48 * -1, .75).as_relative() + await tween.finished $GunCooldown.wait_time = cooldown set_shield(max_shield) print(shield) - await get_tree().create_timer(2).timeout + await get_tree().create_timer(1).timeout set_process(true) $Ship/Boosters.show() can_shoot = true @@ -74,11 +82,11 @@ func shoot(): func set_shield(value: int): var old_value = shield - shield = clamp(value, 0, max_shield) + # shield = clamp(value, 0, max_shield) + shield = min(max_shield, value) EventBus.shield_changed.emit(max_shield, old_value, shield) print("Shield set to:", shield) if shield <= 0: - print("Shader deactivated!") set_process(false) $Ship.hide() shader_active = false @@ -93,27 +101,31 @@ func _on_gun_cooldown_timeout() -> void: func _on_area_entered(area): if area.is_in_group("enemies"): - area.explode() shield -= int(max_shield / 2) - damage_taken.emit() + # damage_taken.emit() + area.explode() if area.is_in_group("enemy_bullets") and self.monitoring == true: damage_taken.emit() -func _on_damage_taken() -> void: - shader_active = true - print("Shader active!") - $Ship.material.set_shader_parameter("toggle", 1.0) - await get_tree().create_timer(1).timeout - $Ship.material.set_shader_parameter("toggle", 0.0) - shader_active = false - print("Shader deactivated!") +func _on_damage_taken(): + + if shield == 0: + shader_active = false + return + + else: + shader_active = true + $Ship.material.set_shader_parameter("toggle", 1.0) + await get_tree().create_timer(1).timeout + $Ship.material.set_shader_parameter("toggle", 0.0) + shader_active = false func _on_player_victory() -> void: print("Victory!") set_process(false) $Ship.frame = 1 - await get_tree().create_timer(2).timeout + await get_tree().create_timer(1).timeout var tween = create_tween() tween.tween_property(self, "position:y", 60 * -1, .25).set_ease(tween.EASE_IN) await tween.finished diff --git a/ui.gd b/ui.gd index 738a21e..2b67631 100644 --- a/ui.gd +++ b/ui.gd @@ -16,7 +16,7 @@ func update_score(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 + shield_bar.value = old_value var tween = create_tween() print_debug("Tweening shield bar") tween.tween_property(shield_bar, "value", new_value, .25).set_trans(Tween.TRANS_LINEAR)