Follow-up Comment #2, patch #4894 (project freeciv):
To confirm, the intent is to use the same nativity logic as is used for
If the tile's terrain is native, the tile is native
If the tile contains nativity-granting extras, the tile is native.
If the tile contains a city then:
() If the unit has UCF_BUILD_ANYWHERE, then the city tile is native
() If the tile or an adjacent tile is native, then the city tile is native
() If the city belongs to a city channel, then the city tile is native
And in all cases above, tile nativity == !TransportDependent, so a spyship
(without UCF_BUILD_ANYWHERE) on a trailer (cargo: spyship's class), in a
landlocked city would be unable to act?
On double negatives: I don't think the internal representation having many
negatives matters, so long as the expression doesn't typically require
thinking in double negatives for ruleset authors. If there is a reason to
prefer present requirements to !present requirements, use of "NativeLocation"
would mean much the same.
On banning actions when transported, rather than when on non-native: if there
is a UnitState requirement, having an "IsTransported" state may be potentially
useful anyway, even if not required to implement this specific abstraction.
Reply to this item at:
Message sent via/by Gna!
Freeciv-dev mailing list