Search in sources :

Example 6 with Race

use of pcgen.core.Race in project pcgen by PCGen.

the class RaceMonCSkillTest method testList.

@Test
public void testList() throws PersistenceLayerException {
    Race source = create(Race.class, "Source");
    ParseResult result = token.parseToken(context, source, "LIST");
    if (result != ParseResult.SUCCESS) {
        result.printMessages();
        fail("Test Setup Failed");
    }
    result = CHOOSE_SKILL_TOKEN.parseToken(context, source, "MySkill");
    if (result != ParseResult.SUCCESS) {
        result.printMessages();
        fail("Test Setup Failed");
    }
    finishLoad();
    assertEquals(0, mcsFacet.getCount(id));
    assertEquals(SkillCost.CROSS_CLASS, pc.getSkillCostForClass(sk, dragon));
    raceInputFacet.set(id, source);
    assertTrue(mcsFacet.contains(id, sk));
    assertEquals(1, mcsFacet.getCount(id));
    pc.incrementClassLevel(1, dragon);
    pc.setDirty(true);
    assertEquals(SkillCost.CLASS, pc.getSkillCostForClass(sk, dragon));
    raceInputFacet.remove(id);
    assertEquals(0, mcsFacet.getCount(id));
}
Also used : ParseResult(pcgen.rules.persistence.token.ParseResult) Race(pcgen.core.Race) Test(org.junit.Test) AbstractTokenModelTest(tokenmodel.testsupport.AbstractTokenModelTest)

Example 7 with Race

use of pcgen.core.Race in project pcgen by PCGen.

the class RaceMonCSkillTest method testDirect.

@Test
public void testDirect() throws PersistenceLayerException {
    Race source = create(Race.class, "Source");
    ParseResult result = token.parseToken(context, source, "MySkill");
    if (result != ParseResult.SUCCESS) {
        result.printMessages();
        fail("Test Setup Failed");
    }
    finishLoad();
    raceFacet.directSet(id, source, getAssoc());
    ClassSkillList dragonCSL = context.getReferenceContext().silentlyGetConstructedCDOMObject(ClassSkillList.class, "Dragon");
    assertTrue(lscFacet.contains(id, dragonCSL, SkillCost.CLASS, sk));
    assertEquals(SkillCost.CROSS_CLASS, pc.getSkillCostForClass(sk, dragon));
    pc.incrementClassLevel(1, dragon);
    assertEquals(SkillCost.CLASS, pc.getSkillCostForClass(sk, dragon));
    raceFacet.remove(id);
    assertFalse(lscFacet.contains(id, dragonCSL, SkillCost.CLASS, sk));
}
Also used : ParseResult(pcgen.rules.persistence.token.ParseResult) Race(pcgen.core.Race) ClassSkillList(pcgen.cdom.list.ClassSkillList) Test(org.junit.Test) AbstractTokenModelTest(tokenmodel.testsupport.AbstractTokenModelTest)

Example 8 with Race

use of pcgen.core.Race in project pcgen by PCGen.

the class CharacterFacadeImpl method setAgeCategory.

@Override
public void setAgeCategory(final SimpleFacade ageCat) {
    if (ageCat == this.ageCategory.get()) {
        // We've already processed this change, most likely via the setAge method
        return;
    }
    final Race pcRace = charDisplay.getRace();
    final String selAgeCat = ageCat.toString();
    if ((pcRace != null) && !pcRace.equals(Globals.s_EMPTYRACE)) {
        if (selAgeCat != null) {
            final int idx = SettingsHandler.getGame().getBioSet().getAgeSetNamed(selAgeCat);
            if (idx >= 0) {
                ageCategory.set(ageCat);
                SettingsHandler.getGame().getBioSet().randomize("AGECAT" + Integer.toString(idx), theCharacter);
                age.set(charDisplay.getAge());
                ageCategory.set(ageCat);
                refreshStatScores();
                refreshLanguageList();
            }
        }
    }
}
Also used : Race(pcgen.core.Race)

Example 9 with Race

use of pcgen.core.Race in project pcgen by PCGen.

the class LevelFacet method getLevelAdjustment.

/**
	 * Returns the level adjustment for the Player Character identified by the
	 * given CharID.
	 * 
	 * @param id
	 *            The CharID of the Player Character for which the level
	 *            adjustment will be returned
	 * @return The level adjustment for the Player Character identified by the
	 *         given CharID
	 */
public int getLevelAdjustment(CharID id) {
    Race race = raceFacet.get(id);
    int levelAdj = 0;
    if (race != null) {
        Formula raceLA = race.getSafe(FormulaKey.LEVEL_ADJUSTMENT);
        levelAdj += formulaResolvingFacet.resolve(id, raceLA, "").intValue();
    }
    for (PCTemplate template : templateFacet.getSet(id)) {
        Formula templateLA = template.getSafe(FormulaKey.LEVEL_ADJUSTMENT);
        levelAdj += formulaResolvingFacet.resolve(id, templateLA, "").intValue();
    }
    return levelAdj;
}
Also used : Formula(pcgen.base.formula.Formula) Race(pcgen.core.Race) PCTemplate(pcgen.core.PCTemplate)

Example 10 with Race

use of pcgen.core.Race in project pcgen by PCGen.

the class RaceMonsterClassTest method testSimple.

@Test
public void testSimple() throws PersistenceLayerException {
    TokenRegistration.register(plugin.bonustokens.Feat.class);
    Race source = create(Race.class, "Source");
    create(PCClass.class, "Granted").put(ObjectKey.IS_MONSTER, Boolean.TRUE);
    ParseResult result = token.parseToken(context, source, "Granted:3");
    if (result != ParseResult.SUCCESS) {
        result.printMessages();
        fail("Test Setup Failed");
    }
    finishLoad();
    assertEquals(0, classFacet.getCount(id));
    raceFacet.directSet(id, source, getAssoc());
    assertEquals(1, classFacet.getCount(id));
    assertNotNull(pc.getClassKeyed("Granted"));
    raceFacet.remove(id);
    assertEquals(0, classFacet.getCount(id));
}
Also used : ParseResult(pcgen.rules.persistence.token.ParseResult) Race(pcgen.core.Race) PCClass(pcgen.core.PCClass) Test(org.junit.Test) AbstractTokenModelTest(tokenmodel.testsupport.AbstractTokenModelTest)

Aggregations

Race (pcgen.core.Race)167 Test (org.junit.Test)78 PCTemplate (pcgen.core.PCTemplate)66 PlayerCharacter (pcgen.core.PlayerCharacter)28 CDOMObject (pcgen.cdom.base.CDOMObject)16 LoadContext (pcgen.rules.context.LoadContext)16 PCClass (pcgen.core.PCClass)15 ArrayList (java.util.ArrayList)10 SizeAdjustment (pcgen.core.SizeAdjustment)10 ParseResult (pcgen.rules.persistence.token.ParseResult)10 AbstractTokenModelTest (tokenmodel.testsupport.AbstractTokenModelTest)10 PCStat (pcgen.core.PCStat)9 FixedSizeFormula (pcgen.cdom.formula.FixedSizeFormula)8 Equipment (pcgen.core.Equipment)8 BonusObj (pcgen.core.bonus.BonusObj)7 Formula (pcgen.base.formula.Formula)6 WieldCategory (pcgen.core.character.WieldCategory)6 GameMode (pcgen.core.GameMode)5 Skill (pcgen.core.Skill)5 CompanionList (pcgen.cdom.list.CompanionList)4