summaryrefslogtreecommitdiff
path: root/stage/hud_unit.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-02-12 20:05:59 +0100
committerDaniel Weipert <git@mail.dweipert.de>2025-02-12 20:05:59 +0100
commit218748f67a6a6b35efc4a732ad11426d0f528709 (patch)
treee58504dd758ce6525844872007221cda2a8b6926 /stage/hud_unit.gd
parentf6c81b065cf4d7f1302a50f2f72cfab32204a1ec (diff)
next commitHEADmain
Diffstat (limited to 'stage/hud_unit.gd')
-rw-r--r--stage/hud_unit.gd20
1 files changed, 19 insertions, 1 deletions
diff --git a/stage/hud_unit.gd b/stage/hud_unit.gd
index bb8f8d8..060f0e5 100644
--- a/stage/hud_unit.gd
+++ b/stage/hud_unit.gd
@@ -1,12 +1,20 @@
extends CanvasLayer
+var units_moved: Array[Unit]
+var units_attacked: Array[Unit]
+
@onready var grid_selector: GridSelector = get_tree().get_first_node_in_group("grid_selector")
func _ready() -> void:
visible = false
+ Network.current_player_changed.connect(func():
+ units_moved.clear()
+ units_attacked.clear()
+ )
+
grid_selector.selected.connect(func(node: Node2D):
grid_selector.process_mode = Node.PROCESS_MODE_DISABLED
visible = true
@@ -19,6 +27,13 @@ func _ready() -> void:
$PanelContainer/VBoxContainer/Button.visible = false
$PanelContainer/VBoxContainer/Button2.visible = false
$PanelContainer/VBoxContainer/Button3.grab_focus()
+
+ $PanelContainer/VBoxContainer/Button.disabled = node in units_moved
+ $PanelContainer/VBoxContainer/Button2.disabled = node in units_attacked
+ )
+
+ grid_selector.move_mode_confirmed.connect(func(_path: Array):
+ units_moved.append(grid_selector.current_entity)
)
grid_selector.move_mode_exited.connect(func():
@@ -29,6 +44,9 @@ func _ready() -> void:
)
grid_selector.range_select_confirmed.connect(func(grid_position: Vector2i, _entity: Node2D):
+ if grid_selector.range_select_current_mode == GridSelectorStateRangeSelect.Mode.Attack:
+ units_attacked.append(grid_selector.current_entity)
+
grid_selector.current_state = grid_selector.state_select
grid_selector.current_state.draw(grid_position)
)
@@ -44,7 +62,7 @@ func _input(event: InputEvent) -> void:
if event.is_action_pressed("left_click"):
for button: Button in $PanelContainer/VBoxContainer.get_children():
- if button.has_focus():
+ if button.has_focus() and not button.disabled:
button.pressed.emit()
break