/*
* 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.core.AbilityCategory;
import pcgen.core.Equipment;
import pcgen.core.PlayerCharacter;
import pcgen.core.prereq.AbstractPrerequisiteTest;
import pcgen.core.prereq.Prerequisite;
import pcgen.core.prereq.PrerequisiteException;
import pcgen.core.prereq.PrerequisiteTest;
import pcgen.core.prereq.PrerequisiteUtilities;
import pcgen.system.LanguageBundle;
/**
* @author wardc
*
* To change the template for this generated type comment go to Window -
* Preferences - Java - Code Generation - Code and Comments
*/
public class PreFeatTester extends AbstractPrerequisiteTest implements
PrerequisiteTest
{
/* (non-Javadoc)
* @see pcgen.core.prereq.PrerequisiteTest#passes(pcgen.core.PlayerCharacter)
*/
@Override
public int passes(final Prerequisite prereq, final Equipment equipment,
final PlayerCharacter aPC) throws PrerequisiteException
{
if (aPC == null)
{
return 0;
}
return passes(prereq, aPC, equipment);
}
/*
* (non-Javadoc)
*
* @see pcgen.core.prereq.PrerequisiteTest#passes(pcgen.core.PlayerCharacter)
*/
@Override
public int passes(
final Prerequisite prereq,
final PlayerCharacter character,
CDOMObject source)
throws PrerequisiteException
{
final int number;
try
{
number = Integer.parseInt(prereq.getOperand());
}
catch (NumberFormatException exceptn)
{
throw new PrerequisiteException(LanguageBundle.getFormattedString(
"PreFeat.error", prereq.toString())); //$NON-NLS-1$
}
int runningTotal = PrerequisiteUtilities.passesAbilityTest(
prereq,
character,
number,
AbilityCategory.FEAT.getKeyName());
return countedTotal(prereq, runningTotal);
}
@Override
public String toHtmlString(final Prerequisite prereq)
{
String aString = prereq.getKey();
if ((prereq.getSubKey() != null) && !prereq.getSubKey().equals(""))
{
aString = aString + " ( " + prereq.getSubKey() + " )";
}
if (aString.startsWith("TYPE="))
{
// {0} {1} {2}(s) of type {3}
return LanguageBundle.getFormattedString("PreFeat.type.toHtml",
new Object[]{prereq.getOperator().toDisplayString(),
prereq.getOperand(),
AbilityCategory.FEAT.getDisplayName().toLowerCase(),
aString.substring(5)});
}
// {2} {3} {1} {0}
return LanguageBundle.getFormattedString("PreFeat.toHtml",
new Object[]{AbilityCategory.FEAT.getDisplayName().toLowerCase(),
aString, prereq.getOperator().toDisplayString(),
prereq.getOperand()}); //$NON-NLS-1$
}
/*
/**
* Get the type of prerequisite handled by this token.
* @return the type of prerequisite handled by this token.
*/
@Override
public String kindHandled()
{
return "FEAT"; //$NON-NLS-1$
}
}