More realistic gold spending: limited free workers, inflation, buying loyality

What would you like to see in Freeciv? Do you have a good idea what should be improved or how?
Posts: 230
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia

More realistic gold spending: limited free workers, inflation, buying loyality

Postby Ignatus » Sat Sep 14, 2019 3:05 pm

1. If a city is besieged by enemies and has only its central tile for productivity, whatever gold you do have in your central bank should not allow it to produce The Great Tank of Doom in one turn in this situation. (In Freeciv, unlikely to Civ3, city production is updated at the end of the owner's current phase, not in the beginning of the next, so enemy has less chances to attack suddenly). The workers may take overtime work in an emergency case for a good paying but hardly more than 3--4 times they do usually, and the resource income is limited. If you want to have emergency reserves, build and station in the city "meat" units to disband (maybe we could allow "Help Wonder" to other building genuses with putting the unit and the production requirements into the action enabler). Also, we could allow to get resources dismantling city improvements and living squares (in Civ3, on some governments you buy things by converting a citizen into 30 shields but at least one must remain). Thus I suggest this mechanics:
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.