necra-prototypes/bat_extraction_bat.gd

36 lines
765 B
GDScript

class_name BatExtractionBat
extends Sprite2D
@export var speed: float = 0.2
@onready var grab_area: Area2D = $BatArea
var path_follow: PathFollow2D
var is_grabbed = false
var is_dropped = false
var pliers: Pliers
func _ready():
path_follow = get_parent() as PathFollow2D
pliers = get_tree().get_first_node_in_group("grabber") as Pliers
func _physics_process(delta):
if is_dropped: return
if is_grabbed:
global_position = pliers.grab_area.global_position
else:
path_follow.progress_ratio += delta * speed
func grab_bat():
is_grabbed = true
grab_area.set_deferred("monitoring", false)
grab_area.set_deferred("monitorable", false)
path_follow.progress_ratio = 0.0
position = Vector2.ZERO
top_level = true
func drop_bat():
is_dropped = true