MCPcopy Create free account
hub / github.com/PCGen/pcgen / PreAbilityTester

Class PreAbilityTester

code/src/java/plugin/pretokens/test/PreAbilityTester.java:34–111  ·  view source on GitHub ↗

PreAbilityParser tests whether a character passes ability prereqs.

Source from the content-addressed store, hash-verified

32 * prereqs.
33 */
34public class PreAbilityTester extends AbstractPrerequisiteTest implements PrerequisiteTest
35{
36
37 @Override
38 public int passes(final Prerequisite prereq, final Equipment equipment, final PlayerCharacter aPC)
39 throws PrerequisiteException
40 {
41 if (aPC == null)
42 {
43 return 0;
44 }
45 return passes(prereq, aPC, equipment);
46 }
47
48 @Override
49 public int passes(final Prerequisite prereq, final PlayerCharacter character, CDOMObject source)
50 throws PrerequisiteException
51 {
52 final int number;
53 try
54 {
55 number = Integer.parseInt(prereq.getOperand());
56 }
57 catch (NumberFormatException exception)
58 {
59 throw new PrerequisiteException(
60 LanguageBundle.getFormattedString("PreAbility.error", prereq.toString()), exception); //$NON-NLS-1$
61 }
62
63 String categoryName = prereq.getCategoryName();
64
65 int runningTotal = PrerequisiteUtilities.passesAbilityTest(prereq, character, number, categoryName);
66
67 return countedTotal(prereq, runningTotal);
68 }
69
70 @Override
71 public String toHtmlString(final Prerequisite prereq)
72 {
73 String aString = prereq.getKey();
74 if ((prereq.getSubKey() != null) && !prereq.getSubKey().equals(""))
75 {
76 aString = aString + " ( " + prereq.getSubKey() + " )";
77 }
78
79 if (aString.startsWith("TYPE=")) //$NON-NLS-1$
80 {
81 if (!prereq.getCategoryName().isEmpty())
82 {
83 // {0} {1} {2}(s) of type {3}
84 return LanguageBundle.getFormattedString("PreAbility.type.toHtml", //$NON-NLS-1$
85 prereq.getOperator().toDisplayString(), prereq.getOperand(), prereq.getCategoryName(),
86 aString.substring(5));
87 }
88 else
89 {
90 // {0} {1} ability(s) of type {2}
91 return LanguageBundle.getFormattedString("PreAbility.type.noCat.toHtml", //$NON-NLS-1$

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected