use of pcgen.core.PCStat in project pcgen by PCGen.
the class StatTokenTest method setUp.
@Override
@Before
public void setUp() throws PersistenceLayerException, URISyntaxException {
super.setUp();
ps = BuildUtilities.createStat("Strength", "STR");
primaryContext.getReferenceContext().importObject(ps);
PCStat pi = BuildUtilities.createStat("Intelligence", "INT");
primaryContext.getReferenceContext().importObject(pi);
PCStat ss = BuildUtilities.createStat("Strength", "STR");
secondaryContext.getReferenceContext().importObject(ss);
PCStat si = BuildUtilities.createStat("Intelligence", "INT");
secondaryContext.getReferenceContext().importObject(si);
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class StatApplication method askForStatIncrease.
//
// Ask user to select a stat to increment. This can happen before skill
// points
// are calculated, so an increase to the appropriate stat can give more
// skill points
//
public static int askForStatIncrease(final PlayerCharacter aPC, final int statsToChoose, final boolean isPre) {
//
if (isPre) {
if (!Globals.checkRule(RuleConstants.INTBEFORE)) {
return statsToChoose;
}
}
String titleKey = "in_statTitle";
if (isPre && !Globals.checkRule(RuleConstants.RETROSKILL)) {
titleKey = "in_statTitleWithSkill";
}
int iCount = 0;
Set<PCStat> statsAlreadyBonused = new HashSet<>();
boolean allowStacks = SettingsHandler.getGame().isBonusStatAllowsStack();
DecimalFormat formatter = PrettyIntegerFormat.getFormat();
for (int ix = 0; ix < statsToChoose; ++ix) {
final List<String> selectableStats = new ArrayList<>();
for (PCStat aStat : aPC.getDisplay().getStatSet()) {
final StringBuilder sStats = new StringBuilder(100);
final int iAdjStat = aPC.getTotalStatFor(aStat);
final int iCurStat = aPC.getBaseStatFor(aStat);
sStats.append(aStat.getDisplayName()).append(": ").append(iCurStat);
if (iCurStat != iAdjStat) {
sStats.append(" adjusted: ").append(iAdjStat);
}
sStats.append(" (").append(formatter.format(aPC.getStatModFor(aStat))).append(")");
if (allowStacks || !statsAlreadyBonused.contains(aStat)) {
selectableStats.add(sStats.toString());
} else {
sStats.append(" * Already incremented.");
selectableStats.add(sStats.toString());
}
}
CDOMChooserFacadeImpl<String> chooserFacade = new CDOMChooserFacadeImpl<>(//$NON-NLS-1$
LanguageBundle.getString(titleKey), //$NON-NLS-1$
selectableStats, new ArrayList<>(), 1);
chooserFacade.setDefaultView(ChooserTreeViewType.NAME);
chooserFacade.setPreferRadioSelection(true);
chooserFacade.setInfoFactory(new Gui2InfoFactory(aPC));
ChooserFactory.getDelegate().showGeneralChooser(chooserFacade);
final List<String> selectedValues = chooserFacade.getFinalSelected();
final String selectedValue = selectedValues.isEmpty() ? null : selectedValues.get(0);
if (selectedValue != null) {
for (PCStat aStat : aPC.getStatSet()) {
if (selectedValue.startsWith(aStat.getDisplayName())) {
aPC.saveStatIncrease(aStat, 1, isPre);
aPC.setStat(aStat, aPC.getStat(aStat) + 1);
aPC.setPoolAmount(aPC.getPoolAmount() - 1);
statsAlreadyBonused.add(aStat);
++iCount;
break;
}
}
}
}
return statsToChoose - iCount;
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class LockedStat method getDescription.
@Override
public String getDescription() {
AbstractReferenceContext rc = Globals.getContext().getReferenceContext();
final PCStat pcstat = rc.silentlyGetConstructedCDOMObject(PCStat.class, getBonusInfo());
if (pcstat != null) {
return pcstat.getName() + " (locked)";
}
return super.getDescription();
}
Aggregations