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);
}
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);
}
Aggregations