use of pcgen.core.prereq.Prerequisite in project pcgen by PCGen.
the class PreTypeWriter method specialCase.
@Override
public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException {
// If this is NOT a PREMULT... fail
if (prereq.getKind() != null) {
return false;
}
PrerequisiteOperator oper = null;
for (Prerequisite p : prereq.getPrerequisites()) {
//
if (!"1".equals(p.getOperand())) {
return false;
}
//
if (!kindHandled().equalsIgnoreCase(p.getKind())) {
return false;
}
//
if (oper == null) {
oper = p.getOperator();
} else {
if (!oper.equals(p.getOperator())) {
return false;
}
}
}
String count = prereq.getOperand();
if (PrerequisiteOperator.NEQ.equals(oper)) {
try {
int i = Integer.parseInt(count);
if (prereq.getPrerequisiteCount() != i) {
return false;
}
} catch (NumberFormatException e) {
return false;
}
} else if (!PrerequisiteOperator.EQ.equals(oper)) {
return false;
}
if (!PrerequisiteOperator.GTEQ.equals(prereq.getOperator()) ^ !PrerequisiteOperator.EQ.equals(oper)) {
writer.write('!');
}
writer.write("PRE" + kindHandled().toUpperCase() + ':' + (prereq.isOverrideQualify() ? "Q:" : ""));
writer.write(oper.equals(PrerequisiteOperator.EQ) ? prereq.getOperand() : "1");
for (Prerequisite p : prereq.getPrerequisites()) {
writer.write(',');
writer.write(p.getKey());
}
return true;
}
use of pcgen.core.prereq.Prerequisite in project pcgen by PCGen.
the class PreShieldProfWriter method specialCase.
@Override
public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException {
PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false);
if (po == null) {
return false;
}
if (!po.equals(prereq.getOperator())) {
writer.write('!');
}
writer.write("PRE" + kindHandled().toUpperCase() + ':' + (prereq.isOverrideQualify() ? "Q:" : ""));
writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() : "1");
for (Prerequisite p : prereq.getPrerequisites()) {
writer.write(',');
writer.write(p.getKey());
}
return true;
}
use of pcgen.core.prereq.Prerequisite in project pcgen by PCGen.
the class PreSkillMultWriter method specialCase.
@Override
public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException {
PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true);
if (po == null) {
return false;
}
if (!po.equals(prereq.getOperator())) {
writer.write('!');
}
writer.write("PRE" + kindHandled().toUpperCase() + ':' + (prereq.isOverrideQualify() ? "Q:" : ""));
writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() : "1");
for (Prerequisite p : prereq.getPrerequisites()) {
writer.write(',');
writer.write(p.getKey());
if (p.getSubKey() != null) {
writer.write(" (");
writer.write(p.getSubKey());
writer.write(")");
}
writer.write('=');
writer.write(p.getOperand());
}
return true;
}
use of pcgen.core.prereq.Prerequisite in project pcgen by PCGen.
the class PreSpellCastWriter method specialCase.
@Override
public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException {
PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false);
if (po == null) {
return false;
}
if (po == PrerequisiteOperator.GTEQ && !"1".equals(prereq.getOperand())) {
return false;
}
if (po != prereq.getOperator()) {
writer.write('!');
}
writer.write("PRESPELLCAST:" + (prereq.isOverrideQualify() ? "Q:" : ""));
boolean first = true;
for (Prerequisite p : prereq.getPrerequisites()) {
if (!first) {
writer.write(',');
}
writer.write("TYPE=" + p.getKey());
first = false;
}
return true;
}
use of pcgen.core.prereq.Prerequisite in project pcgen by PCGen.
the class PreSubClassWriter method specialCase.
@Override
public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException {
PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false);
if (po == null) {
return false;
}
if (!po.equals(prereq.getOperator())) {
writer.write('!');
}
writer.write("PRE" + kindHandled().toUpperCase() + ':' + (prereq.isOverrideQualify() ? "Q:" : ""));
writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() : "1");
for (Prerequisite p : prereq.getPrerequisites()) {
writer.write(',');
writer.write(p.getKey());
}
return true;
}
Aggregations