Ticket #44748

Define what is "Special" building genus

Eröffnet am: 2022-06-04 02:42 Letztes Update: 2022-12-10 18:30

Auswertung:
Verantwortlicher:
(Keine)
Typ:
Status:
Offen
Komponente:
Meilenstein:
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine

Details

Related to #44696.

Classified is a bug because some uses of it in loadable ruleset raise warnings, and errors are not known but possible. Originally, "Special" genus was used for spaceship parts, and for coinage that got its own genus in latest versions; these buildings are fixed to this genus in HRM824590 but not vice versa. These buildings are not built into improvements of a city and the code sometimes suggests that this genus can never, but effectively, it can. "Special" buildings with no mentioned special properties effectively work like normal improvements but can't be sold or lost on city conquest, have not checked sabotaging them; maybe supporting unsellable non-unique buildings is not a useless option though it could have been done in some better way.

So, we should agree on either preventing their non-standard use in rulesets (that potentially contradicts how spaceship effects work to the extent we can't call it the same dff any more) or specifying how it should be handled with emitting no warnings in possible cases and avoiding AI confusion where it's not too difficult.

Ticket-Verlauf (3/8 Historien)

2022-06-04 02:42 Aktualisiert von: ihnatus
  • New Ticket "Define what is "Special" building genus" created
2022-06-04 03:38 Aktualisiert von: alienvalkyrie
Kommentar

This is something I'd been thinking about for a long time (at least since HRM#921525), and the way I always figured might be sensible to define it would be that "Special" means "when finished, does not persist in the city" (if I'm not mistaken, this functionality is currently tied to the spaceship part effects). This interpretation is pretty close to the "projects" concept of modern civ games: Things a city can build, that provide some benefit when completed, but don't leave behind a building. Given that we already have on-build effects like "Give_Imm_Tech" (Darwin's Voyage), this might be a reasonable thing to expand on.

Note: Any actual action we take here (beyond maybe adding deprecation warnings) is almost certainly gonna change dff (quite possibly even in a non-rscompat-able way), i.e. we can do that only starting with freeciv-3.2 (or maybe squeezed into S3_1, with a lot of ifs and buts attached).

2022-06-06 09:24 Aktualisiert von: cazfi
Kommentar

Reply To alienvalkyrie

Note: Any actual action we take here (beyond maybe adding deprecation warnings) is almost certainly gonna change dff

Complicated if such a change classify as a bugfix (I think that's why ihnatus started with "Classified is a bug..."). Which is sometimes hairy to declare as we don't have much specification beyond what the code implements, and even if developers meant something else than what the code implements, we can't just break things for users who have interpreted code to be correct.

2022-07-19 13:13 Aktualisiert von: cazfi
Kommentar

Reply To ihnatus

maybe supporting unsellable non-unique buildings is not a useless option

If this means that there can be unsellable buildings with upkeep -> clearly classifies as a bug. Those can force player balance to negative with no means to fix the situation, and a negative balance is considered an illegal game state.

2022-07-21 04:59 Aktualisiert von: ihnatus
Kommentar

Reply To cazfi

Reply To ihnatus

maybe supporting unsellable non-unique buildings is not a useless option

If this means that there can be unsellable buildings with upkeep -> clearly classifies as a bug. Those can force player balance to negative with no means to fix the situation, and a negative balance is considered an illegal game state.

Well, if only we don't prohibit it having upkeep (which is now redundant any way)...

2022-08-05 08:58 Aktualisiert von: cazfi
2022-10-07 09:28 Aktualisiert von: cazfi
2022-12-10 18:30 Aktualisiert von: cazfi

Dateianhangliste

Keine Anhänge

Bearbeiten

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