Follow-up Comment #7, bug #21992 (project freeciv): Sorry to catch this so late: the attached patch doesn't solve the problem I intended to report, although it does improve things to some degree with the existing rulesets (so there's no point reverting it).
More specifically, it is possible to use PRESENT=FALSE as a means to allow semi-disjunction: given a set of values in a range, using FALSE for all the unacceptable values (making any acceptable values inherently true), so that one may have more than one acceptable value. This is semantically distinct from the use to indicate that something is obsolete or redundant. The right solution (which belongs in another patch) is to evaluate the effect for the improvement, and determine if another improvement provides that effect in such a way that this improvement isn't useful. To put this another way, we shouldn't impose semantic meaning on the notation n the ruleset (present=FALSE), but rather analyze the improvement to determine if it is redundant. An example of how the current patch might go wrong: imagine an improvement that provides +1 happiness if there are less than 4 units in the city: with this patch, that would be marked redundant for overpopulated cities (and sold with "Sell All Redundant", whereas an nreqs-based implementation would use present=FALSE to indicate the effect shouldn't work, so that the nreqs weren't triggered (as the improvement becomes useful again as soon as there are fewer units in the city). _______________________________________________________ Reply to this item at: <http://gna.org/bugs/?21992> _______________________________________________ Message sent via/by Gna! http://gna.org/ _______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev