Search in sources :

Example 51 with PCStat

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);
}
Also used : PCStat(pcgen.core.PCStat) LinkedList(java.util.LinkedList)

Example 52 with PCStat

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;
}
Also used : PCStat(pcgen.core.PCStat)

Example 53 with PCStat

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());
}
Also used : PCClass(pcgen.core.PCClass) PCStat(pcgen.core.PCStat)

Example 54 with PCStat

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();
}
Also used : Skill(pcgen.core.Skill) PCStat(pcgen.core.PCStat)

Example 55 with PCStat

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);
}
Also used : PCStat(pcgen.core.PCStat)

Aggregations

PCStat (pcgen.core.PCStat)78 CDOMObject (pcgen.cdom.base.CDOMObject)10 GameMode (pcgen.core.GameMode)10 Before (org.junit.Before)9 Race (pcgen.core.Race)9 PCClass (pcgen.core.PCClass)7 PlayerCharacter (pcgen.core.PlayerCharacter)7 AbstractReferenceContext (pcgen.rules.context.AbstractReferenceContext)7 CDOMSingleRef (pcgen.cdom.reference.CDOMSingleRef)6 PCTemplate (pcgen.core.PCTemplate)6 Skill (pcgen.core.Skill)6 ArrayList (java.util.ArrayList)5 StatLock (pcgen.cdom.helper.StatLock)5 BonusObj (pcgen.core.bonus.BonusObj)5 Test (org.junit.Test)4 Formula (pcgen.base.formula.Formula)4 CharID (pcgen.cdom.enumeration.CharID)4 LoadContext (pcgen.rules.context.LoadContext)4 StringTokenizer (java.util.StringTokenizer)3 Type (pcgen.cdom.enumeration.Type)3