use of pcgen.core.Skill in project pcgen by PCGen.
the class PreVarTest method test2857848a.
public void test2857848a() {
LoadContext context = Globals.getContext();
final PCClass spellcaster = new PCClass();
spellcaster.setName("Spellcaster");
context.getReferenceContext().importObject(spellcaster);
Skill concentration = context.getReferenceContext().constructCDOMObject(Skill.class, "Concentration");
context.unconditionallyProcess(spellcaster, "SPELLTYPE", "Arcane");
context.unconditionallyProcess(spellcaster, "SPELLSTAT", "INT");
context.unconditionallyProcess(spellcaster, "CSKILL", "Concentration");
context.unconditionallyProcess(spellcaster, "BONUS", "SKILL|Concentration|5|PREVARGT:BASESPELLSTAT,2");
assertTrue(context.getReferenceContext().resolveReferences(null));
PlayerCharacter character = this.getCharacter();
setPCStat(character, intel, 16);
PCClassLoader loader = new PCClassLoader();
try {
SourceEntry se = new CampaignSourceEntry(new Campaign(), new URI("file://test"));
loader.completeObject(context, se, spellcaster);
assertEquals(0, SkillModifier.modifier(concentration, character).intValue());
character.incrementClassLevel(1, spellcaster);
assertEquals(5, SkillModifier.modifier(concentration, character).intValue());
} catch (URISyntaxException | PersistenceLayerException e) {
fail(e.getMessage());
}
}
use of pcgen.core.Skill 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));
}
use of pcgen.core.Skill 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));
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class AbstractGlobalTargetedSaveRestoreTest method testGlobalCCSkillList.
public void testGlobalCCSkillList() {
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, "LIST");
new SkillToken().parseToken(context, target, "Granted|MySkill");
additionalChooseSet(target);
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);
if (isSymmetric()) {
assertEquals(SkillCost.EXCLUSIVE, reloadedPC.getSkillCostForClass(granted, myclass));
}
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class SkillTargetSaveRestoreTest method remove.
@Override
protected void remove(Object o) {
PCClass cl = context.getReferenceContext().silentlyGetConstructedCDOMObject(PCClass.class, "MyClass");
Skill sk = (Skill) o;
SkillRankControl.modRanks(-1.0, cl, true, reloadedPC, sk);
assertTrue(reloadedPC.getRank(sk).equals(0.0f));
SkillRankControl.getSkillRankBonusTo(reloadedPC, sk);
assertFalse(reloadedPC.hasSkill(sk));
}
Aggregations