diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2025-02-08 14:41:11 +0100 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2025-02-08 14:41:11 +0100 |
commit | d24180c58e9e1d6149f0ac41d4f4bbaf674bdbd3 (patch) | |
tree | b3316011d7ed6cfa43f6988bd6e05af3b311a495 /stage/stage.gd | |
parent | a210c39b5d2be1e7e5c52568d40ba6a29f34b4bb (diff) |
next commit
Diffstat (limited to 'stage/stage.gd')
-rw-r--r-- | stage/stage.gd | 45 |
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) |