5 @export var debug_color_hit: Color = Color(Color.YELLOW, 0.5)
6 @export var debug_color_standby: Color = Color(Color.GREEN, 0.5)
9 @onready var model: CharacterModel = $"../.."
10 @onready var shape: CollisionShape3D = $CollisionShape3D
11 @onready var hit_effect: HitEffect = $HitEffect
13 var _last_hit: float = 0
16 func _ready() -> void:
17 shape.debug_color = debug_color_standby
20 func _process(delta: float) -> void:
21 for area in get_overlapping_areas():
27 # TODO: all these guys share the same collision shape
28 shape.debug_color = debug_color_standby
31 func on_hit(area: Hurtbox):
32 if is_being_attacked_by(area):
34 shape.debug_color = debug_color_hit
38 area.ignore_list.append(self)
39 var hit_pkt := area.get_hit_packet()
40 model.current_state.react_to_hit(hit_pkt)
44 func is_being_attacked_by(area: Hurtbox):
45 return area.is_attacking and not area.ignore_list.has(self)