38 lines
788 B
GDScript
38 lines
788 B
GDScript
class_name Obstacle extends CharacterBody2D
|
|
|
|
@onready var sprite = $Sprite2D
|
|
@onready var lifeTimeTimer = $lifeTimeTimer
|
|
@onready var damageArea = $DamageArea
|
|
@onready var hit = $hit
|
|
|
|
@export var damage: int = 100
|
|
@export var minHealth: int = 1
|
|
@export var maxHealth: int = 100
|
|
@export var health: int
|
|
@export var lifeTime: int = 600
|
|
|
|
func _ready() -> void:
|
|
health = maxHealth + damage + 1
|
|
lifeTimeTimer.start(lifeTime)
|
|
|
|
func spawn(damage: int):
|
|
pass
|
|
|
|
|
|
func _on_hurt_area_hurt(amount: int) -> void:
|
|
hit.play()
|
|
hurt(amount)
|
|
|
|
func hurt(amount: int):
|
|
if health - amount <= minHealth:
|
|
queue_free()
|
|
else:
|
|
health -= amount
|
|
|
|
|
|
func _on_life_time_timer_timeout() -> void:
|
|
queue_free()
|
|
|
|
|
|
func _on_damage_area_area_entered(area: Area2D) -> void:
|
|
damageArea.damageHurtArea(area, damage)
|