extends Node export (PackedScene) var Tower = preload("res://Tower.tscn"); onready var screen_size = Vector2(ProjectSettings.get("display/window/size/width"), ProjectSettings.get("display/window/size/height")) export var tower_density = 250 signal spawn var last_built = 300 var towers = [] func build_tower(): var tower = Tower.instance() tower.connect("exit", self, "_on_Tower_exit") var pos = Vector2(last_built, (randf() * (screen_size.y * 0.7)) + screen_size.y * 0.15) # The player's movement vector. tower.position = pos towers.append(tower) emit_signal("spawn", tower.get_global_transform().get_origin().x) add_child(tower) last_built += tower_density func build_all_towers(): while towers.size() > 0: towers.pop_back().queue_free() last_built = 300 while last_built < screen_size.x * 3: build_tower() func _ready(): var ui = get_node("UI") var player = get_node("Player") player.connect("start", self, "build_all_towers") player.connect("start", ui, "_on_Player_start") player.connect("hit", ui, "_on_Player_hit") player.connect("passed", ui, "_on_Player_passed") connect("spawn", player, "_on_Tower_spawn") randomize() func _on_Tower_exit(): towers.pop_front() build_tower()