extends KinematicBody2D var fall = false export var fall_speed = 0.5 onready var startpos = position onready var fall_timer = $FallTimer onready var refresh_timer = $RefreshTimer onready var crush_area = $CrushArea func _physics_process(delta): #Fall if fall: position.y += fall_speed #Crush the player for area in crush_area.get_overlapping_areas(): if area.is_in_group("player"): var player = area.get_parent() if player.is_on_floor(): player.die() func _on_Area2D_area_entered(area): if area.is_in_group("player"): fall_timer.start() func _on_VisibilityNotifier2D_screen_exited(): position = startpos fall = false func _on_RefreshTimer_timeout(): position = startpos fall = false func _on_FallTimer_timeout(): fall = true refresh_timer.start() func _on_Area2D_area_exited(area): fall_timer.stop()