(The suggestion is at the bottom if you want to skip the context)
Context:
Beta 1.4.1 has uncovered some large flaws in the way prosperity is handled at very low values. The extreme warfare has driven some towns down to or close to 0 prosperity due to constant sieging and raiding. Here are some examples of those towns happening without player interference by day 800:
Many mechanics are tied to prosperity, so when prosperity falls that low things begin to break down.
For instance, the amount of money a town will generate overall to buy or sell goods is calculated as (7 x Prosperity) according to this post. So in the above cases the towns would generate 28, 0, and 7 denars respectively, which is not enough to properly conduct trade with villagers or caravans.
Other mechanics heavily driven by prosperity are food consumption rates, market prices (which draw caravans), and construction rates, which are all essential for a town to function properly.
Here is Lageta's "Misc" trade menu and food tooltip:
You can see even with food available in the marketplace it is not consuming any because consumption rate of food items is multiplied by 0. This also makes the garrison impossible to starve out during a siege because the lowest the food deficit can go is -16 and garrison troops only begin to starve at -20.
So my proposal to fix this is simple:
Add a conditional statement that uses 1000 (or some other appropriate number) as the prosperity variable for all related calculations if actual prosperity is <1000, like so:
Context:
Beta 1.4.1 has uncovered some large flaws in the way prosperity is handled at very low values. The extreme warfare has driven some towns down to or close to 0 prosperity due to constant sieging and raiding. Here are some examples of those towns happening without player interference by day 800:
Many mechanics are tied to prosperity, so when prosperity falls that low things begin to break down.
For instance, the amount of money a town will generate overall to buy or sell goods is calculated as (7 x Prosperity) according to this post. So in the above cases the towns would generate 28, 0, and 7 denars respectively, which is not enough to properly conduct trade with villagers or caravans.
Other mechanics heavily driven by prosperity are food consumption rates, market prices (which draw caravans), and construction rates, which are all essential for a town to function properly.
Here is Lageta's "Misc" trade menu and food tooltip:
You can see even with food available in the marketplace it is not consuming any because consumption rate of food items is multiplied by 0. This also makes the garrison impossible to starve out during a siege because the lowest the food deficit can go is -16 and garrison troops only begin to starve at -20.
So my proposal to fix this is simple:
Add a conditional statement that uses 1000 (or some other appropriate number) as the prosperity variable for all related calculations if actual prosperity is <1000, like so:
In order to prevent an extra -20 modifier being added to Food due to 'prosperity' consumption, the actual prosperity number can be used to calculate the negative modifier for this mechanic rather than using 1000. This would also act as an indirect boost to food surplus to help a town get back on its feet faster (put another way, it would be like a 1000 prosperity town having -0 to food rather than -20, which is a net +20 to food). That "boost" would be slowly phased out automatically as the town approached 1000 prosperity (i.e. at a true prosperity of 500 it would be a net +10, etc.).If (Prosperity >= 1000)
Use actual prosperity number as variableelse
Use 1000 as prosperity variable
Last edited: