You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
extends Control
|
|
|
|
|
|
|
|
|
|
@onready var animation: AnimationPlayer = $AnimationPlayer as AnimationPlayer
|
|
|
|
|
@onready var lock: Sprite2D = $Lock as Sprite2D
|
|
|
|
|
@onready var camera: CameraManager = Global.camera_mgr
|
|
|
|
|
|
|
|
|
|
var target: Character
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
|
visible = false
|
|
|
|
|
animation.play("rotate")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _process(delta):
|
|
|
|
|
if target:
|
|
|
|
|
position = camera.get_screen_pos(target.ui_pos_center())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func on_target_changed(target_id: int):
|
|
|
|
|
target = Global.character_mgr.get_character(target_id)
|
|
|
|
|
visible = target != null
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func on_is_lock_changed(is_lock: bool):
|
|
|
|
|
lock.frame = 0 if is_lock else 1
|
|
|
|
|
var scale_value: float = 1.0 if is_lock else 1.2
|
|
|
|
|
lock.scale.x = scale_value
|
|
|
|
|
lock.scale.y = scale_value
|