added keep shield ui onscreen option

This commit is contained in:
2026-02-10 19:56:01 +11:00
parent 1f91e0aef7
commit bb7e563e77
7 changed files with 77 additions and 9 deletions

View File

@@ -12,6 +12,7 @@ const SAVE_PATH: String = "user://preferences.tres"
@export var display_self_damage_indicators: bool = true
@export var display_party_damage_indicators: bool = true
@export var display_status_effect_damage_indicators: bool = true
@export var always_show_shield_ui: bool = false
func save_profile_to_disk() -> void:

View File

@@ -1,10 +1,36 @@
class_name EnemyGoal
extends Node3D
signal goal_cleared()
signal goal_occupied()
@export var audio_player: AudioStreamPlayer3D
var enemies_inside: int
func _on_area_3d_body_entered(body: Node3D) -> void:
if body is EnemyController:
body.goal_entered()
audio_player.play()
func enemy_entered_shield_range(body: Node3D) -> void:
if body is EnemyController:
if enemies_inside == 0:
goal_occupied.emit()
enemies_inside += 1
body.died.connect(enemy_died)
body.reached_goal.connect(enemy_reached_goal)
func enemy_died(enemy: Enemy) -> void:
enemies_inside -= 1
if enemies_inside == 0:
goal_cleared.emit()
func enemy_reached_goal(enemy: Enemy, penalty: int) -> void:
enemies_inside -= 1
if enemies_inside == 0:
goal_cleared.emit()

View File

@@ -140,6 +140,8 @@ func spawn_players() -> void:
var player: Hero = player_scene.instantiate() as Hero
player.placed_tower.connect(connect_tower_to_music)
player.name = str(peer_id)
level.enemy_goals[0].goal_cleared.connect(player.hud.shield_ui.fade_ui)
level.enemy_goals[0].goal_occupied.connect(player.hud.shield_ui.show_ui)
player.game_manager = self
player.edit_tool.level = level
player.hud.map_anchor = level
@@ -159,8 +161,6 @@ func spawn_players() -> void:
base_took_damage.connect(player.hud.set_lives_count)
root_scene.add_child(player)
p_i += 1
print("objective health: " + str(objective_health))
print("player ui health: " + str(player.hud.shield_ui.health))
func ready_player(player_ready_true: bool) -> void: