Search in sources :

Example 6 with Vision

use of pcgen.core.Vision in project pcgen by PCGen.

the class PreVisionTest method testVisionZeroTen.

/**
	 * @throws Exception
	 */
public void testVisionZeroTen() throws Exception {
    final PlayerCharacter character = getCharacter();
    final PCTemplate template = new PCTemplate();
    final Prerequisite prereq = new Prerequisite();
    prereq.setKind("vision");
    prereq.setKey("darkvision");
    prereq.setOperator(PrerequisiteOperator.GTEQ);
    prereq.setOperand("0");
    boolean passes = PrereqHandler.passes(prereq, character, null);
    assertTrue(passes);
    template.putToList(Vision.VISIONLIST, CDOMDirectSingleRef.getRef(new Vision(VisionType.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(10))), new SimpleAssociatedObject());
    character.addTemplate(template);
    passes = PrereqHandler.passes(prereq, character, null);
    assertTrue(passes);
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Vision(pcgen.core.Vision) PCTemplate(pcgen.core.PCTemplate) SimpleAssociatedObject(pcgen.cdom.base.SimpleAssociatedObject)

Example 7 with Vision

use of pcgen.core.Vision in project pcgen by PCGen.

the class PreVisionTest method testVisionPass.

/**
	 * @throws Exception
	 */
public void testVisionPass() throws Exception {
    final PlayerCharacter character = getCharacter();
    final PCTemplate template = new PCTemplate();
    template.putToList(Vision.VISIONLIST, CDOMDirectSingleRef.getRef(new Vision(VisionType.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(60))), new SimpleAssociatedObject());
    character.addTemplate(template);
    final Prerequisite prereq = new Prerequisite();
    prereq.setKind("vision");
    prereq.setKey("darkvision");
    prereq.setOperator(PrerequisiteOperator.GTEQ);
    prereq.setOperand("30");
    final boolean passes = PrereqHandler.passes(prereq, character, null);
    assertTrue(passes);
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Vision(pcgen.core.Vision) PCTemplate(pcgen.core.PCTemplate) SimpleAssociatedObject(pcgen.cdom.base.SimpleAssociatedObject)

Example 8 with Vision

use of pcgen.core.Vision in project pcgen by PCGen.

the class PreVisionTest method testVisionPresentTen.

/**
	 * @throws Exception
	 */
public void testVisionPresentTen() throws Exception {
    final PlayerCharacter character = getCharacter();
    final PCTemplate template = new PCTemplate();
    final Prerequisite prereq = new Prerequisite();
    prereq.setKind("vision");
    prereq.setKey("darkvision");
    prereq.setOperator(PrerequisiteOperator.GTEQ);
    prereq.setOperand("ANY");
    boolean passes = PrereqHandler.passes(prereq, character, null);
    assertFalse(passes);
    template.putToList(Vision.VISIONLIST, CDOMDirectSingleRef.getRef(new Vision(VisionType.getVisionType("Darkvision"), FormulaFactory.getFormulaFor(10))), new SimpleAssociatedObject());
    character.addTemplate(template);
    passes = PrereqHandler.passes(prereq, character, null);
    assertTrue(passes);
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Vision(pcgen.core.Vision) PCTemplate(pcgen.core.PCTemplate) SimpleAssociatedObject(pcgen.cdom.base.SimpleAssociatedObject)

Example 9 with Vision

use of pcgen.core.Vision in project pcgen by PCGen.

the class PreVisionTest method testVisionPresentZero.

/**
	 * @throws Exception
	 */
public void testVisionPresentZero() throws Exception {
    final PlayerCharacter character = getCharacter();
    final PCTemplate template = new PCTemplate();
    final Prerequisite prereq = new Prerequisite();
    prereq.setKind("vision");
    prereq.setKey("darkvision");
    prereq.setOperator(PrerequisiteOperator.GTEQ);
    prereq.setOperand("ANY");
    boolean passes = PrereqHandler.passes(prereq, character, null);
    assertFalse(passes);
    template.putToList(Vision.VISIONLIST, CDOMDirectSingleRef.getRef(new Vision(VisionType.getVisionType("Darkvision"), FormulaFactory.ZERO)), new SimpleAssociatedObject());
    character.addTemplate(template);
    passes = PrereqHandler.passes(prereq, character, null);
    assertTrue(passes);
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Vision(pcgen.core.Vision) PCTemplate(pcgen.core.PCTemplate) SimpleAssociatedObject(pcgen.cdom.base.SimpleAssociatedObject)

Example 10 with Vision

use of pcgen.core.Vision in project pcgen by PCGen.

the class VisionToken method getToken.

/**
	 * @see pcgen.io.exporttoken.AbstractExportToken#getToken(java.lang.String, pcgen.core.display.CharacterDisplay, pcgen.io.ExportHandler)
	 */
@Override
public String getToken(String tokenSource, CharacterDisplay display, ExportHandler eh) {
    StringTokenizer aTok = new StringTokenizer(tokenSource, ".");
    aTok.nextToken();
    List<Vision> visionList = new ArrayList<>(display.getVisionList());
    int visionIndex = 0;
    int startIndex = 0;
    if (aTok.hasMoreTokens()) {
        try {
            startIndex = Integer.parseInt(aTok.nextToken());
            visionIndex = startIndex + 1;
        } catch (NumberFormatException e) {
        //TODO: Should this really be ignored?
        }
    } else {
        visionIndex = visionList.size();
    }
    if (visionList.isEmpty() || startIndex >= visionList.size()) {
        return "";
    }
    List<Vision> subList = visionList.subList(Math.max(startIndex, 0), Math.min(visionIndex, visionList.size()));
    StringBuilder result = new StringBuilder();
    for (Vision vision : subList) {
        if (result.length() > 0) {
            result.append(", ");
        }
        result.append(vision.getType());
        String distStr = vision.getDistance().toString();
        int dist = 0;
        if ((distStr != null) && (!distStr.trim().isEmpty())) {
            dist = Integer.parseInt(distStr);
        }
        if (dist > 0) {
            result.append(" (");
            result.append(Globals.getGameModeUnitSet().displayDistanceInUnitSet(dist));
            result.append(Globals.getGameModeUnitSet().getDistanceUnit());
            result.append(")");
        }
    }
    return result.toString();
}
Also used : StringTokenizer(java.util.StringTokenizer) Vision(pcgen.core.Vision) ArrayList(java.util.ArrayList)

Aggregations

Vision (pcgen.core.Vision)20 SimpleAssociatedObject (pcgen.cdom.base.SimpleAssociatedObject)12 PCTemplate (pcgen.core.PCTemplate)12 PlayerCharacter (pcgen.core.PlayerCharacter)11 AssociatedPrereqObject (pcgen.cdom.base.AssociatedPrereqObject)5 CDOMObject (pcgen.cdom.base.CDOMObject)4 ArrayList (java.util.ArrayList)3 Set (java.util.Set)3 TreeSet (java.util.TreeSet)3 CDOMReference (pcgen.cdom.base.CDOMReference)3 QualifiedObject (pcgen.core.QualifiedObject)3 Prerequisite (pcgen.core.prereq.Prerequisite)3 VisionType (pcgen.util.enumeration.VisionType)3 HashMap (java.util.HashMap)2 Map (java.util.Map)2 StringTokenizer (java.util.StringTokenizer)2 Formula (pcgen.base.formula.Formula)2 CDOMDirectSingleRef (pcgen.cdom.reference.CDOMDirectSingleRef)2 HashSet (java.util.HashSet)1 HashMapToList (pcgen.base.util.HashMapToList)1