[Vote] (6-54) War Weariness Rework

Include in VP?


  • Total voters
    70
  • Poll closed .
Status
Not open for further replies.

azum4roll

Lost the game
Joined
Jul 17, 2018
Messages
4,013
Location
Somewhere

Current mechanic:

War Damage is a value you have against every other player in the game. In a standard 8-player game, every player should have 7 such values stored in memory (while having only one War Weariness value). It's capped between 0 and 100.
War Value is another value based on how much you lose in a war against each player. It's increased when you lose military units, cities, tiles, have your improvements pillaged, have your trade routes pillaged, or have your cities razed.
War Score multiplier (Total War) is applied here, presumably because War Value is a component of War Damage, which is also used to calculate War Score.
War Value still stays after you've made peace. It decays by 2% per turn when you're at war (with the player), and 10% per turn at peace, minimum 1.

War Damage is equal to War Value / (how much all your cities and units are worth), capped between 0 and 100.

You also take 50% of the War Damage you inflict on Player A as your own War Damage, unless you're a human player and Player A is an AI who is unwilling to make peace.
If they have higher cultural influence against you than you against them, your War Damage is increased by a multiplier.
Your tech progress also increases your War Damage by a multiplier.

The Hunnic UA is applied here (if you're at war with them), despite stating War Weariness.

Longest War is the number of turns of your longest ongoing war, minus 10.

Target X = Highest War Damage * Longest War

Target Y is another target value that's initialized as your War Weariness last turn.
If you have made peace with anyone during your last turn, Y is halved.
Otherwise, it's decreased by a random amount, with higher expected value the longer it is from your last peace treaty.
If you've never signed a peace treaty, no decay.

Your Target War Weariness is the higher of X and Y, modified by the Hunnic UA (if you're the Huns) and policies.
It is then capped by 34% of your total population, and some magic formula is used to set your War Weariness to somewhere between last turn's and the target, so it appears to grow/decay gradually.

Problems:

The War Damage and Longest War values can be from different wars. If you stall a war for too long but haven't taken much damage from it, you're punished for it by taking damage in an unrelated war.
The Hunnic UA's "inflict more war weariness" is applied on War Damage while "receive less war weariness" is applied on War Weariness. They're different concepts.
The Total War tenet has an unstated effect of increasing enemy War Weariness.
There's no indicator whether making peace with Player A will decrease your War Weariness. If you know the mechanic, you'll know that it will if the war with Player A is the longest war or your highest War Damage is with Player A. But War Damage isn't shown anywhere.
Both War Value and War Weariness have some sort of gradual decay, which complicates the formula in an unintuitive way.

Proposal:

Stop using War Damage to calculate War Weariness. Leave that for War Score calculation only.
Make the Hunnic UA (both inflict and receive parts) apply on War Weariness properly, and change the wording to "+100% damage inflicted and -50% damage received during War is counted towards War Weariness".

Otherwise, War Value, War Damage and War Score are calculated the same as it is now.

War Weariness calculation:
From now on, War Weariness is a separate (set of) number(s) from War Weariness Unhappiness (existing field under CvPlayerCulture). The former is per player, same as War Value. It's stored in a new array under CvPlayer.
The reason is to separate Hunnic UA (acting on War Weariness), War Weariness modifiers (acting on the Unhappiness), and Total War (acting on War Score's "accumulate rate").
Any source increasing War Value also increases War Weariness by the same amount, but Total War boosts the former only while the Hunnic UA modifies the latter only.
Also increase War Weariness by half of the amount you inflict on your enemies (also modified by Hunnic UA).

In game, War Weariness still refers to the Unhappiness value and text doesn't need to be changed.

Every turn, War Weariness (against every player) is updated by the following procedure:
  • If not at war with this player, halve the value.
  • If at war, increase the value by 1% of our current city value + unit value, if peace is an option (10 turns after declaration for normal wars, 15 turns for bribed and co-op wars).
    • The value is already obtained in CvPlayer:: DoUpdateWarDamage(); should probably be cached since it's reused multiple times per turn.
    • This is also modified by the Hunnic UA modifier.
    • This replaces the "Longest War" factor in the current system.
    • Any war that lasts 100 turns will inflict 100% War Weariness on both parties regardless of performance, unless your city/unit value grows really fast.
  • This value is NOT capped. A cap will be applied when calculating War Weariness Unhappiness.
  • [Optional UI sponsor request] Display the value of (War Weariness / (our current city value + unit value) * Policy modifiers) as a percentage alongside Warscore on the leader screen/leader tooltip. (e.g. Warscore: 50, War Weariness: 78%)
When making peace with a player, immediately halve War Weariness (with respect to each other) for both parties.

Every turn, War Weariness Unhappiness (the War Weariness shown on the UI) is determined by the following procedure:
  • Loop through all players and get the highest War Weariness value.
    • Ignore the values against players we can't make peace with.
    • Ignore the values against AI players if we're human and they haven't offered peace.
    • [Optional UI sponsor request] Add an icon to the Civ portrait or some text on the Top Panel supply tooltip so players know who to make peace with to reduce War Weariness.
  • Divide this value by our current city value + unit value. This is now a ratio of how much we've lost vs how much we have.
  • Apply any War Weariness modifiers (e.g. from Honor) here, and cap the result at 100%.
  • Divide the result by 3. This is the supply reduction % (at most 1/3 of max supply can be lost to War Weariness, same as now).
  • Multiply this % by our total population. This is the War Weariness Unhappiness.
  • No smoothing of the number is needed. Most of the time it'll only have sudden jumps downwards (when you make peace), unless you suffer a lot of damage in one turn, in which case you probably deserve it.
Spoiler Example :

Player A (the Huns) is at war with Player B and Player C (not co-op). Player A, B, C's cities and units are worth 10000, 8000 and 12000 arbitrary units in total, respectively (calculations are unchanged, so I'm not providing details here). Their population numbers are 100, 120 and 150 respectively.

The war between Player A and B has lasted more than 10 turns. Their War Weariness values (with respect to each other) are currently 1200 and 2400 respectively.
The war between Player A and C has lasted 9 turns. Their War Weariness values (with respect to each other) are currently 960 and 1440 respectively.

Player A's War Weariness% = max(1200, 960) / 10000 * (1 - 25%) (Honor policy) = 9%
Player A's Supply Reduction% = 9% / 3 = 3%
Player A's War Weariness Unhappiness = 100 * 3% = 3

Player B's War Weariness% = 2400 / 8000 = 30%
Player B's Supply Reduction% = 30% / 3 = 10%
Player B's War Weariness Unhappiness = 120 * 10% = 12

Player C's War Weariness% = 1440 / 12000 = 12%
Player C's Supply Reduction% = 12% / 3 = 4%
Player C's War Weariness Unhappiness = 150 * 4% = 6


During this turn, Player A kills one of Player B's unit worth 60 arbitrary units and there is no other loss or gain (total worth stay the same besides the unit death) for all 3 players.

Since peace is possible between A and B, 1% of total worth is added as War Weariness between both players.
Player A's new War Weariness against Player B = 1200 + (60 / 2) * (1 - 50%) (UA) + 10000 * 1% * (1 - 50%) (UA) = 1265
Player B's new War Weariness against Player A = 2400 + 60 * (1 + 100%) (UA) + 7940 * 1% * (1 + 100%) (UA) = 2678.8

There's no change of War Weariness between A and C, since they can't make peace yet.

Player A's new War Weariness% = max(1265, 960) / 10000 * (1 - 25%) = 9.4875%
Player A's new Supply Reduction% = 9.4875% / 3 = 3.1625%
Player A's new War Weariness Unhappiness = 100 * 3.1625% = 3

Player B's new War Weariness% = 2678.8 / 7940 = 33.738%
Player B's new Supply Reduction% = 33.738% / 3 = 11.246%
Player B's new War Weariness Unhappiness = 120 * 11.246% = 13


Next turn, A and B make peace. A and C are not fighting at all (no loss), but peace is now possible (11 turns).
Player A's new War Weariness against Player B = 1265 / 2 = 632.5
Player B's new War Weariness against Player A = 2678.8 / 2 = 1339.4
Player A's new War Weariness against Player C = 960 + 10000 * 1% * (1 - 50%) = 1010
Player C's new War Weariness against Player A = 1440 + 12000 * 1% = 1560

Player A's new War Weariness% = max(632.5, 1010) / 10000 * (1 - 25%) = 7.575%
Player A's new Supply Reduction% = 7.575% / 3 = 2.525%
Player A's new War Weariness Unhappiness = 100 * 2.525% = 2

Player B's new War Weariness% = 1339.4 / 7940 = 16.869%
Player B's new Supply Reduction% = 16.869% / 3 = 5.623%
Player B's new War Weariness Unhappiness = 120 * 5.623% = 6

Player C's new War Weariness% = 1560 / 12000 = 13%
Player C's new Supply Reduction% = 13% / 3 = 4.333%
Player C's new War Weariness Unhappiness = 150 * 4.333% = 6

Decimals are only left here for clarity. In the actual game, decimals are likely truncated between each operation.

TL;DR:
1. War Weariness Supply Reduction% and Unhappiness% can only go up while you aren't making peace, even if you aren't suffering or dealing any damage. Raw Supply Reduction and Unhappiness can go down if you have a drastic reduction in total population or if you suddenly disband all your units, but that's already the case now.
2. Making peace with irrelevant parties doesn't reduce your War Weariness. Making peace with the relevant party significantly reduces your War Weariness.
3. You still suffer from War Weariness by doing nothing in a war.
4. Hunnic UA, WW reduction from policies and Warscore boost from policies all do different things. Total War shouldn't increase enemy's War Weariness and Hunnic UA shouldn't increase your Warscore.
5. Now scroll back up and read the thing.



Marked as complex for having DLL + UI + text changes. Probably some new Defines values too.

EDIT 1: Also halve War Weariness at the moment of making peace. This has always been intended but I didn't list it out.
 
Last edited:
I don't like that it only applies the worst war. All of your wars should be cumulative. You should be able to reduce your war weariness by ending any war, not just your worst war (especially since that might not even do anything at all if you have two wars that are producing the same amount of weariness).
 
Last edited:
I don't like that it only applies the worst war. All of your wars should be cumulative. You should be able to reduce your war weariness by ending any war, not just your worst war (especially since that might not even do anything at all if you have two wars that are producing the same amount of weariness).
I would like to hear @azum4roll's opinion on that. I tried to understand the concept presented in the op, but I lost in the middle, and even reading it few times didn't help...
 
It currently works similarly. Only the highest War Damaged inflicted on you counts for war weariness.

I do agree that it would be very problematic to add War Weariness from all sources together; managing even a two-front war would be nearly impossible (your war weariness could be as high as double that of a one front war in this paradigm).

But I think it would work with some factor of diminishing returns.
 
I think you'd be hit too hard by multi-front wars, even if there's hard diminishing returns (like 1/3 for all other wars). And if the dividing factor is too high, might as well ignore them.
 
I feel like to have a hope of people understanding the soup of this mechanic, we need some examples, to see how the new system would function differently than the old one. Honestly, I've read it 3 times and I'm lost.
 
I feel like to have a hope of people understanding the soup of this mechanic, we need some examples, to see how the new system would function differently than the old one. Honestly, I've read it 3 times and I'm lost.
This is the downside of having to list everything out for a proposal. It's not really that complex (not more than it is now), but I felt compelled to also explain a bit about the same numbers being used for Warscore, and the completely hidden "War Damage", "War Value" numbers.

I can list some examples, but those will also be quite long to explain.
 
This is the downside of having to list everything out for a proposal. It's not really that complex (not more than it is now), but I felt compelled to also explain a bit about the same numbers being used for Warscore, and the completely hidden "War Damage", "War Value" numbers.

I can list some examples, but those will also be quite long to explain.
Give it a try. Currently it is a nightmare and many people (like me) can be led to "no" because of that "complexity". If it is something good, give it a chance.
 
Added an example (warning: long!)
 
What will the change do on a very high level? Explain it like I'm 5 yo.
1. War Weariness Supply Reduction% and Unhappiness% can only go up while you aren't making peace, even if you aren't suffering or dealing any damage. Raw Supply Reduction and Unhappiness can go down if you have a drastic reduction in total population or if you suddenly disband all your units, but that's already the case now.

2. Making peace with irrelevant parties doesn't reduce your War Weariness. Making peace with the relevant party significantly reduces your War Weariness.

3. You still suffer from War Weariness by doing nothing in a war.

4. Hunnic UA, WW reduction from policies and Warscore boost from policies all do different things. Total War shouldn't increase enemy's War Weariness and Hunnic UA shouldn't increase your Warscore.
 
1. War Weariness Supply Reduction% and Unhappiness% can only go up while you aren't making peace, even if you aren't suffering or dealing any damage. Raw Supply Reduction and Unhappiness can go down if you have a drastic reduction in total population or if you suddenly disband all your units, but that's already the case now.

2. Making peace with irrelevant parties doesn't reduce your War Weariness. Making peace with the relevant party significantly reduces your War Weariness.

3. You still suffer from War Weariness by doing nothing in a war.

4. Hunnic UA, WW reduction from policies and Warscore boost from policies all do different things. Total War shouldn't increase enemy's War Weariness and Hunnic UA shouldn't increase your Warscore.
Thanks, that makes sense.
 
1. War Weariness Supply Reduction% and Unhappiness% can only go up while you aren't making peace, even if you aren't suffering or dealing any damage. Raw Supply Reduction and Unhappiness can go down if you have a drastic reduction in total population or if you suddenly disband all your units, but that's already the case now.

2. Making peace with irrelevant parties doesn't reduce your War Weariness. Making peace with the relevant party significantly reduces your War Weariness.

3. You still suffer from War Weariness by doing nothing in a war.

4. Hunnic UA, WW reduction from policies and Warscore boost from policies all do different things. Total War shouldn't increase enemy's War Weariness and Hunnic UA shouldn't increase your Warscore.
You can add it to the op with TLDR prefix ;)
 
Sponsored.
 
Ignore the values against AI players if we're human and they haven't offered peace
This exception to war weariness craters the proposal for me. I don't see why it exists.

It seems to mean: If I'm Human, I get to ignore any war weariness inflicted on me by AI, unless they have offered peace.

Doesn't this mean that the Human player doesn't receive any War Weariness Unhappiness if they're losing all their wars against AI who don't want to make peace (because they're winning the war)?

Why is this desireable?
 
Last edited:
Assume Player B is Human.
Player A (the Huns) is at war with Player B and Player C (not co-op). Player A, B, C's cities and units are worth 10000, 8000 and 12000 arbitrary units in total, respectively (calculations are unchanged, so I'm not providing details here). Their population numbers are 100, 120 and 150 respectively.

The war between Player A and B has lasted more than 10 turns. Their War Weariness values (with respect to each other) are currently 1200 and 2400 respectively.
The war between Player A and C has lasted 9 turns. Their War Weariness values (with respect to each other) are currently 960 and 1440 respectively.

Player A's War Weariness% = max(1200, 960) / 10000 * (1 - 25%) (Honor policy) = 9%
Player A's Supply Reduction% = 9% / 3 = 3%
Player A's War Weariness Unhappiness = 100 * 3% = 3

Player B's War Weariness% = 2400 / 8000 = 30%
Player B's Supply Reduction% = 30% / 3 = 10% = 0
Player B's War Weariness Unhappiness = 120 * 10% = 12 = 0

Player C's War Weariness% = 1440 / 12000 = 12%
Player C's Supply Reduction% = 12% / 3 = 4% = 0
Player C's War Weariness Unhappiness = 150 * 4% = 6 = 0
Player B's War Weariness Unhappiness and Supply Reduction are 0. Player A hasn't offered a Peace Deal to B, and therefore
Ignore the values against AI players if we're human and they haven't offered peace.
Player C's War Weariness Unhappiness and Supply Reduction are 0. They've only been at war with A for 9 turns, so can't make peace, and therefore
Ignore the values against players we can't make peace with.
Player A discounts Player C's War Weariness, but in this case doesn't matter because Player B has inflicted more War Weariness anyway.

During this turn, Player A kills one of Player B's unit worth 60 arbitrary units and there is no other loss or gain (total worth stay the same besides the unit death) for all 3 players.


Since peace is possible between A and B, 1% of total worth is added as War Weariness between both players.
Player A's new War Weariness against Player B = 1200 + (60 / 2) * (1 - 50%) (UA) + 10000 * 1% * (1 - 50%) (UA) = 1265
Player B's new War Weariness against Player A = 2400 + 60 * (1 + 100%) (UA) + 7940 * 1% * (1 + 100%) (UA) = 2678.8

There's no change of War Weariness between A and C, since they can't make peace yet.

Player A's new War Weariness% = max(1265, 960) / 10000 * (1 - 25%) = 9.4875%
Player A's new Supply Reduction% = 9.4875% / 3 = 3.1625% = 0
Player A's new War Weariness Unhappiness = 100 * 3.1625% = 3 = 0

Player B's new War Weariness% = 2678.8 / 7940 = 33.738%
Player B's new Supply Reduction% = 33.738% / 3 = 11.246% = 0
Player B's new War Weariness Unhappiness = 120 * 11.246% = 13 = 0
Player B's Unhappiness and Supply Reduction are still 0 because B is still a Human and A hasn't offered a peace deal yet.
Player C's Unhappiness and Supply Reduction are still 0 because they can't make peace yet.

Next turn, A and B make peace. A and C are not fighting at all (no loss), but peace is now possible (11 turns).
Player A's new War Weariness against Player B = 1265 / 2 = 632.5
Player B's new War Weariness against Player A = 2678.8 / 2 = 1339.4
Player A's new War Weariness against Player C = 960 + 10000 * 1% * (1 - 50%) = 1010
Player C's new War Weariness against Player A = 1440 + 12000 * 1% = 1560

Player A's new War Weariness% = max(632.5, 1010) / 10000 * (1 - 25%) = 7.575%
Player A's new Supply Reduction% = 7.575% / 3 = 2.525%
Player A's new War Weariness Unhappiness = 100 * 2.525% = 2

Player B's new War Weariness% = 1339.4 / 7940 = 16.869%
Player B's new Supply Reduction% = 16.869% / 3 = 5.623%
Player B's new War Weariness Unhappiness = 120 * 5.623% = 6

Player C's new War Weariness% = 1560 / 12000 = 13%
Player C's new Supply Reduction% = 13% / 3 = 4.333%
Player C's new War Weariness Unhappiness = 150 * 4.333% = 6

Decimals are only left here for clarity. In the actual game, decimals are likely truncated between each operation.
Player B finally receives Supply Reduction and Unhappiness, as A has offered a peace deal (and B accepted, but that doesn't matter).
Player C finally receives Supply Reduction and Unhappiness, as A and C are allowed to make peace.
Player A receives Supply Reduction and Unhappiness from C instead of B, as A and C are allowed to make peace and B's inflicted War Weariness has halved.
 
Last edited:
Stop using War Damage to calculate War Weariness. Leave that for War Score calculation only.
Make the Hunnic UA (both inflict and receive parts) apply on War Weariness properly, and change the wording to "+100% damage inflicted and -50% damage received during War is counted towards War Weariness".
Very weird to propose to include "damage" in the UA when the only place you mention damage is in decoupling it from War Weariness.

The point of the UA is to state that the Huns' enemies have 200% War Weariness compared to normal when in a war with the Huns, and the Huns have 50% War Weariness whenever in a war with anyone. The current text is perfectly adequate, even for this proposal:
Inflict +100% and receive -50% War Weariness.

Unless you want War Damage from the Huns to apply to War Weariness, which doesn't seem to be the case.

If you need to also take into account the Supply Reduction because you've decided that the two need separate terms (despite them being inseparable), then modify the text to:
Inflict +100% and receive -50% War Weariness and Supply Reduction from War.
 
Last edited:
This one is still really hard to digest. The recent examples help me understand the current system, but I still don't have a good understanding of how its different than the current. When would the systems produce notably different results as an example?
 
This one is still really hard to digest. The recent examples help me understand the current system, but I still don't have a good understanding of how its different than the current. When would the systems produce notably different results as an example?
Does the TL;DR not help?
 
Status
Not open for further replies.
Top Bottom