extends Area2D var damage: int = 12 var _hit_cooldowns: Dictionary = {} func _ready() -> void: body_entered.connect(_on_body_entered) func _process(delta: float) -> void: for enemy in _hit_cooldowns.keys(): _hit_cooldowns[enemy] -= delta if _hit_cooldowns[enemy] <= 0.0: _hit_cooldowns.erase(enemy) func _on_body_entered(body: Node2D) -> void: if body.is_in_group("enemies") and not _hit_cooldowns.has(body): body.take_damage(damage) _hit_cooldowns[body] = 0.8