29 lines
968 B
GDScript
29 lines
968 B
GDScript
extends Sprite2D
|
|
|
|
@onready var hurt_component: HurtComponent = $HurtComponent
|
|
@onready var damage_component: DamageComponent = $DamageComponent
|
|
|
|
var log_scene = preload("res://scenes/objects/trees/log.tscn")
|
|
|
|
func _ready() -> void:
|
|
hurt_component.hurt.connect(on_hurt)
|
|
damage_component.max_damaged_reached.connect(on_max_damage_reached)
|
|
|
|
func on_hurt(hit_damage: int) -> void:
|
|
await get_tree().create_timer(0.33).timeout
|
|
damage_component.apply_damage(hit_damage)
|
|
material.set_shader_parameter("shake_intensity", 0.5)
|
|
await get_tree().create_timer(1.0).timeout
|
|
material.set_shader_parameter("shake_intensity", 0.0)
|
|
|
|
func on_max_damage_reached() -> void:
|
|
call_deferred("add_log_scene")
|
|
await get_tree().create_timer(0.33).timeout
|
|
queue_free()
|
|
|
|
func add_log_scene() -> void:
|
|
await get_tree().create_timer(0.33).timeout
|
|
var log_instance = log_scene.instantiate() as Node2D
|
|
log_instance.global_position = global_position
|
|
get_parent().add_child(log_instance)
|