I'm not sure if we had a discussion on this before or not but pretty much the problem is this :
While there are many things a player can do to prevent city curses - diplomacy, denial of enemy scouting, etc - there isn't much they can do after the fact. In general nothing short of completely eliminating the enemy player works efficiently and this can be more of a problem now with higher enemy counts and due to map distances, a much higher opportunity cost of these kinds of wars.
I'm posting this now because I have a new idea how to solve this so I'll make a list of all the ideas gathered the past months and what I think of them.
1. Pay a bribe (gold) for dispelling city curses while in a peace treaty.
This is a reasonably good solution that still comes with a cost for the player as a punishment for not preventing the city curses in the first place.
While gold in general isn't as valuable as casting skill the city curse already did damage to your cities so from the AI's perspective, that damage + the profits make it a fair deal in exchange for the casting opportunity cost.
The main issue I see is how the curses attack player economy in the first place so in the case you need it most, it's already too late and it won't save you...but that might be for the best.
2. AI cancels the curses for free during the peace treaty.
This was what the original game did.
Not a fan, it's easy to abuse and there is no compensation for the AI for all the casting skill used.
Still it might be worth considering to make this possible as a modding.ini feature even if it's off by default.
3. AI cancels the curses gradually during peace/wizard's pact/alliance.
This is a softer version of the above. While the AI still gives up the curses for free, it also encourages the player to maintain the good relations with the wizard instead of backstabbing them after the curses are gone. It also punishes the players who let things escalate too far as it's only a good solution while there aren't too many curses yet.
I currently think this is the best possible solution but only for wizard's pact and alliance relations, as normal peace treaties are too easy to get.
I also think the rate of curse removal should be in modding.ini, and different for each treaty status, maybe around 0.75 curses removed per turn for pacts and much more (3-5) for alliances.
4. AI spells are easier to dispel while they are banished.
While the others are diplomatic solutions, this would be the military one. Conquering every single city to eliminate curses is too much to ask for, and conquering the fortress only to remove them automatically for free is too powerful considering how the game's systems make multi-stage attacks almost impossible to defend against, even in the fortress city. However if banishing a wizard would make all their spells easier to dispel, pushing Disenchant Area into the economically viable solution area, that's good enough.
The best way to implement this is probably a DispelResistance.CAS modding file with a default of 1/3 resistance for city spells and 75% resistance for everything else for banished wizards.
While there are many things a player can do to prevent city curses - diplomacy, denial of enemy scouting, etc - there isn't much they can do after the fact. In general nothing short of completely eliminating the enemy player works efficiently and this can be more of a problem now with higher enemy counts and due to map distances, a much higher opportunity cost of these kinds of wars.
I'm posting this now because I have a new idea how to solve this so I'll make a list of all the ideas gathered the past months and what I think of them.
1. Pay a bribe (gold) for dispelling city curses while in a peace treaty.
This is a reasonably good solution that still comes with a cost for the player as a punishment for not preventing the city curses in the first place.
While gold in general isn't as valuable as casting skill the city curse already did damage to your cities so from the AI's perspective, that damage + the profits make it a fair deal in exchange for the casting opportunity cost.
The main issue I see is how the curses attack player economy in the first place so in the case you need it most, it's already too late and it won't save you...but that might be for the best.
2. AI cancels the curses for free during the peace treaty.
This was what the original game did.
Not a fan, it's easy to abuse and there is no compensation for the AI for all the casting skill used.
Still it might be worth considering to make this possible as a modding.ini feature even if it's off by default.
3. AI cancels the curses gradually during peace/wizard's pact/alliance.
This is a softer version of the above. While the AI still gives up the curses for free, it also encourages the player to maintain the good relations with the wizard instead of backstabbing them after the curses are gone. It also punishes the players who let things escalate too far as it's only a good solution while there aren't too many curses yet.
I currently think this is the best possible solution but only for wizard's pact and alliance relations, as normal peace treaties are too easy to get.
I also think the rate of curse removal should be in modding.ini, and different for each treaty status, maybe around 0.75 curses removed per turn for pacts and much more (3-5) for alliances.
4. AI spells are easier to dispel while they are banished.
While the others are diplomatic solutions, this would be the military one. Conquering every single city to eliminate curses is too much to ask for, and conquering the fortress only to remove them automatically for free is too powerful considering how the game's systems make multi-stage attacks almost impossible to defend against, even in the fortress city. However if banishing a wizard would make all their spells easier to dispel, pushing Disenchant Area into the economically viable solution area, that's good enough.
The best way to implement this is probably a DispelResistance.CAS modding file with a default of 1/3 resistance for city spells and 75% resistance for everything else for banished wizards.