Search in sources :

Example 81 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class BonusTest method testBonuswithLISTValue.

/**
	 * Test to make sure that fix for replacing %LIST within a 
	 * bonuses value will work.
	 */
public void testBonuswithLISTValue() {
    final PlayerCharacter character = getCharacter();
    LoadContext context = Globals.getContext();
    setPCStat(character, intel, 18);
    BonusObj bonus = Bonus.newBonus(context, "VISION|Darkvision|%LIST+10|TYPE=Magical Boon");
    List<BonusObj> bonusList = new ArrayList<>();
    bonusList.add(bonus);
    Ability testBonus = new Ability();
    testBonus.setName("TB1Assoc");
    testBonus.setCDOMCategory(AbilityCategory.FEAT);
    testBonus.addToListFor(ListKey.BONUS, bonus);
    Globals.getContext().unconditionallyProcess(testBonus, "CHOOSE", "PCSTAT|ALL");
    Globals.getContext().unconditionallyProcess(testBonus, "MULT", "YES");
    CNAbility cna = AbstractCharacterTestCase.applyAbility(character, AbilityCategory.FEAT, testBonus, "INT");
    testBonus = cna.getAbility();
    character.calcActiveBonuses();
    bonus = testBonus.getSafeListFor(ListKey.BONUS).get(0);
    List<BonusPair> bonusPairs = character.getStringListFromBonus(bonus);
    assertEquals(1, bonusPairs.size());
    BonusPair bp = bonusPairs.get(0);
    assertEquals("VISION.DARKVISION:MAGICAL BOON", bp.fullyQualifiedBonusType);
    assertEquals(14, bp.resolve(character).intValue());
}
Also used : Ability(pcgen.core.Ability) CNAbility(pcgen.cdom.content.CNAbility) CNAbility(pcgen.cdom.content.CNAbility) PlayerCharacter(pcgen.core.PlayerCharacter) ArrayList(java.util.ArrayList) LoadContext(pcgen.rules.context.LoadContext)

Example 82 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class BonusTest method testSpellKnownBonusWithLISTValue.

/**
	 * Test to make sure that fix for replacing %LIST within a 
	 * bonuses value will work.
	 */
public void testSpellKnownBonusWithLISTValue() {
    final PlayerCharacter character = getCharacter();
    LoadContext context = Globals.getContext();
    context.getReferenceContext().constructNowIfNecessary(PCClass.class, "Wizard");
    BonusObj bonus = Bonus.newBonus(context, "SPELLKNOWN|%LIST|1");
    List<BonusObj> bonusList = new ArrayList<>();
    bonusList.add(bonus);
    Ability testBonus = new Ability();
    testBonus.setName("TB1Assoc");
    testBonus.setCDOMCategory(AbilityCategory.FEAT);
    testBonus.addToListFor(ListKey.BONUS, bonus);
    Globals.getContext().unconditionallyProcess(testBonus, "CHOOSE", "SPELLLEVEL|Wizard|1|5");
    Globals.getContext().unconditionallyProcess(testBonus, "MULT", "YES");
    CNAbility cna = AbstractCharacterTestCase.applyAbility(character, AbilityCategory.FEAT, testBonus, "CLASS.Wizard;LEVEL.1");
    testBonus = cna.getAbility();
    character.calcActiveBonuses();
    bonus = testBonus.getSafeListFor(ListKey.BONUS).get(0);
    List<BonusPair> bonusPairs = character.getStringListFromBonus(bonus);
    assertEquals(1, bonusPairs.size());
    BonusPair bp = bonusPairs.get(0);
    assertEquals("SPELLKNOWN.CLASS.Wizard;LEVEL.1", bp.fullyQualifiedBonusType);
}
Also used : Ability(pcgen.core.Ability) CNAbility(pcgen.cdom.content.CNAbility) CNAbility(pcgen.cdom.content.CNAbility) PlayerCharacter(pcgen.core.PlayerCharacter) ArrayList(java.util.ArrayList) LoadContext(pcgen.rules.context.LoadContext)

