40 lines
1.2 KiB
GDScript
40 lines
1.2 KiB
GDScript
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):
|
|
print_debug("got sig")
|
|
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
|