summaryrefslogtreecommitdiff
path: root/stage/hud_unit.gd
blob: bb8f8d80f0d6aad7a8f5f6aa9d6931ba0aca6ad7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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 and Network.is_my_turn():
			$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