I'm in the works of trying to figure out a way to "efficiently" assign labors to dorf's.
I had an idea this past Friday on a few ideas. I thought if labors had a few variables assigned to them...
such as
A. "Attention required", a float from 0 to 1, when a dorf is assigned to a labor, this value is added to that dorf's attention available pool, when that dorf is filled up to 1, it means he is near capacity.
A few variables could affect this, such as # of workshops that are fed from this labor, as well as the # of dorfs, but these additional concepts are unnecessary for initial understanding of the concept.
Two other variables that kind of tie into each other, that would affect how important the dorf's role % is for this rating:
B1. Speed required for the job (i.e. a fast miner) a value from 0 to 1, or 0 to 100%
B2. Quality required for the job (i.e. a quality mason or carpenter). 0 to 1 or 100%
If a value of 0 is used for both B1 and B2, it means role rating % for this labor is unimportant (this is useful information for the next category C, because this means "attention required" can be spent more efficiently on a higher priority role if this role is a lower priority.
In other words. The worst dorf for the job can be used if B1 and B2 are 0, of course one would only want to do this to save on a dorf's A variable for a job that is more important (C Variable).
C. Also, a priority sorter. A list of labors would have priorities assigned to them, and how many of them one would need (i.e. 2 carpenters vs 3)
After priorities are set for jobs, the sorter would take the above B values, transform role %'s, and try to fill in the priority sorter first, filling up the "attention available" of dorf's until their rating is 1.
I was hoping to do some spreadsheet work on it, but it requires role %'s being outputted to a csv sheet. I asked Shishimar if he knew of a way to export grid views to csv's
Anyone got some ideas
BTW, thanks for the update Splinterz.