use of pcgen.core.PCStat in project pcgen by PCGen.
the class EvaluatorFactory method makeStatBuilder.
private static TermEvaluatorBuilder makeStatBuilder() {
Collection<PCStat> stats = Globals.getContext().getReferenceContext().getConstructedCDOMObjects(PCStat.class);
List<String> s = new LinkedList<>();
StringBuilder pSt = new StringBuilder(stats.size() * 4 + 6);
pSt.append("(?:");
boolean add1 = false;
for (PCStat stat : stats) {
if (add1) {
pSt.append("|");
} else {
add1 = true;
}
pSt.append(stat.getKeyName());
s.add(stat.getKeyName());
}
pSt.append(")");
return new TermEvaluatorBuilderPCStat(pSt.toString(), s.toArray(new String[s.size()]), false);
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class PCBaseSpellStatTermEvaluator method getBaseSpellStatBonus.
private int getBaseSpellStatBonus(PlayerCharacter pc, PCClass pcClass) {
if (pcClass == null) {
return 0;
}
int baseSpellStat = 0;
CDOMSingleRef<PCStat> ssref = pcClass.get(ObjectKey.SPELL_STAT);
if (ssref != null) {
PCStat ss = ssref.get();
baseSpellStat = pc.getTotalStatFor(ss);
baseSpellStat += (int) pc.getTotalBonusTo("STAT", "BASESPELLSTAT");
baseSpellStat += (int) pc.getTotalBonusTo("STAT", "BASESPELLSTAT;CLASS=" + pcClass.getKeyName());
baseSpellStat += (int) pc.getTotalBonusTo("STAT", "CAST." + ss.getKeyName());
baseSpellStat = pc.getModForNumber(baseSpellStat, ss);
}
return baseSpellStat;
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class PCSPellBaseStatTermEvaluator method resolve.
@Override
public Float resolve(PlayerCharacter pc) {
final PCClass aClass = pc.getClassKeyed(classKey);
if (aClass == null) {
return 0.0f;
}
CDOMSingleRef<PCStat> ss = aClass.get(ObjectKey.SPELL_STAT);
if (ss == null) {
return 10.0f;
}
return (float) pc.getDisplay().getTotalStatFor(ss.get());
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class SkillListModsToken method getToken.
/**
* @see pcgen.io.exporttoken.Token#getToken(java.lang.String, pcgen.core.PlayerCharacter, pcgen.io.ExportHandler)
*/
@Override
public String getToken(String tokenSource, PlayerCharacter pc, ExportHandler eh) {
StringBuilder returnString = new StringBuilder();
boolean needcomma = false;
final List<Skill> pcSkills = SkillDisplay.getSkillListInOutputOrder(pc);
Iterator<Skill> iter = pcSkills.iterator();
while (iter.hasNext()) {
Skill sk = iter.next();
if (!pc.includeSkill(sk, SkillFilter.Usable) || !sk.qualifies(pc, null)) {
iter.remove();
}
}
for (Skill aSkill : pcSkills) {
int modSkill = -1;
CDOMSingleRef<PCStat> statref = aSkill.get(ObjectKey.KEY_STAT);
if (statref != null) {
modSkill = SkillModifier.modifier(aSkill, pc).intValue() - pc.getStatModFor(statref.get());
}
if ((SkillRankControl.getTotalRank(pc, aSkill).intValue() > 0) || (modSkill > 0)) {
//final
int temp = SkillModifier.modifier(aSkill, pc).intValue() + SkillRankControl.getTotalRank(pc, aSkill).intValue();
if (needcomma) {
returnString.append(", ");
}
needcomma = true;
returnString.append(OutputNameFormatting.getOutputName(aSkill)).append(temp >= 0 ? " +" : " ").append(Integer.toString(temp));
}
}
return returnString.toString();
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class DefineLstTest method setUp.
@Override
public void setUp() throws PersistenceLayerException, URISyntaxException {
super.setUp();
PCStat ps = BuildUtilities.createStat("Strength", "STR");
primaryContext.getReferenceContext().importObject(ps);
PCStat ss = BuildUtilities.createStat("Strength", "STR");
secondaryContext.getReferenceContext().importObject(ss);
}
Aggregations