extends Trap @export var player_damage : int; @export var enemy_damage : int; var closed = false func damage_target(target: CollisionObject2D): # Checks whether the player or an enemy has been hit if(target.get_collision_layer_value(3)): target.hurt(player_damage, Vector2.ZERO) else: target.hurt(enemy_damage, Vector2.ZERO) # Bear Traps are static, hence it is sufficient to check for others entering the trap func _on_area_2d_area_entered(area: Area2D) -> void: close_on(area) func _on_area_2d_body_entered(body: Node2D) -> void: close_on(body) # Play the animation and assign the damage func close_on(target): if not closed: damage_target(target) closed = true $AnimatedSprite2D.play("close") await $AnimatedSprite2D.animation_finished await get_tree().create_timer(0.1).timeout queue_free()