待辦事項 #45515

reqtext.c and "Tile" range

啟用日期: 2022-08-30 06:30 最後更新: 2022-08-30 20:42

回報者:
負責人:
(無)
類型:
狀態:
開啟
元件:
里程碑:
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
檔案:

細節

Noticed in master reqtext.c handling of VUT_DIPLREL_UNITANY_O that text related to REQ_RANGE_LOCAL says "...the tile should...". Something is wrong here; likely that should have been moved to REQ_RANGE_TILE when the new range was introduced.

Haven't investigated any more, e.g., to see if reqtext.c has been overlooked in general when introducing REQ_RANGE_TILE.

Ticket History (3/4 Histories)

2022-08-30 06:30 Updated by: cazfi
  • New Ticket "reqtext.c and "Tile" range" created
2022-08-30 18:31 Updated by: alienvalkyrie
評語

Reply To cazfi

Haven't investigated any more, e.g., to see if reqtext.c has been overlooked in general when introducing REQ_RANGE_TILE.

It has not been overlooked, but I may have missed or messed up some individual requirement types. I'm currently going over the diff to check if anything else is affected.

2022-08-30 18:59 Updated by: alienvalkyrie
評語

So here's the deal: For VUT_DIPLREL_TILE and VUT_DIPLREL_UNITANY, the "tile owner" and "owner of a unit on the tile" part, respectively, clearly comes from the requirement type and is present at all ranges, the ranges being Player/Team/Alliance relative to the tile/unit owner; with the Local range being special in that instead of being "tile/unit owner (or someone in the given range) has this relationship with anyone", it's "tile/unit owner has this relationship with the target player".

For VUT_DIPLREL_TILE_O and VUT_DIPLREL_UNITANY_O (which are currently only valid at Local range), there is an argument to be made that the same thing applies – the requirement type fundamentally applies to the owner of the target tile (or a unit therein), and the local-ranged _O requirement perfectly mirrors the local-ranged non-_O requirement, except against the other player instead of the target player.
However, given that this ticket exists, there is clearly an argument to be made that this is unintuitive and should be moved from the Local to the Tile range (perhaps for the non-_O requirements as well?), with subsequent expansion potential to (C)Adjacent ranges in the future.

Really, thinking about it, there are three-ish potential questions:

  • Does a tile/unit owner (or related player) have the relationship with anyone? (Currently non-_O at player-like ranges)
  • Does a tile/unit owner (or related player) have the relationship with the target player (or related player)? (Currently non-_O at local range ~> at tile-like ranges)
  • Does a tile/unit owner (or related player) have the relationship with the other player (or related player)? (Currently _O at local range ~> at tile-like ranges)

And there are between two and three places where ranges could play into it:

  • Player-like ranges: Which players related to the tile/unit owners are considered? (Currently non-_O at player-like ranges; everything else falls back to Player)
  • Tile-like ranges: Which tiles are considered to find tile/unit owners? (If we move from Local to Tile range, then all at tile-like ranges; everything else falls back to Tile)
  • Also player-like ranges: Only for the bottom two questions: Which players related to the target/other player are considered? (Currently, everything falls back to Player)
    Note that the top question is effectively equivalent to either of the bottom questions with this as World range

Obviously, we don't have a mechanism to pass multiple ranges for one requirement, but this might still be worth thinking about to decide what we want each thing to mean. In particular, it shines a light on the fact that the non-_O reqs currently serve two very different purposes (only one of which can be mirrored by the _O reqs).

2022-08-30 20:42 Updated by: cazfi
評語

Reply To alienvalkyrie

However, given that this ticket exists, there is clearly an argument to be made that this is unintuitive

Before you put too much weight on that, be aware of the route I came to question it, while working on translation. So I only saw this "blah blah TILE blah blah" -string in the .po file, and wanted to check something about it from the source code (probably #45514 - to see if one of the strings in the .po file was supposed to be negated version of the other), and then noticed that in the source code the previous line was "case req_range_LOCAL:"

Attachment File List

No attachments

編輯

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