Ticket #45949

Expand flexibility of contactturns

Eröffnet am: 2022-10-22 14:29 Letztes Update: 2022-12-05 20:16

5 - Mittel
5 - Mittel


In multiplayer games with high number of players, the default state of "War" after meeting can create some ridiculous situations, such as huge cost of diplomacy making 15 diplomats just to get a status other than "War" with nations in the region. Well, just ignore it and make a verbal peace deal, right? No, because "War" diplrel has in-game consequences such as disallowing players to make alliances and in some cases can even break people's pacts etc.

At FCW, several years ago we hard-coded an emergency playability patch using "contactturns", where, you are allowed to do Cease-fire or Peace without embassy based on "contactturns" meeting. BUT require embassy for all other pacts. This has worked so well that people can't even imagine (large multiplayer) games without it. However, it remains an ugly hack-patch living in a fork of the main project. What the rest of the project needs and deserves is to selectively allow/disable certain types of pacts based on embassy AND/OR contactturns. That is, some pacts require contactturns, other pacts require embassy, and the ruleset or game settings can decide it.

Afterthought: Always when making things like this, it's good to think ahead, whether 3 easy lines of code can expand functionality to other cases. e.g., how hard was it to add "Always" flag for tp_defense instead of just "Alight" and "Block"? In the spirit of such good practices, I fell that in addition to "Contact" and "Embassy" another req condition for pacts can be "Always", since it almost codes itself into the solution anyway.

Ticket-Verlauf (3/7 Historien)

2022-10-22 14:29 Aktualisiert von: lexxie9952
  • New Ticket "Expand flexibility of contactturns" created
2022-10-22 16:20 Aktualisiert von: cazfi

Isn't all that possible already? While we don't have requirement type for "active contact", it's implicit from the fact that you can have the meeting at all.

2022-10-22 17:37 Aktualisiert von: lexxie9952

Reply To cazfi

Isn't all that possible already? While we don't have requirement type for "active contact", it's implicit from the fact that you can have the meeting at all.

Did something happen lately in 3.2? My understanding is you have "contactturns" on and this allows all pacts, or you have it off and embassy is required. There is no way to make cease-fire and peace pacts allowable with contact, but all other pacts allowed only by embassy. ... Or it used to be this way, unless something changed I don't know about.

2022-10-22 17:49 Aktualisiert von: cazfi

Reply To lexxie9952

Did something happen lately in 3.2?

Clause requirements went in 2019 (whether you consider that "lately" or not, is up to you): https://www.hostedredmine.com/issues/768208

IIRC they were included in the never-merged updates I submitted to FCW.

2022-11-20 19:50 Aktualisiert von: lexxie9952

Wow, super! Please don't confuse the fact I'm learning to code freeciv pretty well by now, with the fact I have any competence at all in git things, which I do not, and is quite frustrating (probably for both of us!) But I do what I can to try to help both of us.

2022-11-20 19:55 Aktualisiert von: lexxie9952

So, if I understand correctly, implement this, and require Embassy for everything except Cease-fire or Peace.

2022-12-05 20:16 Aktualisiert von: cazfi
  • Status Update from Offen to Geschlossen
  • Verantwortlicher Update from (Keine) to cazfi
  • Lösung Update from Keine to Rejected


Keine Anhänge


You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden