feat: 躲避敌人攻击功能
fix: 敌人初始化血条
This commit is contained in:
@@ -10,7 +10,7 @@ var can_move := true
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
super._ready()
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
|
||||
+16
-1
@@ -7,15 +7,30 @@ class_name Unit
|
||||
@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:
|
||||
print(stats)
|
||||
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
|
||||
|
||||
@@ -258,5 +258,10 @@ offset_top = -90.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = -70.0
|
||||
|
||||
[node name="FlashTimer" type="Timer" parent="." unique_id=2034069027]
|
||||
wait_time = 0.2
|
||||
one_shot = true
|
||||
|
||||
[connection signal="on_damaged" from="HurtboxComponent" to="." method="_on_hurtbox_component_on_damaged"]
|
||||
[connection signal="on_health_changed" from="HealthComponent" to="HealthBar" method="_on_health_component_on_health_changed"]
|
||||
[connection signal="timeout" from="FlashTimer" to="." method="_on_flash_timer_timeout"]
|
||||
|
||||
Reference in New Issue
Block a user