Search in sources :

Example 1 with HdToken

use of plugin.lsttokens.pcclass.HdToken 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 HdToken

use of plugin.lsttokens.pcclass.HdToken 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 3 with HdToken

use of plugin.lsttokens.pcclass.HdToken in project pcgen by PCGen.

the class BasicSaveRestoreTest method testClass.

@Test
public void testClass() {
    PCClass cl = create(PCClass.class, "MyClass");
    new HdToken().parseToken(context, cl, "6");
    finishLoad();
    pc.addClass(cl);
    pc.incrementClassLevel(1, cl);
    pc.setHP(pc.getActiveClassLevel(cl, 0), 4);
    runWriteRead(false);
    //TODO need this to create the spell support :/
    reloadedPC.getSpellSupport(cl);
    checkEquality();
}
Also used : HdToken(plugin.lsttokens.pcclass.HdToken) PCClass(pcgen.core.PCClass) Test(org.junit.Test) AbstractSaveRestoreTest(pcgen.io.testsupport.AbstractSaveRestoreTest)

Example 4 with HdToken

use of plugin.lsttokens.pcclass.HdToken in project pcgen by PCGen.

the class DomainTargetSaveRestoreTest method prepare.

@Override
protected Object prepare(Domain obj) {
    PCClass cl = create(PCClass.class, "MyClass");
    new HdToken().parseToken(context, cl, "6");
    return obj;
}
Also used : HdToken(plugin.lsttokens.pcclass.HdToken) PCClass(pcgen.core.PCClass)

Example 5 with HdToken

use of plugin.lsttokens.pcclass.HdToken in project pcgen by PCGen.

the class AbstractGlobalTargetedSaveRestoreTest method testGlobalCCSkill.

@Test
public void testGlobalCCSkill() {
    PCClass myclass = create(PCClass.class, "SomeClass");
    new HdToken().parseToken(context, myclass, "8");
    Skill granted = create(Skill.class, "Granted");
    new ExclusiveToken().parseToken(context, granted, "Yes");
    T target = create(getObjectClass(), "Target");
    create(Skill.class, "MySkill");
    new CcskillLst().parseToken(context, target, "Granted");
    Object o = prepare(target);
    finishLoad();
    pc.incrementClassLevel(1, myclass);
    pc.setHP(pc.getActiveClassLevel(myclass, 0), 3);
    assertEquals(SkillCost.EXCLUSIVE, pc.getSkillCostForClass(granted, myclass));
    applyObject(target);
    assertEquals(SkillCost.CROSS_CLASS, pc.getSkillCostForClass(granted, myclass));
    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, "SomeClass");
            reloadedPC.getSpellSupport(cl);
        }
    };
    runRoundRobin(fullcleanup);
    assertEquals(SkillCost.CROSS_CLASS, pc.getSkillCostForClass(granted, 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) HdToken(plugin.lsttokens.pcclass.HdToken) CDOMObject(pcgen.cdom.base.CDOMObject) PCClass(pcgen.core.PCClass) ExclusiveToken(plugin.lsttokens.skill.ExclusiveToken) CcskillLst(plugin.lsttokens.CcskillLst) Test(org.junit.Test)

Aggregations

PCClass (pcgen.core.PCClass)9 HdToken (plugin.lsttokens.pcclass.HdToken)9 Skill (pcgen.core.Skill)6 Test (org.junit.Test)5 ExclusiveToken (plugin.lsttokens.skill.ExclusiveToken)5 CDOMObject (pcgen.cdom.base.CDOMObject)4 TypeLst (plugin.lsttokens.TypeLst)3 SkillToken (plugin.lsttokens.choose.SkillToken)3 CcskillLst (plugin.lsttokens.CcskillLst)2 CskillLst (plugin.lsttokens.CskillLst)2 IsmonsterToken (plugin.lsttokens.pcclass.IsmonsterToken)2 ListSkillCostFacet (pcgen.cdom.facet.analysis.ListSkillCostFacet)1 MonsterCSkillFacet (pcgen.cdom.facet.input.MonsterCSkillFacet)1 Race (pcgen.core.Race)1 MockUIDelegate (pcgen.gui2.facade.MockUIDelegate)1 AbstractGlobalTargetedSaveRestoreTest (pcgen.io.testsupport.AbstractGlobalTargetedSaveRestoreTest)1 AbstractSaveRestoreTest (pcgen.io.testsupport.AbstractSaveRestoreTest)1 MoncskillToken (plugin.lsttokens.race.MoncskillToken)1