5 @export var debug_color_hit: Color = Color(Color.YELLOW, 0.5)
6 @export var debug_color_standby: Color = Color(Color.GREEN, 0.5)
8 @onready var shape: CollisionShape3D = $CollisionShape3D
9 @onready var hit_effect: HitEffect = $HitEffect
11 var _last_hit: float = 0
14 func _ready() -> void:
15 shape.debug_color = debug_color_standby
18 func _process(delta: float) -> void:
20 for area in get_overlapping_areas():
26 shape.debug_color = debug_color_standby
29 func on_hit(area: Hurtbox):
30 if is_being_attacked_by(area):
32 shape.debug_color = debug_color_hit
35 area.ignore_list.append(self)
36 on_successful_hit(area)
39 func is_being_attacked_by(area: Hurtbox):
40 return area.is_attacking and not area.ignore_list.has(self)
43 ## To be overridden by a child class
44 func on_successful_hit(_area: Hurtbox):