The only way to get money aside from selling resources is by taxing the settlers. This is the main part of the income and therefore most important for a player. The taxing is tightly coupled with the happiness of settlers. The more goods they get, the more tax will they pay.
Each settler pays taxes regularly. The amount of taxes paid is calculated according to the formula below: happiness * tax_rate. It will be calculated for each residential building since the happiness values are bound to certain inhabitants. The general tax rate is not equal for all inhabitants of a settlement, so it matters to which tier they belong. See why
The user can set a tax_setting between 0.5 (low) and 1.5 (high) in steps of 0.1 where 1.0 denotes medium level. A higher tax setting has the effect of increasing tax income and reducing happiness at the same time.
As one can see in the formula, the happiness will heavily decrease when tax level is set to high, so this setting is to be used only for short periods of time (when the player urgently needs money).
A small tax rate is also contemplated. It would increase happiness, which could make settlers level up, even when certain needed resources are missing.
Open to discussion: Paid taxes depending on inhabitant amount per building? As in, should a building with 3/5 inhabitants pay the same amount as one with equal happiness and 5/5 inhabitants? Discuss this!
Taxing and Happiness
The influence to the happiness of the tax_setting is the following - 8:
- difference to 1.0 times 6 when low taxes (for 0.5 happiness decreases by 5)
- difference to 1.0 times 18 when high taxes (for 1.5 happiness decreases by 17)
where - 8 resembles that paying taxes in general causes discontent.
Every tier has a base tax (it's 2 for sailors).
Since happiness is an integer ranging from 1 to 100, it would influence the tax amount too much if we used "happiness * tax_rate". Therefore, we will use a modifier of
(1 + ((happiness-50)/100)) = 0.5 + happiness/100
This way, the modifier stays between 0.5 and 1.5 and at medium happiness, it's 1.
|tier||max inhabitants||tax base rate|
def modify_happiness(tier, tax_level) """ tier int 1 .. 6 tax_level float 0.5 .. 1.5 """ difference = 1.0 - tax_level modify = 12 * difference - 6 * abs(difference) return modify - 8
def tax_income(tier, tax_level, happiness, inhabitants_of_building) """ tier int 1 .. 6 happiness int 1 .. 100 tax_level float 0.5 .. 1.5 inhabitants_of_building int: for e.g. Citizens this would be between 5 and 8 """ happy_mod = 0.5 + happiness/100 inhabitant_mod = inhabitants_of_building / max_inhabitants[tier] return base_tax[tier] * happy_mod * tax_level * inhabitant_mod