From: <th...@us...> - 2010-07-11 02:20:54
|
Revision: 12508 http://pcgen.svn.sourceforge.net/pcgen/?rev=12508&view=rev Author: thpr Date: 2010-07-11 02:20:48 +0000 (Sun, 11 Jul 2010) Log Message: ----------- Fix: CSKILL on Class Level line is ignored Issue#: CODE-166 Modified Paths: -------------- branches/5.16.x/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java Modified: branches/5.16.x/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java 2010-07-11 02:20:32 UTC (rev 12507) +++ branches/5.16.x/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java 2010-07-11 02:20:48 UTC (rev 12508) @@ -26,12 +26,14 @@ import java.util.List; import pcgen.cdom.base.AssociatedPrereqObject; +import pcgen.cdom.base.CDOMObject; import pcgen.cdom.base.CDOMReference; import pcgen.cdom.enumeration.AssociationKey; import pcgen.cdom.enumeration.AssociationListKey; import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.ObjectKey; import pcgen.cdom.enumeration.SkillCost; +import pcgen.cdom.inst.PCClassLevel; import pcgen.cdom.list.ClassSkillList; import pcgen.core.Ability; import pcgen.core.CharacterDomain; @@ -39,7 +41,6 @@ import pcgen.core.EquipmentModifier; import pcgen.core.PCClass; import pcgen.core.PCTemplate; -import pcgen.core.PObject; import pcgen.core.PlayerCharacter; import pcgen.core.Race; import pcgen.core.Skill; @@ -62,6 +63,15 @@ return true; } + for (int i = 1; i <= aClass.getLevel(); i++) + { + PCClassLevel classLevel = aClass.getClassLevel(i); + if (SkillCostCalc.hasCSkill(aPC, classLevel, keyName)) + { + return true; + } + } + // hasSkill is a LevelAbility skill if (aClass.hasSkill(aPC, keyName)) { @@ -250,6 +260,15 @@ return true; } + for (int i = 1; i <= aClass.getLevel(); i++) + { + PCClassLevel classLevel = aClass.getClassLevel(i); + if (SkillCostCalc.hasCcSkill(aPC, classLevel, keyName)) + { + return true; + } + } + if (aClass.isMonster()) { if (hasMonsterCCSkill(aPC.getRace(), sk)) @@ -375,7 +394,7 @@ return false; } - public static boolean hasCcSkill(PlayerCharacter pc, PObject po, final String aName) + public static boolean hasCcSkill(PlayerCharacter pc, CDOMObject po, final String aName) { List<CDOMReference<Skill>> ccSkillList = po.getListFor(ListKey.CCSKILL); List<Skill> assocCCSkill = pc.getAssocList(po, @@ -408,7 +427,7 @@ return false; } - public static boolean hasCSkill(PlayerCharacter pc, PObject po, final String aName) + public static boolean hasCSkill(PlayerCharacter pc, CDOMObject po, final String aName) { List<CDOMReference<Skill>> cSkillList = po.getListFor(ListKey.CSKILL); if (cSkillList != null) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |