Search in sources :

Example 61 with PCStat

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());
}
Also used : GameMode(pcgen.core.GameMode) Language(pcgen.core.Language) AbstractReferenceContext(pcgen.rules.context.AbstractReferenceContext) PCStat(pcgen.core.PCStat)

Example 62 with PCStat

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);
}
Also used : PCStat(pcgen.core.PCStat) Before(org.junit.Before)

Example 63 with PCStat

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);
        }
    }
}
Also used : CDOMObject(pcgen.cdom.base.CDOMObject) PCStat(pcgen.core.PCStat) CDOMSingleRef(pcgen.cdom.reference.CDOMSingleRef) CharID(pcgen.cdom.enumeration.CharID)

Example 64 with PCStat

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);
        }
    }
}
Also used : CDOMObject(pcgen.cdom.base.CDOMObject) PCStat(pcgen.core.PCStat) CDOMSingleRef(pcgen.cdom.reference.CDOMSingleRef) CharID(pcgen.cdom.enumeration.CharID)

Example 65 with PCStat

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;
}
Also used : StringTokenizer(java.util.StringTokenizer) ArrayList(java.util.ArrayList) PCStat(pcgen.core.PCStat)

Aggregations

PCStat (pcgen.core.PCStat)78 CDOMObject (pcgen.cdom.base.CDOMObject)10 GameMode (pcgen.core.GameMode)10 Before (org.junit.Before)9 Race (pcgen.core.Race)9 PCClass (pcgen.core.PCClass)7 PlayerCharacter (pcgen.core.PlayerCharacter)7 AbstractReferenceContext (pcgen.rules.context.AbstractReferenceContext)7 CDOMSingleRef (pcgen.cdom.reference.CDOMSingleRef)6 PCTemplate (pcgen.core.PCTemplate)6 Skill (pcgen.core.Skill)6 ArrayList (java.util.ArrayList)5 StatLock (pcgen.cdom.helper.StatLock)5 BonusObj (pcgen.core.bonus.BonusObj)5 Test (org.junit.Test)4 Formula (pcgen.base.formula.Formula)4 CharID (pcgen.cdom.enumeration.CharID)4 LoadContext (pcgen.rules.context.LoadContext)4 StringTokenizer (java.util.StringTokenizer)3 Type (pcgen.cdom.enumeration.Type)3