@export var debug_color_hit: Color = Color(Color.YELLOW, 0.5)
@export var debug_color_standby: Color = Color(Color.GREEN, 0.5)
-
-@onready var model: CharacterModel = $"../.."
@onready var shape: CollisionShape3D = $CollisionShape3D
@onready var hit_effect: HitEffect = $HitEffect
func _process(delta: float) -> void:
- for area in get_overlapping_areas():
- if area is Hurtbox:
- on_hit(area)
+ if monitoring:
+ for area in get_overlapping_areas():
+ if area is Hurtbox:
+ on_hit(area)
_last_hit += delta
if _last_hit > 1.0:
- # TODO: all these guys share the same collision shape
shape.debug_color = debug_color_standby
shape.debug_color = debug_color_hit
hit_effect.trigger()
-
area.ignore_list.append(self)
- var hit_pkt := area.get_hit_packet()
- model.current_state.react_to_hit(hit_pkt)
- hit_pkt.queue_free()
+ on_successful_hit(area)
func is_being_attacked_by(area: Hurtbox):
return area.is_attacking and not area.ignore_list.has(self)
+
+
+## To be overridden by a child class
+func on_successful_hit(_area: Hurtbox):
+ pass