actionrpg-heartbeast/ActionRPG-HeartBeast/Overlap/Hurtbox.gd
2024-11-20 17:22:31 -05:00

37 lines
802 B
GDScript

extends Area2D
const HitEffect = preload("res://Effects/HitEffect.tscn")
var invincible = false setget set_invincible
onready var timer = $Timer
signal invincibility_started
signal invincibility_ended
func set_invincible(value):
invincible = value
if invincible == true:
emit_signal("invincibility_started")
else:
emit_signal("invincibility_ended")
func start_invincibility(duration):
self.invincible = true
timer.start(duration)
func create_hit_effect():
var effect = HitEffect.instance()
var main = get_tree().current_scene
main.add_child(effect)
effect.global_position = global_position
func _on_Timer_timeout():
self.invincible = false
func _on_Hurtbox_invincibility_ended():
monitorable = true
func _on_Hurtbox_invincibility_started():
set_deferred("monitorable", false)