summaryrefslogtreecommitdiff
path: root/Game/States/Build/StateBuild.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Game/States/Build/StateBuild.gd')
-rw-r--r--Game/States/Build/StateBuild.gd22
1 files changed, 15 insertions, 7 deletions
diff --git a/Game/States/Build/StateBuild.gd b/Game/States/Build/StateBuild.gd
index d2fb39d..f16ee3d 100644
--- a/Game/States/Build/StateBuild.gd
+++ b/Game/States/Build/StateBuild.gd
@@ -17,14 +17,14 @@ func _state_input(event: InputEvent):
if event.is_action_pressed("builder_tower_select"):
if current_builder_element and current_builder_element.can_build():
- var placed_tower = current_builder_element.element.duplicate() as Tower
- Client.place_tower(placed_tower, current_builder_element.global_position)
+ var placed_tower = current_builder_element.element.instantiate() as Tower
+ placed_tower.attack_range = [
+ Client.stage.map.tile_set.tile_size.x * 2,
+ Client.stage.map.tile_set.tile_size.x * 3,
+ Client.stage.map.tile_set.tile_size.x * 4,
+ ].pick_random()
- placed_tower.selected.connect(func():
- Client.stage.hud.tower.text = "Range: %s - Power: %s - Speed: %s" % [
- placed_tower.attack_range, placed_tower.attack_power, placed_tower.attack_speed
- ]
- )
+ Client.place_tower(placed_tower, current_builder_element.global_position)
if not Input.is_action_pressed("builder_tower_place_keep"):
current_builder_element.queue_free()
@@ -38,3 +38,11 @@ func _state_input(event: InputEvent):
current_builder_element = null
set_state("StateDefault")
+
+ if event.is_action_pressed("builder_cancel") and current_builder_element:
+ current_builder_element.queue_free()
+ current_builder_element = null
+
+
+func _state_unhandled_input(_event: InputEvent) -> void:
+ pass