Example 83 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class AutoWeaponProfListTargetTest method containsExpected.

private boolean containsExpected() {
    Collection<CNAbilitySelection> casSet = directAbilityFacet.getSet(id);
    for (CNAbilitySelection cnas : casSet) {
        CNAbility cas = cnas.getCNAbility();
        boolean featExpected = cas.getAbilityCategory() == AbilityCategory.FEAT;
        boolean abilityExpected = cas.getAbility().equals(context.getReferenceContext().silentlyGetConstructedCDOMObject(Ability.class, AbilityCategory.FEAT, "Granted"));
        boolean natureExpected = cas.getNature() == Nature.AUTOMATIC;
        boolean selectionExpected = "English".equals(cnas.getSelection());
        if (featExpected && abilityExpected && natureExpected && selectionExpected) {
            return true;
        }
    }
    return false;
}
Also used : CNAbility(pcgen.cdom.content.CNAbility) Ability(pcgen.core.Ability) CNAbility(pcgen.cdom.content.CNAbility) CNAbilitySelection(pcgen.cdom.helper.CNAbilitySelection)

Example 84 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class GlobalAbilityTest method containsExpected.

@Override
protected boolean containsExpected(Ability granted) {
    Collection<CNAbilitySelection> casSet = getTargetFacet().getSet(id);
    for (CNAbilitySelection cnas : casSet) {
        CNAbility cas = cnas.getCNAbility();
        boolean featExpected = cas.getAbilityCategory() == AbilityCategory.FEAT;
        boolean abilityExpected = cas.getAbility().equals(context.getReferenceContext().silentlyGetConstructedCDOMObject(Ability.class, AbilityCategory.FEAT, "Granted"));
        boolean natureExpected = cas.getNature() == Nature.VIRTUAL;
        boolean selectionExpected = cnas.getSelection() == null;
        if (featExpected && abilityExpected && natureExpected && selectionExpected) {
            return true;
        }
    }
    return false;
}
Also used : CNAbility(pcgen.cdom.content.CNAbility) Ability(pcgen.core.Ability) CNAbility(pcgen.cdom.content.CNAbility) CNAbilitySelection(pcgen.cdom.helper.CNAbilitySelection)

Example 85 with CNAbility

use of pcgen.cdom.content.CNAbility in project pcgen by PCGen.

the class PlayerCharacterOutput method getFeatList.

String getFeatList() {
    StringBuilder sb = new StringBuilder();
    boolean firstLine = true;
    for (CNAbility cna : pc.getCNAbilities(AbilityCategory.FEAT, Nature.NORMAL)) {
        if (!firstLine) {
            sb.append(", ");
        }
        firstLine = false;
        sb.append(QualifiedName.qualifiedName(pc, Collections.singletonList(cna)));
    }
    return sb.toString();
}
Also used : CNAbility(pcgen.cdom.content.CNAbility)

Aggregations

CNAbility (pcgen.cdom.content.CNAbility)131 Ability (pcgen.core.Ability)77 ArrayList (java.util.ArrayList)37 CNAbilitySelection (pcgen.cdom.helper.CNAbilitySelection)28 AbilityCategory (pcgen.core.AbilityCategory)26 Test (org.junit.Test)21 HashMapToList (pcgen.base.util.HashMapToList)16 List (java.util.List)15 PlayerCharacter (pcgen.core.PlayerCharacter)9 Language (pcgen.core.Language)7 HashSet (java.util.HashSet)5 Nature (pcgen.cdom.enumeration.Nature)5 SpecialAbility (pcgen.core.SpecialAbility)5 BonusObj (pcgen.core.bonus.BonusObj)5 BigDecimal (java.math.BigDecimal)4 CDOMObject (pcgen.cdom.base.CDOMObject)4 LoadContext (pcgen.rules.context.LoadContext)4 StringTokenizer (java.util.StringTokenizer)3 GenericMapToList (pcgen.base.util.GenericMapToList)3 PCClass (pcgen.core.PCClass)3