use of pcgen.core.PCStat in project pcgen by PCGen.
the class StatIntegrationTest method setUp.
@Override
public void setUp() throws PersistenceLayerException, URISyntaxException {
super.setUp();
PCStat 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 AbstractContentTokenTest method testFromStat.
//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");
processToken(source);
assertTrue(containsExpected());
assertEquals(baseCount() + 1, targetFacetCount());
statFacet.remove(id, source);
assertEquals(baseCount(), targetFacetCount());
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class Initiative method doNonLethal.
/**
* <p>Applies non-lethal combatant. This allows other methods to damage
* combatants who are not necessarily selected at the time.</p>
*
* @param damage
* Points of damage to do.
* @param iH
* InitHolder to damage.
*/
private void doNonLethal(int damage, InitHolder iH) {
if (iH instanceof Combatant) {
Combatant cbt = (Combatant) iH;
boolean isEnough = false;
if (cbt instanceof XMLCombatant) {
XMLCombatant xmlcbt = (XMLCombatant) cbt;
if (damage > xmlcbt.getHP().getAttribute().getValue()) {
isEnough = true;
}
}
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)) {
isEnough = true;
}
}
if (isEnough) {
SavingThrowDialog dialog = new SavingThrowDialog(GMGenSystem.inst, true, cbt, 15, SavingThrowDialog.FORT_SAVE);
dialog.setVisible(true);
dialog.dispose();
//Show the dialog and get it's results
int returnVal = dialog.getReturnValue();
int roll = dialog.getRoll();
int total = dialog.getTotal();
int dc = dialog.getDC();
//Create a message out with the results
StringBuilder sb = new StringBuilder();
sb.append(dialog.getSaveAbbrev(dialog.getSaveType()));
sb.append(" save DC " + dc);
if (roll > 0) {
sb.append(" with a roll of " + (roll + total));
sb.append(" (" + total + " + Roll: " + roll + ')');
}
if (returnVal == SavingThrowDialog.PASS_OPTION) {
writeToCombatTabWithRound(cbt.getName() + " (" + cbt.getPlayer() + ") Passed a " + sb + " to avoid unconsiousness");
cbt.nonLethalDamage(false);
} else if (returnVal == SavingThrowDialog.FAIL_OPTION) {
writeToCombatTabWithRound(cbt.getName() + " (" + cbt.getPlayer() + ") Failed a " + sb + " to avoid unconsiousness");
cbt.nonLethalDamage(true);
}
}
combatantUpdated(cbt);
}
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class CharacterFacadeImpl method getUsedStatPool.
/**
* This method gets the number of stat points used in the pool
* @param pc The PlayerCharacter to get used stat pool for
* @return used stat pool
*/
private int getUsedStatPool() {
int i = 0;
for (PCStat aStat : charDisplay.getStatSet()) {
if (!aStat.getSafe(ObjectKey.ROLLED)) {
continue;
}
final int statValue = theCharacter.getBaseStatFor(aStat);
i += getPurchaseCostForStat(theCharacter, statValue);
}
//$NON-NLS-1$ //$NON-NLS-2$
i += (int) theCharacter.getTotalBonusTo("POINTBUY", "SPENT");
return i;
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class CharacterFacadeImpl method initForCharacter.
/**
*
*/
private void initForCharacter() {
// Calculate any active bonuses
theCharacter.preparePCForOutput();
todoManager = new TodoManager();
infoFactory = new Gui2InfoFactory(theCharacter);
characterAbilities = new CharacterAbilities(theCharacter, delegate, dataSet, todoManager);
descriptionFacade = new DescriptionFacadeImpl(theCharacter);
spellSupportFacade = new SpellSupportFacadeImpl(theCharacter, delegate, dataSet, todoManager, this);
name = new DefaultReferenceFacade<>(charDisplay.getName());
file = new DefaultReferenceFacade<>(new File(charDisplay.getFileName()));
companionSupportFacade = new CompanionSupportFacadeImpl(theCharacter, todoManager, name, file, this);
availTempBonuses = new DefaultListFacade<>();
refreshAvailableTempBonuses();
appliedTempBonuses = new DefaultListFacade<>();
buildAppliedTempBonusList();
kitList = new DefaultListFacade<>();
refreshKitList();
statScoreMap = new HashMap<>();
for (StatFacade stat : dataSet.getStats()) {
if (stat instanceof PCStat) {
statScoreMap.put(stat, ChannelCompatibility.getStatScore(theCharacter.getCharID(), (PCStat) stat));
} else {
statScoreMap.put(stat, new DefaultReferenceFacade<>());
}
}
File portraitFile = null;
if (!StringUtils.isEmpty(charDisplay.getPortraitPath())) {
portraitFile = new File(charDisplay.getPortraitPath());
}
portrait = new DefaultReferenceFacade<>(portraitFile);
cropRect = new RectangleReference(charDisplay.getPortraitThumbnailRect());
characterType = new DefaultReferenceFacade<>(charDisplay.getCharacterType());
previewSheet = new DefaultReferenceFacade<>(charDisplay.getPreviewSheet());
skillFilter = new DefaultReferenceFacade<>(charDisplay.getSkillFilter());
tabName = new DefaultReferenceFacade<>(charDisplay.getTabName());
playersName = new DefaultReferenceFacade<>(charDisplay.getPlayersName());
race = new DefaultReferenceFacade<>(charDisplay.getRace());
raceList = new DefaultListFacade<>();
if (charDisplay.getRace() != null && charDisplay.getRace() != Globals.s_EMPTYRACE) {
raceList.addElement(charDisplay.getRace());
}
handedness = new DefaultReferenceFacade<>();
gender = new DefaultReferenceFacade<>();
availHands = new DefaultListFacade<>();
availGenders = new DefaultListFacade<>();
for (Handed handed : Handed.values()) {
availHands.addElement(handed);
}
for (Gender gender : Gender.values()) {
availGenders.addElement(gender);
}
if (charDisplay.getRace() != null) {
for (HandedFacade handsFacade : availHands) {
if (handsFacade.equals(charDisplay.getHandedObject())) {
handedness.set(handsFacade);
break;
}
}
for (GenderFacade pcGender : availGenders) {
if (pcGender.equals(charDisplay.getGenderObject())) {
gender.set(pcGender);
break;
}
}
}
alignment = new DefaultReferenceFacade<>(charDisplay.getPCAlignment());
age = new DefaultReferenceFacade<>(charDisplay.getAge());
ageCategory = new DefaultReferenceFacade<>();
updateAgeCategoryForAge();
currentXP = new DefaultReferenceFacade<>(charDisplay.getXP());
xpListener = new XPListener();
FacetLibrary.getFacet(XPFacet.class).addDataFacetChangeListener(xpListener);
xpForNextlevel = new DefaultReferenceFacade<>(charDisplay.minXPForNextECL());
xpTableName = new DefaultReferenceFacade<>(charDisplay.getXPTableName());
hpRef = new DefaultReferenceFacade<>(theCharacter.hitPoints());
skinColor = new DefaultReferenceFacade<>(charDisplay.getSafeStringFor(PCStringKey.SKINCOLOR));
hairColor = new DefaultReferenceFacade<>(charDisplay.getSafeStringFor(PCStringKey.HAIRCOLOR));
eyeColor = new DefaultReferenceFacade<>(charDisplay.getSafeStringFor(PCStringKey.EYECOLOR));
weightRef = new DefaultReferenceFacade<>();
heightRef = new DefaultReferenceFacade<>();
refreshHeightWeight();
purchasedEquip = new EquipmentListFacadeImpl(theCharacter.getEquipmentMasterList());
autoEquipListener = new AutoEquipListener();
FacetLibrary.getFacet(AutoEquipmentFacet.class).addDataFacetChangeListener(autoEquipListener);
carriedWeightRef = new DefaultReferenceFacade<>();
loadRef = new DefaultReferenceFacade<>();
weightLimitRef = new DefaultReferenceFacade<>();
equipSet = new DefaultReferenceFacade<>();
equipmentSets = new DefaultListFacade<>();
initEquipSet();
GameMode game = (GameMode) dataSet.getGameMode();
rollMethodRef = new DefaultReferenceFacade<>(game.getRollMethod());
charLevelsFacade = new CharacterLevelsFacadeImpl(theCharacter, delegate, todoManager, dataSet, this);
pcClasses = new ArrayList<>();
pcClassLevels = new DefaultListFacade<>();
refreshClassLevelModel();
charLevelsFacade.addHitPointListener(this);
deity = new DefaultReferenceFacade<>(charDisplay.getDeity());
domains = new DefaultListFacade<>();
maxDomains = new DefaultReferenceFacade<>(theCharacter.getMaxCharacterDomains());
remainingDomains = new DefaultReferenceFacade<>(theCharacter.getMaxCharacterDomains() - domains.getSize());
availDomains = new DefaultListFacade<>();
buildAvailableDomainsList();
templates = new DefaultListFacade<>(charDisplay.getDisplayVisibleTemplateList());
templateListener = new TemplateListener();
FacetLibrary.getFacet(TemplateFacet.class).addDataFacetChangeListener(templateListener);
initTodoList();
statTotalLabelText = new DefaultReferenceFacade<>();
statTotalText = new DefaultReferenceFacade<>();
modTotalLabelText = new DefaultReferenceFacade<>();
modTotalText = new DefaultReferenceFacade<>();
updateScorePurchasePool(false);
languages = new DefaultListFacade<>();
numBonusLang = new DefaultReferenceFacade<>(0);
numSkillLang = new DefaultReferenceFacade<>(0);
refreshLanguageList();
langListener = new LanguageListener();
FacetLibrary.getFacet(LanguageFacet.class).addDataFacetChangeListener(langListener);
purchasedEquip.addListListener(spellSupportFacade);
purchasedEquip.addEquipmentListListener(spellSupportFacade);
fundsRef = new DefaultReferenceFacade<>(theCharacter.getGold());
wealthRef = new DefaultReferenceFacade<>(theCharacter.totalValue());
gearBuySellSchemeRef = new DefaultReferenceFacade<>(findGearBuySellRate());
allowDebt = false;
}
Aggregations