Search in sources :

Example 31 with CharacterDisplay

use of pcgen.core.display.CharacterDisplay in project pcgen by PCGen.

the class PreUnarmedAttackTester method passes.

/**
	 * @see pcgen.core.prereq.PrerequisiteTest#passes(pcgen.core.PlayerCharacter)
	 */
@Override
public int passes(final Prerequisite prereq, final PlayerCharacter character, CDOMObject source) {
    CharacterDisplay display = character.getDisplay();
    int att = 0;
    for (PCClass aClass : display.getClassSet()) {
        att = Math.max(att, aClass.baseAttackBonus(character));
    }
    final int requiredValue = Integer.parseInt(prereq.getOperand());
    final int runningTotal = prereq.getOperator().compare(att, requiredValue);
    return countedTotal(prereq, runningTotal);
}
Also used : CharacterDisplay(pcgen.core.display.CharacterDisplay) PCClass(pcgen.core.PCClass)

Example 32 with CharacterDisplay

use of pcgen.core.display.CharacterDisplay in project pcgen by PCGen.

the class PreSpellTester method passes.

/**
	 * @see pcgen.core.prereq.PrerequisiteTest#passes(pcgen.core.PlayerCharacter)
	 */
@Override
public int passes(final Prerequisite prereq, final PlayerCharacter character, CDOMObject source) {
    CharacterDisplay display = character.getDisplay();
    int requiredNumber = 0;
    try {
        requiredNumber = Integer.parseInt(prereq.getOperand());
    } catch (NumberFormatException e) {
        Logging.errorPrint(LanguageBundle.getString("PreSpell.error.badly_formed_attribute") + //$NON-NLS-1$
        prereq.toString());
    }
    // Build a list of all possible spells
    final List<Spell> aArrayList = //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    character.aggregateSpellList("", "", "", 0, 20);
    //Needs to add domain spells as well
    for (Domain d : display.getDomainSet()) {
        aArrayList.addAll(character.getAllSpellsInLists(Collections.singletonList(d.get(ObjectKey.DOMAIN_SPELLLIST))));
    }
    //Are there Innate Spell-like abilities?
    if (character.getAutoSpells()) {
        Collection<CDOMReference<Spell>> mods = display.getRace().getListMods(Spell.SPELLS);
        if (mods != null) {
            for (CDOMReference<Spell> ref : mods) {
                aArrayList.addAll(ref.getContainedObjects());
            }
        }
    }
    final String spellName = prereq.getKey();
    int runningTotal = 0;
    for (Spell aSpell : aArrayList) {
        if (aSpell != null && aSpell.getKeyName() != null && aSpell.getKeyName().equalsIgnoreCase(spellName)) {
            runningTotal++;
        }
    }
    runningTotal = prereq.getOperator().compare(runningTotal, requiredNumber);
    return countedTotal(prereq, runningTotal);
}
Also used : CharacterDisplay(pcgen.core.display.CharacterDisplay) Domain(pcgen.core.Domain) Spell(pcgen.core.spell.Spell) CDOMReference(pcgen.cdom.base.CDOMReference)

Aggregations

CharacterDisplay (pcgen.core.display.CharacterDisplay)32 StringTokenizer (java.util.StringTokenizer)9 PCClass (pcgen.core.PCClass)9 Equipment (pcgen.core.Equipment)5 ArrayList (java.util.ArrayList)4 PlayerCharacter (pcgen.core.PlayerCharacter)4 Skill (pcgen.core.Skill)4 Set (java.util.Set)3 CDOMReference (pcgen.cdom.base.CDOMReference)3 PCClassLevel (pcgen.cdom.inst.PCClassLevel)3 PCTemplate (pcgen.core.PCTemplate)3 Follower (pcgen.core.character.Follower)3 HashSet (java.util.HashSet)2 LinkedHashMap (java.util.LinkedHashMap)2 Type (pcgen.cdom.enumeration.Type)2 SpecialAbility (pcgen.core.SpecialAbility)2 Dice (gmgen.plugin.dice.Dice)1 BufferedWriter (java.io.BufferedWriter)1 IOException (java.io.IOException)1 StringWriter (java.io.StringWriter)1