public static List <EncounterAction> ActionsForUnitReform(EncounterState state, Entity parent, int formationNumber, Unit unit) { var actions = new List <EncounterAction>(); var parentPos = parent.GetComponent <PositionComponent>().EncounterPosition; var playerPos = state.Player.GetComponent <PositionComponent>().EncounterPosition; var targetPosition = AIUtils._DecideFormationPosition(formationNumber, playerPos, unit); if (parentPos != targetPosition) { // TODO: We may want to make pathfinding stateful/cache it or something, to save on turn times var path = Pathfinder.AStarWithNewGrid(parentPos, targetPosition, state); if (path != null) { actions.Add(new MoveAction(parent.EntityId, path[0])); } else { actions.Add(new WaitAction(parent.EntityId)); } } else { actions.Add(new WaitAction(parent.EntityId)); } return(actions); }