Search in sources :

Example 1 with ExclusiveToken

use of plugin.lsttokens.skill.ExclusiveToken in project pcgen by PCGen.

the class AbstractGlobalTargetedSaveRestoreTest method testGlobalCSkillList.

@Test
public void testGlobalCSkillList() {
    PCClass monclass = create(PCClass.class, "MonClass");
    new HdToken().parseToken(context, monclass, "8");
    new TypeLst().parseToken(context, monclass, "Monster");
    Skill granted = create(Skill.class, "Granted");
    new ExclusiveToken().parseToken(context, granted, "Yes");
    T target = create(getObjectClass(), "Target");
    Skill skill = create(Skill.class, "MySkill");
    new ExclusiveToken().parseToken(context, skill, "Yes");
    new CskillLst().parseToken(context, target, "LIST");
    new SkillToken().parseToken(context, target, "Granted|MySkill");
    additionalChooseSet(target);
    Object o = prepare(target);
    finishLoad();
    pc.incrementClassLevel(1, monclass);
    pc.setHP(pc.getActiveClassLevel(monclass, 0), 3);
    assertEquals(SkillCost.EXCLUSIVE, pc.getSkillCostForClass(granted, monclass));
    applyObject(target);
    assertEquals(SkillCost.CLASS, pc.getSkillCostForClass(granted, monclass));
    final Runnable cleanup = getPreEqualityCleanup();
    Runnable fullcleanup = new Runnable() {

        public void run() {
            if (cleanup != null) {
                cleanup.run();
            }
            //TODO need this to create the spell support :/
            PCClass cl = context.getReferenceContext().silentlyGetConstructedCDOMObject(PCClass.class, "MonClass");
            reloadedPC.getSpellSupport(cl);
        }
    };
    runRoundRobin(fullcleanup);
    assertEquals(SkillCost.CLASS, pc.getSkillCostForClass(granted, monclass));
    assertEquals(SkillCost.CLASS, reloadedPC.getSkillCostForClass(granted, monclass));
    remove(o);
    reloadedPC.setDirty(true);
    if (isSymmetric()) {
        assertEquals(SkillCost.EXCLUSIVE, reloadedPC.getSkillCostForClass(granted, monclass));
    }
}
Also used : Skill(pcgen.core.Skill) CskillLst(plugin.lsttokens.CskillLst) HdToken(plugin.lsttokens.pcclass.HdToken) CDOMObject(pcgen.cdom.base.CDOMObject) PCClass(pcgen.core.PCClass) TypeLst(plugin.lsttokens.TypeLst) ExclusiveToken(plugin.lsttokens.skill.ExclusiveToken) SkillToken(plugin.lsttokens.choose.SkillToken) Test(org.junit.Test)

Example 2 with ExclusiveToken

use of plugin.lsttokens.skill.ExclusiveToken in project pcgen by PCGen.

the class DomainTargetSaveRestoreTest method testDomainCSkill.

@Test
public void testDomainCSkill() {
    Skill granted = create(Skill.class, "Granted");
    new ExclusiveToken().parseToken(context, granted, "Yes");
    Domain target = create(getObjectClass(), "Target");
    create(Skill.class, "MySkill");
    new CskillToken().parseToken(context, target, "LIST");
    new SkillToken().parseToken(context, target, "Granted|MySkill");
    Object o = prepare(target);
    finishLoad();
    applyObject(target);
    PCClass myclass = pc.getClassKeyed("MyClass");
    assertEquals(SkillCost.CLASS, pc.getSkillCostForClass(granted, myclass));
    runRoundRobin(getPreEqualityCleanup());
    assertEquals(SkillCost.CLASS, pc.getSkillCostForClass(granted, myclass));
    myclass = reloadedPC.getClassKeyed("MyClass");
    assertEquals(SkillCost.CLASS, reloadedPC.getSkillCostForClass(granted, myclass));
    remove(o);
    reloadedPC.setDirty(true);
    assertEquals(SkillCost.EXCLUSIVE, reloadedPC.getSkillCostForClass(granted, myclass));
}
Also used : Skill(pcgen.core.Skill) CskillToken(plugin.lsttokens.domain.CskillToken) ExclusiveToken(plugin.lsttokens.skill.ExclusiveToken) Domain(pcgen.core.Domain) PCClass(pcgen.core.PCClass) SkillToken(plugin.lsttokens.choose.SkillToken) AbstractGlobalTargetedSaveRestoreTest(pcgen.io.testsupport.AbstractGlobalTargetedSaveRestoreTest) Test(org.junit.Test)

