There still might be an issue with the promoChoice, when that should be dependent on the selected sets. I fixed the parsing of promoChoice such that an empty string now results in all non-royal, non-promoting pieces that end up in the table. (This had always been the intention, but was not working because promoDepth was not set to the zone depth in that case.) This would be sufficient for CwDA, but cannot handle collections with different complex promotion rules.
Perhaps it should be made possible to specify a promoChoice within the sets, which then could also be ignored if the set was not selected. This would still be problematic when two sets are selected in a different-armies context, because the second would overwrite the first. Perhaps the values should be appended, with an initial empty string (which then also would be the default).
Currently morph can also not be used within a set > 0, because when the set is not selected the morph would still be parsed, and count for the last piece that was accepted so far. Even if that was from another set. So I suppose morphs must also be suppressed depending on whether the set these are defined in is selected or not. That would offer the opportunity to give different sets pieces with their own promotion rules. By defining a promoChoice with multiple promotion sets in set 0, and then have the morph in the set refer to the applicable one.
[Edit] I now set it up that way. The promoChoice values in selected sets (or set 0) are accumulated, and morph instructions in inactive sets are ignored.
There still might be an issue with the promoChoice, when that should be dependent on the selected sets. I fixed the parsing of promoChoice such that an empty string now results in all non-royal, non-promoting pieces that end up in the table. (This had always been the intention, but was not working because promoDepth was not set to the zone depth in that case.) This would be sufficient for CwDA, but cannot handle collections with different complex promotion rules.
Perhaps it should be made possible to specify a promoChoice within the sets, which then could also be ignored if the set was not selected. This would still be problematic when two sets are selected in a different-armies context, because the second would overwrite the first. Perhaps the values should be appended, with an initial empty string (which then also would be the default).
Currently morph can also not be used within a set > 0, because when the set is not selected the morph would still be parsed, and count for the last piece that was accepted so far. Even if that was from another set. So I suppose morphs must also be suppressed depending on whether the set these are defined in is selected or not. That would offer the opportunity to give different sets pieces with their own promotion rules. By defining a promoChoice with multiple promotion sets in set 0, and then have the morph in the set refer to the applicable one.
[Edit] I now set it up that way. The promoChoice values in selected sets (or set 0) are accumulated, and morph instructions in inactive sets are ignored.