/* * Created on 02-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.cdom.enumeration.ObjectKey; import pcgen.core.Deity; import pcgen.core.Globals; import pcgen.core.PCAlignment; import pcgen.core.analysis.AlignmentConverter; import pcgen.core.display.CharacterDisplay; import pcgen.core.prereq.AbstractDisplayPrereqTest; import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteTest; import pcgen.system.LanguageBundle; /** * Prerequisite test that the character has a deity with the correct alignment. */ public class PreDeityAlignTester extends AbstractDisplayPrereqTest implements PrerequisiteTest { /* (non-Javadoc) * @see pcgen.core.prereq.PrerequisiteTest#passes(pcgen.core.PlayerCharacter) */ @Override public int passes(final Prerequisite prereq, final CharacterDisplay display, CDOMObject source) { // // If game mode doesn't support alignment, then pass the prereq // int runningTotal = 0; if (Globals.getGameModeAlignmentText().length() == 0) { runningTotal = 1; } else { PCAlignment deityAlign = null; //$NON-NLS-1$ Deity deity = display.getDeity(); if (deity != null) { deityAlign = deity.get(ObjectKey.ALIGNMENT); } if (deityAlign != null) { String desiredAlignIdentifier = prereq.getOperand(); PCAlignment desiredAlign = getPCAlignment(desiredAlignIdentifier); if (desiredAlign.equals(deityAlign)) { runningTotal = 1; } } } return countedTotal(prereq, runningTotal); } private PCAlignment getPCAlignment(String desiredAlignIdentifier) { return AlignmentConverter.getPCAlignment(desiredAlignIdentifier); } /** * Get the type of prerequisite handled by this token. * @return the type of prerequisite handled by this token. */ @Override public String kindHandled() { return "DEITYALIGN"; //$NON-NLS-1$ } /* (non-Javadoc) * @see pcgen.core.prereq.PrerequisiteTest#toHtmlString(pcgen.core.prereq.Prerequisite) */ @Override public String toHtmlString(final Prerequisite prereq) { return LanguageBundle .getFormattedString( "PreDeityAlign.toHtml", prereq.getOperator().toDisplayString(), getPCAlignment(prereq.getOperand()).getAbb()); //$NON-NLS-1$ } }