Example 3 with ExclusiveToken

use of plugin.lsttokens.skill.ExclusiveToken in project pcgen by PCGen.

the class RaceTargetSaveRestoreTest method testRaceMonCSkill.

@Test
public void testRaceMonCSkill() {
    PCClass monclass = create(PCClass.class, "MonClass");
    new TypeLst().parseToken(context, monclass, "Monster");
    new HdToken().parseToken(context, monclass, "8");
    new IsmonsterToken().parseToken(context, monclass, "YES");
    Skill monskill = create(Skill.class, "MonSkill");
    new ExclusiveToken().parseToken(context, monskill, "Yes");
    Race monster = create(Race.class, "Monster");
    Race other = create(Race.class, "Other");
    Skill skill = create(Skill.class, "MySkill");
    new ExclusiveToken().parseToken(context, skill, "Yes");
    new MoncskillToken().parseToken(context, monster, "LIST");
    new SkillToken().parseToken(context, monster, "MonSkill|MySkill");
    finishLoad();
    pc.setRace(monster);
    pc.incrementClassLevel(1, monclass);
    pc.setHP(pc.getActiveClassLevel(monclass, 0), 3);
    final Runnable cleanup = getPreEqualityCleanup();
    Runnable fullcleanup = new Runnable() {

        public void run() {
            if (cleanup != null) {
                cleanup.run();
            }
            //TODO need this to create the spell support :/
            PCClass cl = context.getReferenceContext().silentlyGetConstructedCDOMObject(PCClass.class, "MonClass");
            reloadedPC.getSpellSupport(cl);
        }
    };
    runRoundRobin(fullcleanup);
    assertEquals(SkillCost.CLASS, pc.getSkillCostForClass(monskill, monclass));
    assertEquals(SkillCost.CLASS, reloadedPC.getSkillCostForClass(monskill, monclass));
    reloadedPC.setRace(other);
    reloadedPC.setDirty(true);
    assertEquals(SkillCost.EXCLUSIVE, reloadedPC.getSkillCostForClass(monskill, monclass));
}
Also used : MoncskillToken(plugin.lsttokens.race.MoncskillToken) Skill(pcgen.core.Skill) HdToken(plugin.lsttokens.pcclass.HdToken) IsmonsterToken(plugin.lsttokens.pcclass.IsmonsterToken) Race(pcgen.core.Race) PCClass(pcgen.core.PCClass) TypeLst(plugin.lsttokens.TypeLst) ExclusiveToken(plugin.lsttokens.skill.ExclusiveToken) SkillToken(plugin.lsttokens.choose.SkillToken) Test(org.junit.Test) AbstractGlobalTargetedSaveRestoreTest(pcgen.io.testsupport.AbstractGlobalTargetedSaveRestoreTest)

Example 4 with ExclusiveToken

use of plugin.lsttokens.skill.ExclusiveToken in project pcgen by PCGen.

the class GlobalCcSkillTest method testList.

