use of pcgen.core.Skill in project pcgen by PCGen.
the class AbstractGlobalTargetedSaveRestoreTest method testGlobalCSkill.
@Test
public void testGlobalCSkill() {
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, "Granted");
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);
assertEquals(SkillCost.EXCLUSIVE, reloadedPC.getSkillCostForClass(granted, monclass));
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class MonccskillToken method unparse.
@Override
public String[] unparse(LoadContext context, Race race) {
CDOMGroupRef<ClassSkillList> monsterList = context.getReferenceContext().getCDOMTypeReference(ClassSkillList.class, "Monster");
AssociatedChanges<CDOMReference<Skill>> changes = context.getListContext().getChangesInList(getTokenName(), race, monsterList);
List<String> list = new ArrayList<>();
Collection<CDOMReference<Skill>> removedItems = changes.getRemoved();
if (removedItems != null && !removedItems.isEmpty()) {
if (changes.includesGlobalClear()) {
context.addWriteMessage("Non-sensical relationship in " + getTokenName() + ": global .CLEAR and local .CLEAR. performed");
return null;
}
list.add(Constants.LST_DOT_CLEAR_DOT + ReferenceUtilities.joinLstFormat(removedItems, "|.CLEAR."));
}
if (changes.includesGlobalClear()) {
list.add(Constants.LST_DOT_CLEAR);
}
MapToList<CDOMReference<Skill>, AssociatedPrereqObject> map = changes.getAddedAssociations();
if (map != null && !map.isEmpty()) {
Set<CDOMReference<Skill>> added = map.getKeySet();
for (CDOMReference<Skill> ab : added) {
for (AssociatedPrereqObject assoc : map.getListFor(ab)) {
if (!SkillCost.CROSS_CLASS.equals(assoc.getAssociation(AssociationKey.SKILL_COST))) {
context.addWriteMessage("Skill Cost must be " + "CROSS_CLASS for Token " + getTokenName());
return null;
}
}
}
list.add(ReferenceUtilities.joinLstFormat(added, Constants.PIPE));
}
if (list.isEmpty()) {
// Zero indicates no add or clear
return null;
}
return list.toArray(new String[list.size()]);
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class NoRankQualifierTokenTest method initializeObjects.
private void initializeObjects() {
s1 = new Skill();
s1.setName("s1");
primaryContext.getReferenceContext().importObject(s1);
s2 = new Skill();
s2.setName("s2");
primaryContext.getReferenceContext().importObject(s2);
primaryContext.unconditionallyProcess(s2, "TYPE", "Masterful");
s3 = new Skill();
s3.setName("s3");
primaryContext.getReferenceContext().importObject(s3);
primaryContext.unconditionallyProcess(s3, "TYPE", "Masterful");
cl1 = new PCClass();
cl1.setName("MyClass");
primaryContext.getReferenceContext().importObject(cl1);
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class RanksQualifierTokenTest method initializeObjects.
private void initializeObjects() {
s1 = new Skill();
s1.setName("s1");
primaryContext.getReferenceContext().importObject(s1);
s2 = new Skill();
s2.setName("s2");
primaryContext.getReferenceContext().importObject(s2);
primaryContext.unconditionallyProcess(s2, "TYPE", "Masterful");
s3 = new Skill();
s3.setName("s3");
primaryContext.getReferenceContext().importObject(s3);
primaryContext.unconditionallyProcess(s3, "TYPE", "Masterful");
cl1 = new PCClass();
cl1.setName("MyClass");
primaryContext.getReferenceContext().importObject(cl1);
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class ExclusiveQualifierTokenTest method initializeObjects.
private void initializeObjects() {
s1 = new Skill();
s1.setName("s1");
primaryContext.getReferenceContext().importObject(s1);
s2 = new Skill();
s2.setName("s2");
primaryContext.getReferenceContext().importObject(s2);
primaryContext.unconditionallyProcess(s2, "TYPE", "Masterful");
s3 = new Skill();
s3.setName("s3");
primaryContext.getReferenceContext().importObject(s3);
primaryContext.unconditionallyProcess(s3, "TYPE", "Masterful");
s4 = new Skill();
s4.setName("s4");
s4.put(ObjectKey.EXCLUSIVE, Boolean.TRUE);
primaryContext.unconditionallyProcess(s4, "TYPE", "Masterful");
primaryContext.getReferenceContext().importObject(s4);
s5 = new Skill();
s5.setName("s5");
s5.put(ObjectKey.EXCLUSIVE, Boolean.TRUE);
primaryContext.getReferenceContext().importObject(s5);
cl1 = new PCClass();
cl1.setName("MyClass");
primaryContext.getReferenceContext().importObject(cl1);
}
Aggregations