Search in sources :

Example 6 with Deity

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();
}
Also used : Deity(pcgen.core.Deity) TreeSet(java.util.TreeSet) Domain(pcgen.core.Domain)

Example 7 with Deity

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;
}
Also used : Deity(pcgen.core.Deity) TreeSet(java.util.TreeSet) Set(java.util.Set) CharacterDisplay(pcgen.core.display.CharacterDisplay) Indirect(pcgen.base.util.Indirect) FactKey(pcgen.cdom.enumeration.FactKey) StringTokenizer(java.util.StringTokenizer) PCAlignment(pcgen.core.PCAlignment) FactSetKey(pcgen.cdom.enumeration.FactSetKey) CDOMReference(pcgen.cdom.base.CDOMReference)

Example 8 with Deity

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));
}
Also used : Deity(pcgen.core.Deity) PlayerCharacter(pcgen.core.PlayerCharacter) PreParserFactory(pcgen.persistence.lst.prereq.PreParserFactory)

Example 9 with Deity

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));
}
Also used : Deity(pcgen.core.Deity)

Example 10 with Deity

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);
}
Also used : Deity(pcgen.core.Deity) PrerequisiteException(pcgen.core.prereq.PrerequisiteException) WrappedMapSet(pcgen.base.util.WrappedMapSet)

Aggregations

Deity (pcgen.core.Deity)39 CDOMReference (pcgen.cdom.base.CDOMReference)8 Domain (pcgen.core.Domain)8 Test (org.junit.Test)5 WeaponProf (pcgen.core.WeaponProf)5 HashSet (java.util.HashSet)3 TreeSet (java.util.TreeSet)3 StringManager (pcgen.base.format.StringManager)3 PCAlignment (pcgen.core.PCAlignment)3 BigDecimal (java.math.BigDecimal)2 ArrayList (java.util.ArrayList)2 StringTokenizer (java.util.StringTokenizer)2 AssociatedPrereqObject (pcgen.cdom.base.AssociatedPrereqObject)2 SimpleAssociatedObject (pcgen.cdom.base.SimpleAssociatedObject)2 LinkedHashSet (java.util.LinkedHashSet)1 Set (java.util.Set)1 NumberManager (pcgen.base.format.NumberManager)1 Indirect (pcgen.base.util.Indirect)1 WeightedCollection (pcgen.base.util.WeightedCollection)1 WrappedMapSet (pcgen.base.util.WrappedMapSet)1