@Test
public void testList() throws PersistenceLayerException {
    PCTemplate source = create(PCTemplate.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, "Granted");
    if (result != ParseResult.SUCCESS) {
        result.printMessages();
        fail("Test Setup Failed");
    }
    PCClass wizard = create(PCClass.class, "Wizard");
    new ExclusiveToken().parseToken(context, granted, "Yes");
    finishLoad();
    pc.incrementClassLevel(1, wizard);
    assertFalse(globalAddedSkillCostFacet.contains(id, SkillCost.CROSS_CLASS, granted));
    assertEquals(SkillCost.EXCLUSIVE, pc.getSkillCostForClass(granted, wizard));
    templateInputFacet.directAdd(id, source, granted);
    pc.calcActiveBonuses();
    assertEquals(SkillCost.CROSS_CLASS, pc.getSkillCostForClass(granted, wizard));
    assertTrue(globalAddedSkillCostFacet.contains(id, SkillCost.CROSS_CLASS, granted));
    templateInputFacet.remove(id, source);
    pc.calcActiveBonuses();
    assertFalse(globalAddedSkillCostFacet.contains(id, SkillCost.CROSS_CLASS, granted));
}
Also used : ParseResult(pcgen.rules.persistence.token.ParseResult) PCTemplate(pcgen.core.PCTemplate) PCClass(pcgen.core.PCClass) ExclusiveToken(plugin.lsttokens.skill.ExclusiveToken) Test(org.junit.Test) AbstractContentTokenTest(tokencontent.testsupport.AbstractContentTokenTest)

Example 5 with ExclusiveToken

use of plugin.lsttokens.skill.ExclusiveToken in project pcgen by PCGen.

the class DomainTargetSaveRestoreTest method testDomainCCSkill.

@Test
public void testDomainCCSkill() {
    Skill granted = create(Skill.class, "Granted");
    new ExclusiveToken().parseToken(context, granted, "Yes");
    Domain target = create(getObjectClass(), "Target");
    create(Skill.class, "MySkill");
    new CcskillToken().parseToken(context, target, "LIST");
    new SkillToken().parseToken(context, target, "Granted|MySkill");
    Object o = prepare(target);
    finishLoad();
    applyObject(target);
    PCClass myclass = pc.getClassKeyed("MyClass");
    assertEquals(SkillCost.CROSS_CLASS, pc.getSkillCostForClass(granted, myclass));
    runRoundRobin(getPreEqualityCleanup());
    assertEquals(SkillCost.CROSS_CLASS, pc.getSkillCostForClass(granted, myclass));
    myclass = reloadedPC.getClassKeyed("MyClass");
    assertEquals(SkillCost.CROSS_CLASS, reloadedPC.getSkillCostForClass(granted, myclass));
    remove(o);
    reloadedPC.setDirty(true);
    assertEquals(SkillCost.EXCLUSIVE, reloadedPC.getSkillCostForClass(granted, myclass));
}
Also used : Skill(pcgen.core.Skill) CcskillToken(plugin.lsttokens.domain.CcskillToken) ExclusiveToken(plugin.lsttokens.skill.ExclusiveToken) Domain(pcgen.core.Domain) PCClass(pcgen.core.PCClass) SkillToken(plugin.lsttokens.choose.SkillToken) AbstractGlobalTargetedSaveRestoreTest(pcgen.io.testsupport.AbstractGlobalTargetedSaveRestoreTest) Test(org.junit.Test)

Aggregations

ExclusiveToken (plugin.lsttokens.skill.ExclusiveToken)12 Test (org.junit.Test)11 PCClass (pcgen.core.PCClass)8 Skill (pcgen.core.Skill)7 ParseResult (pcgen.rules.persistence.token.ParseResult)5 SkillToken (plugin.lsttokens.choose.SkillToken)5 HdToken (plugin.lsttokens.pcclass.HdToken)5 CDOMObject (pcgen.cdom.base.CDOMObject)4 Domain (pcgen.core.Domain)4 AbstractTokenModelTest (tokenmodel.testsupport.AbstractTokenModelTest)4 AbstractGlobalTargetedSaveRestoreTest (pcgen.io.testsupport.AbstractGlobalTargetedSaveRestoreTest)3 TypeLst (plugin.lsttokens.TypeLst)3 ClassSource (pcgen.cdom.helper.ClassSource)2 Race (pcgen.core.Race)2 CcskillLst (plugin.lsttokens.CcskillLst)2 CskillLst (plugin.lsttokens.CskillLst)2 PCClassLevel (pcgen.cdom.inst.PCClassLevel)1 ClassSkillList (pcgen.cdom.list.ClassSkillList)1 PCTemplate (pcgen.core.PCTemplate)1 CcskillToken (plugin.lsttokens.domain.CcskillToken)1