From: <jfr...@us...> - 2007-12-11 15:54:29
|
Revision: 4708 http://pcgen.svn.sourceforge.net/pcgen/?rev=4708&view=rev Author: jfrazierjr Date: 2007-12-11 07:54:33 -0800 (Tue, 11 Dec 2007) Log Message: ----------- Fixing DIESIZES to take MIN/MAX parameters Fixing the calcHitDieLock to not have hard coded min/max values. This is now taken from the GameMode set min or max as needed. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/GameMode.java Trunk/pcgen/code/src/java/pcgen/core/Globals.java Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Modified: Trunk/pcgen/code/src/java/pcgen/core/GameMode.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/GameMode.java 2007-12-11 13:55:18 UTC (rev 4707) +++ Trunk/pcgen/code/src/java/pcgen/core/GameMode.java 2007-12-11 15:54:33 UTC (rev 4708) @@ -177,6 +177,8 @@ private String thePreviewDir; private String theDefaultPreviewSheet; private int [] dieSizes; + private int maxDieSize = 12; + private int minDieSize = 4; /** * Creates a new instance of GameMode. @@ -3306,16 +3308,39 @@ { String aString = aTok.nextToken(); // in case there is training\leading whitespace after the comma split - aString = aString.trim(); + aString = aString.trim(); + String minValue; + String maxValue; + try { - int die = Integer.parseInt(aString); - list.add(die); + if (aString.contains("MIN=")) + { + String[] t = aString.split("MIN="); + minValue = t[1]; + int die = Integer.parseInt(minValue); + setMinDieSize(die); + list.add(die); + } + else if (aString.contains("MAX=")) + { + String[] t = aString.split("MAX="); + maxValue = t[1]; + int die = Integer.parseInt(maxValue); + setMaxDieSize(die); + list.add(die); + } + else + { + int die = Integer.parseInt(aString); + list.add(die); + } } catch (NumberFormatException e) { Logging.errorPrint("Invalid integer value for DIESIZES: " + aString + ". Original value: DIESIZES:"+ value); } + } if (list.size() == 0) { @@ -3331,7 +3356,43 @@ list = null; this.setDieSizes(dieSizes); } + /** + * Get's current gamemodes MaxDieSize + * @return maxDieSize + */ + public int getMaxDieSize() + { + return maxDieSize; + } + /** + * Sets's current gamemodes MaxDieSize + * @param dice + */ + public void setMaxDieSize(final int dice) + { + maxDieSize = dice; + } + + /** + * Get's current gamemodes MinDieSize + * @return minDieSize + */ + public int getMinDieSize() + { + return minDieSize; + } + /** + * Sets's current gamemodes MinDieSize + * @param dice + */ + public void setMinDieSize(final int dice) + { + minDieSize = dice; + } + + + /** * Get's current gamemodes DieSizes * @return dieSizes array */ Modified: Trunk/pcgen/code/src/java/pcgen/core/Globals.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Globals.java 2007-12-11 13:55:18 UTC (rev 4707) +++ Trunk/pcgen/code/src/java/pcgen/core/Globals.java 2007-12-11 15:54:33 UTC (rev 4708) @@ -3639,4 +3639,22 @@ { return SettingsHandler.getGame().getDieSizes(); } + /** + * Get's current gamemodes MinDieSize + * @return minDieSize + */ + public static int getMaxDieSize() + { + return SettingsHandler.getGame().getMaxDieSize(); + } + /** + * Get's current gamemodes MaxDieSize + * @return minDieSize + */ + public static int getMinDieSize() + { + return SettingsHandler.getGame().getMinDieSize(); + } + + } Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2007-12-11 13:55:18 UTC (rev 4707) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2007-12-11 15:54:33 UTC (rev 4708) @@ -1863,7 +1863,24 @@ */ private int calcHitDieLock(String dieLock, final int currDie) { final int[] dieSizes = Globals.getDieSizes(); + final int maxDie = Globals.getMaxDieSize(); + final int minDie = Globals.getMinDieSize(); int diedivide; + + int minIndex = 0; + int maxIndex = 0; + + for (int i = 0; i < dieSizes.length; i++) + { + if (dieSizes[i] == minDie ) + { + minIndex = i; + } + else if (dieSizes[i] == maxDie ) + { + maxIndex = i; + } + } StringTokenizer tok = new StringTokenizer(dieLock, Constants.PIPE); dieLock = tok.nextToken(); @@ -1909,63 +1926,90 @@ } else if (dieLock.startsWith("%up")) { diedivide = Integer.parseInt(dieLock.substring(3)); - // lock in valid values. - if (diedivide > 4) { - diedivide = 4; + if (diedivide < 0) + { + return currDie; } - - if (diedivide < 0) { - diedivide = 0; - } - - for (int i = 3; i <= (7 - diedivide); ++i) { - if (currDie == dieSizes[i]) { - return dieSizes[i + diedivide]; + + for (int i = 0; i <= dieSizes.length; ++i) + { + if (currDie == dieSizes[i]) + { + if ((i + diedivide) > maxIndex) + { + return maxDie; + } + else + { + return dieSizes[i + diedivide]; + } } } - - diedivide = dieSizes[7]; // If they went too high, they get maxed - // out. } else if (dieLock.startsWith("%Hup")) { diedivide = Integer.parseInt(dieLock.substring(4)); - for (int i = 0; i < ((dieSizes.length) - diedivide); ++i) { - if (currDie == dieSizes[i]) { - return dieSizes[i + diedivide]; + if (diedivide < 0) + { + return currDie; + } + + for (int i = 0; i <= dieSizes.length; ++i) + { + if (currDie == dieSizes[i]) + { + if ((i+ diedivide) > dieSizes.length-1) + { + return dieSizes[dieSizes.length-1]; + } + else + { + return dieSizes[i + diedivide]; + } } } - diedivide = dieSizes[dieSizes.length]; // If they went too high, - // they get maxed out. } else if (dieLock.startsWith("%down")) { diedivide = Integer.parseInt(dieLock.substring(5)); - - // lock in valid values. - if (diedivide > 4) { - diedivide = 4; + + if (diedivide < 0) + { + return currDie; } - - if (diedivide < 0) { - diedivide = 0; - } - - for (int i = (3 + diedivide); i <= 7; ++i) { - if (currDie == dieSizes[i]) { - return dieSizes[i - diedivide]; + + for (int i = 0; i <= dieSizes.length; ++i) + { + if (currDie == dieSizes[i]) + { + if ((i - diedivide) < minIndex) + { + return minDie; + } + else + { + return dieSizes[i - diedivide]; + } } } - - diedivide = dieSizes[3]; // Minimum valid if too low. } else if (dieLock.startsWith("%Hdown")) { diedivide = Integer.parseInt(dieLock.substring(5)); - - for (int i = diedivide; i < dieSizes.length; ++i) { - if (currDie == dieSizes[i]) { - return dieSizes[i - diedivide]; + if (diedivide < 0) { + return currDie; + } + + for (int i = 0; i <= dieSizes.length; ++i) + { + if (currDie == dieSizes[i]) + { + if ((i - diedivide) < 0) + { + return dieSizes[0]; + } + else + { + return dieSizes[i - diedivide]; + } } } - - diedivide = dieSizes[0]; // floor them if they're too low. } else { diedivide = Integer.parseInt(dieLock); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfr...@us...> - 2008-03-02 04:25:45
|
Revision: 5422 http://pcgen.svn.sourceforge.net/pcgen/?rev=5422&view=rev Author: jfrazierjr Date: 2008-03-01 20:25:50 -0800 (Sat, 01 Mar 2008) Log Message: ----------- Removed logging statement and renamed method removeAllAbilities to removeAllAutoAbilities (replaces removeAllAutoFeats method.) Depreciated removeAllAutoFeats since it is only being used in SubstitutionClass Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-03-02 04:20:50 UTC (rev 5421) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-03-02 04:25:50 UTC (rev 5422) @@ -6938,7 +6938,7 @@ this.allowBaseClass = allowBaseClass; } - public void removeAllAbilites(final int alevel) + public void removeAllAutoAbilites(final int alevel) { DoubleKeyMap<AbilityCategory, Nature, QualifiedObject<String>> abilityCategories = new DoubleKeyMap<AbilityCategory, Nature, QualifiedObject<String>>(); final List<AbilityCategory> theCategories = getAbilityCategories(); @@ -6976,7 +6976,6 @@ { AbilityCategory cat = QOs.get(qo); removeAbility(cat, Nature.AUTOMATIC, qo); - System.out.println(qo); } } Modified: Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-03-02 04:20:50 UTC (rev 5421) +++ Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-03-02 04:25:50 UTC (rev 5422) @@ -88,7 +88,7 @@ // remove all stuff from the original level aClass.removeAllBonuses(aLevel); //aClass.removeAllAutoFeats(aLevel); - aClass.removeAllAbilites(aLevel); + aClass.removeAllAutoAbilites(aLevel); aClass.removeAllLevelAbilities(aLevel); aClass.clearSABList(aLevel); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-03-08 23:21:18
|
Revision: 5516 http://pcgen.svn.sourceforge.net/pcgen/?rev=5516&view=rev Author: thpr Date: 2008-03-08 15:21:25 -0800 (Sat, 08 Mar 2008) Log Message: ----------- [ 1886721 ] Spell Chooser [Discussed on _exp] Issue#: 1886721 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/VariableProcessorPC.java Trunk/pcgen/code/src/java/pcgen/core/chooser/SpellsChoiceManager.java Modified: Trunk/pcgen/code/src/java/pcgen/core/VariableProcessorPC.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/VariableProcessorPC.java 2008-03-08 23:04:56 UTC (rev 5515) +++ Trunk/pcgen/code/src/java/pcgen/core/VariableProcessorPC.java 2008-03-08 23:21:25 UTC (rev 5516) @@ -479,6 +479,43 @@ { valString = Integer.toString(getPc().baseAttackBonus()); } + else if ("MAXCASTABLE".equals(valString) && src.startsWith("CLASS:")) + { + String classKey = src.substring(6); + PCClass spClass = getPc().getClassKeyed(classKey); + int cutoff = spClass.getHighestLevelSpell(); + int max = 0; + for (int i = 0; i < cutoff; i++) { + if (spClass.getKnownForLevel(i, getPc()) != 0) + { + max = Math.max(max,i); + } + } + valString = Integer.toString(max); + } + else if ("MAXCASTABLE".equals(valString) && src.startsWith("DOMAIN:")) + { + String domainKey = src.substring(6); + + // check if this is a domain spell + CharacterDomain aCD = getPc() + .getCharacterDomainForDomain(domainKey); + if (aCD != null) // yup, it's a domain alright + { + String classKey = aCD.getObjectName(); // returns Domain source + // (e.g, "Cleric") + PCClass spClass = getPc().getClassKeyed(classKey); + int cutoff = spClass.getHighestLevelSpell(); + int max = 0; + for (int i = 0; i < cutoff; i++) { + if (spClass.getKnownForLevel(i, getPc()) != 0) + { + max = Math.max(max,i); + } + } + valString = Integer.toString(max); + } + } else if (valString.startsWith("CLASSLEVEL=") || valString.startsWith("CLASSLEVEL.")) { valString = getPc().getClassLevelString(valString.substring(11), true); Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/SpellsChoiceManager.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/SpellsChoiceManager.java 2008-03-08 23:04:56 UTC (rev 5515) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/SpellsChoiceManager.java 2008-03-08 23:21:25 UTC (rev 5516) @@ -109,7 +109,7 @@ + " did not have matching brackets"); } domainName = token.substring(11, bracketLoc); - r = getRestriction("DOMAIN|" + domainName, token + r = getRestriction("DOMAIN:" + domainName, token .substring(bracketLoc + 1, token.length() - 1), aPc); } @@ -134,7 +134,7 @@ + " did not have matching brackets"); } className = token.substring(10, bracketLoc); - r = getRestriction("CLASS|" + className, token + r = getRestriction("CLASS:" + className, token .substring(bracketLoc + 1, token.length() - 1), aPc); } @@ -234,21 +234,11 @@ String tok = restr.nextToken(); if (tok.startsWith("LEVELMAX=")) { - /* - * TODO MAXCASTABLE needs to be available here, but I'm not sure - * if it's implemented elsewhere (doesn't look like it based on - * searching the source code for that string) - */ levelMax = pc.getVariableValue(tok.substring(9), item) .intValue(); } else if (tok.startsWith("LEVELMIN=")) { - /* - * TODO MAXCASTABLE needs to be available here, but I'm not sure - * if it's implemented elsewhere (doesn't look like it based on - * searching the source code for that string) - */ levelMin = pc.getVariableValue(tok.substring(9), item) .intValue(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-03-11 11:13:08
|
Revision: 5551 http://pcgen.svn.sourceforge.net/pcgen/?rev=5551&view=rev Author: jdempsey Date: 2008-03-11 04:12:59 -0700 (Tue, 11 Mar 2008) Log Message: ----------- Fix bug: ABILITY kit tag pool use broken Issue#: 1907166 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java Trunk/pcgen/code/src/java/pcgen/core/kit/KitAbilities.java Modified: Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2008-03-11 10:22:30 UTC (rev 5550) +++ Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2008-03-11 11:12:59 UTC (rev 5551) @@ -1094,7 +1094,8 @@ final String cat, final String token) { - Ability ability = Globals.getAbilityKeyed(cat, token); + AbilityCategory aCat = AbilityUtilities.getAbilityCategory(cat); + Ability ability = Globals.getAbilityKeyed(aCat, token); if (ability != null) { @@ -1102,7 +1103,7 @@ } final String stripped = removeChoicesFromName(token); - ability = Globals.getAbilityKeyed(cat, stripped); + ability = Globals.getAbilityKeyed(aCat, stripped); if (ability != null) { Modified: Trunk/pcgen/code/src/java/pcgen/core/kit/KitAbilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/kit/KitAbilities.java 2008-03-11 10:22:30 UTC (rev 5550) +++ Trunk/pcgen/code/src/java/pcgen/core/kit/KitAbilities.java 2008-03-11 11:12:59 UTC (rev 5551) @@ -160,20 +160,20 @@ for (Iterator<Categorisable> kAbInnerIt = getIterator(); kAbInnerIt.hasNext();) { - final AbilityInfo Info = (AbilityInfo) kAbInnerIt.next(); + final AbilityInfo info = (AbilityInfo) kAbInnerIt.next(); - if (!Info.qualifies(aPC)) + if (!info.qualifies(aPC)) { continue; } - if (Info.getAbility() != null) + if (info.getAbility() != null) { - AbilityInfo abI = nameMap.put(Info.toString(), Info); - catMap.put(Info.getCategory() + " " + Info.toString(), Info); + AbilityInfo abI = nameMap.put(info.toString(), info); + catMap.put(info.getCategory() + " " + info.toString(), info); abilityCat = SettingsHandler.getGame().getAbilityCategory( - Info.getCategory()); + info.getCategory()); if (abI != null) { @@ -182,7 +182,7 @@ } else { - warnings.add("ABILITY: Non-existant Ability \"" + Info.getKeyName() + warnings.add("ABILITY: Non-existant Ability \"" + info.getKeyName() + "\""); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-04-15 03:38:03
|
Revision: 5987 http://pcgen.svn.sourceforge.net/pcgen/?rev=5987&view=rev Author: thpr Date: 2008-04-14 20:38:11 -0700 (Mon, 14 Apr 2008) Log Message: ----------- Partial Implementation: [ 1886541 ] CHOOSE:NUMCHOICES=/STACK not respected across Ability Pools Currently, NUMCHOICES= will be enforced (for direct choices) across Abilities regardless of Pool Issue#: 1886541 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractBasicChoiceManager.java Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java Trunk/pcgen/code/src/java/pcgen/core/chooser/ChooserUtilities.java Trunk/pcgen/code/src/java/pcgen/core/chooser/NoChoiceChoiceManager.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-04-15 02:20:05 UTC (rev 5986) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-04-15 03:38:11 UTC (rev 5987) @@ -16276,6 +16276,26 @@ return st; } + + public List<Ability> getAllAbilities() + { + Set<AbilityCategory> abCats = theAbilities.getKeySet(); + + List<Ability> list = new ArrayList<Ability>(); + + if (abCats == null) + { + return list; + } + + for (AbilityCategory ac : abCats) + { + list.addAll(getAutomaticAbilityList(ac)); + list.addAll(getRealAbilitiesList(ac)); + list.addAll(getVirtualAbilityList(ac)); + } + return list; + } public List<Ability> getRealAbilitiesList(final AbilityCategory aCategory) { List<Ability> abilities = Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractBasicChoiceManager.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractBasicChoiceManager.java 2008-04-15 02:20:05 UTC (rev 5986) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractBasicChoiceManager.java 2008-04-15 03:38:11 UTC (rev 5987) @@ -49,7 +49,6 @@ private final ArrayList<String> choices = new ArrayList<String>(); private final List<String> uniqueList = new ArrayList<String>(); - private final PlayerCharacter pc; protected final PObject pobject; private ChooseController<T> controller = new ChooseController<T>(); @@ -67,7 +66,6 @@ PlayerCharacter aPC) { pobject = aPObject; - pc = aPC; StringTokenizer st = new StringTokenizer(theChoices, Constants.PIPE); String chooserName = st.nextToken(); String selectionsPerUnitCost = pobject.getSelectCount(); @@ -137,19 +135,18 @@ * @return list */ public List<T> doChooser(PlayerCharacter aPc, final List<T> availableList, - final List<T> selectedList) + final List<T> selectedList, final List<T> reservedList) { int selectedPoolValue = (selectedList.size() + (choicesPerUnitCost - 1)) / choicesPerUnitCost; + int reservedPoolValue = (reservedList.size() + (choicesPerUnitCost - 1)) + / choicesPerUnitCost; int effectiveTotalChoices = numberOfChoices == -1 ? controller .getTotalChoices() : numberOfChoices; int effectiveChoices = Math .min(controller.getPool() + selectedPoolValue, - effectiveTotalChoices / choicesPerUnitCost); - if (effectiveChoices <= 0) - { - return selectedList; - } + effectiveTotalChoices / choicesPerUnitCost) + - reservedPoolValue + selectedPoolValue; final ChooserInterface chooser = getChooserInstance(); chooser @@ -200,10 +197,10 @@ * @param selectedList */ public void doChooserRemove(PlayerCharacter aPC, List<T> availableList, - List<T> selectedList) + List<T> selectedList, List<T> reservedList) { final List<T> newSelections = doChooser(aPC, availableList, - selectedList); + selectedList, reservedList); applyChoices(aPC, newSelections); } Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java 2008-04-15 02:20:05 UTC (rev 5986) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java 2008-04-15 03:38:11 UTC (rev 5987) @@ -60,7 +60,8 @@ public abstract List<T> doChooser( PlayerCharacter aPc, final List<T> availableList, - final List<T> selectedList); + final List<T> selectedList, + final List<T> reservedList); /** * Do chooser for removing a choice @@ -71,7 +72,8 @@ public abstract void doChooserRemove ( PlayerCharacter aPc, final List<T> availableList, - final List<T> selectedList); + final List<T> selectedList, + final List<T> reservedList); /** Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/ChooserUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/ChooserUtilities.java 2008-04-15 02:20:05 UTC (rev 5986) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/ChooserUtilities.java 2008-04-15 03:38:11 UTC (rev 5987) @@ -25,6 +25,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; @@ -39,6 +40,7 @@ import pcgen.core.PObject; import pcgen.core.PlayerCharacter; import pcgen.core.SettingsHandler; +import pcgen.core.Ability.Nature; import pcgen.util.Logging; @@ -237,6 +239,7 @@ { availableList.clear(); selectedList.clear(); + List reservedList = new ArrayList(); ChoiceManagerList aMan = getChoiceManager(aPObject, "", aPC); @@ -257,6 +260,13 @@ } AbstractBasicChoiceManager abcm = (AbstractBasicChoiceManager) aMan; abcm.setController(abcm.new AbilityChooseController(a, category, aPC)); + for (Ability ab : aPC.getAllAbilities()) + { + if (ab.getKeyName().equals(a.getKeyName())) + { + reservedList.addAll(ab.getAssociatedList()); + } + } } aMan.getChoices(aPC, availableList, selectedList); @@ -266,7 +276,8 @@ { if (addIt) { - final List newSelections = aMan.doChooser(aPC, availableList, selectedList); + final List newSelections = aMan.doChooser(aPC, availableList, + selectedList, reservedList); if (newSelections.isEmpty()) { return false; @@ -275,7 +286,8 @@ } else { - aMan.doChooserRemove(aPC, availableList, selectedList); + aMan.doChooserRemove(aPC, availableList, selectedList, + reservedList); } return true; } @@ -322,9 +334,13 @@ return; } + /* + * TODO is empty reservedList appropriate here? + */ final List newSelections = aMan.doChooser(aPC, availableList, - selectedList); + selectedList, + new ArrayList()); aMan.applyChoices(aPC, newSelections); } Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/NoChoiceChoiceManager.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/NoChoiceChoiceManager.java 2008-04-15 02:20:05 UTC (rev 5986) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/NoChoiceChoiceManager.java 2008-04-15 03:38:11 UTC (rev 5987) @@ -27,10 +27,11 @@ @Override public List<String> doChooser(PlayerCharacter pc, - List<String> availableList, List<String> selectedList) + List<String> availableList, List<String> selectedList, + List<String> reservedList) { int choiceLimit = getNumberOfChoices(); - if (choiceLimit == -1 || choiceLimit > selectedList.size()) + if (choiceLimit == -1 || choiceLimit > reservedList.size()) { selectedList.add("NOCHOICE"); } @@ -39,7 +40,8 @@ @Override public void doChooserRemove(PlayerCharacter apc, - List<String> availableList, List<String> selectedList) + List<String> availableList, List<String> selectedList, + List<String> reservedList) { selectedList.remove(0); applyChoices(apc, selectedList); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfr...@us...> - 2008-04-23 17:45:18
|
Revision: 6090 http://pcgen.svn.sourceforge.net/pcgen/?rev=6090&view=rev Author: jfrazierjr Date: 2008-04-23 10:45:04 -0700 (Wed, 23 Apr 2008) Log Message: ----------- 5.13.1 Substitution Level broken for DR Issue#: 1929424 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-04-23 04:11:13 UTC (rev 6089) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-04-23 17:45:04 UTC (rev 6090) @@ -7902,6 +7902,32 @@ } } + /** + * @param level2 + */ + public void removeDR(int level) + { + List<DamageReduction> newDR = new ArrayList<DamageReduction>(); + for (DamageReduction reduction : getDRList()) + { + for (Prerequisite prereq : reduction.getPreReqList()) + { + if (!DamageReduction.isPrereqForClassLevel(prereq, getKeyName()) + && !prereq.getOperand().equals(Integer.toString(level)) + ) + { + newDR.add(reduction); + } + } + } + clearDR(); + for (DamageReduction reduction : newDR) + { + addDR(reduction); + } + + } + // public void removeAutoAbilities(final AbilityCategory aCategory, final int aLevel) // { // if ( aCategory == AbilityCategory.FEAT ) Modified: Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-04-23 04:11:13 UTC (rev 6089) +++ Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-04-23 17:45:04 UTC (rev 6090) @@ -109,6 +109,7 @@ aClass.removeAllAutoAbilites(aLevel); aClass.removeAllLevelAbilities(aLevel); aClass.clearSABList(aLevel); + aClass.removeDR(aLevel); // Now add in each new level line in turn. for (String theLine: newLevels) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfr...@us...> - 2008-04-23 18:50:58
|
Revision: 6092 http://pcgen.svn.sourceforge.net/pcgen/?rev=6092&view=rev Author: jfrazierjr Date: 2008-04-23 11:50:55 -0700 (Wed, 23 Apr 2008) Log Message: ----------- 5.13.1 Substitution Level broken for DEFINE Issue#: 1929413 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PObject.java Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PObject.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2008-04-23 17:57:08 UTC (rev 6091) +++ Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2008-04-23 18:50:55 UTC (rev 6092) @@ -1025,8 +1025,38 @@ variableList.add(level, variableName, defaultFormula); } - /** + * Add a variable to the variable list + * @param level + * @param variableName + * @param defaultFormula + */ + public final void removelevelVariable(final int level) + { + VariableList tempVariableList = new VariableList(); + if (variableList == null) + { + variableList = new VariableList(); + return; + } + + Iterator<Variable> vInt = variableList.iterator(); + while (vInt.hasNext()) + { + Variable var = vInt.next(); + if ((var.getLevel() != level)) + { + tempVariableList.add(var.getLevel(), var.getName(),var.getValue() ); + } + } + variableList = tempVariableList; + + + + } + + + /** * Add a virtual feat to the character list * @param aFeat */ Modified: Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-04-23 17:57:08 UTC (rev 6091) +++ Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-04-23 18:50:55 UTC (rev 6092) @@ -109,7 +109,8 @@ aClass.removeAllAutoAbilites(aLevel); aClass.removeAllLevelAbilities(aLevel); aClass.clearSABList(aLevel); - aClass.removeLevelDR(aLevel); + aClass.removeLevelDR(aLevel); + aClass.removelevelVariable(aLevel); // Now add in each new level line in turn. for (String theLine: newLevels) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfr...@us...> - 2008-04-24 00:41:24
|
Revision: 6093 http://pcgen.svn.sourceforge.net/pcgen/?rev=6093&view=rev Author: jfrazierjr Date: 2008-04-23 17:41:30 -0700 (Wed, 23 Apr 2008) Log Message: ----------- 5.13.1 Substitution Level broken for ABILITY:*|VIRTUAL Issue#: 1929411 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-04-23 18:50:55 UTC (rev 6092) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-04-24 00:41:30 UTC (rev 6093) @@ -7902,6 +7902,25 @@ } } + public void removeAllVirtualAbilites(final int alevel) + { + for (AbilityCategory category : getAbilityCategories()) + { + for (QualifiedObject<String> qo : new ArrayList<QualifiedObject<String>>( + getRawAbilityObjects(category, Nature.VIRTUAL))) + { + if (qo instanceof QualifiedObject.LevelAwareQualifiedObject) + { + QualifiedObject.LevelAwareQualifiedObject<String> aqo = + (LevelAwareQualifiedObject<String>) qo; + if (aqo.level == level) + { + removeAbility(category, Nature.VIRTUAL, qo); + } + } + } + } + } /** * Remove the level based DR. Used by Substitution class levels * @param level Modified: Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-04-23 18:50:55 UTC (rev 6092) +++ Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2008-04-24 00:41:30 UTC (rev 6093) @@ -107,11 +107,13 @@ // remove all stuff from the original level aClass.removeAllBonuses(aLevel); aClass.removeAllAutoAbilites(aLevel); + aClass.removeAllVirtualAbilites(aLevel); aClass.removeAllLevelAbilities(aLevel); aClass.clearSABList(aLevel); aClass.removeLevelDR(aLevel); aClass.removelevelVariable(aLevel); + // Now add in each new level line in turn. for (String theLine: newLevels) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-05-10 22:13:04
|
Revision: 6228 http://pcgen.svn.sourceforge.net/pcgen/?rev=6228&view=rev Author: jdempsey Date: 2008-05-10 15:13:07 -0700 (Sat, 10 May 2008) Log Message: ----------- Fix bug: Concurrent modification in Skills causing PC swap Hide debug output Issue#: 1960090 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Trunk/pcgen/code/src/java/pcgen/core/Skill.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-05-10 21:49:16 UTC (rev 6227) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-05-10 22:13:07 UTC (rev 6228) @@ -4122,7 +4122,7 @@ */ public void cacheOutputIndex(String key, int index) { - Logging.errorPrint("Caching " + key + " - " + index + " direct"); + Logging.debugPrint("Caching " + key + " - " + index + " direct"); autoEquipOutputOrderCache.put(key, index); } @@ -4134,7 +4134,7 @@ { if (item.isAutomatic()) { - Logging.errorPrint("Caching " + item.getKeyName() + " - " + Logging.debugPrint("Caching " + item.getKeyName() + " - " + item.getOutputIndex() + " item"); autoEquipOutputOrderCache.put(item.getKeyName(), item .getOutputIndex()); @@ -12974,7 +12974,9 @@ } // Equipment - for (Equipment eq : getEquipmentList()) + final List<Equipment> eqList = + new ArrayList<Equipment>(getEquipmentList()); + for (Equipment eq : eqList) { // Include natural weapons by default as they have an effect even if // not equipped. @@ -17395,7 +17397,7 @@ abilities = theAbilities.get(aCategory, Ability.Nature.VIRTUAL); } - return Collections.unmodifiableList(abilities); + return abilities; } public List<Ability> featAutoList() Modified: Trunk/pcgen/code/src/java/pcgen/core/Skill.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2008-05-10 21:49:16 UTC (rev 6227) +++ Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2008-05-10 22:13:07 UTC (rev 6228) @@ -254,7 +254,9 @@ } } - for (Equipment eq : aPC.getEquipmentList()) + final List<Equipment> eqList = + new ArrayList<Equipment>(aPC.getEquipmentList()); + for (Equipment eq : eqList) { if (eq.isEquipped()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-06-23 00:34:19
|
Revision: 6833 http://pcgen.svn.sourceforge.net/pcgen/?rev=6833&view=rev Author: thpr Date: 2008-06-22 17:34:28 -0700 (Sun, 22 Jun 2008) Log Message: ----------- overrides Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Equipment.java Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java Trunk/pcgen/code/src/java/pcgen/core/SizeAdjustment.java Modified: Trunk/pcgen/code/src/java/pcgen/core/Equipment.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2008-06-22 22:52:35 UTC (rev 6832) +++ Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2008-06-23 00:34:28 UTC (rev 6833) @@ -559,6 +559,7 @@ * PlayerCharacter used to check prereqs for bonuses * @return active bonuses */ + @Override public List<BonusObj> getActiveBonuses(final PlayerCharacter aPC) { final List<BonusObj> aList = new ArrayList<BonusObj>(); @@ -4825,6 +4826,7 @@ * @param aPC * The character being checked. */ + @Override public void activateBonuses(final PlayerCharacter aPC) { for (final BonusObj bonus : getBonusList()) { bonus.setApplied(false); Modified: Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java 2008-06-22 22:52:35 UTC (rev 6832) +++ Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java 2008-06-23 00:34:28 UTC (rev 6833) @@ -104,6 +104,7 @@ * @return a complete list of bonus objects with %CHOICE expanded to * include one entry for each associated choice. */ + @Override public List<BonusObj> getBonusList() { final List<BonusObj> myBonusList = new ArrayList<BonusObj>(super.getBonusList()); @@ -161,6 +162,7 @@ * * @return a List of bonuses mathing both name and type */ + @Override public List<BonusObj> getBonusListOfType(final String aType, final String aName) { final List<BonusObj> aList = new ArrayList<BonusObj>(); @@ -186,6 +188,7 @@ * * @return True if the string matches, false otherwise */ + @Override public boolean getBonusListString(final String aString) { for ( BonusObj bonus : getBonusList() ) Modified: Trunk/pcgen/code/src/java/pcgen/core/SizeAdjustment.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SizeAdjustment.java 2008-06-22 22:52:35 UTC (rev 6832) +++ Trunk/pcgen/code/src/java/pcgen/core/SizeAdjustment.java 2008-06-23 00:34:28 UTC (rev 6833) @@ -59,6 +59,7 @@ * @param aPC * @return active bonuses **/ + @Override public List<BonusObj> getActiveBonuses(final PlayerCharacter aPC) { super.activateBonuses(aPC); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-06-25 12:54:00
|
Revision: 6886 http://pcgen.svn.sourceforge.net/pcgen/?rev=6886&view=rev Author: jdempsey Date: 2008-06-25 05:54:09 -0700 (Wed, 25 Jun 2008) Log Message: ----------- Fix bug: Editing copied spell edits original - Merged from 5.14 r6885 Issue#: 1834866 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PObject.java Trunk/pcgen/code/src/java/pcgen/core/SourceEntry.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PObject.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2008-06-25 12:53:07 UTC (rev 6885) +++ Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2008-06-25 12:54:09 UTC (rev 6886) @@ -1146,7 +1146,7 @@ // retVal.sourceMap = new HashMap<String, String>(); // retVal.sourceMap.putAll(this.sourceMap); // } - retVal.theSource = theSource; + retVal.theSource = theSource.clone(); retVal.changeProfMap = new HashMap<String, String>(changeProfMap); Modified: Trunk/pcgen/code/src/java/pcgen/core/SourceEntry.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SourceEntry.java 2008-06-25 12:53:07 UTC (rev 6885) +++ Trunk/pcgen/code/src/java/pcgen/core/SourceEntry.java 2008-06-25 12:54:09 UTC (rev 6886) @@ -29,7 +29,7 @@ /** * This class represents the information about the source - * of an objcet. + * of an object. * * <p>This includes the <tt>Source</tt> information as well as Page information. * @@ -38,7 +38,7 @@ * @since 5.11 * */ -public class SourceEntry +public class SourceEntry implements Cloneable { /** The source book this source represents */ private Source theSourceBook = new Source(); @@ -369,4 +369,18 @@ return false; return true; } + + /* (non-Javadoc) + * @see java.lang.Object#clone() + */ + @Override + protected SourceEntry clone() throws CloneNotSupportedException + { + SourceEntry entry = new SourceEntry(); + entry.theSourceBook = this.theSourceBook; + entry.thePageNumber = this.thePageNumber; + + return entry; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-07-08 21:46:35
|
Revision: 7063 http://pcgen.svn.sourceforge.net/pcgen/?rev=7063&view=rev Author: jdempsey Date: 2008-07-08 14:46:41 -0700 (Tue, 08 Jul 2008) Log Message: ----------- Fix bug: 5.14.0 kits and Wizard subclasses - Merged from 5.14 r7062 Issue#: 2012814 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-07-08 21:43:51 UTC (rev 7062) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2008-07-08 21:46:41 UTC (rev 7063) @@ -4977,6 +4977,8 @@ columnNames.add("Other"); List<List> choiceList = new ArrayList<List>(); + boolean subClassSelected = (!getSubClassKey().equals(Constants.s_NONE) && !getSubClassKey() + .equals("")); for (SubClass sc : subClassList) { @@ -4996,16 +4998,11 @@ columnList.add(Integer.toString(sc.getCost())); columnList.add(sc.getSupplementalDisplayInfo()); - if (!getSubClassKey().equals(Constants.s_NONE)) + // If a subclass has already been selected, only add that one + if (!subClassSelected || getSubClassKey().equals(sc.getKeyName())) { - // We already have a subclass requested. - // If it is legal we will return that. - choiceList.clear(); choiceList.add(columnList); - break; } - - choiceList.add(columnList); } Collections.sort(choiceList, new Comparator<List>() @@ -5026,7 +5023,8 @@ }); // add base class to the chooser at the TOP - if (getSafe(ObjectKey.ALLOWBASECLASS)) + if (getSafe(ObjectKey.ALLOWBASECLASS) + && (!subClassSelected || getKeyName().equals(getSubClassKey()))) { final List<Object> columnList2 = new ArrayList<Object>(3); columnList2.add(this); Modified: Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java 2008-07-08 21:43:51 UTC (rev 7062) +++ Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java 2008-07-08 21:46:41 UTC (rev 7063) @@ -47,6 +47,7 @@ // These members store the state of an instance of this class. They are // not cloned. private transient PCClass theClass = null; + private String theOrigSubClass = null; private transient int theLevel = -1; private transient boolean doLevelAbilities = true; @@ -124,6 +125,7 @@ return false; } + theOrigSubClass = theClass.getSubClassKey(); if (getSubClass() != null) { // try and set a subclass too. @@ -150,6 +152,7 @@ public void apply(PlayerCharacter aPC) { addLevel(aPC, theLevel, theClass, doLevelAbilities); + theClass.setSubClassKey(theOrigSubClass); theClass = null; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nu...@us...> - 2006-03-15 15:10:20
|
Revision: 251 Author: nuance Date: 2006-03-15 07:10:12 -0800 (Wed, 15 Mar 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=251&view=rev Log Message: ----------- A tiny of bit of refctoring, moving static methods to more sensible places. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacterUtilities.java Modified: Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2006-03-15 12:58:51 UTC (rev 250) +++ Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2006-03-15 15:10:12 UTC (rev 251) @@ -27,11 +27,14 @@ package pcgen.core; import pcgen.core.pclevelinfo.PCLevelInfo; +import pcgen.core.utils.MessageType; +import pcgen.core.utils.ShowMessageDelegate; import pcgen.util.Logging; import java.util.Arrays; import java.util.Iterator; import java.util.List; +import java.util.StringTokenizer; /** * General utilities related to the Ability class. @@ -587,4 +590,256 @@ return retVal; } + + + /** + * Convert the name of an Ability (currently only handles FEATS) into an + * Ability object and add it to theFeatList TODO expand this routine so that + * it can handle more than feats. This may involve changes where it is + * called so that they pass a different list depending on the category of + * Ability object, but they would need to pass the category as well and it + * may be simpler to pass AbilityInfo objects instead. + * + * @param theAbilityList A list of abilities to add to + * @param abilityName The name of the Ability to Add + */ + static void addToFeatList(final List theAbilityList, final String abilityName) + { + String altName = ""; + String subName = ""; + + if (abilityName.endsWith(")")) + { + // we want what is inside the outermost parens. + subName = abilityName.substring( + abilityName.indexOf('(') + 1, + abilityName.lastIndexOf(')')); + altName = abilityName.substring(0, abilityName.indexOf('(')).trim(); + } + + Ability anAbility = getFeatNamedInList( + theAbilityList, + abilityName); + + if ((anAbility == null) && (altName.length() != 0)) + { + anAbility = getFeatNamedInList(theAbilityList, altName); + } + + /* This feat is not in autoFeatList, get the global definition, clone it, attach + * sub-type (if any) and add */ + + if (anAbility == null) + { + anAbility = Globals.getAbilityNamed("FEAT", abilityName); + + if ((anAbility == null) && (altName.length() != 0)) + { + anAbility = Globals.getAbilityNamed("FEAT", altName); + } + + if (anAbility != null) + { + anAbility = (Ability) anAbility.clone(); + + if (subName.length() != 0) + { + anAbility.addAssociated(subName); + } + + anAbility.setFeatType(Ability.ABILITY_AUTOMATIC); + theAbilityList.add(anAbility); + } + else + { + ShowMessageDelegate.showMessageDialog( + "Adding unknown feat: " + abilityName, + Constants.s_APPNAME, + MessageType.INFORMATION); + } + } + + /* Already have feat, add sub-type (if any) */ + + else + { + if (subName.length() != 0) + { + if ( + anAbility.isStacks() || + (anAbility.isMultiples() && + !anAbility.containsAssociated(subName))) + { + anAbility.addAssociated(subName); + } + } + } + } + + + /** + * Add multiple feats from a String list separated by commas. + * @param playerCharacterLevelInfo + * @param aList + * @param addIt + * @param all + */ + static void modFeatsFromList(final PlayerCharacter aPC, + final PCLevelInfo playerCharacterLevelInfo, + final String aList, + final boolean addIt, + final boolean all) + { + final StringTokenizer aTok = new StringTokenizer(aList, ","); + + while (aTok.hasMoreTokens()) + { + String aString = aTok.nextToken(); + Ability anAbility = aPC.getFeatNamed(aString); + StringTokenizer bTok = null; + + if (anAbility != null) + { + continue; + } + + // does not already have feat + anAbility = Globals.getAbilityNamed("FEAT", aString); + + if (anAbility == null) + { + // could not find Feat, try trimming off contents of parenthesis + bTok = new StringTokenizer(aString, "()", true); + + final String bString = bTok.nextToken(); + final int beginIndex = bString.length() + 1; + final int endIndex = aString.lastIndexOf(')'); + + if (beginIndex <= aString.length()) + { + if (endIndex >= beginIndex) + { + bTok = new StringTokenizer(aString.substring(beginIndex, endIndex), ","); + } + else + { + bTok = new StringTokenizer(aString.substring(beginIndex), ","); + } + } + else + { + bTok = null; + } + aString = bString.replace('(', ' ').replace(')', ' ').trim(); + } + else + { + final Ability tempAbility = aPC.getFeatNamed(anAbility.getName()); + if (tempAbility != null) + { + anAbility = tempAbility; + } + else + { + // add the Feat found, as a CharacterFeat + anAbility = (Ability) anAbility.clone(); + aPC.addFeat(anAbility, playerCharacterLevelInfo); + } + } + + if (anAbility == null) + { + // if we still haven't found it, try a different string + if (!addIt) + { + return; + } + + anAbility = Globals.getAbilityNamed("FEAT", aString); + + if (anAbility == null) + { + Logging.errorPrint("Feat not found in PlayerCharacter.modFeatsFromList: " + aString); + + return; + } + + anAbility = (Ability) anAbility.clone(); + aPC.addFeat(anAbility, playerCharacterLevelInfo); + } + + if ((bTok != null) && bTok.hasMoreTokens()) + { + while (bTok.hasMoreTokens()) + { + aString = bTok.nextToken(); + + if ("DEITYWEAPON".equals(aString)) + { + WeaponProf wp = null; + + if (aPC.getDeity() != null) + { + wp = Globals.getWeaponProfNamed(aPC.getDeity().getFavoredWeapon()); + } + + if (wp != null) + { + if (addIt) // TODO: condition always true + { + anAbility.addAssociated(wp.getName()); + } + else + { + anAbility.removeAssociated(wp.getName()); + } + } + } + else + { + if (addIt) // TODO: condition always true + { + anAbility.addAssociated(aString); + } + else + { + anAbility.removeAssociated(aString); + } + } + } + } + else + { + if (!all && !anAbility.isMultiples()) + { + if (addIt) + { + aPC.adjustFeats(anAbility.getCost(aPC)); + } + else + { + aPC.adjustFeats(-anAbility.getCost(aPC)); + } + } + + modFeat(aPC, playerCharacterLevelInfo, aString, addIt, all); + } + + if (anAbility.getName().endsWith("Weapon Proficiency")) + { + for (int e = 0; e < anAbility.getAssociatedCount(); ++e) + { + final String wprof = anAbility.getAssociated(e); + final WeaponProf wp = Globals.getWeaponProfNamed(wprof); + + if (wp != null) + { + aPC.addWeaponProfToChosenFeats(wprof); + } + } + } + } + + aPC.setAutomaticFeatsStable(false); + } } Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2006-03-15 12:58:51 UTC (rev 250) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2006-03-15 15:10:12 UTC (rev 251) @@ -5179,7 +5179,7 @@ if (aLevel == Integer.parseInt(getToken(0, feats, ":"))) { final double preFeatCount = aPC.getUsedFeatCount(); - PlayerCharacterUtilities.modFeatsFromList(aPC, pcLevelInfo, getToken(1, feats, ":"), addThem, aLevel == 1); + AbilityUtilities.modFeatsFromList(aPC, pcLevelInfo, getToken(1, feats, ":"), addThem, aLevel == 1); final double postFeatCount = aPC.getUsedFeatCount(); Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2006-03-15 12:58:51 UTC (rev 250) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2006-03-15 15:10:12 UTC (rev 251) @@ -7791,7 +7791,7 @@ for (int i = 0, x = templateFeats.size(); i < x; ++i) { - PlayerCharacterUtilities.modFeatsFromList(this, null, (String) templateFeats.get(i), true, false); + AbilityUtilities.modFeatsFromList(this, null, (String) templateFeats.get(i), true, false); } } else @@ -9254,7 +9254,7 @@ while (aTok.hasMoreTokens()) { - PlayerCharacterUtilities.addToFeatList(autoFeatList, aTok.nextToken()); + AbilityUtilities.addToFeatList(autoFeatList, aTok.nextToken()); } } @@ -9333,7 +9333,7 @@ } } - PlayerCharacterUtilities.addToFeatList(autoFeatList, autoFeat); + AbilityUtilities.addToFeatList(autoFeatList, autoFeat); } } @@ -9354,7 +9354,7 @@ while (aTok.hasMoreTokens()) { - PlayerCharacterUtilities.addToFeatList(autoFeatList, aTok.nextToken()); + AbilityUtilities.addToFeatList(autoFeatList, aTok.nextToken()); } } } @@ -9380,7 +9380,7 @@ if (idx > -1) { - PlayerCharacterUtilities.addToFeatList(autoFeatList, aString.substring(idx + 1)); + AbilityUtilities.addToFeatList(autoFeatList, aString.substring(idx + 1)); } else { @@ -9394,7 +9394,7 @@ for (; anIt.hasNext();) { final AbilityInfo abI = (AbilityInfo) anIt.next(); - PlayerCharacterUtilities.addToFeatList(autoFeatList, abI.getKeyName()); + AbilityUtilities.addToFeatList(autoFeatList, abI.getKeyName()); } } } @@ -14248,7 +14248,7 @@ for (int j = 0, y = templateFeats.size(); j < y; ++j) { - PlayerCharacterUtilities.modFeatsFromList(this, null, (String) templateFeats.get(j), true, false); + AbilityUtilities.modFeatsFromList(this, null, (String) templateFeats.get(j), true, false); } } } Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacterUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacterUtilities.java 2006-03-15 12:58:51 UTC (rev 250) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacterUtilities.java 2006-03-15 15:10:12 UTC (rev 251) @@ -24,12 +24,7 @@ */ package pcgen.core; -import pcgen.core.pclevelinfo.PCLevelInfo; -import pcgen.core.utils.MessageType; -import pcgen.core.utils.ShowMessageDelegate; -import pcgen.util.Logging; -import java.util.List; import java.util.StringTokenizer; /** @@ -69,90 +64,6 @@ } /** - * Convert the name of an Ability (currently only handles FEATS) into an - * Ability object and add it to theFeatList TODO expand this routine so that - * it can handle more than feats. This may involve changes where it is - * called so that they pass a different list depending on the category of - * Ability object, but they would need to pass the category as well and it - * may be simpler to pass AbilityInfo objects instead. - * - * @param theAbilityList A list of abilities to add to - * @param abilityName The name of the Ability to Add - */ - static void addToFeatList(final List theAbilityList, final String abilityName) - { - String altName = ""; - String subName = ""; - - if (abilityName.endsWith(")")) - { - // we want what is inside the outermost parens. - subName = abilityName.substring( - abilityName.indexOf('(') + 1, - abilityName.lastIndexOf(')')); - altName = abilityName.substring(0, abilityName.indexOf('(')).trim(); - } - - Ability anAbility = AbilityUtilities.getFeatNamedInList( - theAbilityList, - abilityName); - - if ((anAbility == null) && (altName.length() != 0)) - { - anAbility = AbilityUtilities.getFeatNamedInList(theAbilityList, altName); - } - - /* This feat is not in autoFeatList, get the global definition, clone it, attach - * sub-type (if any) and add */ - - if (anAbility == null) - { - anAbility = Globals.getAbilityNamed("FEAT", abilityName); - - if ((anAbility == null) && (altName.length() != 0)) - { - anAbility = Globals.getAbilityNamed("FEAT", altName); - } - - if (anAbility != null) - { - anAbility = (Ability) anAbility.clone(); - - if (subName.length() != 0) - { - anAbility.addAssociated(subName); - } - - anAbility.setFeatType(Ability.ABILITY_AUTOMATIC); - theAbilityList.add(anAbility); - } - else - { - ShowMessageDelegate.showMessageDialog( - "Adding unknown feat: " + abilityName, - Constants.s_APPNAME, - MessageType.INFORMATION); - } - } - - /* Already have feat, add sub-type (if any) */ - - else - { - if (subName.length() != 0) - { - if ( - anAbility.isStacks() || - (anAbility.isMultiples() && - !anAbility.containsAssociated(subName))) - { - anAbility.addAssociated(subName); - } - } - } - } - - /** * Bryan wanted this to be optional, but if you can reassign racial auto * feats, when you reopen the character, you get the feats that were * exchanged back @@ -246,11 +157,11 @@ /** * Set the Weapon proficiency of one piece of Equipment to the same as the * Proficiency in another piece of Equipment. For some bizarre reason, as - * well as setting the roficiency, this zeros out the Weight and cost of + * well as setting the proficiency, this zeros out the Weight and cost of * the equipment. * * @param equip the Weapon to get the proficiency from - * @param eqm the weapon to set the preoficiency in + * @param eqm the weapon to set the proficiency in */ static void setProf(final Equipment equip, final Equipment eqm) { @@ -269,170 +180,4 @@ eqm.setWeight("0"); eqm.setCost("0"); } - - /** - * Add multiple feats from a String list separated by commas. - * @param playerCharacterLevelInfo - * @param aList - * @param addIt - * @param all - */ - static void modFeatsFromList(final PlayerCharacter aPC, - final PCLevelInfo playerCharacterLevelInfo, - final String aList, - final boolean addIt, - final boolean all) - { - final StringTokenizer aTok = new StringTokenizer(aList, ","); - - while (aTok.hasMoreTokens()) - { - String aString = aTok.nextToken(); - Ability anAbility = aPC.getFeatNamed(aString); - StringTokenizer bTok = null; - - if (anAbility != null) - { - continue; - } - - // does not already have feat - anAbility = Globals.getAbilityNamed("FEAT", aString); - - if (anAbility == null) - { - // could not find Feat, try trimming off contents of parenthesis - bTok = new StringTokenizer(aString, "()", true); - - final String bString = bTok.nextToken(); - final int beginIndex = bString.length() + 1; - final int endIndex = aString.lastIndexOf(')'); - - if (beginIndex <= aString.length()) - { - if (endIndex >= beginIndex) - { - bTok = new StringTokenizer(aString.substring(beginIndex, endIndex), ","); - } - else - { - bTok = new StringTokenizer(aString.substring(beginIndex), ","); - } - } - else - { - bTok = null; - } - aString = bString.replace('(', ' ').replace(')', ' ').trim(); - } - else - { - final Ability tempAbility = aPC.getFeatNamed(anAbility.getName()); - if (tempAbility != null) - { - anAbility = tempAbility; - } - else - { - // add the Feat found, as a CharacterFeat - anAbility = (Ability) anAbility.clone(); - aPC.addFeat(anAbility, playerCharacterLevelInfo); - } - } - - if (anAbility == null) - { - // if we still haven't found it, try a different string - if (!addIt) - { - return; - } - - anAbility = Globals.getAbilityNamed("FEAT", aString); - - if (anAbility == null) - { - Logging.errorPrint("Feat not found in PlayerCharacter.modFeatsFromList: " + aString); - - return; - } - - anAbility = (Ability) anAbility.clone(); - aPC.addFeat(anAbility, playerCharacterLevelInfo); - } - - if ((bTok != null) && bTok.hasMoreTokens()) - { - while (bTok.hasMoreTokens()) - { - aString = bTok.nextToken(); - - if ("DEITYWEAPON".equals(aString)) - { - WeaponProf wp = null; - - if (aPC.getDeity() != null) - { - wp = Globals.getWeaponProfNamed(aPC.getDeity().getFavoredWeapon()); - } - - if (wp != null) - { - if (addIt) // TODO: condition always true - { - anAbility.addAssociated(wp.getName()); - } - else - { - anAbility.removeAssociated(wp.getName()); - } - } - } - else - { - if (addIt) // TODO: condition always true - { - anAbility.addAssociated(aString); - } - else - { - anAbility.removeAssociated(aString); - } - } - } - } - else - { - if (!all && !anAbility.isMultiples()) - { - if (addIt) - { - aPC.adjustFeats(anAbility.getCost(aPC)); - } - else - { - aPC.adjustFeats(-anAbility.getCost(aPC)); - } - } - - AbilityUtilities.modFeat(aPC, playerCharacterLevelInfo, aString, addIt, all); - } - - if (anAbility.getName().endsWith("Weapon Proficiency")) - { - for (int e = 0; e < anAbility.getAssociatedCount(); ++e) - { - final String wprof = anAbility.getAssociated(e); - final WeaponProf wp = Globals.getWeaponProfNamed(wprof); - - if (wp != null) - { - aPC.addWeaponProfToChosenFeats(wprof); - } - } - } - } - - aPC.setAutomaticFeatsStable(false); - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kar...@us...> - 2006-03-21 16:50:20
|
Revision: 350 Author: karianna Date: 2006-03-21 03:43:29 -0800 (Tue, 21 Mar 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=350&view=rev Log Message: ----------- Javadoc fixes and some small Eclipse warning fixes Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoGear.java Trunk/pcgen/code/src/java/plugin/lsttokens/template/AddLevelToken.java Trunk/pcgen/code/src/java/plugin/lsttokens/template/HandedlockToken.java Modified: Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java 2006-03-21 11:18:39 UTC (rev 349) +++ Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java 2006-03-21 11:43:29 UTC (rev 350) @@ -143,20 +143,17 @@ protectionValue += (int) thePC.getTotalBonusTo("DR", theBypass); return protectionValue; } - else + // If we don't have a PC we will see if we can parse the + // reduction value as an int, if we can't we will return + // the value "variable" for it instead. + try { - // If we don't have a PC we will see if we can parse the - // reduction value as an int, if we can't we will return - // the value "variable" for it instead. - try - { - return Integer.parseInt(theReduction); - } - catch (NumberFormatException notUsed) - { - // Nothing we can do. - } + return Integer.parseInt(theReduction); } + catch (NumberFormatException notUsed) + { + // Nothing we can do. + } return -1; } @@ -583,6 +580,10 @@ return buffer.toString(); } + /** + * Test the DR code + * @param args + */ public static void main(String[] args) { int failures = 0; Modified: Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoGear.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoGear.java 2006-03-21 11:18:39 UTC (rev 349) +++ Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoGear.java 2006-03-21 11:43:29 UTC (rev 350) @@ -74,6 +74,7 @@ import javax.swing.JTree; import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; +import javax.swing.ScrollPaneConstants; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; @@ -1169,6 +1170,8 @@ /** * Build the panel with the controls to add an item to the * selected list. + * @param button + * @param title * * @return The panel. */ @@ -1187,6 +1190,8 @@ /** * Build the panel with the controls to add an item to the * selected list. + * @param button + * @param title * * @return The panel. */ @@ -2030,14 +2035,14 @@ JLabel avaLabel = new JLabel("Available: "); leftPane.add(createFilterPane(avaLabel, viewComboBox, lblAvailableQFilter, textAvailableQFilter, clearAvailableQFilterButton), BorderLayout.NORTH); - JScrollPane scrollPane = new JScrollPane(availableTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + JScrollPane scrollPane = new JScrollPane(availableTable, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); leftPane.add(scrollPane, BorderLayout.CENTER); addButton = new JButton(IconUtilitities.getImageIcon("Forward16.gif")); leftPane.add(buildModPanel(addButton, "Click to add the selected item from the Available list of items"), BorderLayout.SOUTH); JButton columnButton = new JButton(); - scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, columnButton); + scrollPane.setCorner(ScrollPaneConstants.UPPER_RIGHT_CORNER, columnButton); columnButton.setText("^"); availableTable.setColAlign(COL_COST, SwingConstants.RIGHT); @@ -2051,14 +2056,14 @@ JLabel selLabel = new JLabel("Selected: "); rightPane.add(createFilterPane(selLabel, viewSelectComboBox, lblSelectedQFilter, textSelectedQFilter, clearSelectedQFilterButton), BorderLayout.NORTH); - scrollPane = new JScrollPane(selectedTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrollPane = new JScrollPane(selectedTable, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); rightPane.add(scrollPane, BorderLayout.CENTER); removeButton = new JButton(IconUtilitities.getImageIcon("Back16.gif")); rightPane.add(buildDelPanel(removeButton, "Click to remove the selected item from the Selected list of items"), BorderLayout.SOUTH); JButton columnButton2 = new JButton(); - scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, columnButton2); + scrollPane.setCorner(ScrollPaneConstants.UPPER_RIGHT_CORNER, columnButton2); columnButton2.setText("^"); // selectedTable.getColumnModel().getColumn(COL_NAME).setPreferredWidth(60); // selectedTable.setColAlign(COL_COST, SwingConstants.RIGHT); @@ -3227,6 +3232,8 @@ * * -1 shows as Hidden, and 0 is shown as blank. Any other value is * displayed as is. + * + * @deperecated This class is not used, remove post 5.10 Beta 1 */ private static final class OutputOrderRenderer extends DefaultTableCellRenderer { @@ -3335,10 +3342,7 @@ { return TreeTableModel.class; } - else - { - return String.class; - } + return String.class; } /* The JTreeTableNode interface. */ @@ -3820,6 +3824,10 @@ return retList; } + /** + * Get the column align list + * @return the column align list + */ public List getMColumnAlignList() { List retAlignList = new ArrayList(); Modified: Trunk/pcgen/code/src/java/plugin/lsttokens/template/AddLevelToken.java =================================================================== --- Trunk/pcgen/code/src/java/plugin/lsttokens/template/AddLevelToken.java 2006-03-21 11:18:39 UTC (rev 349) +++ Trunk/pcgen/code/src/java/plugin/lsttokens/template/AddLevelToken.java 2006-03-21 11:43:29 UTC (rev 350) @@ -3,6 +3,9 @@ import pcgen.core.PCTemplate; import pcgen.persistence.lst.PCTemplateLstToken; +/** + * New Token to support Adding Levels to say a Lycanthorpe template + */ public class AddLevelToken implements PCTemplateLstToken { Modified: Trunk/pcgen/code/src/java/plugin/lsttokens/template/HandedlockToken.java =================================================================== --- Trunk/pcgen/code/src/java/plugin/lsttokens/template/HandedlockToken.java 2006-03-21 11:18:39 UTC (rev 349) +++ Trunk/pcgen/code/src/java/plugin/lsttokens/template/HandedlockToken.java 2006-03-21 11:43:29 UTC (rev 350) @@ -17,7 +17,7 @@ // set and lock character handedness, disabling pulldown menu in description section. public boolean parse(PCTemplate template, String value) { - template.setHandedLock(value); + // template.setHandedLock(value); return true; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kar...@us...> - 2006-03-22 14:01:25
|
Revision: 373 Author: karianna Date: 2006-03-22 06:00:54 -0800 (Wed, 22 Mar 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=373&view=rev Log Message: ----------- Javadoc Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractChoiceManager.java Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerCategorisable.java Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java Trunk/pcgen/code/src/test/pcgen/core/chooser/AbilityFromTemplateChoiceManagerTest.java Modified: Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java 2006-03-22 11:53:39 UTC (rev 372) +++ Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java 2006-03-22 14:00:54 UTC (rev 373) @@ -85,7 +85,7 @@ realThing = AbilityUtilities.retrieveAbilityKeyed(this.category, this.keyName); if ((realThing != null) && (!realThing.getKeyName().equals(this.keyName))) { - + // TODO Do Nothing } } Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractChoiceManager.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractChoiceManager.java 2006-03-22 11:53:39 UTC (rev 372) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/AbstractChoiceManager.java 2006-03-22 14:00:54 UTC (rev 373) @@ -22,7 +22,6 @@ */ package pcgen.core.chooser; -import pcgen.core.CategorisableStore; import pcgen.core.Globals; import pcgen.core.PObject; import pcgen.core.PlayerCharacter; Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerCategorisable.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerCategorisable.java 2006-03-22 11:53:39 UTC (rev 372) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerCategorisable.java 2006-03-22 14:00:54 UTC (rev 373) @@ -27,6 +27,7 @@ * * @param store * @param previousSelections + * @return list */ public abstract List doChooser(final CategorisableStore store, final List previousSelections); Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java 2006-03-22 11:53:39 UTC (rev 372) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/ChoiceManagerList.java 2006-03-22 14:00:54 UTC (rev 373) @@ -5,7 +5,6 @@ import java.util.List; -import pcgen.core.CategorisableStore; import pcgen.core.PlayerCharacter; /** Modified: Trunk/pcgen/code/src/test/pcgen/core/chooser/AbilityFromTemplateChoiceManagerTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/core/chooser/AbilityFromTemplateChoiceManagerTest.java 2006-03-22 11:53:39 UTC (rev 372) +++ Trunk/pcgen/code/src/test/pcgen/core/chooser/AbilityFromTemplateChoiceManagerTest.java 2006-03-22 14:00:54 UTC (rev 373) @@ -45,7 +45,7 @@ public class AbilityFromTemplateChoiceManagerTest extends AbstractCharacterTestCase { - /* + /** * Test method for 'pcgen.core.chooser.AbilityFromTemplateChoiceManager.addToMaps(Categorisable)' */ public void testAddToMaps() { @@ -158,7 +158,7 @@ } - /* + /** * Test method for 'pcgen.core.chooser.AbstractCategorisableChoiceManager.initialise(int, int, int)' */ public void testInitialise() { @@ -206,7 +206,7 @@ } } - /* + /** * Test method for 'pcgen.core.chooser.AbilityFromTemplateChoiceManager.AbilityFromTemplateChoiceManager(PObject, PlayerCharacter)' */ public void testAbilityFromTemplateChoiceManager() { @@ -234,18 +234,18 @@ } - /* + /** * Test method for 'pcgen.core.chooser.AbstractCategorisableChoiceManager.doChooser(List, List, List, PlayerCharacter)' */ public void testDoChooserListListListPlayerCharacter() { - + // TODO Do Nothing } - /* + /** * Test method for 'pcgen.core.chooser.AbstractCategorisableChoiceManager.doChooser(CategorisableStore, List)' */ public void testDoChooserCategorisableStoreList() { - + // TODO Do Nothing } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nu...@us...> - 2006-03-22 22:52:14
|
Revision: 383 Author: nuance Date: 2006-03-22 14:52:02 -0800 (Wed, 22 Mar 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=383&view=rev Log Message: ----------- Tiny refactoring Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java Trunk/pcgen/code/src/java/pcgen/core/EquipmentUtilities.java Trunk/pcgen/code/src/java/pcgen/core/utils/CoreUtility.java Modified: Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java 2006-03-22 19:55:05 UTC (rev 382) +++ Trunk/pcgen/code/src/java/pcgen/core/AbilityInfo.java 2006-03-22 22:52:02 UTC (rev 383) @@ -29,7 +29,6 @@ import pcgen.persistence.lst.prereq.PreParserFactory; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; Modified: Trunk/pcgen/code/src/java/pcgen/core/EquipmentUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/EquipmentUtilities.java 2006-03-22 19:55:05 UTC (rev 382) +++ Trunk/pcgen/code/src/java/pcgen/core/EquipmentUtilities.java 2006-03-22 22:52:02 UTC (rev 383) @@ -28,6 +28,8 @@ import java.util.*; +import pcgen.core.utils.CoreUtility; + /** * @author Bryan McRoberts <mer...@us...> * @version $Revision$ @@ -359,9 +361,8 @@ // we want what is inside the outermost parenthesis. String subName = name.substring(start, end); - for (Iterator specIt = Arrays.asList(subName.split("\\s*,\\s*")).iterator(); specIt.hasNext(); ) { - specifics.add(((String) specIt.next()).trim()); - } + specifics.addAll(CoreUtility.split(subName, ',')); + } return altName; Modified: Trunk/pcgen/code/src/java/pcgen/core/utils/CoreUtility.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/utils/CoreUtility.java 2006-03-22 19:55:05 UTC (rev 382) +++ Trunk/pcgen/code/src/java/pcgen/core/utils/CoreUtility.java 2006-03-22 22:52:02 UTC (rev 383) @@ -26,6 +26,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.List; @@ -510,41 +511,13 @@ */ public static List split(final String aString, final char separator) { - int elems = 1; - int beginIndex = 0; - int endIndex; - - if (aString.trim().length() == 0) - { - return new ArrayList(0); + ArrayList temp = new ArrayList(); + + for (Iterator iter = Arrays.asList(aString.split(String.valueOf(separator))).iterator(); iter.hasNext(); ) { + temp.add(((String) iter.next()).trim()); } - for (int i = 0; i < aString.length(); ++i) - { - if (aString.charAt(i) == separator) - { - ++elems; - } - } - - final List result = new ArrayList(elems); - - for (int i = 0; i < elems; ++i) - { - endIndex = aString.indexOf(separator, beginIndex); - - if (endIndex == -1) - { - endIndex = aString.length(); - } - - result.add(aString.substring(beginIndex, endIndex).trim()); - - // Skip separator - beginIndex = endIndex + 1; - } - - return result; + return temp; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nu...@us...> - 2006-03-31 18:48:33
|
Revision: 544 Author: nuance Date: 2006-03-31 10:48:13 -0800 (Fri, 31 Mar 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=544&view=rev Log Message: ----------- [ 1280838 ] VFEAT not applying feats with choices Fixed the broken syntax. The feat is now being added corrctly but is not applying it's benefits. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/utils/FeatParser.java Trunk/pcgen/code/src/test/pcgen/persistence/lst/utils/FeatParserTest.java Modified: Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2006-03-31 16:33:42 UTC (rev 543) +++ Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2006-03-31 18:48:13 UTC (rev 544) @@ -34,7 +34,6 @@ import pcgen.util.Logging; import java.util.ArrayList; -import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; @@ -248,20 +247,10 @@ final PCLevelInfo levelInfo, PlayerCharacter aPC) { - Ability anAbility = Globals.getAbilityNamed("FEAT", featName); - List choices = null; + ArrayList choices = new ArrayList(); + String abilityName = EquipmentUtilities.getUndecoratedName(featName, choices); + Ability anAbility = Globals.getAbilityNamed("FEAT", abilityName); - if (!anAbility.getName().equalsIgnoreCase(featName)) - { - final int i = featName.indexOf('('); - final int j = featName.indexOf(')'); - - if ((i >= 0) && (j >= 0)) - { - choices = Arrays.asList(featName.substring(i + 1, j).split(",")); - } - } - return addVirtualFeat(anAbility, choices, addList, aPC, levelInfo); } Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/utils/FeatParser.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/utils/FeatParser.java 2006-03-31 16:33:42 UTC (rev 543) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/utils/FeatParser.java 2006-03-31 18:48:13 UTC (rev 544) @@ -29,6 +29,7 @@ package pcgen.persistence.lst.utils; import pcgen.core.Ability; +import pcgen.core.EquipmentUtilities; import pcgen.core.Globals; import pcgen.core.prereq.Prerequisite; import pcgen.persistence.PersistenceLayerException; @@ -73,8 +74,9 @@ } else { - // We have a feat name - Ability anAbility = Globals.getAbilityNamed("FEAT", aPart); + ArrayList choices = new ArrayList(); + String abilityName = EquipmentUtilities.getUndecoratedName(aPart, choices); + Ability anAbility = Globals.getAbilityNamed("FEAT", abilityName); if (anAbility != null) { @@ -82,31 +84,10 @@ anAbility.setFeatType(Ability.ABILITY_VIRTUAL); anAbility.clearPreReq(); - // - // Check for crazy things like: - // Weapon Finesse (Claw, Bite) - // Which means add the Weapon Finesse - // feat and apply to Claw and Bite - // - if (!anAbility.getName().equalsIgnoreCase(aPart)) - { - final int i = aPart.indexOf('('); - final int j = aPart.indexOf(')'); - - if ((i >= 0) && (j >= 0)) - { - final StringTokenizer bTok = new StringTokenizer(aPart.substring(i + 1, j), ","); - - while (bTok.hasMoreTokens()) - { - final String a = bTok.nextToken(); - - if (!anAbility.containsAssociated(a)) - { - anAbility.addAssociated(a); - } - } - } + Iterator choiceIt = choices.iterator(); + + while (choiceIt.hasNext()) { + anAbility.addAssociated((String) choiceIt.next()); } aList.add(anAbility); @@ -116,9 +97,9 @@ if ((preString.length() > 0) && !aList.isEmpty()) { - for (Iterator e = aList.iterator(); e.hasNext();) + for (Iterator abilityIt = aList.iterator(); abilityIt.hasNext();) { - Ability anAbility = (Ability) e.next(); + Ability anAbility = (Ability) abilityIt.next(); try { Modified: Trunk/pcgen/code/src/test/pcgen/persistence/lst/utils/FeatParserTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/persistence/lst/utils/FeatParserTest.java 2006-03-31 16:33:42 UTC (rev 543) +++ Trunk/pcgen/code/src/test/pcgen/persistence/lst/utils/FeatParserTest.java 2006-03-31 18:48:13 UTC (rev 544) @@ -27,6 +27,7 @@ import pcgen.core.Globals; import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; +import pcgen.util.TestHelper; /** */ @@ -102,4 +103,22 @@ "", prereq.toString()); } + /** + * testParseVirtualFeatList3 + */ + public void testParseVirtualFeatList3() { + TestHelper.makeAbility("Two Weapon Fighting", "FEAT", "Fighter"); + TestHelper.makeAbility("Weapon Finesse", "FEAT", "Fighter"); + TestHelper.makeAbility("Random Ability 1", "FEAT", "Fighter"); + TestHelper.makeAbility("Random Ability 1", "FEAT", "Fighter"); + + List feats = FeatParser.parseVirtualFeatList("Two Weapon Fighting|Weapon Finesse (Bite, Claws)"); + is(new Integer(feats.size()), eq(2), "size of list"); + + is(((Ability)feats.get(0)).getName(), strEq("Two Weapon Fighting"), "First feat is correct"); + is(((Ability)feats.get(1)).getName(), strEq("Weapon Finesse"), "Second feat is correct"); + + is(((Ability)feats.get(1)).getAssociated(0), strEq("Bite"), "First choice is correct"); + is(((Ability)feats.get(1)).getAssociated(1), strEq("Claws"), "Second choice is correct"); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <boo...@us...> - 2006-04-05 02:28:11
|
Revision: 628 Author: boomer70 Date: 2006-04-04 19:28:01 -0700 (Tue, 04 Apr 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=628&view=rev Log Message: ----------- Removing all references to weapon profs from ability. Segregated the code to support the old CHOOSE:<weapon prof type> method of adding weapon profs to one spot. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Ability.java Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java Trunk/pcgen/code/src/java/pcgen/core/PObjectUtilities.java Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Trunk/pcgen/code/src/java/pcgen/core/chooser/WeaponProfTypeChoiceManager.java Modified: Trunk/pcgen/code/src/java/pcgen/core/Ability.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Ability.java 2006-04-05 02:26:12 UTC (rev 627) +++ Trunk/pcgen/code/src/java/pcgen/core/Ability.java 2006-04-05 02:28:01 UTC (rev 628) @@ -58,7 +58,6 @@ /** Ability is Virtual */ public static final int ABILITY_VIRTUAL = 2; - private boolean isWeaponProf = false; private boolean multiples = false; private boolean needsSaving = false; private boolean stacks = false; @@ -360,33 +359,6 @@ } /** - * Set the name of this ability - * - * @param name - */ - // overrides the set name in PObject so that we can set the is weapon - // proficiency - // property - public void setName(final String name) - { - super.setName(name); - - // this only changes when the name does, so set it here instead of - // calculating every time isWeaponProficiency is called - this.isWeaponProf = (getName().toUpperCase().indexOf("WEAPON PROFICIENCY") >= 0); - } - - /** - * Determine if this ability is a weapon proficiency ability or not. - * - * @return True if the ability is a weapon proficiency. - */ - public boolean isWeaponProficiency() - { - return isWeaponProf; - } - - /** * Whether we can add newAssociation to the associated list of this * Ability * @@ -412,14 +384,13 @@ anAbility = (Ability) super.clone(); anAbility.multiples = multiples; anAbility.stacks = stacks; - anAbility.isWeaponProf = isWeaponProf; } catch (CloneNotSupportedException e) { ShowMessageDelegate.showMessageDialog( - e.getMessage(), - Constants.s_APPNAME, - MessageType.ERROR); + e.getMessage(), + Constants.s_APPNAME, + MessageType.ERROR); } return anAbility; @@ -509,8 +480,8 @@ final StringBuffer aStrBuf = new StringBuffer(getOutputName()); if ((getAssociatedCount() > 0) - && !name.endsWith("Weapon Proficiency") - && !name.startsWith("Armor Proficiency")) + && !name.startsWith("Armor Proficiency") + ) { if ((getChoiceString().length() == 0) || (multiples && stacks)) { @@ -587,9 +558,9 @@ sb.append(aName.substring(idx + 7)); sa = new SpecialAbility( - sb.toString(), - sa.getSASource(), - sa.getSADesc()); + sb.toString(), + sa.getSASource(), + sa.getSADesc()); } aList.add(sa); @@ -791,12 +762,12 @@ final List selectedList = new ArrayList(); // selected list of choices return PObjectUtilities.modChoices( - this, - availableList, - selectedList, - true, - aPC, - addIt); + this, + availableList, + selectedList, + true, + aPC, + addIt); } /** @@ -809,19 +780,19 @@ * @return modified choices */ public boolean modChoices( - final PlayerCharacter aPC, - final boolean addIt, - final List availableList, - final List selectedList, - final boolean process) + final PlayerCharacter aPC, + final boolean addIt, + final List availableList, + final List selectedList, + final boolean process) { return PObjectUtilities.modChoices( - this, - availableList, - selectedList, - process, - aPC, - addIt); + this, + availableList, + selectedList, + process, + aPC, + addIt); } /** @@ -1029,12 +1000,12 @@ } PObjectUtilities.modChoices( - anAbility, - abilityList, - selectedList, - false, - aPC, - true); + anAbility, + abilityList, + selectedList, + false, + aPC, + true); final int currentSelections = selectedList.size(); @@ -1048,7 +1019,7 @@ final ChooserInterface chooser = ChooserFactory.getChooserInstance(); chooser.setPoolFlag(true); // user is required to use all available - // pool points + // pool points chooser.setPool(0); // need to remove 1 to add another chooser.setTitle("Modify selections for " + abilityName); @@ -1114,4 +1085,4 @@ return AbilityUtilities.areSameAbility(this, that); } -} \ No newline at end of file +} Modified: Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2006-04-05 02:26:12 UTC (rev 627) +++ Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2006-04-05 02:28:01 UTC (rev 628) @@ -485,12 +485,7 @@ } else { - if (addIt && anAbility.isWeaponProficiency()) - { - aPC.addWeaponProfToChosenFeats(choice); - added = true; - } - else if ( + if ( addIt && (anAbility.isStacks() || !anAbility.containsAssociated(choice))) { @@ -502,20 +497,6 @@ } } } - else - { - if ( - (anAbility.getChoiceString().lastIndexOf('|') >= 0) && - Globals.weaponTypesContains( - anAbility.getChoiceString().substring(0, - anAbility.getChoiceString().lastIndexOf('|')))) - { - final String aName = - anAbility.getChoiceString().substring(0, - anAbility.getChoiceString().lastIndexOf('|')); - aPC.addWeaponProfToChosenFeats(aName); - } - } } anAbility.modifyChoice(aPC); Modified: Trunk/pcgen/code/src/java/pcgen/core/PObjectUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PObjectUtilities.java 2006-04-05 02:26:12 UTC (rev 627) +++ Trunk/pcgen/code/src/java/pcgen/core/PObjectUtilities.java 2006-04-05 02:28:01 UTC (rev 628) @@ -654,7 +654,9 @@ } if (Globals.weaponTypesContains(choiceType)) { - aPC.addWeaponProf(objPrefix + chosenItem); + // TODO This should go away if we ever depricate the + // CHOOSE:<weapon_type> syntax - boomer70 + obj.addAutoArray("WEAPONPROF|" + chosenItem); } } Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2006-04-05 02:26:12 UTC (rev 627) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2006-04-05 02:28:01 UTC (rev 628) @@ -8070,47 +8070,11 @@ public void addWeaponProf(final String aString) { - addWeaponProfToChosenFeats(aString); + weaponProfList.add(aString); setDirty(true); } /** - * Add the Weapon Proficiency named profName to this character's Abilities. - * @param profName - * - * The method needs access to a list of existing weapon proficiencies. So, - * we make a list of the current Proficiencies before calling it and pass it - * in. When it returns, we add any nonduplicate Abilities to the normal - * Abilities list. - * - * Added this private method which was very similar to addWeaponProf, except - * it doesn't set the character dirty. Need it because the same code was - * being duplicated in several places and they didn't set the character dirty. - */ - void addWeaponProfToChosenFeats(final String profName) { - ArrayList temp = new ArrayList(); - getWeaponProfAbilities(temp); - addWeaponProfToList(temp, profName, false); - addNonDuplicateAbilities(temp); - } - - /** - * Get a list of all chosen Abilities this PC has which are Weapon Proficiencies - * @param temp - */ - private void getWeaponProfAbilities(ArrayList temp) { - Iterator it = this.getRealFeatsIterator(); - while (it.hasNext()) - { - Ability ab = (Ability) it.next(); - if (ab.isWeaponProficiency()) - { - temp.add(ab); - } - } - } - - /** * Add all of the Abilities in aList which the PC does not have to the * chosen Ability store. * @param aList the list of Abilities to test Modified: Trunk/pcgen/code/src/java/pcgen/core/chooser/WeaponProfTypeChoiceManager.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/chooser/WeaponProfTypeChoiceManager.java 2006-04-05 02:26:12 UTC (rev 627) +++ Trunk/pcgen/code/src/java/pcgen/core/chooser/WeaponProfTypeChoiceManager.java 2006-04-05 02:28:01 UTC (rev 628) @@ -63,7 +63,7 @@ /** * Parse the Choice string and build a list of available choices. - * + * * @param aPc * @param availableList * @param selectedList @@ -82,8 +82,8 @@ final List selectedList) { final List tArrayList = Globals.getWeaponProfs(weaponType, aPc); - Iterator iter; - WeaponProf tempProf; + Iterator iter; + WeaponProf tempProf; for (iter = tArrayList.iterator(); iter.hasNext();) { @@ -97,10 +97,10 @@ /** * Associate a choice with the pobject. Only here so we can override part * of the behaviour of applyChoices - * - * @param aPc + * + * @param aPc * @param item the choice to associate - * @param prefix + * @param prefix */ protected void associateChoice( final PlayerCharacter aPc, @@ -108,10 +108,10 @@ final String prefix) { super.associateChoice(aPc, item, prefix); - + if (Globals.weaponTypesContains(weaponType)) { - aPc.addWeaponProf(prefix + item); + pobject.addAutoArray("WEAPONPROF|" + item); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kar...@us...> - 2006-04-05 10:47:00
|
Revision: 633 Author: karianna Date: 2006-04-05 03:45:45 -0700 (Wed, 05 Apr 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=633&view=rev Log Message: ----------- Javadoc, down to < 2300 now :-) Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Kit.java Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java Trunk/pcgen/code/src/java/pcgen/core/kit/KitDeity.java Trunk/pcgen/code/src/java/pcgen/core/kit/KitGear.java Trunk/pcgen/code/src/java/pcgen/core/kit/KitLevelAbility.java Trunk/pcgen/code/src/java/pcgen/core/utils/KeyedListContainer.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitAbilityLoader.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLoader.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLstToken.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLoader.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLstToken.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLoader.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLstToken.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLoader.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLstToken.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLoader.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLstToken.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLstToken.java Modified: Trunk/pcgen/code/src/java/pcgen/core/Kit.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Kit.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/core/Kit.java 2006-04-05 10:45:45 UTC (rev 633) @@ -625,17 +625,35 @@ return PrerequisiteUtilities.preReqHTMLStringsForList(aPC, this, getPreReqList(), false); } + /** + * Add new lookup table + * @param tableName + */ public void addLookupTable(final String tableName) { lookupTables.put(tableName, new LookupTable()); } + /** + * Add a new lookup value to the table + * @param tableName + * @param lookupValue + * @param lowVal + * @param highVal + */ public void addLookupValue(final String tableName, final String lookupValue, final String lowVal, final String highVal) { LookupTable table = (LookupTable)lookupTables.get(tableName); table.addEntry(lookupValue, lowVal, highVal); } + /** + * Get a value out of the table + * @param pc + * @param tableName + * @param value + * @return A value out of the table + */ public String getTableValue(PlayerCharacter pc, final String tableName, String value) { LookupTable t = (LookupTable)lookupTables.get(tableName); @@ -647,6 +665,12 @@ return t.getEntry(pc, val); } + /** + * Perform a lookup + * @param aPC + * @param aValue + * @return result + */ public String lookup(PlayerCharacter aPC, String aValue) { int commaInd = aValue.indexOf(","); @@ -668,11 +692,23 @@ // Empty Constructor } + /** + * Add an entry to the table + * @param value + * @param lowVal + * @param highVal + */ public void addEntry(final String value, final String lowVal, final String highVal) { values.add(new TableEntry(value, lowVal, highVal)); } + /** + * Get an entry from the table + * @param pc + * @param value + * @return entry + */ public String getEntry(PlayerCharacter pc, int value) { for (Iterator i = values.iterator(); i.hasNext(); ) @@ -720,6 +756,10 @@ return false; } + /** + * Get the value + * @return value + */ public String getValue() { return value; Modified: Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/core/kit/KitClass.java 2006-04-05 10:45:45 UTC (rev 633) @@ -48,31 +48,55 @@ private transient int theLevel = -1; private transient boolean doLevelAbilities = true; + /** + * Constructor + * @param aClassName + */ public KitClass(final String aClassName) { theClassName = aClassName; } + /** + * Get the class name + * @return class name + */ public String getClassName() { return theClassName; } + /** + * Set the level + * @param aLevelStr + */ public void setLevel(final String aLevelStr) { theLevelString = aLevelStr; } + /** + * Get the level string + * @return level string + */ public String getLevelString() { return theLevelString; } + /** + * Set the sub class + * @param aClassName + */ public void setSubClass(final String aClassName) { theSubClass = aClassName; } + /** + * Get the sub class + * @return sub class + */ public String getSubClass() { return theSubClass; Modified: Trunk/pcgen/code/src/java/pcgen/core/kit/KitDeity.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/kit/KitDeity.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/core/kit/KitDeity.java 2006-04-05 10:45:45 UTC (rev 633) @@ -32,6 +32,9 @@ import java.util.Iterator; import java.util.List; +/** + * Deal with Dieties via Kits + */ public class KitDeity extends BaseKit implements Serializable, Cloneable { // Only change the UID when the serialized form of the class has also changed @@ -46,6 +49,10 @@ private transient Deity theDeity = null; private transient List domainsToAdd = null; + /** + * Constructor + * @param aDeityName + */ public KitDeity(final String aDeityName) { theDeityName = aDeityName; @@ -60,6 +67,10 @@ return theDeityName; } + /** + * Add the domain + * @param aDomainName + */ public void addDomain(final String aDomainName) { if (theDomains == null) @@ -69,6 +80,10 @@ theDomains.add(aDomainName); } + /** + * Get domains + * @return list of domains + */ public List getDomains() { if (theDomains == null) @@ -78,11 +93,20 @@ return Collections.unmodifiableList(theDomains); } + + /** + * Set the COUNT formula + * @param argCountFormula + */ public void setCountFormula(final String argCountFormula) { countFormula = argCountFormula; } + /** + * Get the COUNT formula + * @return COUNT formula + */ public String getCountFormula() { return countFormula; Modified: Trunk/pcgen/code/src/java/pcgen/core/kit/KitGear.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/kit/KitGear.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/core/kit/KitGear.java 2006-04-05 10:45:45 UTC (rev 633) @@ -60,16 +60,28 @@ private transient Equipment theTarget = null; private transient BigDecimal theCost = BigDecimalHelper.ZERO; + /** + * Constructor + * @param gearName + */ public KitGear(final String gearName) { name = gearName; } + /** + * Get the equipmentt modifiers for this gear + * @return The equipmentt modifiers for this gear + */ public List getEqMods() { return eqMods; } + /** + * Set the max cost + * @param argMaxCost + */ public void setMaxCost(final String argMaxCost) { try @@ -82,6 +94,10 @@ } } + /** + * Get the max cost + * @return max cost + */ public int getMaxCost() { return maxCost; @@ -96,11 +112,19 @@ qty = argQty; } + /** + * Get the quantity + * @return quantity + */ public String getQty() { return qty; } + /** + * Add a equipment modifier + * @param argEqMod + */ public void addEqMod(final String argEqMod) { if (eqMods == null) @@ -111,21 +135,37 @@ eqMods.add(argEqMod); } + /** + * Set the size + * @param aSize + */ public void setSize(final String aSize) { size = aSize; } + /** + * Get the size + * @return size + */ public String getSize() { return size; } + /** + * Set the location of the gear + * @param aLocation + */ public void setLocation(final String aLocation) { theLocationStr = aLocation; } + /** + * Get the location of the gear + * @return location of the gear + */ public String getLocation() { return theLocationStr; Modified: Trunk/pcgen/code/src/java/pcgen/core/kit/KitLevelAbility.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/kit/KitLevelAbility.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/core/kit/KitLevelAbility.java 2006-04-05 10:45:45 UTC (rev 633) @@ -51,16 +51,25 @@ private transient PCClass theClass = null; + /** Constructor */ public KitLevelAbility() { // Empty Constructor } + /** + * Set the class + * @param className + */ public void setClass(final String className) { theClassName = className; } + /** + * Set the level + * @param level + */ public void setLevel(final int level) { theLevel = level; @@ -78,17 +87,30 @@ theChoices.addAll(choices); } + /** + * Get the ability + * @return ability + */ public final String getAbility() { return theAbilityName; } + /** + * Get choices + * @return choices + */ public final List getChoices() { return theChoices; } } + /** + * Add an ability + * @param anAbility + * @param choices + */ public void addAbility(final String anAbility, final List choices) { theAbilities.add(new AbilityChoice(anAbility, choices)); Modified: Trunk/pcgen/code/src/java/pcgen/core/utils/KeyedListContainer.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/utils/KeyedListContainer.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/core/utils/KeyedListContainer.java 2006-04-05 10:45:45 UTC (rev 633) @@ -32,17 +32,54 @@ */ public interface KeyedListContainer { + /** + * Returns true if it contains a list for that key + * @param key + * @return true if it contains a list for that key + */ public boolean containsListFor(ListKey key); + /** + * Retrieves a list based on key + * @param key + * @return list + */ public List getListFor(ListKey key); + /** + * Get the size of a list based off a key + * @param key + * @return The size of a list based off a key + */ public int getSizeOfListFor(ListKey key); + /** + * Returns true if a value is in a list for that key + * @param key + * @param value + * @return true if a value is in a list for that key + */ public boolean containsInList(ListKey key, String value); + /** + * Gets an element from the list + * @param key + * @param i + * @return An element from the list + */ public Object getElementInList(ListKey key, int i); + /** + * Get safe list + * @param key + * @return safe list + */ public List getSafeListFor(ListKey key); + /** + * Get the size of a safe list + * @param key + * @return The size of a safe list + */ public int getSafeSizeOfListFor(ListKey key); } Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitAbilityLoader.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitAbilityLoader.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitAbilityLoader.java 2006-04-05 10:45:45 UTC (rev 633) @@ -10,8 +10,19 @@ import pcgen.persistence.SystemLoader; import pcgen.util.Logging; +/** + * Deals with loading Abilities for Kits + */ public class KitAbilityLoader { + /** + * Parse the line + * + * @param kit + * @param colString + * @param isFeat + * @throws PersistenceLayerException + */ public static void parseLine(Kit kit, String colString, boolean isFeat) throws PersistenceLayerException { @@ -42,7 +53,7 @@ } catch (StringIndexOutOfBoundsException e) { - // TODO Handle Exception + throw new PersistenceLayerException(); } KitAbilityLstToken token = (KitAbilityLstToken) tokenMap.get(key); Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLoader.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLoader.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLoader.java 2006-04-05 10:45:45 UTC (rev 633) @@ -34,8 +34,17 @@ import pcgen.persistence.SystemLoader; import pcgen.util.Logging; +/** + * Deals with loading classes for kits + */ public class KitClassLoader { + /** + * Parse the line + * @param kit + * @param colString + * @throws PersistenceLayerException + */ public static void parseLine(Kit kit, String colString) throws PersistenceLayerException { @@ -59,7 +68,7 @@ } catch (StringIndexOutOfBoundsException e) { - // TODO Handle Exception + throw new PersistenceLayerException(); } KitClassLstToken token = (KitClassLstToken) tokenMap.get(key); Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLstToken.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLstToken.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitClassLstToken.java 2006-04-05 10:45:45 UTC (rev 633) @@ -2,7 +2,16 @@ import pcgen.core.kit.KitClass; +/** + * Interface for dealing with different types of Kit CLASS tokens + */ public interface KitClassLstToken extends LstToken { + /** + * Parse the token + * @param kitClass + * @param value + * @return true if OK + */ public abstract boolean parse(KitClass kitClass, String value); } Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLoader.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLoader.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLoader.java 2006-04-05 10:45:45 UTC (rev 633) @@ -34,8 +34,17 @@ import pcgen.persistence.SystemLoader; import pcgen.util.Logging; +/** + * Deals with loading DEITY for KIT + */ public class KitDeityLoader { + /** + * parse the line + * @param kit + * @param colString + * @throws PersistenceLayerException + */ public static void parseLine(Kit kit, String colString) throws PersistenceLayerException { @@ -59,7 +68,7 @@ } catch (StringIndexOutOfBoundsException e) { - // TODO Handle Exception + throw new PersistenceLayerException(); } KitDeityLstToken token = (KitDeityLstToken) tokenMap.get(key); Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLstToken.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLstToken.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitDeityLstToken.java 2006-04-05 10:45:45 UTC (rev 633) @@ -3,7 +3,16 @@ import pcgen.core.kit.KitDeity; +/** + * Interface for dealing with KIT DEITY tokens + */ public interface KitDeityLstToken extends LstToken { + /** + * Parse + * @param kitDeity + * @param value + * @return true if OK + */ public abstract boolean parse(KitDeity kitDeity, String value); } Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLoader.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLoader.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLoader.java 2006-04-05 10:45:45 UTC (rev 633) @@ -42,6 +42,12 @@ */ public class KitFundsLoader { + /** + * Parse the line + * @param kit + * @param colString + * @throws PersistenceLayerException + */ public static void parseLine(Kit kit, String colString) throws PersistenceLayerException { @@ -64,7 +70,7 @@ } catch (StringIndexOutOfBoundsException e) { - // TODO Handle Exception + throw new PersistenceLayerException(); } KitFundsLstToken token = (KitFundsLstToken) tokenMap.get(key); Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLstToken.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLstToken.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitFundsLstToken.java 2006-04-05 10:45:45 UTC (rev 633) @@ -2,7 +2,16 @@ import pcgen.core.kit.KitFunds; +/** + * Interface for the KitFunds Lst Token + */ public interface KitFundsLstToken extends LstToken { + /** + * Parse + * @param kitFunds + * @param value + * @return true if OK + */ public abstract boolean parse(KitFunds kitFunds, String value); } Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLoader.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLoader.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLoader.java 2006-04-05 10:45:45 UTC (rev 633) @@ -34,8 +34,17 @@ import pcgen.persistence.SystemLoader; import pcgen.util.Logging; +/** + * Loads the Kit Gear + */ public class KitGearLoader { + /** + * Parse the line + * @param kit + * @param colString + * @throws PersistenceLayerException + */ public static void parseLine(Kit kit, String colString) throws PersistenceLayerException { @@ -58,7 +67,7 @@ } catch (StringIndexOutOfBoundsException e) { - // TODO Handle Exception + throw new PersistenceLayerException(); } KitGearLstToken token = (KitGearLstToken) tokenMap.get(key); Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLstToken.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLstToken.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitGearLstToken.java 2006-04-05 10:45:45 UTC (rev 633) @@ -2,7 +2,16 @@ import pcgen.core.kit.KitGear; +/** + * Interface to deal with Kit Gear LST Tokens + */ public interface KitGearLstToken extends LstToken { + /** + * parse + * @param kitGear + * @param value + * @return true if OK + */ public abstract boolean parse(KitGear kitGear, String value); } Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLoader.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLoader.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLoader.java 2006-04-05 10:45:45 UTC (rev 633) @@ -34,8 +34,17 @@ import pcgen.persistence.SystemLoader; import pcgen.util.Logging; +/** + * Loads abilities for levels added by a Kit + */ public class KitLevelAbilityLoader { + /** + * Parse the line + * @param kit + * @param colString + * @throws PersistenceLayerException + */ public static void parseLine(Kit kit, String colString) throws PersistenceLayerException { Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLstToken.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLstToken.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLevelAbilityLstToken.java 2006-04-05 10:45:45 UTC (rev 633) @@ -2,7 +2,16 @@ import pcgen.core.kit.KitLevelAbility; +/** + * Interface to deal with Kit Level Ability Lst Tokens + */ public interface KitLevelAbilityLstToken extends LstToken { + /** + * parse + * @param kitLA + * @param value + * @return true if OK + */ public abstract boolean parse(KitLevelAbility kitLA, String value); } Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLstToken.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLstToken.java 2006-04-05 10:17:18 UTC (rev 632) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/KitLstToken.java 2006-04-05 10:45:45 UTC (rev 633) @@ -42,6 +42,7 @@ * @param aKit the Kit object to add this information to * @param value the token string * @return true if parse OK + * @throws PersistenceLayerException */ public abstract boolean parse(Kit aKit, String value) throws PersistenceLayerException; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kar...@us...> - 2006-07-07 10:17:21
|
Revision: 1177 Author: karianna Date: 2006-07-07 03:16:45 -0700 (Fri, 07 Jul 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=1177&view=rev Log Message: ----------- Various Eclipse warning fixes Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Skill.java Trunk/pcgen/code/src/test/pcgen/persistence/lst/prereq/PreMultParserTest.java Modified: Trunk/pcgen/code/src/java/pcgen/core/Skill.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2006-07-07 09:58:10 UTC (rev 1176) +++ Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2006-07-07 10:16:45 UTC (rev 1177) @@ -56,9 +56,12 @@ public static final int VISIBILITY_DISPLAY_ONLY = 3; //constants for Cost Type String + /** Cost is CLASS cost */ public static final String COST_CLASS = "CLASS"; - public static final String COST_XCLASS = "CROSS-CLASS"; - public static final String COST_EXCL = "EXCLUSIVE"; + /** Cost is CROSS-CLASS cost */ + public static final String COST_XCLASS = "CROSS-CLASS"; + /** Cost is Exclusive cost */ + public static final String COST_EXCL = "EXCLUSIVE"; private static final String COST_UNK = "UNKNOWN"; private static final int ACHECK_NONE = 0; // No @@ -66,10 +69,14 @@ private static final int ACHECK_NONPROF = 2; // Only if not proficient private static final int ACHECK_WEIGHT = 3; // -1 per 5 lbs carried or equipped private static final int ACHECK_DOUBLE = 4; // Double penalty (e.g. for D&D 3.5 swim skill) - public static final int INCLUDE_SKILLS_NONE = 0; - public static final int INCLUDE_SKILLS_UNTRAINED = 1; - public static final int INCLUDE_SKILLS_ALL = 2; - public static final int INCLUDE_SKILLS_AS_UI = 3; + /** Include No skills = 0 */ + public static final int INCLUDE_SKILLS_NONE = 0; + /** Include Untrained skills = 1 */ + public static final int INCLUDE_SKILLS_UNTRAINED = 1; + /** Include All skills = 2 */ + public static final int INCLUDE_SKILLS_ALL = 2; + /** Include skills as per UI choice = 3 */ + public static final int INCLUDE_SKILLS_AS_UI = 3; private ArrayList<String> classList = new ArrayList<String>(); // list of classes with class-access to this skill private ArrayList<String> rankList = new ArrayList<String>(); @@ -85,11 +92,16 @@ private int aCheck = ACHECK_NONE; private int outputIndex = 0; + /** Constructor */ public Skill() { // Empty Constructor } + /** + * Set what armor/encumerance check is applied + * @param aString + */ public void setACheck(final String aString) { if (aString.length() != 0) @@ -127,16 +139,28 @@ } } + /** + * Set Armor/encumerance check + * @param argACheck + */ public void setACheck(final int argACheck) { aCheck = argACheck; } + /** + * Get armor/encumberance check + * @return check + */ public int getACheck() { return aCheck; } + /** + * Get a list of choices + * @return list of choices + */ public ArrayList<String> getChoiceStringList() { String choiceString = getChoiceString(); @@ -156,12 +180,23 @@ return aList; } + /** + * Get a list of classes + * @return classList + */ public ArrayList<String> getClassList() { return classList; } - public boolean isClassSkill(final PCClass aClass, final PlayerCharacter aPC) + /** + * Returns true if it is a CLASS skill + * + * @param aClass + * @param aPC + * @return true if it is a CLASS skill + */ + public boolean isClassSkill(final PCClass aClass, final PlayerCharacter aPC) { if ((aPC == null) || (aClass == null)) { @@ -311,30 +346,47 @@ return false; } - // - // Convenience method - // + // Convenience methods + /** + * @return "Y" if skill is exclusive + */ public String getExclusive() { return isExclusive ? "Y" : "N"; } + /** + * Return true if exclusive + * @return true if exclusive + */ public boolean isExclusive() { return isExclusive; } - public void setIsExclusive(final boolean argExclusive) + /** + * Set whether skill is exclusive or not + * @param argExclusive + */ + public void setIsExclusive(final boolean argExclusive) { isExclusive = argExclusive; } - public void setKeyStat(final String aString) + /** + * Set key stat for the skill + * @param aString + */ + public void setKeyStat(final String aString) { keyStat = aString; } - public String getKeyStat() + /** + * Get the key stat for a skill + * @return key stat + */ + public String getKeyStat() { return keyStat; } @@ -474,7 +526,7 @@ for (int i = 0; i < rankList.size(); i++) { - final String bSkill = (String) rankList.get(i); + final String bSkill = rankList.get(i); final int iOffs = bSkill.indexOf(':'); // @@ -486,22 +538,40 @@ return new Float(rank); } + /** + * Get list of ranks + * @return rankList + */ public ArrayList<String> getRankList() { return rankList; } + /** + * Set required attribute + * @param argRequired + */ public void setRequired(final boolean argRequired) { required = argRequired; } + /** + * Set root name + * @param aString + */ public void setRootName(final String aString) { rootName = aString; } - public String getSkillCostType(final PCClass aClass, final PlayerCharacter aPC) + /** + * Get the type of cost for a skill + * @param aClass + * @param aPC + * @return CLASS, CROSS-CLASS or Exclusive + */ + public String getSkillCostType(final PCClass aClass, final PlayerCharacter aPC) { // This is dippy! So if the user sets costs to something non-standard, the matching no longer works. XXX // isCrossClassSkill() doesn't appear to work, so just go by actual cost values @@ -521,7 +591,11 @@ return COST_UNK; } - public int getSubtypeCount() + /** + * Get a count of the sub types + * @return count of sub types + */ + public int getSubtypeCount() { final int i = getMyTypeCount(); @@ -533,7 +607,11 @@ return i - 1; // ignore first entry, the keystat } - public Iterator getSubtypeIterator() + /** + * Get an iterator for the sub types + * @return iterator for the sub types + */ + public Iterator getSubtypeIterator() { final Iterator it = getSafeListFor(ListKey.TYPE).iterator(); @@ -560,11 +638,19 @@ return new Float(getRank().doubleValue() + getRankAdj(aPC).doubleValue()); } + /** + * Set whether skill can be used untrined or not + * @param yesNo + */ public void setUntrained(final boolean yesNo) { canUseUntrained = yesNo; } + /** + * Return true if skill can be used untrained + * @return true if skill can be used untrained + */ public boolean isUntrained() { return canUseUntrained; @@ -593,7 +679,7 @@ for (idx = 0; idx < rankList.size(); idx++) { - bSkill = (String) rankList.get(idx); + bSkill = rankList.get(idx); if (bSkill.startsWith(aCNameString)) { @@ -616,6 +702,10 @@ } } + /** + * Add to the list of classes + * @param aString + */ public void addClassList(final String aString) { final StringTokenizer aTok = new StringTokenizer(aString, "|"); @@ -776,21 +866,37 @@ return false; } + /** + * Set whether the skill is visible or not + * @param argVisible + */ public void setVisible(final int argVisible) { skillVisible = argVisible; } + /** + * Return true if skill is visible + * @return true if skill is visible + */ public int isVisible() { return skillVisible; } + /** + * Set read only attribute for skill + * @param argReadOnly + */ public void setReadOnly(final boolean argReadOnly) { skillReadOnly = argReadOnly; } - + + /** + * Return true if skill is read only + * @return true if skill is read only + */ public boolean isReadOnly() { return skillReadOnly; @@ -824,11 +930,17 @@ return newSkill; } + /** + * Get the actual cost of a skill point + * @param aClass + * @param aPC + * @return cost of a skill point + */ public int costForPCClass(final PCClass aClass, final PlayerCharacter aPC) { int anInt; - -/* if (!PrereqHandler.passesAll(getPreReqList(), aPC, this)) + /* + if (!PrereqHandler.passesAll(getPreReqList(), aPC, this)) { anInt = Globals.getGameModeSkillCost_Exclusive(); // treat cost of unqualified skills as exclusive } @@ -848,11 +960,28 @@ return anInt; } - public String modRanks(final double rankMod, final PCClass aClass, final PlayerCharacter aPC) + /** + * Modify the rank + * + * @param rankMod + * @param aClass + * @param aPC + * @return message + */ + public String modRanks(final double rankMod, final PCClass aClass, final PlayerCharacter aPC) { return modRanks(rankMod, aClass, false, aPC); } + /** + * Modify the rank + * + * @param rankMod + * @param aClass + * @param ignorePrereqs + * @param aPC + * @return message + */ public String modRanks(double rankMod, final PCClass aClass, final boolean ignorePrereqs, final PlayerCharacter aPC) { int i = 0; @@ -921,7 +1050,7 @@ for (idx = 0; idx < rankList.size(); idx++) { - bSkill = (String) rankList.get(idx); + bSkill = rankList.get(idx); if (bSkill.startsWith(classKeyString)) { @@ -940,7 +1069,7 @@ { for (idx = 0; idx < rankList.size(); idx++) { - bSkill = (String) rankList.get(idx); + bSkill = rankList.get(idx); if (bSkill.startsWith("None:")) { @@ -983,7 +1112,12 @@ return ""; } - public Integer modifier(final PlayerCharacter aPC) + /** + * return the modifier on a skill + * @param aPC + * @return modifier + */ + public Integer modifier(final PlayerCharacter aPC) { int bonus = 0; if (aPC == null) @@ -999,15 +1133,6 @@ } bonus += aPC.getTotalBonusTo("SKILL", keyName); - /* - // This should be handled in the data files - if (Globals.checkRule(RuleConstants.SYS_CIP)) - { - int mod = (int) bonusTo("SKILL", "ToolsRequired"); - bonus += mod; - } - */ - // loop through all current skill types checking for boni for (int typesForBonus = 0; typesForBonus < getMyTypeCount(); typesForBonus++) { @@ -1161,6 +1286,10 @@ return Math.min(maxBonus, minBonus); } + /** + * Get the qualified name + * @return qualified name + */ public String qualifiedName() { if (getAssociatedCount() == 0) @@ -1214,6 +1343,10 @@ return required; } + /** + * Get the root name + * @return root name + */ public String getRootName() { return rootName; @@ -1222,7 +1355,7 @@ /** * return of 0 means exclusive, 1=class-skill, 2=cross-class skill * @param aPCClassList - * @param aPC TODO + * @param aPC * @return cost for pcc class list */ public int costForPCClassList(final List<PCClass> aPCClassList, final PlayerCharacter aPC) @@ -1611,6 +1744,11 @@ bonusDetails.append('[').append(description).append(']'); } + /** + * Get the bonus to a skill rank + * @param aPC + * @return bonus to skill rank + */ public double getSkillRankBonusTo(PlayerCharacter aPC) { double bonus = aPC.getTotalBonusTo("SKILLRANK", getKeyName()); @@ -1625,12 +1763,9 @@ return bonus; } - private void updateAdds(PlayerCharacter aPC, double bonus) { - // // Check for ADDs - // List<LevelAbility> laList = getLevelAbilityList(); if (laList != null) { @@ -1688,9 +1823,10 @@ - // - // Get the key attribute's description - // + /** + * Get the key attribute's description + * @return description + */ public String getKeyStatFromStats() { String aKeyStat = getKeyStat(); @@ -1710,9 +1846,11 @@ return aKeyStat; } - // - // Get the modifier to the skill granted by the key attribute - // + /** + * Get the modifier to the skill granted by the key attribute + * @param pc + * @return modifier + */ public int getStatMod(final PlayerCharacter pc) { String myKeyStat = getKeyStat(); @@ -1734,10 +1872,13 @@ return statMod; } - // - // Get a list of PCStat's that apply a SKILL bonus to this skill. - // Generates (optionally, if typeList is non-null) a list of String's types - // + /** + * Get a list of PCStat's that apply a SKILL bonus to this skill. + * Generates (optionally, if typeList is non-null) a list of String's types + * + * @param typeList + * @return List of stats that apply + */ public List<PCStat> getKeyStatList(List<String> typeList) { List<PCStat> aList = new ArrayList<PCStat>(); Modified: Trunk/pcgen/code/src/test/pcgen/persistence/lst/prereq/PreMultParserTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/persistence/lst/prereq/PreMultParserTest.java 2006-07-07 09:58:10 UTC (rev 1176) +++ Trunk/pcgen/code/src/test/pcgen/persistence/lst/prereq/PreMultParserTest.java 2006-07-07 10:16:45 UTC (rev 1177) @@ -42,7 +42,12 @@ */ public class PreMultParserTest extends TestCase { -//[PREARMORPROF:1,TYPE.Medium],[PREFEAT:1,Armor Proficiency (Medium)] + /** + * Test + * [PREARMORPROF:1,TYPE.Medium],[PREFEAT:1,Armor Proficiency (Medium)] + * + * @param args + */ public static void main(String[] args) { TestRunner.run(PreMultParserTest.class); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <za...@us...> - 2006-08-07 11:39:52
|
Revision: 1271 Author: zaister Date: 2006-08-07 04:39:46 -0700 (Mon, 07 Aug 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=1271&view=rev Log Message: ----------- Fix broken SOURCEDATE Part 1 (Spells still need to be fixed) Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Source.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstObjectFileLoader.java Modified: Trunk/pcgen/code/src/java/pcgen/core/Source.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Source.java 2006-08-07 05:43:30 UTC (rev 1270) +++ Trunk/pcgen/code/src/java/pcgen/core/Source.java 2006-08-07 11:39:46 UTC (rev 1271) @@ -51,7 +51,7 @@ private String theLongName = null; private String theShortName = null; private String theWebsite = null; - private Date theDate = null; + private String theDate = null; private static List<Source> theSources = null; @@ -189,12 +189,33 @@ /** * @return the date */ - public Date getDate() + public String getDate() { return theDate; } /** + * @return the date as numeric value + */ + public int getDateValue() + { + int result = 0; + + if (theDate != null) + { + String[] dates = theDate.split("-"); + if (dates.length == 2) + { + int year = (new Integer(dates[0])).intValue() - 2000; + int month = (new Integer(dates[1])).intValue(); + result = year*12 + month; + } + } + + return result; + } + + /** * Sets the date the source was published. * * <p>This information is used by the system to determine if the object @@ -210,13 +231,7 @@ */ public void setDate(final String aDateStr) throws ParseException { - if ( aDateStr == null ) - { - return; - } - - final DateFormat df = DateFormat.getDateInstance(); - theDate = df.parse(aDateStr); + theDate = aDateStr; } /** Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstObjectFileLoader.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstObjectFileLoader.java 2006-08-07 05:43:30 UTC (rev 1270) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstObjectFileLoader.java 2006-08-07 11:39:46 UTC (rev 1271) @@ -213,7 +213,7 @@ // one, use the new object final Source s1 = pObj.getSourceEntry().getSourceBook(); final Source s2 = currentObj.getSourceEntry().getSourceBook(); - if ( s1.getDate().compareTo(s2.getDate()) > 0 ) + if ( s1.getDateValue() > s2.getDateValue()) // if (pObj.getSourceDateValue() > currentObj.getSourceDateValue()) { performForget( currentObj ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <za...@us...> - 2006-08-22 08:07:02
|
Revision: 1341 Author: zaister Date: 2006-08-22 01:06:54 -0700 (Tue, 22 Aug 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=1341&view=rev Log Message: ----------- Fix for substitution levels. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Trunk/pcgen/code/src/java/pcgen/core/PObject.java Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2006-08-22 06:01:38 UTC (rev 1340) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2006-08-22 08:06:54 UTC (rev 1341) @@ -5214,16 +5214,15 @@ columnNames.add("Name"); List<PCClass> choiceList = new ArrayList<PCClass>(); - choiceList.add(this); - buildSubstitutionClassChoiceList(choiceList, level, aPC); - if (choiceList.size() < 2) { + if (choiceList.size() == 0) { return; } final ChooserInterface c = ChooserFactory.getChooserInstance(); c.setTitle("Substitution Levels"); - c.setMessageText("Make a selection."); + c.setMessageText("Choose one of the listed substitution levels " + + "or press Close to take the standard class level."); c.setPool(1); c.setPoolFlag(false); @@ -5236,12 +5235,9 @@ if (!selectedList.isEmpty()) { SubstitutionClass sc = selectedList.get(0); - // if (! ("".equals(scName) || displayName.equals(scName))) - // { setSubstitutionClassKey(sc.getKeyName(), aLevel); sc.applyLevelArrayModsToLevel(this, aLevel); return; - // } } setSubstitutionClassKey(null, aLevel); } @@ -5667,4 +5663,26 @@ public final String getAttackCycle() { return attackCycle; } + + /** + * Remove all auto feats gained via a level + * @param aLevel + */ + public void removeAllAutoFeats(final int aLevel) + { + if (featAutos != null) + { + for (int x = featAutos.size() - 1; x >= 0; --x) + { + StringTokenizer aTok = new StringTokenizer(featAutos.get(x), "|", false); + final int level = new Integer(aTok.nextToken()).intValue(); + + if (level == aLevel) + { + featAutos.remove(x); + } + } + } + return; + } } Modified: Trunk/pcgen/code/src/java/pcgen/core/PObject.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2006-08-22 06:01:38 UTC (rev 1340) +++ Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2006-08-22 08:06:54 UTC (rev 1341) @@ -2858,6 +2858,25 @@ } /** + * Remove all bonuses gained via a level + * @param aLevel + */ + public void removeAllBonuses(final int aLevel) + { + if (bonusList != null) + { + for (int x = bonusList.size() - 1; x >= 0; --x) + { + if (bonusList.get(x).getPCLevel() == aLevel) + { + bonusList.remove(x); + } + } + } + return; + } + + /** * Remove all abilities gained via a level * @param aLevel */ @@ -2867,9 +2886,7 @@ { for (int x = levelAbilityList.size() - 1; x >= 0; --x) { - final LevelAbility ability = (LevelAbility) levelAbilityList.get(x); - - if (ability.level() == aLevel) + if (levelAbilityList.get(x).level() == aLevel) { levelAbilityList.remove(x); } Modified: Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2006-08-22 06:01:38 UTC (rev 1340) +++ Trunk/pcgen/code/src/java/pcgen/core/SubstitutionClass.java 2006-08-22 08:06:54 UTC (rev 1341) @@ -85,6 +85,11 @@ final CampaignSourceEntry tempSource = new CampaignSourceEntry(customCampaign, aClass.getSourceFile()); + // remove all stuff from the original level + aClass.removeAllBonuses(aLevel); + aClass.removeAllAutoFeats(aLevel); + aClass.removeAllLevelAbilities(aLevel); + for (String aLine : levelArray) { final Integer modLevel = new Integer(aLine.substring(0, aLine.indexOf("\t"))); @@ -92,7 +97,6 @@ if (aLevel == modLevel.intValue()) { final PCClassLoader classLoader = new PCClassLoader(); - aClass.removeAllLevelAbilities(aLevel); classLoader.parseLine(aClass, aLine, tempSource); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2006-10-22 16:56:00
|
Revision: 1511 http://svn.sourceforge.net/pcgen/?rev=1511&view=rev Author: thpr Date: 2006-10-22 09:55:49 -0700 (Sun, 22 Oct 2006) Log Message: ----------- Add some TODOs Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Equipment.java Trunk/pcgen/code/src/java/pcgen/core/GameMode.java Modified: Trunk/pcgen/code/src/java/pcgen/core/Equipment.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2006-10-22 16:55:12 UTC (rev 1510) +++ Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2006-10-22 16:55:49 UTC (rev 1511) @@ -532,6 +532,10 @@ * * @return The equipmentTypes value */ + /* + * TODO Why is this in Equipment when Class, Race, WeaponProf are all + * in Globals? - thpr 10/20/06 + */ public static SortedSet<String> getEquipmentTypes() { return s_equipmentTypes; Modified: Trunk/pcgen/code/src/java/pcgen/core/GameMode.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/GameMode.java 2006-10-22 16:55:12 UTC (rev 1510) +++ Trunk/pcgen/code/src/java/pcgen/core/GameMode.java 2006-10-22 16:55:49 UTC (rev 1511) @@ -2191,6 +2191,7 @@ if (pointBuyStatCosts == null) { // Sort NUMERICALLY, not alphabetically! + // CONSIDER Huh? The natural order of Integer IS numerically... - thpr 10/20/06 pointBuyStatCosts = new TreeMap<Integer, PointBuyCost>(new ComparableComparator()); } abilityScoreCost = null; @@ -2891,6 +2892,7 @@ if (statDisplayText == null) { // Sort NUMERICALLY, not alphabetically! + // CONSIDER Huh? The natural order of Integer IS numerically... - thpr 10/20/06 statDisplayText = new TreeMap<Integer, String>(new ComparableComparator()); } statDisplayText.put(statValue, statText); @@ -2999,6 +3001,7 @@ if (skillRankDisplayText == null) { // Sort NUMERICALLY, not alphabetically! + // CONSIDER Huh? The natural order of Integer IS numerically... - thpr 10/20/06 skillRankDisplayText = new TreeMap<Integer, String>(new ComparableComparator()); } skillRankDisplayText.put(rankValue, rankText); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2007-01-07 20:34:37
|
Revision: 1915 http://svn.sourceforge.net/pcgen/?rev=1915&view=rev Author: thpr Date: 2007-01-07 12:34:32 -0800 (Sun, 07 Jan 2007) Log Message: ----------- Change PrereqObject to eliminate cloning copy Change SpellProhibitor to be a proper PrereqObject (don't duplicate function) Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java Trunk/pcgen/code/src/java/pcgen/core/SpellProhibitor.java Trunk/pcgen/code/src/java/pcgen/core/prereq/Prerequisite.java Modified: Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java 2007-01-07 20:28:36 UTC (rev 1914) +++ Trunk/pcgen/code/src/java/pcgen/core/DamageReduction.java 2007-01-07 20:34:32 UTC (rev 1915) @@ -678,7 +678,10 @@ //Have to do deep clone of Prereqs to match previous behavior :/ if (hasPreReqs()) { clone.clearPreReq(); - clone.addPrerequisites(getClonePreReqList()); + for (Prerequisite prereq : getPreReqList()) + { + clone.addPreReq(prereq.clone()); + } } return clone; } Modified: Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java 2007-01-07 20:28:36 UTC (rev 1914) +++ Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java 2007-01-07 20:34:32 UTC (rev 1915) @@ -192,14 +192,18 @@ if (aBonus.hasPreReqs()) { - try + newBonus.clearPreReq(); + for (Prerequisite prereq : aBonus.getPreReqList()) { - newBonus.addPrerequisites(aBonus.getClonePreReqList()); + try + { + newBonus.addPreReq(prereq.clone()); + } + catch (CloneNotSupportedException e) + { + // TODO Handle this? + } } - catch (CloneNotSupportedException e) - { - // TODO Handle this? - } } // call expandToken to handle prereqs Modified: Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java 2007-01-07 20:28:36 UTC (rev 1914) +++ Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java 2007-01-07 20:34:32 UTC (rev 1915) @@ -364,24 +364,4 @@ } return obj; } - - /** - * Get a clone of the prerequisite list. - * - * <p>This is a deep copy of the prerequisite list, meaning that not only - * is the list itself cloned but all the prerequisites are cloned as well. - * - * @return A clone of the prerequisite list - * @throws CloneNotSupportedException if the prerequisite objects can't be - * cloned. - */ - public List<Prerequisite> getClonePreReqList() throws CloneNotSupportedException - { - final List<Prerequisite> newList = new ArrayList<Prerequisite>(thePrereqs.size()); - for ( Prerequisite element : thePrereqs ) - { - newList.add( (Prerequisite)element.clone()); - } - return newList; - } } Modified: Trunk/pcgen/code/src/java/pcgen/core/SpellProhibitor.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/SpellProhibitor.java 2007-01-07 20:28:36 UTC (rev 1914) +++ Trunk/pcgen/code/src/java/pcgen/core/SpellProhibitor.java 2007-01-07 20:34:32 UTC (rev 1915) @@ -25,8 +25,6 @@ */ package pcgen.core; -import pcgen.core.prereq.PrereqHandler; -import pcgen.core.prereq.Prerequisite; import pcgen.core.spell.Spell; import pcgen.util.enumeration.ProhibitedSpellType; @@ -39,35 +37,16 @@ * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ -public class SpellProhibitor { +public class SpellProhibitor extends PrereqObject { private ProhibitedSpellType type = null; private List<String> valueList = null; - private List<Prerequisite> prereqList = null; public SpellProhibitor() { //Empty Construtor } - public void addPreReq(final Prerequisite prereq) - { - if (prereqList == null) - { - prereqList = new ArrayList<Prerequisite>(); - } - - if (!prereqList.contains(prereq)) - { - prereqList.add(prereq); - } - } - - public List<Prerequisite> getPrereqList() - { - return prereqList; - } - public ProhibitedSpellType getType() { return type; @@ -105,7 +84,7 @@ return false; } - if (prereqList != null && !PrereqHandler.passesAll(prereqList, aPC, null)) + if (!qualifies(aPC)) { return false; } Modified: Trunk/pcgen/code/src/java/pcgen/core/prereq/Prerequisite.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/prereq/Prerequisite.java 2007-01-07 20:28:36 UTC (rev 1914) +++ Trunk/pcgen/code/src/java/pcgen/core/prereq/Prerequisite.java 2007-01-07 20:34:32 UTC (rev 1915) @@ -312,7 +312,7 @@ * * @see java.lang.Object#clone() */ - public Object clone() throws CloneNotSupportedException + public Prerequisite clone() throws CloneNotSupportedException { final Prerequisite copy = (Prerequisite) super.clone(); @@ -321,7 +321,7 @@ copy.prerequisites = new ArrayList<Prerequisite>(); for ( Prerequisite subreq : prerequisites ) { - copy.prerequisites.add((Prerequisite)subreq.clone()); + copy.prerequisites.add(subreq.clone()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2007-01-27 06:26:31
|
Revision: 2069 http://svn.sourceforge.net/pcgen/?rev=2069&view=rev Author: jdempsey Date: 2007-01-26 22:26:32 -0800 (Fri, 26 Jan 2007) Log Message: ----------- Fix bug#1638866 - MULT:YES Abilities can't be added - fix removal of MULT:YES abilities. - Combine duplicate finaliseAbility methods in PlayerCharacter and AbilityUtilities. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2007-01-27 06:20:40 UTC (rev 2068) +++ Trunk/pcgen/code/src/java/pcgen/core/AbilityUtilities.java 2007-01-27 06:26:32 UTC (rev 2069) @@ -374,7 +374,7 @@ * @param category The AbilityCategory to add or remove the ability from. * @return 1 if adding the Ability, or 0 if removing it. */ - private static int finaliseAbility( + public static int finaliseAbility( final Ability ability, final String choice, final PlayerCharacter aPC, @@ -383,17 +383,17 @@ final AbilityCategory category) { // how many sub-choices to make - double featCount = (ability.getAssociatedCount() * ability.getCost(aPC)); + double abilityCount = (ability.getAssociatedCount() * ability.getCost(aPC)); - boolean adjustedFeatPool = false; + boolean adjustedAbilityPool = false; // adjust the associated List if (singleChoice && (addIt || ability.isMultiples())) { - if ("".equals(choice)) + if ("".equals(choice) || choice == null) { // Get modChoices to adjust the associated list and Feat Pool - adjustedFeatPool = ability.modChoices(aPC, addIt); + adjustedAbilityPool = ability.modChoices(aPC, addIt); } else if (addIt) { @@ -442,19 +442,19 @@ ability.subAddsForLevel(-9, aPC); } - if (singleChoice && !adjustedFeatPool) + if (singleChoice && !adjustedAbilityPool) { if (!addIt && !ability.isMultiples() && removed) { // We don't need to adjust the pool for abilities here as it is recalculated each time it is queried. if (category == AbilityCategory.FEAT) { - featCount += ability.getCost(aPC); + abilityCount += ability.getCost(aPC); } } else if (addIt && !ability.isMultiples()) { - featCount -= ability.getCost(aPC); + abilityCount -= ability.getCost(aPC); } else { @@ -468,10 +468,14 @@ } } - featCount -= (listSize * ability.getCost(aPC)); + abilityCount -= (listSize * ability.getCost(aPC)); } - aPC.adjustAbilities(category, BigDecimal.valueOf(featCount)); + + if (category == AbilityCategory.FEAT) + { + aPC.adjustAbilities(category, BigDecimal.valueOf(abilityCount)); + } } aPC.setAutomaticAbilitiesStable(null, false); Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2007-01-27 06:20:40 UTC (rev 2068) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2007-01-27 06:26:32 UTC (rev 2069) @@ -16594,119 +16594,10 @@ return addIt ? 1 : 0; } - return finaliseAbility(aCategory, anAbility, subKey, addIt, - singleChoice1); + return AbilityUtilities.finaliseAbility(anAbility, subKey, this, addIt, + singleChoice1, aCategory); } - private int finaliseAbility(final AbilityCategory aCategory, - final Ability ability, final String choice, final boolean addIt, - final boolean singleChoice) - { - // how many sub-choices to make - double abilityCount = (ability.getAssociatedCount() * ability - .getCost(this)); - - boolean adjustedAbilityPool = false; - - // adjust the associated List - if (singleChoice && (addIt || ability.isMultiples())) - { - if ("".equals(choice)) - { - // Get modChoices to adjust the associated list and Feat Pool - adjustedAbilityPool = ability.modChoices(this, addIt); - } - else if (addIt) - { - if (ability.canAddAssociation(choice)) - { - ability.addAssociated(choice); - } - } - else - { - ability.removeAssociated(choice); - } - } - - /* - * This modifyChoice method is a bit like mod choices, but it uses a - * different tag to set the chooser string. The Tag MODIFYABILITYCHOICE - * which doesn't appear to be used anywhere, so this code is totally - * redundant. - */ - ability.modifyChoice(this); - - if (addIt) - { - final List<String> kitList = ability.getSafeListFor(ListKey.KITS); - for (int i = 0; i < kitList.size(); i++) - { - KitUtilities.makeKitSelections(0, kitList.get(i), 1, this); - } - } - - // if no sub choices made (i.e. all of them removed in Chooser box), - // then remove the Feat - boolean removed = false; - boolean result = (ability.isMultiples() && singleChoice) ? (ability - .getAssociatedCount() > 0) : addIt; - - if (!result) - { - removed = removeRealAbility(aCategory, ability); - removeNaturalWeapons(ability); - - for (int x = 0; x < ability.templatesAdded().size(); ++x) - { - removeTemplate(getTemplateKeyed(ability.templatesAdded().get(x))); - } - ability.subAddsForLevel(-9, this); - } - - if (singleChoice && !adjustedAbilityPool) - { - if (!addIt && !ability.isMultiples() && removed) - { - abilityCount += ability.getCost(this); - } - else if (addIt && !ability.isMultiples()) - { - abilityCount -= ability.getCost(this); - } - else - { - int listSize = ability.getAssociatedCount(); - - for (final Ability myAbility : getRealAbilityList(aCategory)) - { - if (myAbility.getKeyName().equalsIgnoreCase( - ability.getKeyName())) - { - listSize = myAbility.getAssociatedCount(); - } - } - - abilityCount -= (listSize * ability.getCost(this)); - } - - if (aCategory == AbilityCategory.FEAT) - { - adjustAbilities(aCategory, new BigDecimal(abilityCount)); - } - } - - setAutomaticAbilitiesStable(aCategory, false); - - if (addIt && !isImporting()) - { - ability.globalChecks(false, this); - ability.checkRemovals(this); - } - - return result ? 1 : 0; - } - /** * Returns the Feat definition searching by key (not name), as found in the * <b>aggregate</b> feat list. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |