46 lines
944 B
GDScript
46 lines
944 B
GDScript
extends Area2D
|
|
class_name HitboxComponent
|
|
|
|
signal on_hit_hurtbox(hurtbox: HurtboxComponent)
|
|
|
|
var damage := 1.0
|
|
var critical := false
|
|
var knockback_power := 0.0
|
|
var source: Node2D
|
|
|
|
|
|
func enable() -> void:
|
|
set_deferred("monitoring", true)
|
|
set_deferred("monitorable", true)
|
|
|
|
|
|
|
|
func disable() -> void:
|
|
set_deferred("monitoring", false)
|
|
set_deferred("monitorable", false)
|
|
|
|
|
|
func setup(damage: float, critical: bool, knockback: float, source: Node2D) -> void:
|
|
self.damage = damage
|
|
self.critical = critical
|
|
knockback_power = knockback
|
|
self.source = source
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
pass # Replace with function body.
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
|
|
pass
|
|
|
|
|
|
func _on_area_entered(area: Area2D) -> void:
|
|
if area is HurtboxComponent:
|
|
on_hit_hurtbox.emit(area)
|
|
print(area.owner.name)
|
|
|