class_name MainUI extends Control @onready var pause_ui: PauseUI = $CanvasLayer/PauseUI @onready var player_ui: PlayerUI = $CanvasLayer/PlayerUI @onready var debug_ui: DebugUI = $CanvasLayer/DebugUI @onready var level_up_ui: LevelUpUI = $CanvasLayer/LevelUpUI @onready var low_hp_indicator: ColorRect = $CanvasLayer/LowHPIndicator var elapsed_time: float func _ready() -> void: pause_ui.visible = false player_ui.visible = true level_up_ui.visible = false low_hp_indicator.visible = false GlobalConst.sig_on_player_hp_change.connect(_on_player_hp_change) GlobalConst.sig_toggle_low_hp_shader.connect(_on_toggle_low_hp_shader) func _process(delta: float) -> void: elapsed_time += delta if low_hp_indicator.visible: low_hp_indicator.material.set_shader_parameter("time", elapsed_time) func _on_player_hp_change(hp: float, max_hp: float): var percent_hp = hp / max_hp * 100 if percent_hp < 40: low_hp_indicator.visible = true low_hp_indicator.material.set_shader_parameter("damage_amount", 1 - (percent_hp / 100)) else: low_hp_indicator.visible = false func _on_toggle_low_hp_shader(toggled_on: bool): low_hp_indicator.visible = !low_hp_indicator.visible