game: add shader to indicate low hp
This commit is contained in:
@@ -5,9 +5,35 @@ extends Control
|
||||
@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
|
||||
|
@@ -1,11 +1,19 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://b18uib08hvdpq"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://b18uib08hvdpq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dcxc70fvu7kl2" path="res://scenes/managers/ui/main_ui.gd" id="1_3a826"]
|
||||
[ext_resource type="Script" uid="uid://sjnxf0hj3egp" path="res://scenes/managers/ui/pause_ui.gd" id="1_lke1m"]
|
||||
[ext_resource type="Shader" uid="uid://dnwiwj1ak1bu5" path="res://assets/shaders/screen_low_hp.gdshader" id="2_lcbsd"]
|
||||
[ext_resource type="Script" uid="uid://dbq74tvxtpfjc" path="res://scenes/managers/ui/player_ui.gd" id="3_gaipe"]
|
||||
[ext_resource type="Script" uid="uid://d2o6tqnqg2o25" path="res://scenes/managers/ui/debug_ui.gd" id="4_217l8"]
|
||||
[ext_resource type="PackedScene" uid="uid://isg7vt4l7eem" path="res://scenes/managers/ui/level_up_ui.tscn" id="5_cfhdr"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_cg7ol"]
|
||||
shader = ExtResource("2_lcbsd")
|
||||
shader_parameter/damage_amount = 0.5
|
||||
shader_parameter/noise_strength = 0.2
|
||||
shader_parameter/pulse_strength = 0.05
|
||||
shader_parameter/time = 0.0
|
||||
|
||||
[node name="MainUI" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
@@ -17,6 +25,14 @@ script = ExtResource("1_3a826")
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="LowHPIndicator" type="ColorRect" parent="CanvasLayer"]
|
||||
material = SubResource("ShaderMaterial_cg7ol")
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="PauseUI" type="Control" parent="CanvasLayer"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
|
Reference in New Issue
Block a user