From: <th...@us...> - 2008-07-22 00:20:40
|
Revision: 7221 http://pcgen.svn.sourceforge.net/pcgen/?rev=7221&view=rev Author: thpr Date: 2008-07-22 00:20:48 +0000 (Tue, 22 Jul 2008) Log Message: ----------- better performance optimization on abilities Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-07-22 00:13:24 UTC (rev 7220) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-07-22 00:20:48 UTC (rev 7221) @@ -17088,56 +17088,51 @@ i++; List<PCTemplate> templateList = new ArrayList<PCTemplate>(); List<Equipment> naturalWeaponsList = new ArrayList<Equipment>(); + addNonAbilityAutoFeats(theAbilities.get(AbilityCategory.FEAT, + Ability.Nature.AUTOMATIC)); List<PObject> pobjectList = getConditionalTemplateObjects(); pobjectList.addAll(getPObjectList()); //TODO pobjectList needs to be getCDOMObjects() once Ability & AUTO are new syntax - for (AbilityCategory cat : theAbilities.getKeySet()) + for (final PObject pobj : pobjectList) { - for (Ability.Nature nature : theAbilities.getSecondaryKeySet(cat)) + for (AbilityCategory cat : pobj.getAbilityCategories()) { - if (nature != Ability.Nature.ANY) + for (Ability.Nature nature : pobj.getAbilityNatures(cat)) { List<Ability> abilities = theAbilities.get(cat, nature); - for (final PObject pobj : pobjectList) + final List<String> abilityKeys = pobj.getAbilityKeys( + this, cat, nature); + for (final String key : abilityKeys) { - final List<String> abilityKeys = - pobj.getAbilityKeys(this, cat, nature); - for (final String key : abilityKeys) + final Ability added = AbilityUtilities + .addCloneOfGlobalAbilityToListWithChoices( + abilities, cat, key); + if (added != null) { - final Ability added = - AbilityUtilities - .addCloneOfGlobalAbilityToListWithChoices( - abilities, cat, key); - if (added != null) + added.setFeatType(nature); + for (CDOMReference<PCTemplate> ref : added + .getSafeListFor(ListKey.TEMPLATE)) { - added.setFeatType(nature); - for (CDOMReference<PCTemplate> ref : added.getSafeListFor(ListKey.TEMPLATE)) - { - templateList.addAll(ref.getContainedObjects()); - } - naturalWeaponsList.addAll(added.getNaturalWeapons()); + templateList.addAll(ref + .getContainedObjects()); } + naturalWeaponsList.addAll(added + .getNaturalWeapons()); } } - - if (cat == AbilityCategory.FEAT - && nature == Ability.Nature.AUTOMATIC) - { - addNonAbilityAutoFeats(abilities); - } + // May have added templates, so scan for them + addTemplatesIfMissing(templateList); + addNaturalWeaponsIfMissing(naturalWeaponsList); } - // May have added templates, so scan for them - addTemplatesIfMissing(templateList); - addNaturalWeaponsIfMissing(naturalWeaponsList); } // Feats have a second list which we need to populate - if (cat == AbilityCategory.FEAT) - { - stableAggregateFeatList = new ArrayList<Ability>(); - stableAggregateFeatList.addAll(theAbilities.get(cat, Ability.Nature.NORMAL)); - stableAggregateFeatList.addAll(theAbilities.get(cat, Ability.Nature.AUTOMATIC)); - stableAggregateFeatList.addAll(theAbilities.get(cat, Ability.Nature.VIRTUAL)); - } + stableAggregateFeatList = new ArrayList<Ability>(); + stableAggregateFeatList.addAll(theAbilities.get( + AbilityCategory.FEAT, Ability.Nature.NORMAL)); + stableAggregateFeatList.addAll(theAbilities.get( + AbilityCategory.FEAT, Ability.Nature.AUTOMATIC)); + stableAggregateFeatList.addAll(theAbilities.get( + AbilityCategory.FEAT, Ability.Nature.VIRTUAL)); } } cachedWeaponProfs = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-07-27 03:32:27
|
Revision: 7243 http://pcgen.svn.sourceforge.net/pcgen/?rev=7243&view=rev Author: jdempsey Date: 2008-07-27 03:32:36 +0000 (Sun, 27 Jul 2008) Log Message: ----------- Fix bug: BONUS to a list of stats does not show on output Issue#: 2029117 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-07-27 03:20:09 UTC (rev 7242) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-07-27 03:32:36 UTC (rev 7243) @@ -87,6 +87,7 @@ import pcgen.core.bonus.Bonus; import pcgen.core.bonus.BonusObj; import pcgen.core.bonus.BonusObj.BonusPair; +import pcgen.core.bonus.util.MissingObject; import pcgen.core.character.CharacterSpell; import pcgen.core.character.CompanionMod; import pcgen.core.character.EquipSet; @@ -14615,7 +14616,6 @@ * Should equipment bonuses be included? * @return The bonus to the stat. */ - @Deprecated public int getPartialStatBonusFor(String statAbbr, boolean useTemp, boolean useEquip) { @@ -14637,6 +14637,23 @@ found = true; break; } + //TODO: This should be put into a proper object when parisng. + if (element instanceof MissingObject) + { + String name = ((MissingObject) element).getObjectName(); + if ("%LIST".equals(name) && bonus.getCreatorObject() instanceof PObject) + { + PObject creator = (PObject) bonus.getCreatorObject(); + for (AssociatedChoice<String> assoc : creator.getAssociatedList()) + { + if (assoc.getChoices().contains(statAbbr)) + { + found = true; + break; + } + } + } + } } if (!found) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-07-27 22:54:24
|
Revision: 7254 http://pcgen.svn.sourceforge.net/pcgen/?rev=7254&view=rev Author: jdempsey Date: 2008-07-27 22:54:32 +0000 (Sun, 27 Jul 2008) Log Message: ----------- Fix bug: BONUS to a list of stats does not show on output Issue#: 2029117 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-07-27 22:07:01 UTC (rev 7253) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-07-27 22:54:32 UTC (rev 7254) @@ -14605,7 +14605,8 @@ if (element instanceof MissingObject) { String name = ((MissingObject) element).getObjectName(); - if ("%LIST".equals(name) && bonus.getCreatorObject() instanceof PObject) + if (("%LIST".equals(name) || "LIST".equals(name)) + && bonus.getCreatorObject() instanceof PObject) { PObject creator = (PObject) bonus.getCreatorObject(); for (AssociatedChoice<String> assoc : creator.getAssociatedList()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <za...@us...> - 2008-08-05 17:06:30
|
Revision: 7353 http://pcgen.svn.sourceforge.net/pcgen/?rev=7353&view=rev Author: zaister Date: 2008-08-05 17:06:36 +0000 (Tue, 05 Aug 2008) Log Message: ----------- More backward compatibility for character pcg files without favored class information. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-08-05 03:02:33 UTC (rev 7352) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-08-05 17:06:36 UTC (rev 7353) @@ -6399,10 +6399,7 @@ addNaturalWeapons(race.getNaturalWeapons()); getAutoLanguages(); - if (!isImporting()) - { - getRacialFavoredClasses(); - } + getRacialFavoredClasses(isImporting()); selectTemplates(race, isImporting()); // gets and adds templates @@ -12037,11 +12034,11 @@ return hasWeaponProfKeyed(wp.getKeyName()); } - private SortedSet<String> getRacialFavoredClasses() + private SortedSet<String> getRacialFavoredClasses(boolean isImporting) { String rfc = getRace().getFavoredClass(); - if (rfc.startsWith("CHOOSE:")) + if (!isImporting && rfc.startsWith("CHOOSE:")) { final List<PCClass> availableList = new ArrayList<PCClass>(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-08-20 23:03:39
|
Revision: 7529 http://pcgen.svn.sourceforge.net/pcgen/?rev=7529&view=rev Author: thpr Date: 2008-08-20 23:03:47 +0000 (Wed, 20 Aug 2008) Log Message: ----------- [ 2045771 ] DEFINE:LOCK.INT not taking higher number in familiars Issue#: 2045771 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-08-20 21:26:54 UTC (rev 7528) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-08-20 23:03:47 UTC (rev 7529) @@ -17893,6 +17893,7 @@ public Number getLockedStat(PCStat stat) { + Number max = Double.NEGATIVE_INFINITY; for (CDOMObject cdo : getCDOMObjectList()) { List<StatLock> lockList = cdo.getListFor(ListKey.STAT_LOCKS); @@ -17902,7 +17903,13 @@ { if (lock.getLockedStat().equals(stat)) { - return lock.getLockValue().resolve(this, cdo.getKeyName()); + Number val = + lock.getLockValue().resolve(this, + cdo.getKeyName()); + if (val.doubleValue() > max.doubleValue()) + { + max = val; + } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-08-20 23:07:47
|
Revision: 7530 http://pcgen.svn.sourceforge.net/pcgen/?rev=7530&view=rev Author: thpr Date: 2008-08-20 23:07:55 +0000 (Wed, 20 Aug 2008) Log Message: ----------- back out 7529 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-08-20 23:03:47 UTC (rev 7529) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-08-20 23:07:55 UTC (rev 7530) @@ -17893,7 +17893,6 @@ public Number getLockedStat(PCStat stat) { - Number max = Double.NEGATIVE_INFINITY; for (CDOMObject cdo : getCDOMObjectList()) { List<StatLock> lockList = cdo.getListFor(ListKey.STAT_LOCKS); @@ -17903,13 +17902,7 @@ { if (lock.getLockedStat().equals(stat)) { - Number val = - lock.getLockValue().resolve(this, - cdo.getKeyName()); - if (val.doubleValue() > max.doubleValue()) - { - max = val; - } + return lock.getLockValue().resolve(this, cdo.getKeyName()); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-09-07 00:32:36
|
Revision: 7661 http://pcgen.svn.sourceforge.net/pcgen/?rev=7661&view=rev Author: jdempsey Date: 2008-09-07 00:32:43 +0000 (Sun, 07 Sep 2008) Log Message: ----------- Fix bug: VFEAT Lost respect for PRExxx Issue#: 2063650 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-07 00:31:53 UTC (rev 7660) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-07 00:32:43 UTC (rev 7661) @@ -17049,6 +17049,10 @@ .getListAssociations(Ability.FEATLIST, ref); for (Ability ab : ref.getContainedObjects()) { for (AssociatedPrereqObject apo : assoc) { + if (!PrereqHandler.passesAll(apo.getPrerequisiteList(), this, cdo)) + { + continue; + } List<String> choices = apo .getAssociation(AssociationKey.ASSOC_CHOICES); if (choices == null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-09-07 12:53:39
|
Revision: 7671 http://pcgen.svn.sourceforge.net/pcgen/?rev=7671&view=rev Author: jdempsey Date: 2008-09-07 12:53:48 +0000 (Sun, 07 Sep 2008) Log Message: ----------- Fix bug: [5.15.1] Removing Template (A) fails to remove 'Children Templates' Issue#: 2097883 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-07 06:44:45 UTC (rev 7670) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-07 12:53:48 UTC (rev 7671) @@ -17797,6 +17797,19 @@ removeTemplate(getTemplateKeyed(pct.getKeyName())); } } + + Collection<CDOMReference<PCTemplate>> refList = po.getListFor(ListKey.TEMPLATE); + if (refList != null) + { + for (CDOMReference<PCTemplate> pctr : refList) + { + for (PCTemplate pct : pctr.getContainedObjects()) + { + removeTemplate(getTemplateKeyed(pct.getKeyName())); + } + } + } + } public Collection<PCTemplate> getTemplatesAdded(PObject po) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-09-14 23:15:27
|
Revision: 7729 http://pcgen.svn.sourceforge.net/pcgen/?rev=7729&view=rev Author: thpr Date: 2008-09-14 23:15:37 +0000 (Sun, 14 Sep 2008) Log Message: ----------- [ 2045771 ] DEFINE:LOCK.INT not taking higher number in familiars Issue#: 2045771 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-14 22:26:21 UTC (rev 7728) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-14 23:15:37 UTC (rev 7729) @@ -17910,6 +17910,7 @@ public Number getLockedStat(PCStat stat) { + Number max = Double.NEGATIVE_INFINITY; for (CDOMObject cdo : getCDOMObjectList()) { List<StatLock> lockList = cdo.getListFor(ListKey.STAT_LOCKS); @@ -17919,7 +17920,13 @@ { if (lock.getLockedStat().equals(stat)) { - return lock.getLockValue().resolve(this, cdo.getKeyName()); + Number val = + lock.getLockValue().resolve(this, + cdo.getKeyName()); + if (val.doubleValue() > max.doubleValue()) + { + max = val; + } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-09-28 17:53:46
|
Revision: 7825 http://pcgen.svn.sourceforge.net/pcgen/?rev=7825&view=rev Author: thpr Date: 2008-09-28 17:53:34 +0000 (Sun, 28 Sep 2008) Log Message: ----------- fix last checkin Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-28 17:52:41 UTC (rev 7824) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-28 17:53:34 UTC (rev 7825) @@ -7115,11 +7115,14 @@ retString = PlayerCharacterUtilities.getBestUDamString(retString, pObjDamage); - int b = (int) getStatBonusTo("DAMAGE", "TYPE.MELEE"); - b += (int) getStatBonusTo("DAMAGE", "TYPE=MELEE"); - if (b != 0) + if (includeStrBonus) { - retString = retString + Delta.toString(b); + int b = (int) getStatBonusTo("DAMAGE", "TYPE.MELEE"); + b += (int) getStatBonusTo("DAMAGE", "TYPE=MELEE"); + if (b != 0) + { + retString = retString + Delta.toString(b); + } } // string is in form sides|damage, just return damage portion This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-09-28 18:34:06
|
Revision: 7827 http://pcgen.svn.sourceforge.net/pcgen/?rev=7827&view=rev Author: thpr Date: 2008-09-28 18:34:01 +0000 (Sun, 28 Sep 2008) Log Message: ----------- udam bug fix Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-28 18:13:40 UTC (rev 7826) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-28 18:34:01 UTC (rev 7827) @@ -7112,6 +7112,10 @@ // If no UDAM exists, just grab default damage for the race, Michael Osterlie pObjDamage = getRace().getUdam(); } + else + { + pObjDamage = pObjDamage.substring(pObjDamage.indexOf('|') + 1); + } retString = PlayerCharacterUtilities.getBestUDamString(retString, pObjDamage); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-09-30 15:16:39
|
Revision: 7842 http://pcgen.svn.sourceforge.net/pcgen/?rev=7842&view=rev Author: thpr Date: 2008-09-30 15:16:21 +0000 (Tue, 30 Sep 2008) Log Message: ----------- attempt fix of UDAM issue Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-30 04:04:32 UTC (rev 7841) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-09-30 15:16:21 UTC (rev 7842) @@ -7102,7 +7102,7 @@ if (pObj.containsListFor(ListKey.UDAM)) { pObjDamage = - PlayerCharacterUtilities.getBestUDamString(retString, pObj.getUdamForSize(sizeInt)); + PlayerCharacterUtilities.getBestUDamString(pObjDamage, pObj.getUdamForSize(sizeInt)); } } if (pObjDamage == null) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-10-03 02:04:52
|
Revision: 7880 http://pcgen.svn.sourceforge.net/pcgen/?rev=7880&view=rev Author: thpr Date: 2008-10-03 02:04:47 +0000 (Fri, 03 Oct 2008) Log Message: ----------- spellling Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-10-03 01:31:47 UTC (rev 7879) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-10-03 02:04:47 UTC (rev 7880) @@ -17021,7 +17021,7 @@ catch (Exception e) { Logging.errorPrint( - "Encountered error while rebuilding abiltiies list - ignoring", + "Encountered error while rebuilding abilities list - ignoring", e); } finally This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nu...@us...> - 2008-10-10 23:08:42
|
Revision: 8024 http://pcgen.svn.sourceforge.net/pcgen/?rev=8024&view=rev Author: nuance Date: 2008-10-10 23:08:30 +0000 (Fri, 10 Oct 2008) Log Message: ----------- Fix null pointer exception in tests. Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-10-10 22:21:29 UTC (rev 8023) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-10-10 23:08:30 UTC (rev 8024) @@ -17701,8 +17701,10 @@ * @param aPC * The PC that this Template is appled to */ - private void getLevelFeat(PCTemplate pct, final int lvl, - final String aKey) + private void getLevelFeat( + PCTemplate pct, + final int lvl, + final String aKey) { String featKe = null; while (true) @@ -17940,14 +17942,7 @@ for (FixedStringList ac : assocList) { final String choiceStr = ac.get(0); - if (Constants.EMPTY_STRING.equals(choiceStr)) - { - list.add(null); - } - else - { - list.add(choiceStr); - } + list.add(choiceStr); } } return list; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2008-10-22 01:16:55
|
Revision: 8176 http://pcgen.svn.sourceforge.net/pcgen/?rev=8176&view=rev Author: thpr Date: 2008-10-22 01:16:48 +0000 (Wed, 22 Oct 2008) Log Message: ----------- [ 2183608 ] NATURALATTACKS: not being applied by ABILITY [ 2183606 ] TEMPLATE:x not being applied from Ability Issue#: 2183608 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-10-22 01:03:17 UTC (rev 8175) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-10-22 01:16:48 UTC (rev 8176) @@ -17112,9 +17112,20 @@ abilities); if (added != null) { added.setAbilityNature(nature); + for (CDOMReference<PCTemplate> tr : added + .getSafeListFor(ListKey.TEMPLATE)) + { + templateList.addAll(tr + .getContainedObjects()); + } + naturalWeaponsList.addAll(added + .getSafeListFor(ListKey.NATURAL_WEAPON)); } } } + // May have added templates, so scan for them + addTemplatesIfMissing(templateList); + addNaturalWeaponsIfMissing(naturalWeaponsList); } for (CDOMReference<AbilityList> list : abilityLists) { @@ -17144,8 +17155,19 @@ abilities); if (added != null) { added.setAbilityNature(nature); + for (CDOMReference<PCTemplate> tr : added + .getSafeListFor(ListKey.TEMPLATE)) + { + templateList.addAll(tr + .getContainedObjects()); + } + naturalWeaponsList.addAll(added + .getSafeListFor(ListKey.NATURAL_WEAPON)); } } + // May have added templates, so scan for them + addTemplatesIfMissing(templateList); + addNaturalWeaponsIfMissing(naturalWeaponsList); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-11-07 07:22:47
|
Revision: 8346 http://pcgen.svn.sourceforge.net/pcgen/?rev=8346&view=rev Author: jdempsey Date: 2008-11-07 07:22:42 +0000 (Fri, 07 Nov 2008) Log Message: ----------- Fix bug: ADD:LANGUAGE allows choice of already select objects Issue#: 2219777 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-11-07 05:09:31 UTC (rev 8345) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-11-07 07:22:42 UTC (rev 8346) @@ -18396,13 +18396,13 @@ addLang = true; } + availableLangs.remove(aLang); if (addLang) { selectedLangs.add(aLang); } else { - availableLangs.remove(aLang); excludedLangs.add(aLang); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-11-23 06:18:44
|
Revision: 8472 http://pcgen.svn.sourceforge.net/pcgen/?rev=8472&view=rev Author: jdempsey Date: 2008-11-23 06:18:37 +0000 (Sun, 23 Nov 2008) Log Message: ----------- Allow CHOOSE to be used in races Issue#: 2330943 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-11-23 03:18:21 UTC (rev 8471) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-11-23 06:18:37 UTC (rev 8472) @@ -112,6 +112,7 @@ import pcgen.core.character.Follower; import pcgen.core.character.SpellBook; import pcgen.core.character.SpellInfo; +import pcgen.core.chooser.ChooserUtilities; import pcgen.core.levelability.LevelAbility; import pcgen.core.pclevelinfo.PCLevelInfo; import pcgen.core.prereq.PrereqHandler; @@ -6409,6 +6410,15 @@ Globals.getBioSet().randomize("AGE.HT.WT", this); } + boolean choiceMade = ChooserUtilities.modChoices( + race, + new ArrayList(), + new ArrayList(), + true, + this, + true, + null); + // Get existing classes final List<PCClass> existingClasses = new ArrayList<PCClass>(classList); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-11-23 12:14:31
|
Revision: 8473 http://pcgen.svn.sourceforge.net/pcgen/?rev=8473&view=rev Author: jdempsey Date: 2008-11-23 12:14:26 +0000 (Sun, 23 Nov 2008) Log Message: ----------- Allow CHOOSE to be used in templates Issue#: 2332545 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-11-23 06:18:37 UTC (rev 8472) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-11-23 12:14:26 UTC (rev 8473) @@ -8355,6 +8355,16 @@ } } + // Do chooser (if any) + boolean choiceMade = ChooserUtilities.modChoices( + inTmpl, + new ArrayList(), + new ArrayList(), + true, + this, + true, + null); + if (!isImporting()) { getSpellList(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2008-12-08 10:39:18
|
Revision: 8601 http://pcgen.svn.sourceforge.net/pcgen/?rev=8601&view=rev Author: jdempsey Date: 2008-12-08 10:39:12 +0000 (Mon, 08 Dec 2008) Log Message: ----------- Fix bug: removeObjectsForLevelInfo performs useless remove Issue#: 2244939 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-12-07 23:18:43 UTC (rev 8600) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2008-12-08 10:39:12 UTC (rev 8601) @@ -13715,20 +13715,18 @@ { // remove this object from the feats lists - for (Iterator<Ability> iterator = - getRealAbilitiesList(AbilityCategory.FEAT).iterator(); iterator - .hasNext();) + for (Ability feat : getRealAbilitiesList(AbilityCategory.FEAT)) { - final Ability feat = iterator.next(); if (object == feat) { - iterator.remove(); + removeRealAbility(AbilityCategory.FEAT, feat); } } + // remove this object from the feats lists for (Iterator<Ability> iterator = - theAbilities.get(AbilityCategory.FEAT, - Ability.Nature.VIRTUAL).iterator(); iterator.hasNext();) + getDirectVirtualAbilities(AbilityCategory.FEAT).iterator(); iterator + .hasNext();) { final Ability feat = iterator.next(); if (object == feat) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2009-01-10 02:37:11
|
Revision: 8954 http://pcgen.svn.sourceforge.net/pcgen/?rev=8954&view=rev Author: thpr Date: 2009-01-10 02:36:59 +0000 (Sat, 10 Jan 2009) Log Message: ----------- [ 2488878 ] Concurrent modification error [STARTSKILLPTS with leveling] Issue#: 2488878 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-10 02:35:04 UTC (rev 8953) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-10 02:36:59 UTC (rev 8954) @@ -49,8 +49,8 @@ import java.util.Set; import java.util.SortedSet; import java.util.StringTokenizer; -import java.util.TreeMap; import java.util.TreeSet; +import java.util.concurrent.ConcurrentHashMap; import pcgen.base.formula.Formula; import pcgen.base.lang.StringUtil; @@ -230,7 +230,7 @@ private List<BonusObj> tempBonusList = new ArrayList<BonusObj>(); private Set<String> tempBonusFilters = new TreeSet<String>(); - private Map<String, String> activeBonusMap = new TreeMap<String, String>(); + private Map<String, String> activeBonusMap = new ConcurrentHashMap<String, String>(); private Race race = null; private PCClass selectedFavoredClass = null; private final StatList statList = new StatList(this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2009-01-10 22:08:08
|
Revision: 8964 http://pcgen.svn.sourceforge.net/pcgen/?rev=8964&view=rev Author: jdempsey Date: 2009-01-10 22:03:34 +0000 (Sat, 10 Jan 2009) Log Message: ----------- Fix for NPE when SPELLSKNOWN are the only spells for a character Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-10 13:15:12 UTC (rev 8963) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-10 22:03:34 UTC (rev 8964) @@ -17862,6 +17862,10 @@ { List<CharacterSpell> csList = getAssocList(spellSource, AssociationListKey.CHARACTER_SPELLS); + if (csList == null) + { + csList = new ArrayList<CharacterSpell>(); + } // Add in the spells granted by objects SpellLevel.addBonusKnowSpellsToList(this, spellSource, csList); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2009-01-15 21:19:12
|
Revision: 8993 http://pcgen.svn.sourceforge.net/pcgen/?rev=8993&view=rev Author: thpr Date: 2009-01-15 21:19:09 +0000 (Thu, 15 Jan 2009) Log Message: ----------- fix broken unit tests (whoopsie!) Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-15 16:18:22 UTC (rev 8992) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-15 21:19:09 UTC (rev 8993) @@ -9789,41 +9789,46 @@ // TypedBonus.totalBonusesByType(bonuses); // return CoreUtility.commaDelimit(bonusStrings); + final Set<String> keys = new TreeSet<String>(); for (String aKey : getActiveBonusMap().keySet()) { if (aKey.startsWith(prefix)) { - // make a list of keys that end with .REPLACE - if (aKey.endsWith(".REPLACE")) + keys.add(aKey); + } + } + for (String aKey : keys) + { + // make a list of keys that end with .REPLACE + if (aKey.endsWith(".REPLACE")) + { + aList.add(aKey); + } + else + { + String reason = ""; + + if (aKey.length() > prefix.length()) { - aList.add(aKey); + reason = aKey.substring(prefix.length() + 1); } - else - { - String reason = ""; - if (aKey.length() > prefix.length()) - { - reason = aKey.substring(prefix.length() + 1); - } + final int b = (int) getActiveBonusForMapKey(aKey, 0); - final int b = (int) getActiveBonusForMapKey(aKey, 0); + if (b == 0) + { + continue; + } - if (b == 0) + if (!"NULL".equals(reason) && (reason.length() > 0)) + { + if (buf.length() > 0) { - continue; + buf.append(", "); } - - if (!"NULL".equals(reason) && (reason.length() > 0)) - { - if (buf.length() > 0) - { - buf.append(", "); - } - buf.append(reason).append(' '); - } - buf.append(Delta.toString(b)); + buf.append(reason).append(' '); } + buf.append(Delta.toString(b)); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2009-01-16 02:33:57
|
Revision: 9007 http://pcgen.svn.sourceforge.net/pcgen/?rev=9007&view=rev Author: thpr Date: 2009-01-16 01:54:31 +0000 (Fri, 16 Jan 2009) Log Message: ----------- optimization Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-16 01:52:07 UTC (rev 9006) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-16 01:54:31 UTC (rev 9007) @@ -16645,23 +16645,20 @@ { continue; } + Nature nature = apo + .getAssociation(AssociationKey.NATURE); + AbilityCategory cat = apo + .getAssociation(AssociationKey.CATEGORY); + List<String> choices = apo + .getAssociation(AssociationKey.ASSOC_CHOICES); + if (choices == null) + { + choices = Collections.emptyList(); + } + List<Ability> abilities = + theAbilities.get(cat, nature); for (Ability ab : ref.getContainedObjects()) { - List<String> choices = - apo - .getAssociation(AssociationKey.ASSOC_CHOICES); - if (choices == null) - { - choices = Collections.emptyList(); - } - Nature nature = - apo - .getAssociation(AssociationKey.NATURE); - AbilityCategory cat = - apo - .getAssociation(AssociationKey.CATEGORY); - List<Ability> abilities = - theAbilities.get(cat, nature); Ability added = AbilityUtilities .addAbilityToListwithChoices(this, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2009-01-29 02:42:07
|
Revision: 9136 http://pcgen.svn.sourceforge.net/pcgen/?rev=9136&view=rev Author: thpr Date: 2009-01-29 02:42:02 +0000 (Thu, 29 Jan 2009) Log Message: ----------- protection from accidental internal modification Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-29 02:22:09 UTC (rev 9135) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-29 02:42:02 UTC (rev 9136) @@ -17796,7 +17796,9 @@ hml = SpellLevel.getMasterLevelInfo(this, sp); cache.addToMapFor(MapKey.SPELL_MASTER_INFO, sp, hml); } - return hml; + HashMapToList<CDOMList<Spell>, Integer> newhml = new HashMapToList<CDOMList<Spell>, Integer>(); + newhml.addAllLists(hml); + return newhml; } public HashMapToList<CDOMList<Spell>, Integer> getPCBasedLevelInfo(Spell sp) @@ -17808,7 +17810,9 @@ hml = SpellLevel.getPCBasedLevelInfo(this, sp); cache.addToMapFor(MapKey.SPELL_PC_INFO, sp, hml); } - return hml; + HashMapToList<CDOMList<Spell>, Integer> newhml = new HashMapToList<CDOMList<Spell>, Integer>(); + newhml.addAllLists(hml); + return newhml; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2009-01-31 02:36:31
|
Revision: 9167 http://pcgen.svn.sourceforge.net/pcgen/?rev=9167&view=rev Author: thpr Date: 2009-01-31 01:49:58 +0000 (Sat, 31 Jan 2009) Log Message: ----------- [ 2483029 ] Stack Overflow when WeaponProf DisplayName is also a Type This is possible because the TYPE based entries into this method were taken out during the token rebuild - thus the impacted method only receives primitives Issue#: 2483029 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-31 01:26:35 UTC (rev 9166) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-01-31 01:49:58 UTC (rev 9167) @@ -12054,37 +12054,7 @@ final String aString, final boolean isAuto) { LoadContext context = Globals.getContext(); - if (aString.startsWith("WEAPONTYPE=") - || aString.startsWith("WEAPONTYPE.")) - { - for (Equipment weap : EquipmentList.getEquipmentOfType("WEAPON." - + aString.substring(11), "")) - { - CDOMSingleRef<WeaponProf> ref = weap.get(ObjectKey.WEAPON_PROF); - if (ref != null) - { - addWeaponProfToList(aFeatList, ref.resolvesTo() - .getKeyName(), isAuto); - } - } - - return; - } - - // Add all weapons of type aString - // (e.g.: Simple, Martial, Exotic, Ranged, etc.) - else if (context.containsType(WeaponProf.class, Type.getConstant(aString).toString())) - { - for (WeaponProf weaponProf : Globals.getPObjectsOfType(context.ref - .getConstructedCDOMObjects(WeaponProf.class), aString)) - { - addWeaponProfToList(aFeatList, weaponProf.getKeyName(), isAuto); - } - - return; - } - final WeaponProf wp = context.ref.silentlyGetConstructedCDOMObject(WeaponProf.class, aString); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |