Add unit movement slide animation

This commit is contained in:
2026-06-18 03:28:40 +09:00
parent 889b5a3743
commit 05af755da0
5 changed files with 72 additions and 14 deletions

View File

@@ -7,6 +7,7 @@ signal changed
signal log_added(message: String)
signal dialogue_requested(lines: Array)
signal combat_feedback_requested(unit_id: String, text: String, kind: String)
signal unit_motion_requested(unit_id: String, from_cell: Vector2i, to_cell: Vector2i)
const TEAM_PLAYER := "player"
const TEAM_ENEMY := "enemy"
@@ -539,8 +540,10 @@ func try_move_selected(cell: Vector2i) -> bool:
if not get_unit_at(cell).is_empty():
return false
var from_cell: Vector2i = unit["pos"]
unit["pos"] = cell
unit["moved"] = true
unit_motion_requested.emit(str(unit.get("id", "")), from_cell, cell)
_emit_log("%s moved to %s." % [unit["name"], _format_cell(cell)])
_run_events("unit_reaches_tile", str(unit.get("team", "")), turn_number, unit)
_check_battle_status()
@@ -1837,8 +1840,10 @@ func _enemy_take_action(enemy: Dictionary) -> void:
best_cell = cell
if best_cell != enemy["pos"]:
var from_cell: Vector2i = enemy["pos"]
enemy["pos"] = best_cell
enemy["moved"] = true
unit_motion_requested.emit(str(enemy.get("id", "")), from_cell, best_cell)
_emit_log("%s advances to %s." % [enemy["name"], _format_cell(best_cell)])
_run_events("unit_reaches_tile", str(enemy.get("team", "")), turn_number, enemy)
if battle_status != STATUS_ACTIVE: