Follow-up Comment #4, patch #1341 (project freeciv):
I'll test these conditions to verify, but from code interpretation:
1) Because, unlike other requirements vectors, obsolete_by is disjunctive,
Barracks is interpreted as obsolete by improvement_obsolete(), so handled
appropriately. Thinking about this, I suppose another way to consider bug
#21419 would have been to change the semantics to "sustained_until" or
similar, and have all the requirements negated, but if we did that, the result
would end up the same.
2) All calls to building_upgrades_to() are from constructions that check
can_city_build_improvement_foo(), so that one would build Barracks in that
city. I suspect this is a bug, and that this behaviour should be prevented.
I don't beleive the client offers the choice, or the AI tries to do it because
of improvement redundancy, but that's not sufficient guard (one could
construct a hacked client that would miss a client-only guard).
Reply to this item at:
Message sent via/by Gna!
Freeciv-dev mailing list