Improve handling of workers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
widelands |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Miner brotherhood is too scratchy.
A) Elevated miners don't go for open positions of lower
rankings which results in a kind of game deadlock on the
mines when all miners have become "masters" of their
art.
B) There is no exchange policy for miner resource
management. E.g. when one mine has 2 chief miners
(but requires only one) and another mine requests a chief
miner, the one over-positioned does not go for the
requesting mine in an act of personell exchange. ;)
Solution for A:
Elevated miners (chief, master) should also go for lower
ranking positions. The algorithm for this should resemble
to the following:
(Algo "Free Miner")
Example: Mine Y requests an ordinary Miner.
i) look if Miner is free available (send off)
ii) if not, look if Miner can be created through tool (create
and send off)
iii) if not, look if Chief Miner is free available (send off)
iv) if not, look if Master Miner is free available (send off)
Solution for B:
(Algo "Exchange Miner")
Example: Mine Y requests a Chief Miner
i) look if Chief Miner can be made available as free man
(see algo "Free Miner") (send off)
ii) if not, look if any mine has one Chief Miner aa in a
over-qualified position.
iii) if yes, send aa to mine Y and let Y request a miner for
the vacant position
This is only a rough idea of course.
Logged In: YES
user_id=149659
I must correct the text; the last line should run like:
iii) if yes, send aa to mine Y and let X request a miner for
the vacant position (where X is the mine which yields aa)