use of pcgen.core.Deity in project pcgen by PCGen.
the class Gui2InfoFactory method getDomains.
@Override
public String getDomains(DeityFacade deityFacade) {
if (deityFacade == null || !(deityFacade instanceof Deity)) {
return EMPTY_STRING;
}
Deity deity = (Deity) deityFacade;
Set<String> set = new TreeSet<>();
for (CDOMReference<Domain> ref : deity.getSafeListMods(Deity.DOMAINLIST)) {
for (Domain d : ref.getContainedObjects()) {
set.add(OutputNameFormatting.piString(d, false));
}
}
final StringBuilder piString = new StringBuilder(100);
//piString.append("<html>"); //$NON-NLS-1$
//$NON-NLS-1$
piString.append(StringUtil.joinToStringBuilder(set, ", "));
//piString.append("</html>"); //$NON-NLS-1$
return piString.toString();
}
use of pcgen.core.Deity in project pcgen by PCGen.
the class DeityToken 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 = "";
CharacterDisplay display = pc.getDisplay();
Deity deity = display.getDeity();
if (deity != null) {
StringTokenizer aTok = new StringTokenizer(tokenSource, ".", false);
String subTag = "OUTPUTNAME";
if (aTok.countTokens() > 1) {
aTok.nextToken();
subTag = aTok.nextToken();
}
if ("NAME".equals(subTag)) {
if (!display.getSuppressBioField(BiographyField.DEITY)) {
retString = deity.getDisplayName();
}
} else if ("OUTPUTNAME".equals(subTag)) {
if (!display.getSuppressBioField(BiographyField.DEITY)) {
retString = OutputNameFormatting.getOutputName(deity);
}
} else if ("DOMAINLIST".equals(subTag)) {
retString = getDomainListToken(deity);
} else if ("FOLLOWERALIGNMENT".equals(subTag)) {
Logging.errorPrint("Output Sheet uses DEITY.FOLLOWERALIGN: " + "Function has been removed from PCGen");
} else if ("ALIGNMENT".equals(subTag)) {
CDOMSingleRef<PCAlignment> al = deity.get(ObjectKey.ALIGNMENT);
retString = al == null ? "" : al.get().getKeyName();
} else if ("APPEARANCE".equals(subTag)) {
FactKey<String> fk = FactKey.valueOf("Appearance");
String str = deity.getResolved(fk);
retString = (str == null) ? "" : str;
} else if ("DESCRIPTION".equals(subTag)) {
retString = pc.getDescription(deity);
} else if ("HOLYITEM".equals(subTag)) {
FactKey<String> fk = FactKey.valueOf("Symbol");
String str = deity.getResolved(fk);
retString = (str == null) ? "" : str;
} else if ("FAVOREDWEAPON".equals(subTag)) {
List<CDOMReference<WeaponProf>> dwp = deity.getSafeListFor(ListKey.DEITYWEAPON);
retString = ReferenceUtilities.joinLstFormat(dwp, Constants.PIPE, true);
} else if ("PANTHEONLIST".equals(subTag)) {
FactSetKey<String> fk = FactSetKey.valueOf("Pantheon");
Set<String> pset = new TreeSet<>();
for (Indirect<String> indirect : deity.getSafeSetFor(fk)) {
pset.add(indirect.get());
}
retString = StringUtil.join(pset, ", ");
} else if ("SOURCE".equals(subTag)) {
retString = SourceFormat.getFormattedString(deity, Globals.getSourceDisplay(), true);
} else if ("SA".equals(subTag)) {
retString = getSAToken(deity, display);
} else if ("TITLE".equals(subTag)) {
FactKey<String> fk = FactKey.valueOf("Title");
String str = deity.getResolved(fk);
retString = (str == null) ? "" : str;
} else if ("WORSHIPPERS".equals(subTag)) {
FactKey<String> fk = FactKey.valueOf("Worshippers");
String str = deity.getResolved(fk);
retString = (str == null) ? "" : str;
}
}
return retString;
}
use of pcgen.core.Deity in project pcgen by PCGen.
the class PreFactSetTest method testFact.
/**
* Test the PREFACT code
* @throws Exception
*/
public void testFact() throws Exception {
final PlayerCharacter character = getCharacter();
Deity deity = new Deity();
BuildUtilities.addToFactSet(deity, "PANTHEON", "Greek");
BuildUtilities.addToFactSet(deity, "PANTHEON", "War");
deity.setName("Ares");
character.setDeity(deity);
Prerequisite prereq;
final PreParserFactory factory = PreParserFactory.getInstance();
prereq = factory.parse("PREFACTSET:1,DEITY,PANTHEON=Roman");
assertFalse("Character's deity should not match requirement", PrereqHandler.passes(prereq, character, null));
prereq = factory.parse("PREFACTSET:1,DEITY,PANTHEON=War");
assertTrue("Character's deity should match pantheon", PrereqHandler.passes(prereq, character, null));
prereq = factory.parse("PREFACTSET:1,DEITY,PANTHEON=Greek");
assertTrue("Character's deity should match pantheon", PrereqHandler.passes(prereq, character, null));
}
use of pcgen.core.Deity in project pcgen by PCGen.
the class PreDeityAlignTest method setUp.
@Override
protected void setUp() throws Exception {
super.setUp();
deity = new Deity();
deity.setName("TestDeity");
deity.put(ObjectKey.ALIGNMENT, CDOMDirectSingleRef.getRef(ng));
}
use of pcgen.core.Deity in project pcgen by PCGen.
the class PreDeityTester method passes.
/**
* @see pcgen.core.prereq.PrerequisiteTest#passes(pcgen.core.PlayerCharacter)
*/
@Override
public int passes(final Prerequisite prereq, final CharacterDisplay display, CDOMObject source) throws PrerequisiteException {
int runningTotal;
if (//$NON-NLS-1$
prereq.getKey().startsWith("PANTHEON.")) {
try {
String pantheon = prereq.getKey().substring(9);
Deity deity = display.getDeity();
Set<String> charDeityPantheon = new WrappedMapSet<>(CaseInsensitiveMap.class);
if (deity != null) {
FactSetKey<String> fk = FactSetKey.valueOf("Pantheon");
for (Indirect<String> indirect : deity.getSafeSetFor(fk)) {
charDeityPantheon.add(indirect.get());
}
}
if (prereq.getOperator().equals(PrerequisiteOperator.EQ) || prereq.getOperator().equals(PrerequisiteOperator.GTEQ)) {
runningTotal = (charDeityPantheon.contains(pantheon)) ? 1 : 0;
} else if (prereq.getOperator().equals(PrerequisiteOperator.NEQ) || prereq.getOperator().equals(PrerequisiteOperator.LT)) {
runningTotal = (charDeityPantheon.contains(pantheon)) ? 0 : 1;
} else {
throw new PrerequisiteException(LanguageBundle.getFormattedString("PreDeity.error.bad_coparator", //$NON-NLS-1$
prereq.toString()));
}
} catch (IllegalArgumentException e) {
//This is okay, just indicates the Pantheon asked for can't exist in any PC
if (prereq.getOperator().equals(PrerequisiteOperator.EQ) || prereq.getOperator().equals(PrerequisiteOperator.GTEQ)) {
runningTotal = 0;
} else if (prereq.getOperator().equals(PrerequisiteOperator.NEQ) || prereq.getOperator().equals(PrerequisiteOperator.LT)) {
runningTotal = 1;
} else {
throw new PrerequisiteException(LanguageBundle.getFormattedString("PreDeity.error.bad_coparator", //$NON-NLS-1$
prereq.toString()));
}
}
} else {
final String charDeity = display.getDeity() != null ? display.getDeity().getKeyName() : //$NON-NLS-1$
"";
if (prereq.getOperator().equals(PrerequisiteOperator.EQ) || prereq.getOperator().equals(PrerequisiteOperator.GTEQ)) {
runningTotal = (charDeity.equalsIgnoreCase(prereq.getKey())) ? 1 : 0;
} else if (prereq.getOperator().equals(PrerequisiteOperator.NEQ) || prereq.getOperator().equals(PrerequisiteOperator.LT)) {
runningTotal = (charDeity.equalsIgnoreCase(prereq.getKey())) ? 0 : 1;
} else {
throw new PrerequisiteException(LanguageBundle.getFormattedString("PreDeity.error.bad_coparator", //$NON-NLS-1$
prereq.toString()));
}
}
return countedTotal(prereq, runningTotal);
}
Aggregations