From: <jde...@us...> - 2010-10-19 10:16:18
|
Revision: 13498 http://pcgen.svn.sourceforge.net/pcgen/?rev=13498&view=rev Author: jdempsey Date: 2010-10-19 10:16:12 +0000 (Tue, 19 Oct 2010) Log Message: ----------- Fix bug: SERVESAS doesn't working in a multipart prexxx Issue#: CODE-346 Modified Paths: -------------- branches/5.16.x/pcgen/code/src/java/pcgen/core/prereq/PrerequisiteUtilities.java Modified: branches/5.16.x/pcgen/code/src/java/pcgen/core/prereq/PrerequisiteUtilities.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/core/prereq/PrerequisiteUtilities.java 2010-10-19 04:28:56 UTC (rev 13497) +++ branches/5.16.x/pcgen/code/src/java/pcgen/core/prereq/PrerequisiteUtilities.java 2010-10-19 10:16:12 UTC (rev 13498) @@ -31,6 +31,7 @@ import java.util.List; import java.util.StringTokenizer; +import pcgen.base.lang.StringUtil; import pcgen.cdom.base.CDOMReference; import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.ObjectKey; @@ -228,6 +229,7 @@ int runningTotal = 0; final List<Ability> abilityList = buildAbilityList(character, categoryName, category); + Logging.errorPrint("Checking for " + key + " in " + StringUtil.join(abilityList, ",")); if (!abilityList.isEmpty()) { for (Ability ability : abilityList) @@ -251,7 +253,14 @@ runningTotal++; if (ability.getSafe(ObjectKey.MULTIPLE_ALLOWED) && countMults) { - runningTotal += (character.getSelectCorrectedAssociationCount(ability) - 1); + // SERVESAS occurrences might mean this is less than zero, in which case ignore it + // This still leaves the instance where more than one of an item is desired + // and one instance is a SERVESAS, but that is a high cost corner case. + int numOccurs = character.getSelectCorrectedAssociationCount(ability) - 1; + if (numOccurs > 0) + { + runningTotal += numOccurs; + } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |