The_Dark_Side_of_Earth/utils/enemy_hurtbox.gd

29 lines
673 B
GDScript3
Raw Normal View History

2025-09-16 14:59:40 +02:00
extends Area2D
@export var max_hp : int
@onready var hp = max_hp
2025-09-18 03:09:00 +02:00
@export var hit_invulnerability = 0.2
@export var canvasItem : CanvasItem
@export var flashColor : Color = Color(1.5, 1.5, 1.5)
2025-09-16 14:59:40 +02:00
var inv_time = 0;
signal damage_taken
signal died
func _process(delta: float) -> void:
inv_time = max(inv_time-delta, 0)
2025-09-18 03:09:00 +02:00
if(inv_time <= 0 and canvasItem != null):
canvasItem.modulate = Color(1,1,1)
2025-09-16 14:59:40 +02:00
func hurt(damage : int, dir : Vector2 = Vector2.ZERO):
if(inv_time<=0):
2025-09-18 03:09:00 +02:00
if canvasItem != null: canvasItem.modulate = flashColor
2025-09-16 14:59:40 +02:00
inv_time = hit_invulnerability
hp = max(hp-damage, 0)
damage_taken.emit(damage, dir)
if(hp <= 0):
die()
func die():
died.emit()