feat: Implement cycle timer toggle, refactor continuous input, and improve movement synchronization.

This commit is contained in:
2026-01-07 05:41:38 +08:00
parent 251b677a2e
commit 6aede0a382
11 changed files with 210 additions and 58 deletions
+12 -5
View File
@@ -771,7 +771,7 @@ func start_movement_along_path(path: Array, clear_visual: bool = true):
target_position = Vector2i(path[-1].x, path[-1].y)
var tween = create_tween()
tween.set_trans(Tween.TRANS_CUBIC)
tween.set_trans(Tween.TRANS_LINEAR)
tween.set_ease(Tween.EASE_IN_OUT)
for point in path:
@@ -793,6 +793,10 @@ func start_movement_along_path(path: Array, clear_visual: bool = true):
if clear_visual:
enhanced_gridmap.clear_path_visualization()
# Check for buffered input
if movement_manager and movement_manager.has_method("_on_movement_finished"):
movement_manager._on_movement_finished()
# Only restore UI state if this is a human player
if not (is_bot or is_in_group("Bots")):
# Restore movement range highlights if it was the player's turn
@@ -1075,8 +1079,9 @@ func force_action_state_none():
var main = get_tree().get_root().get_node_or_null("Main")
if main and main.ui_manager:
main.ui_manager.current_action_state = main.ui_manager.ActionState.NONE
action_manager.clear_highlights()
action_manager.clear_playerboard_highlights()
if action_manager:
action_manager.clear_highlights()
action_manager.clear_playerboard_highlights()
# -----------------------------------------------------------------
@@ -1214,10 +1219,12 @@ func highlight_occupied_playerboard_slots():
action_manager.highlight_occupied_playerboard_slots()
func clear_highlights():
action_manager.clear_highlights()
if action_manager:
action_manager.clear_highlights()
func clear_playerboard_highlights():
action_manager.clear_playerboard_highlights()
if action_manager:
action_manager.clear_playerboard_highlights()
func rotate_towards_target(target_pos: Vector2i):
movement_manager.rotate_towards_target(target_pos)