32 lines
777 B
GDScript
32 lines
777 B
GDScript
extends Trap
|
|
|
|
@export var player_damage : int;
|
|
@export var enemy_damage : int;
|
|
|
|
var closed = false
|
|
|
|
func damage_target(target: CollisionObject2D):
|
|
if(target.get_collision_layer_value(3)):
|
|
target.hurt(player_damage, Vector2.ZERO)
|
|
else:
|
|
target.hurt(enemy_damage, Vector2.ZERO)
|
|
|
|
|
|
func _on_area_2d_area_entered(area: Area2D) -> void:
|
|
if not closed:
|
|
damage_target(area)
|
|
closed = true
|
|
$AnimatedSprite2D.play("close")
|
|
await $AnimatedSprite2D.animation_finished
|
|
await get_tree().create_timer(0.1).timeout
|
|
queue_free()
|
|
|
|
|
|
func _on_area_2d_body_entered(body: Node2D) -> void:
|
|
if not closed:
|
|
damage_target(body)
|
|
closed = true
|
|
$AnimatedSprite2D.play("close")
|
|
await $AnimatedSprite2D.animation_finished
|
|
await get_tree().create_timer(0.1).timeout
|
|
queue_free()
|