From: <th...@us...> - 2007-08-24 03:38:13
|
Revision: 3870 http://pcgen.svn.sourceforge.net/pcgen/?rev=3870&view=rev Author: thpr Date: 2007-08-23 20:38:16 -0700 (Thu, 23 Aug 2007) Log Message: ----------- Fix problem with FEATs in test cases & Ranger problem reported on pcgen list Modified Paths: -------------- Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java Modified: Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java =================================================================== --- Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java 2007-08-23 01:28:50 UTC (rev 3869) +++ Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java 2007-08-24 03:38:16 UTC (rev 3870) @@ -43,6 +43,8 @@ public boolean parse(PObject target, String value, int level) { final StringTokenizer tok = new StringTokenizer(value, Constants.PIPE); + + tok.nextToken(); // Throw away FEAT ArrayList<Prerequisite> preReqs = new ArrayList<Prerequisite>(); if (level > -9) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-01-30 01:28:26
|
Revision: 5049 http://pcgen.svn.sourceforge.net/pcgen/?rev=5049&view=rev Author: thpr Date: 2008-01-29 17:28:31 -0800 (Tue, 29 Jan 2008) Log Message: ----------- [ 1882211 ] Add support for .CLEAR in AUTO:FEAT Issue#: 1882211 Modified Paths: -------------- Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java Modified: Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java =================================================================== --- Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java 2008-01-30 00:41:50 UTC (rev 5048) +++ Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java 2008-01-30 01:28:31 UTC (rev 5049) @@ -31,6 +31,7 @@ import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.AutoLstToken; import pcgen.persistence.lst.prereq.PreParserFactory; +import pcgen.util.Logging; public class FeatToken implements AutoLstToken { @@ -64,12 +65,33 @@ return false; } } + boolean first = true; while (tok.hasMoreTokens()) { String feat = tok.nextToken(); - if (feat.startsWith(".CLEAR.")) + if (feat.equals(".CLEAR")) { + if (!first) + { + Logging.errorPrint("Non-sensical use of .CLEAR" + + " in AUTO:FEAT, must appear first: " + value); + return false; + } List<QualifiedObject<String>> ao = + target.getRawAbilityObjects(AbilityCategory.FEAT, + Ability.Nature.AUTOMATIC); + for (QualifiedObject<String> qo : ao) + { + if (qo instanceof QualifiedObject.AutoQualifiedObject) + { + target.removeAbility(AbilityCategory.FEAT, + Ability.Nature.AUTOMATIC, qo); + } + } + } + else if (feat.startsWith(".CLEAR.")) + { + List<QualifiedObject<String>> ao = target.getRawAbilityObjects(AbilityCategory.FEAT, Ability.Nature.AUTOMATIC); for (QualifiedObject<String> qo : ao) @@ -93,6 +115,7 @@ new QualifiedObject.AutoQualifiedObject<String>(feat, preReqs)); } + first = false; } return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-02-02 03:29:45
|
Revision: 5074 http://pcgen.svn.sourceforge.net/pcgen/?rev=5074&view=rev Author: thpr Date: 2008-02-01 19:29:46 -0800 (Fri, 01 Feb 2008) Log Message: ----------- [ 1829360 ] AUTO:FEAT|.CLEAR.Summon Familiar Issue#: 1829360 Modified Paths: -------------- Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java Modified: Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java =================================================================== --- Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java 2008-02-02 03:12:08 UTC (rev 5073) +++ Trunk/pcgen/code/src/java/plugin/lsttokens/auto/FeatToken.java 2008-02-02 03:29:46 UTC (rev 5074) @@ -94,13 +94,21 @@ List<QualifiedObject<String>> ao = target.getRawAbilityObjects(AbilityCategory.FEAT, Ability.Nature.AUTOMATIC); - for (QualifiedObject<String> qo : ao) + /* + * Have to clone the list to avoid a ConcurrentModificationException + */ + for (QualifiedObject<String> qo : new ArrayList<QualifiedObject<String>>(ao)) { if (qo instanceof QualifiedObject.AutoQualifiedObject) { String name = feat.substring(7); + /* + * Note the .toString on the preReqs lists here - + * painful, but necessary since the 5.x Prerequisite + * doesn't implement .equals() + */ if (name.equalsIgnoreCase(qo.getObject(null)) - && preReqs.equals(qo.getPrereqs())) + && preReqs.toString().equals(qo.getPrereqs().toString())) { target.removeAbility(AbilityCategory.FEAT, Ability.Nature.AUTOMATIC, qo); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |