Help has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Task #920845


Decouple "all or nothing" diplomacy mechanics.

Added by Lexxie L over 2 years ago. Updated over 2 years ago.

Start date:
Due date:
% Done:


Estimated time:


1. Previously, you could only do diplomatic action with an embassy; this was especially ridiculous for things like, you can't agree to a cease-fire to prevent an alliance being broken up. Then you're forced into Peace with an Ally because you made first contact with his other ally which automatically triggered war and you can't be at war with your ally's ally and so now you're at Peace with your ally and all your units are paralysed in their territory. This is one of countless ridiculous stupidities to the janky square logic of freeciv diplomacy that needs a complete upgrade.

2. Then, someone came up with contact_turns, which added a slight bit of grey but is ultimately useless because, it invalidates the raison d'etre for diplomats and also in multiplayer games, you can't have diplomacy accelerated on steroids with no need for embassies at all. That's because it puts proliferation and other human-ingenuity exploits on methamphetamines with 2L of caffe espresso for a chaser.

The main problem. The choice of what you can or can't do based on embassy is ALL or NOTHING. This is the same as having the the ability to move, attack, bombard, and pillage, all stuck in one actionenabler and you get all of them all or none at all.

Diplomacy in freeciv is especially janky because of hard reqs in a square logic tree, not emulating even close the soft curves and fractals of real life diplomacy, and players in human games are often swearing about it a lot.

As a use case, consider freeciv-web had to do a hacky patch so that contact allows only cease-fire or peace, and an embassy is needed for all other things. What we really need, is something like a "pact_enabler", it's similar to actionenabler but for different types of clauses.

This doesn't solve janky diplomacy but can make it bearable. I hope others will start thinking about giving diplomacy as much power as all these other req vectors are doing for other things. I know most coders are several standard deviations below in political and diplomacy skills and enthusiasm, so let's please try to think of things to make this game get a bigger following for neurotypicals.

Related issues

Related to Freeciv - Feature #921074: Complex diplomatic treatiesNew

Has duplicate Freeciv - Task #920846: Decouple "all or nothing" diplomacy mechanics.Closed

Actions #1

Updated by Alexandro Ignatiev over 2 years ago

It seems to me we already can track presence of an embassy with "DiplRel", *, "Local" in *er_reqs of a clause in v.3.1?

What really worth thinking about is switching off embassy information during a wartime without planting spies, as it is in Civilization III.

Actions #2

Updated by Sveinung Kvilhaugsvik over 2 years ago

  • Has duplicate Task #920846: Decouple "all or nothing" diplomacy mechanics. added
Actions #3

Updated by Sveinung Kvilhaugsvik over 2 years ago

Actions #4

Updated by Marko Lindqvist over 2 years ago

Alexandro Ignatiev wrote:

It seems to me we already can track presence of an embassy with "DiplRel", *, "Local" in *er_reqs of a clause in v.3.1?

Clause requirements are a beginning, but far from full extend of the diplomacy rework I had in mind for 3.1. Just haven't have time to implement more of it. Maybe to 3.2...

Also available in: Atom PDF