extends Node2D onready var cast = $RayCast2D export var fall_speed = 100 var fall = false onready var refresh_timer = $RefreshTimer onready var anims = $AnimationPlayer onready var startpos = position func _ready(): # adjust to difficulty fall_speed *= Game.enemy_speed_factor func _physics_process(delta): if cast.is_colliding(): var collider = cast.get_collider() if collider.is_in_group("player_hitbox") or collider.is_in_group("msx"): anims.play("wiggle") if fall == true: position.y += fall_speed * delta if !refresh_timer.is_stopped() && refresh_timer.get_time_left() <= 0.6: anims.play("disappear") func _on_Hitbox_area_entered(area): if area.is_in_group("player_hitbox"): area.get_parent().die() func _on_RefreshTimer_timeout(): call_deferred("set_position", startpos) fall = false anims.play("idle") anims.play("disappear", -1, -1.0, true) func _on_AnimationPlayer_animation_finished(anim_name): if anim_name == "wiggle": if fall == false: refresh_timer.start() fall = true