1.1. You not necessary hurry production to the full shields of current one. You can overproduce as many shields as you can and want (but of one building genus only). I pretend it like you put exclamation marks on worked tiles, or allow the CMA to do so.
1.2. You can dismantle more than one buildings for shields (the recycle coefficiency might be a constant or an effect) but not more than how many specialists you do have; probably dismantler should be a specialist type not producing other output. So, dismantling site is approximately yet another working tile. Spending citizens may be included into the same process but they spend themselves. Dismantling is a work that not only produces but also consumes some shields.
1.3. City workers may give you in a turn only
Code: Select all
sum(worked_tile; shield_output * worker_load)
+ sum(dismantled_imprs; build_cost) / impr_divisor
+ number(spent_citizens) * citizen_cost
+ sum(spent_units; build_cost / unit_divisor)
- number(dismantled_imprs) * dismantle_cost
This mechanics require good and looking-ahead management even for peripherial cities of large empires. Well, somebody would consider it yet another annoying micromanagement.
2. When we hurry production, we should supply workers with luxuries for their overtime work. For one more working shift, a worker wants some number of luxuries (at very despotic governments it can be less than normal happy_cost, at free labour ones workers want increasingly more with each next time they produce shields). So, your interest in having your cities as happy as possible increases.
3. We can persuade workers to work even if we can't give them enough more luxuries right now but will do it later. As a watranty, we pay them money that they later can spend. In general, we can suggest that a worker receives some payment that is spent on the luxuries that make the worker not feel angry (2*happy_cost for basic_wages). The prices rise up for as long as the workers have excess coins on their pockets. Thus, let you buy extra happiness, but inflation will make it more difficult to do often.
Code: Select all
city_luxury = happy_cost * (N_uncontent + 2 * N_content + 3 * N_happy) + undistributed_luxury
luxury_gold_cost = (gold_remained + basic_wages * N_citizens) / city_luxury
Per turn afer you buy luxury until gold_remained == 0:
gold_remained -= luxury_gold_cost * (city_luxury - 2 * happy_cost * N_citizens)
(N_content should include specialists probably).
Thus, in a city full of angry workers you can not get any overwork for any cost.