26 lines
578 B
GDScript
26 lines
578 B
GDScript
@tool
|
|
extends Unit
|
|
|
|
@export var produced_unit: PackedScene:
|
|
set(val):
|
|
produced_unit = val
|
|
_check_compose()
|
|
|
|
func _compose():
|
|
$spawner.unit_type = produced_unit
|
|
$spawner.player = player
|
|
super._compose()
|
|
|
|
func _on_commands_changed(commander, commands):
|
|
if commander == player:
|
|
var nearest := Vector2(INF, INF)
|
|
var distance := INF
|
|
for command in commands:
|
|
if command.code == "delivery":
|
|
var d := position.distance_to(command.position)
|
|
if d < distance:
|
|
distance = d
|
|
nearest = command.position
|
|
if distance != INF:
|
|
$spawner.delivery = nearest
|