Files
przygody-pana-cegly/scripts/components/hit_component.gd
2025-02-09 07:05:48 +01:00

40 lines
874 B
GDScript

class_name HitComponent
extends Node
@export var sprite: Sprite2D
@export var health_component: HealthComponent
@export var hit_duration: float = 0.1
func _ready() -> void:
if health_component:
health_component.on_health_change.connect(on_health_change)
health_component.on_death.connect(on_death)
if not sprite:
printerr("No sprite assigned!")
return
if sprite.material:
sprite.material = sprite.material.duplicate()
func activate() -> void:
sprite.material.set_shader_parameter("enabled", true)
func deactivate() -> void:
sprite.material.set_shader_parameter("enabled", false)
func on_health_change(delta: float, _total_health: float) -> void:
if delta < 0:
activate()
await get_tree().create_timer(hit_duration).timeout
deactivate()
func on_death() -> void:
activate()
await get_tree().create_timer(hit_duration).timeout
deactivate()