tu_79
Deity
I think the number of cities each civ has should be taken into account. If you are a very tall civ and take one or two cities from your very aggressive expansionist neighbour, no one should be really worried about that. Also, holy cities and capitals, as you pointed out, are very strong targets.Diplo AI has been getting a lot smarter over time with my modifications, however whether they choose to DoW if you insult them is actually random (friends will never declare, and friendly approach/opinion reduces the chances, but still). Perhaps that's something to be looked at.
I see your point, although I still feel there's a distinction between capturing a forward-settled city and using a one city exemption to capture a capital with lower penalties.
You aren't intended to be the #1 bad guy in the world for capturing two cities - I captured three in my most recent game, two of my neighbors hated warmongering and yet I didn't get massive penalties for it (I did get massive penalties with Morocco for capturing his cities, but that's to be expected). Perhaps your neighbors just rolled 10's for warmonger hatred scores or something?
---
We could try something like (in pseudocode):
Code:If other player is aggressor and we've only captured one city: - And the other city is a border city with ours, - And the other city isn't an original capital or Holy City, - And the other city isn't the other player's only city, Then reduce warmongering penalties for city capture by 50%.
Remember, though, that warmongering penalties aren't just for realism, they're meant to signal to the AI whether you're dangerous and risk attacking them - and to apply a mechanical penalty to unit CS and make conquest harder.
Another thing to consider: the player who declared war may be the aggressor, but perhaps they declared war in response to being backstabbed, or having their capital captured, or to regain their lost cities, or for any number of other "legitimate" reasons. In this case, reducing warmongering penalties wouldn't be a smart move for other AIs - even if the AI "shouldn't" have DoW'd someone stronger, the other player is still the real aggressor here.
The Casus Belli system from Civ 6 comes to mind...
So, what if you set two kinds of targets: Strong and weak. Strong targets are capitals, holy cities and big cities from a neighbor with fewer cities or population than the aggressor. Weak targets are all the rest. Make weak targets be just a third of the penalty of a strong target. Three low value cities equals one big city.