/* * Created on 01-Dec-2003 * * To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */ package plugin.pretokens.test; import pcgen.cdom.base.CDOMObject; import pcgen.core.Globals; import pcgen.core.PCCheck; import pcgen.core.PlayerCharacter; import pcgen.core.prereq.AbstractPrerequisiteTest; import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteTest; /** * Prerequisite test that the character has a non-zero value for a given check. */ public class PreCheckTester extends AbstractPrerequisiteTest implements PrerequisiteTest { /** Constructor. */ public PreCheckTester() { super(); } /** * Get the type of prerequisite handled by this token. * @return the type of prerequisite handled by this token. */ @Override public String kindHandled() { return "CHECK"; //$NON-NLS-1$ } /* (non-Javadoc) * @see pcgen.core.prereq.PrerequisiteTest#passes(pcgen.core.prereq.Prerequisite, pcgen.core.PlayerCharacter) */ @Override public int passes(final Prerequisite prereq, final PlayerCharacter character, CDOMObject source) { int runningTotal = 0; final String checkName = prereq.getKey(); final int operand = character.getVariableValue(prereq.getOperand(), "").intValue(); //$NON-NLS-1$ PCCheck check = Globals.getContext().getReferenceContext().silentlyGetConstructedCDOMObject(PCCheck.class, checkName); if (check != null) { final int characterCheckBonus = character.getTotalCheck(check); runningTotal = prereq.getOperator().compare(characterCheckBonus, operand) > 0 ? 1 : 0; } return countedTotal(prereq, runningTotal); } }