19 lines
479 B
GDScript
19 lines
479 B
GDScript
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
|