LD56 is over. This is the game.
This commit is contained in:
22
entities/buildings/ballista.gd
Normal file
22
entities/buildings/ballista.gd
Normal file
@@ -0,0 +1,22 @@
|
||||
class_name Ballista extends Building
|
||||
|
||||
|
||||
var target:EnemyAnt
|
||||
var arrow_scene := preload("res://entities/buildings/Arrow.tscn")
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if target != null:
|
||||
$pivot.look_at(target.global_position)
|
||||
|
||||
func _on_timer_timeout() -> void:
|
||||
if target == null or target.global_position.distance_to(global_position)>50:
|
||||
var target_area := $targetArea as Area3D
|
||||
var targets := target_area.get_overlapping_bodies().filter(
|
||||
func(body:Node3D)->bool: return body is EnemyAnt
|
||||
)
|
||||
if targets.is_empty(): return
|
||||
target = targets.pick_random()
|
||||
var arrow := arrow_scene.instantiate() as Area3D
|
||||
$pivot.add_child(arrow)
|
||||
arrow.rotation.y = PI
|
||||
arrow.global_position = $pivot.global_position + Vector3.UP*0.25
|
||||
Reference in New Issue
Block a user