extends Area2D @export var max_hp : int @onready var hp = max_hp @export var hit_invulnerability = 0.2 @export var canvasItem : CanvasItem @export var flashColor : Color = Color(1.5, 1.5, 1.5) var inv_time = 0; signal damage_taken signal died func _process(delta: float) -> void: inv_time = max(inv_time-delta, 0) if(inv_time <= 0 and canvasItem != null): canvasItem.modulate = Color(1,1,1) func hurt(damage : int, dir : Vector2 = Vector2.ZERO): if(inv_time<=0): if canvasItem != null: canvasItem.modulate = flashColor inv_time = hit_invulnerability hp = max(hp-damage, 0) damage_taken.emit(damage, dir) if(hp <= 0): die() func die(): died.emit() func destroy(): hurt(9999)