hero-mark-2/objects/environment/stalactite/stalactite.gd
2023-11-25 22:15:57 -05:00

38 lines
920 B
GDScript

extends Node2D
onready var cast = $RayCast2D
export var fall_speed = 80
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"):
if fall == false: refresh_timer.start()
fall = true
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)