use of pcgen.core.PCStat in project pcgen by PCGen.
the class NPCGenerator method getStatWeights.
private List<PCStat> getStatWeights(PlayerCharacter pc, final PCClass aClass) {
final WeightedCollection<PCStat> stats = new WeightedCollection<>(theConfiguration.getStatWeights(aClass.getKeyName()));
final List<PCStat> ret = new ArrayList<>();
for (int i = 0; i < pc.getDisplay().getStatCount(); i++) {
final PCStat stat = stats.getRandomValue();
ret.add(stat);
stats.remove(stat);
}
return ret;
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class PCSPellBaseStatScoreEvaluatorTermEvaluator 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().getStatModFor(ss.get());
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class AbstractGrantedListTokenTest method testFromStat.
//Language not *supposed* to do things like this
//TODO SizeFacet is not a very good model for doing this by hand :(
//Need to separate the setting of size from the facet that holds it
//Skill not *supposed* to do things like this
@Test
public void testFromStat() throws PersistenceLayerException {
PCStat source = create(PCStat.class, "Source");
T granted = createGrantedObject();
processToken(source);
/*
* We never get a chance to test zero since the Stats are added at
* Player Character Construction :)
*/
assertTrue(containsExpected(granted));
assertEquals(1, getCount());
statFacet.remove(id, source);
assertEquals(0, getCount());
assertTrue(cleanedSideEffects());
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class Gui2InfoFactory method getStatAdjustments.
/**
* @see pcgen.core.facade.InfoFactory#getStatAdjustments(pcgen.core.facade.RaceFacade)
*/
@Override
public String getStatAdjustments(RaceFacade raceFacade) {
if (!(raceFacade instanceof Race)) {
return EMPTY_STRING;
}
Race race = (Race) raceFacade;
final StringBuilder retString = new StringBuilder(100);
for (PCStat stat : charDisplay.getStatSet()) {
if (charDisplay.isNonAbility(stat)) {
if (retString.length() > 0) {
retString.append(' ');
}
retString.append(stat.getKeyName() + ":Nonability");
} else {
if (BonusCalc.getStatMod(race, stat, pc) != 0) {
if (retString.length() > 0) {
retString.append(' ');
}
retString.append(stat.getKeyName() + ":" + BonusCalc.getStatMod(race, stat, pc));
}
}
}
return retString.toString();
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class SystemHP method isD20ModernMassive.
/**
* Returns true if the damage done is Massive damage under the
* d20 Modern system
*
* @param cbt
* @param damage
* @return true if the damage done is Massive damage under the
* d20 Modern system
*/
public static boolean isD20ModernMassive(Combatant cbt, int damage) {
if (cbt instanceof PcgCombatant) {
PcgCombatant pcgcbt = (PcgCombatant) cbt;
PlayerCharacter pc = pcgcbt.getPC();
PCStat stat = Globals.getContext().getReferenceContext().silentlyGetConstructedCDOMObject(PCStat.class, "CON");
if (damage > pc.getTotalStatFor(stat)) {
return true;
}
} else {
if (damage > cbt.getHP().getAttribute().getValue()) {
return true;
}
}
return false;
}
Aggregations