summaryrefslogtreecommitdiff
path: root/stage/stage.gd
diff options
context:
space:
mode:
Diffstat (limited to 'stage/stage.gd')
-rw-r--r--stage/stage.gd45
1 files changed, 30 insertions, 15 deletions
diff --git a/stage/stage.gd b/stage/stage.gd
index 1f79915..b2d4736 100644
--- a/stage/stage.gd
+++ b/stage/stage.gd
@@ -29,31 +29,37 @@ func _process(_delta: float) -> void:
func _input(event: InputEvent) -> void:
- if event.is_action_pressed("test_1"):
- var unit = preload("res://unit/unit.tscn").instantiate()
- unit.global_position = %GridSelector.global_position + $Floor.position
- add_child(unit)
- # TODO: generate dice throw anim => on end go to dice placement => add unit with tiles => go to select mode
- if event.is_action_pressed("test_2"):
- var unit: Node2D = get_node("Unit")
- var path = grid.get_point_path(
- $Floor.local_to_map(unit.global_position - $Floor.position),
- $Floor.local_to_map(get_global_mouse_position() - $Floor.position)
- )
- var tween = get_tree().create_tween()
- for p in path.slice(1): # remove starting position
- tween.tween_property(unit, "global_position", p + $Floor.position, 0.1)
+ if event.is_action_pressed("menu"):
+ $HUDMain.visible = true
+ grid_selector.process_mode = Node.PROCESS_MODE_DISABLED
+ $HUDMain/PanelContainer/VBoxContainer/Button.grab_focus()
+
+ if event.is_action_pressed("test_4"):
+ var teams := ["1", "2"]
+ var tiles := [Vector2i(1,6), Vector2i(3,6)]
+ grid_selector.placement_tile_atlas_coordinates = tiles[(tiles.find(grid_selector.placement_tile_atlas_coordinates) + 1) % tiles.size()]
+ grid_selector.current_team = teams[(teams.find(grid_selector.current_team) + 1) % teams.size()]
func _on_grid_selector_placed_tiles(grid_positions: Array) -> void:
for p in grid_positions:
grid.set_point_solid(p, false)
+
+ var unit = preload("res://unit/unit.tscn").instantiate()
+ unit.global_position = %GridSelector.global_position + $Floor.position
+ unit.current_team = grid_selector.current_team
+ add_child(unit)
+
+ # block unit tile for movement
+ grid.set_point_solid($Ground.local_to_map(%GridSelector.global_position), true)
+
+ grid_selector.current_state = grid_selector.state_select
func _on_grid_selector_move_mode_confirmed(path: Array) -> void:
grid_selector.process_mode = Node.PROCESS_MODE_DISABLED
- var unit: Node2D = get_node("Unit")
+ var unit: Node2D = grid_selector.current_entity
var tween = get_tree().create_tween()
for p in path.slice(1): # remove starting position
tween.tween_property(unit, "global_position", p + $Floor.position, 0.1)
@@ -62,3 +68,12 @@ func _on_grid_selector_move_mode_confirmed(path: Array) -> void:
grid_selector.process_mode = Node.PROCESS_MODE_INHERIT
grid_selector.current_state = grid_selector.get_node("StateSelect")
grid_selector.current_state.draw($Ground.local_to_map(path[path.size() - 1]))
+
+ # clear previous tile and set new tile solid
+ grid.set_point_solid($Ground.local_to_map(path[0]), false)
+ grid.set_point_solid($Ground.local_to_map(path[path.size() - 1]), true)
+
+
+func _on_grid_selector_range_select_confirmed(grid_position: Vector2i, entity: Node2D) -> void:
+ entity.queue_free()
+ grid.set_point_solid(grid_position, false)