use of pcgen.core.PCStat in project pcgen by PCGen.
the class AbstractCharacterUsingTestCase method setUpPC.
protected void setUpPC() throws PersistenceLayerException {
TokenRegistration.register(AUTO_LANG_TOKEN);
TokenRegistration.register(ABILITY_VISIBLE_TOKEN);
TokenRegistration.register(AUTO_TOKEN);
TokenRegistration.register(CHOOSE_TOKEN);
TokenRegistration.register(CHOOSE_LANG_TOKEN);
TokenRegistration.register(ABILITY_MULT_TOKEN);
TokenRegistration.register(EQUIP_TYPE_TOKEN);
TokenRegistration.register(EQUIP_PROFICIENCY_TOKEN);
TokenRegistration.register(LANGBONUS_PRIM);
TokenRegistration.register(PC_QUAL);
Globals.createEmptyRace();
Globals.setUseGUI(false);
Globals.emptyLists();
GameMode gamemode = SettingsHandler.getGame();
str = BuildUtilities.createStat("Strength", "STR");
str.put(VariableKey.getConstant("LOADSCORE"), FormulaFactory.getFormulaFor("STRSCORE"));
str.put(VariableKey.getConstant("OFFHANDLIGHTBONUS"), FormulaFactory.getFormulaFor(2));
dex = BuildUtilities.createStat("Dexterity", "DEX");
PCStat con = BuildUtilities.createStat("Constitution", "CON");
intel = BuildUtilities.createStat("Intelligence", "INT");
wis = BuildUtilities.createStat("Wisdom", "WIS");
cha = BuildUtilities.createStat("Charisma", "CHA");
AbstractReferenceContext ref = Globals.getContext().getReferenceContext();
lg = BuildUtilities.createAlignment("Lawful Good", "LG");
ref.importObject(lg);
ln = BuildUtilities.createAlignment("Lawful Neutral", "LN");
ref.importObject(ln);
le = BuildUtilities.createAlignment("Lawful Evil", "LE");
ref.importObject(le);
ng = BuildUtilities.createAlignment("Neutral Good", "NG");
ref.importObject(ng);
tn = BuildUtilities.createAlignment("True Neutral", "TN");
ref.importObject(tn);
ne = BuildUtilities.createAlignment("Neutral Evil", "NE");
ref.importObject(ne);
cg = BuildUtilities.createAlignment("Chaotic Good", "CG");
ref.importObject(cg);
cn = BuildUtilities.createAlignment("Chaotic Neutral", "CN");
ref.importObject(cn);
ce = BuildUtilities.createAlignment("Chaotic Evil", "CE");
ref.importObject(ce);
ref.importObject(BuildUtilities.createAlignment("None", "NONE"));
ref.importObject(BuildUtilities.createAlignment("Deity's", "Deity"));
gamemode.setBonusFeatLevels("3|3");
SettingsHandler.setGame("3.5");
ref.importObject(str);
ref.importObject(dex);
ref.importObject(con);
ref.importObject(intel);
ref.importObject(wis);
ref.importObject(cha);
fine = BuildUtilities.createSize("Fine", 0);
diminutive = BuildUtilities.createSize("Diminutive", 1);
tiny = BuildUtilities.createSize("Tiny", 2);
small = BuildUtilities.createSize("Small", 3);
medium = BuildUtilities.createSize("Medium", 4);
medium.put(ObjectKey.IS_DEFAULT_SIZE, true);
large = BuildUtilities.createSize("Large", 5);
huge = BuildUtilities.createSize("Huge", 6);
gargantuan = BuildUtilities.createSize("Gargantuan", 7);
colossal = BuildUtilities.createSize("Colossal", 8);
universal = ref.constructCDOMObject(Language.class, "Universal");
other = ref.constructCDOMObject(Language.class, "Other");
SourceFileLoader.createLangBonusObject(Globals.getContext());
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class BonusSpellStatIntegrationTest method setUp.
@Override
@Before
public void setUp() throws PersistenceLayerException, URISyntaxException {
super.setUp();
prefix = "CLASS:";
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 NonStatToStatFacet method dataAdded.
/**
* Adds a PCStat to this facet if the PCStat was set to a non stat by a CDOMObject
* which has been added to a Player Character.
*
* Triggered when one of the Facets to which NonStatToStatFacet listens fires a
* DataFacetChangeEvent to indicate a CDOMObject was added to a Player
* Character.
*
* @param dfce
* The DataFacetChangeEvent containing the information about the
* change
*
* @see pcgen.cdom.facet.event.DataFacetChangeListener#dataAdded(pcgen.cdom.facet.event.DataFacetChangeEvent)
*/
@Override
public void dataAdded(DataFacetChangeEvent<CharID, CDOMObject> dfce) {
CDOMObject cdo = dfce.getCDOMObject();
List<CDOMSingleRef<PCStat>> locks = cdo.getListFor(ListKey.NONSTAT_TO_STAT_STATS);
if (locks != null) {
CharID charID = dfce.getCharID();
for (CDOMSingleRef<PCStat> ref : locks) {
add(charID, ref.get(), cdo);
}
}
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class NonStatStatFacet method dataAdded.
/**
* Adds a PCStat to this facet if the PCStat was set to a non stat by a CDOMObject
* which has been added to a Player Character.
*
* Triggered when one of the Facets to which NonStatStatFacet listens fires a
* DataFacetChangeEvent to indicate a CDOMObject was added to a Player
* Character.
*
* @param dfce
* The DataFacetChangeEvent containing the information about the
* change
*
* @see pcgen.cdom.facet.event.DataFacetChangeListener#dataAdded(pcgen.cdom.facet.event.DataFacetChangeEvent)
*/
@Override
public void dataAdded(DataFacetChangeEvent<CharID, CDOMObject> dfce) {
CDOMObject cdo = dfce.getCDOMObject();
List<CDOMSingleRef<PCStat>> locks = cdo.getListFor(ListKey.NONSTAT_STATS);
if (locks != null) {
CharID charID = dfce.getCharID();
for (CDOMSingleRef<PCStat> ref : locks) {
add(charID, ref.get(), cdo);
}
}
}
use of pcgen.core.PCStat in project pcgen by PCGen.
the class StatToken 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) {
String retString = "";
StringTokenizer aTok = new StringTokenizer(tokenSource, ".");
if (aTok.countTokens() < 2) {
Logging.errorPrint("Invalid STAT token:" + tokenSource, new Throwable());
return "";
}
aTok.nextToken();
int indexOfStat;
indexOfStat = Integer.parseInt(aTok.nextToken());
if ((indexOfStat < 0) || (indexOfStat >= pc.getDisplay().getStatCount())) {
return "";
}
List<PCStat> statList = new ArrayList<>(pc.getDisplay().getStatSet());
PCStat stat = statList.get(indexOfStat);
String findType = "STAT";
boolean useBase = false;
boolean useLevel = false;
int aLevel = 0;
boolean useEquip = true;
boolean useTemp = true;
boolean usePost = true;
while (aTok.hasMoreTokens()) {
String token = aTok.nextToken();
if ("NAME".equals(token)) {
return stat.getKeyName();
}
if ("LONGNAME".equals(token)) {
return stat.getDisplayName();
}
if ("ISNONABILITY".equals(token)) {
return pc.getDisplay().isNonAbility(stat) ? "Y" : "N";
}
if ("STAT".equals(token)) {
findType = "STAT";
} else if ("MOD".equals(token)) {
findType = "MOD";
} else if ("BASE".equals(token)) {
useBase = true;
} else if ("BASEMOD".equals(token)) {
findType = "MOD";
useBase = true;
} else if ("NOTEMP".equals(token)) {
useTemp = false;
} else if ("NOTEMPMOD".equals(token)) {
findType = "MOD";
useTemp = false;
} else if ("NOEQUIP".equals(token)) {
useEquip = false;
} else if ("NOPOST".equals(token)) {
usePost = false;
} else if ("LEVEL".equals(token)) {
try {
aLevel = Integer.parseInt(aTok.nextToken());
} catch (NumberFormatException nfe) {
Logging.errorPrint("Malformed LEVEL.x tag");
}
useLevel = true;
}
}
if (findType.equals("MOD")) {
if (useBase) {
retString = getBaseModToken(pc, stat);
} else {
retString = getModToken(pc, stat, useTemp, useEquip, usePost, useLevel, aLevel);
}
} else {
if (useBase) {
retString = getBaseToken(pc, stat);
} else {
retString = getStatToken(pc, stat, useTemp, useEquip, usePost, useLevel, aLevel);
}
}
return retString;
}
Aggregations