Files
brotato/scenes/unit/unit.gd
T
luke358 66452f1072 feat: 躲避敌人攻击功能
fix: 敌人初始化血条
2026-05-18 16:10:19 +08:00

37 lines
903 B
GDScript

extends Node2D
class_name Unit
@export var stats: UnitStats
@onready var visuals: Node2D = %Visuals
@onready var sprite: Sprite2D = %Sprite
@onready var anim_player: AnimationPlayer = $AnimationPlayer
@onready var health_component: HealthComponent = $HealthComponent
@onready var flash_timer: Timer = $FlashTimer
func _ready() -> void:
health_component.setup(stats)
func set_flash_material() -> void:
sprite.material = Global.FLASH_MATERIAL
flash_timer.start()
func _on_hurtbox_component_on_damaged(hitbox: HitboxComponent) -> void:
if health_component.current_health <=0:
return
var blocked := Global.get_chance_success(stats.block_chance / 100)
if blocked:
print("Blocked!")
return
set_flash_material()
health_component.take_damage(hitbox.damage)
print("%s: %d" % [name, health_component.current_health] )
func _on_flash_timer_timeout() -> void:
sprite.material = null