summaryrefslogtreecommitdiff
path: root/stage/hud_unit.gd
diff options
context:
space:
mode:
Diffstat (limited to 'stage/hud_unit.gd')
-rw-r--r--stage/hud_unit.gd65
1 files changed, 65 insertions, 0 deletions
diff --git a/stage/hud_unit.gd b/stage/hud_unit.gd
new file mode 100644
index 0000000..b8351f7
--- /dev/null
+++ b/stage/hud_unit.gd
@@ -0,0 +1,65 @@
+extends CanvasLayer
+
+
+@onready var grid_selector: GridSelector = get_tree().get_first_node_in_group("grid_selector")
+
+
+func _ready() -> void:
+ visible = false
+
+ grid_selector.selected.connect(func(node: Node2D):
+ grid_selector.process_mode = Node.PROCESS_MODE_DISABLED
+ visible = true
+
+ if node.current_team == grid_selector.current_team:
+ $PanelContainer/VBoxContainer/Button.visible = true
+ $PanelContainer/VBoxContainer/Button2.visible = true
+ $PanelContainer/VBoxContainer/Button.grab_focus()
+ else:
+ $PanelContainer/VBoxContainer/Button.visible = false
+ $PanelContainer/VBoxContainer/Button2.visible = false
+ $PanelContainer/VBoxContainer/Button3.grab_focus()
+ )
+
+ grid_selector.move_mode_exited.connect(func():
+ grid_selector.current_state = grid_selector.state_select
+ grid_selector.process_mode = Node.PROCESS_MODE_DISABLED
+ visible = true
+ $PanelContainer/VBoxContainer/Button.grab_focus()
+ )
+
+ grid_selector.range_select_confirmed.connect(func(grid_position: Vector2i, _entity: Node2D):
+ grid_selector.current_state = grid_selector.state_select
+ grid_selector.current_state.draw(grid_position)
+ )
+
+ grid_selector.range_select_exited.connect(func():
+ grid_selector.current_state = grid_selector.state_select
+ )
+
+
+func _input(event: InputEvent) -> void:
+ if not visible:
+ return
+
+ if event.is_action_pressed("left_click"):
+ for button: Button in $PanelContainer/VBoxContainer.get_children():
+ if button.has_focus():
+ button.pressed.emit()
+ break
+
+ elif event.is_action_pressed("right_click"):
+ visible = false
+ grid_selector.process_mode = Node.PROCESS_MODE_INHERIT
+
+
+func _on_button_pressed() -> void:
+ grid_selector.process_mode = Node.PROCESS_MODE_INHERIT
+ grid_selector.current_state = grid_selector.state_move_mode
+ visible = false
+
+
+func _on_button_2_pressed() -> void:
+ grid_selector.process_mode = Node.PROCESS_MODE_INHERIT
+ grid_selector.current_state = grid_selector.state_range_select
+ visible = false