Tíquete #44748

Define what is "Special" building genus

: 2022-06-04 02:42 Última Atualização: 2023-09-06 22:45

Relator:
Dono:
(Nenhum)
Tipo:
Estado:
Aberto
Componente:
Marcos:
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Nenhum
Arquivo:
Nenhum

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 History (3/12 Histories)

2022-06-04 02:42 Updated by: ihnatus
  • New Ticket "Define what is "Special" building genus" created
2022-06-04 03:38 Updated by: alienvalkyrie
Comentário

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 Updated by: cazfi
Comentário

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 Updated by: cazfi
Comentário

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 Updated by: ihnatus
Comentário

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 Updated by: cazfi
2022-10-07 09:28 Updated by: cazfi
2022-12-10 18:30 Updated by: cazfi
2023-02-03 01:59 Updated by: cazfi
2023-04-04 03:07 Updated by: cazfi
2023-06-30 21:09 Updated by: cazfi
2023-09-06 22:45 Updated by: cazfi
Comentário

As this has d3f parts, targeting to next possible one (S3_2). We can later split non-d3f parts, if those are wanted in earlier branches.

Attachment File List

No attachments

Editar

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