revo-jailbreak/objects/environment/stalactite/stalactite.gd
2023-11-28 02:56:42 -05:00

43 lines
1 KiB
GDScript

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