Search in sources :

Example 16 with Race

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

the class PreRaceTest method testFail.

/**
	 * Test to ensure that we return false when races don't match.
	 * 
	 * @throws Exception
	 */
public void testFail() throws Exception {
    final PlayerCharacter character = getCharacter();
    final Race race = new Race();
    race.setName("Human");
    Globals.getContext().getReferenceContext().importObject(race);
    character.setRace(race);
    final Prerequisite prereq = new Prerequisite();
    prereq.setKind("race");
    prereq.setKey("Orc");
    prereq.setOperator(PrerequisiteOperator.EQ);
    final boolean passes = PrereqHandler.passes(prereq, character, null);
    assertFalse(passes);
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Race(pcgen.core.Race)

Example 17 with Race

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

the class PreEquipTwoWeaponTest method testWield.

/**
	 * Test wield category tests
	 * @throws Exception
	 */
public void testWield() throws Exception {
    final PlayerCharacter character = getCharacter();
    final Race race = new Race();
    race.setName("Test Race");
    CDOMDirectSingleRef<SizeAdjustment> mediumRef = CDOMDirectSingleRef.getRef(medium);
    CDOMDirectSingleRef<SizeAdjustment> largeRef = CDOMDirectSingleRef.getRef(large);
    race.put(FormulaKey.SIZE, new FixedSizeFormula(mediumRef));
    character.setRace(race);
    LoadContext context = Globals.getContext();
    final Equipment longsword = new Equipment();
    longsword.setName("Longsword");
    character.addEquipment(longsword);
    longsword.setIsEquipped(true, character);
    longsword.setLocation(EquipmentLocation.EQUIPPED_TWO_HANDS);
    character.doAfavorForAunitTestThatIgnoresEquippingRules();
    Prerequisite prereq = new Prerequisite();
    prereq.setKind("equiptwoweapon");
    prereq.setKey("WIELDCATEGORY=OneHanded");
    prereq.setOperand("1");
    prereq.setOperator(PrerequisiteOperator.EQ);
    // Test 3.0 Style
    longsword.put(ObjectKey.SIZE, mediumRef);
    longsword.put(ObjectKey.BASESIZE, mediumRef);
    assertTrue("Weapon is M therefore OneHanded", PrereqHandler.passes(prereq, character, null));
    longsword.put(ObjectKey.SIZE, largeRef);
    longsword.put(ObjectKey.BASESIZE, largeRef);
    assertFalse("Weapon is L therefore TwoHanded", PrereqHandler.passes(prereq, character, null));
    // Test 3.5 style
    longsword.put(ObjectKey.SIZE, mediumRef);
    longsword.put(ObjectKey.BASESIZE, mediumRef);
    longsword.put(ObjectKey.WIELD, context.getReferenceContext().silentlyGetConstructedCDOMObject(WieldCategory.class, "TwoHanded"));
    assertFalse("Weapon is TwoHanded", PrereqHandler.passes(prereq, character, null));
    longsword.put(ObjectKey.WIELD, context.getReferenceContext().silentlyGetConstructedCDOMObject(WieldCategory.class, "OneHanded"));
    assertTrue("Weapon is OneHanded", PrereqHandler.passes(prereq, character, null));
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Equipment(pcgen.core.Equipment) Race(pcgen.core.Race) LoadContext(pcgen.rules.context.LoadContext) WieldCategory(pcgen.core.character.WieldCategory) SizeAdjustment(pcgen.core.SizeAdjustment) FixedSizeFormula(pcgen.cdom.formula.FixedSizeFormula)

Example 18 with Race

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

the class PreFactTest method testFact.

/**
	 * Test the PREFACT code
	 * @throws Exception
	 */
public void testFact() throws Exception {
    final PlayerCharacter character = getCharacter();
    Race race = new Race();
    BuildUtilities.setFact(race, "ABB", "Hgln");
    race.setName("Hobgoblin");
    character.setRace(race);
    Prerequisite prereq;
    final PreParserFactory factory = PreParserFactory.getInstance();
    prereq = factory.parse("PREFACT:1,RACE,ABB=Hum");
    assertFalse("Character should not be a matching race", PrereqHandler.passes(prereq, character, null));
    prereq = factory.parse("PREFACT:1,RACE,ABB=Hgln");
    assertTrue("Character should be a matching race", PrereqHandler.passes(prereq, character, null));
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) PreParserFactory(pcgen.persistence.lst.prereq.PreParserFactory) Race(pcgen.core.Race)

Example 19 with Race

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

the class PreRaceTest method testPassServesAsRaceSubType.

/**
	 * Test to make sure that we return true when races RACESUBTYPE are equal using ServesAs.
	 * 
	 * @throws Exception
	 */
public void testPassServesAsRaceSubType() throws Exception {
    final PlayerCharacter character = getCharacter();
    final Race race = new Race();
    race.setName("Human");
    race.addToListFor(ListKey.TYPE, Type.getConstant("Outsider"));
    race.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("aquatic"));
    race.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("foo"));
    Globals.getContext().getReferenceContext().importObject(race);
    final Race fake = new Race();
    fake.setName("NotHuman");
    fake.addToListFor(ListKey.TYPE, Type.getConstant("Humanoid"));
    fake.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("desert"));
    fake.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("none"));
    Globals.getContext().getReferenceContext().importObject(fake);
    fake.addToListFor(ListKey.SERVES_AS_RACE, CDOMDirectSingleRef.getRef(race));
    final Race gnome = new Race();
    gnome.setName("Gnome");
    gnome.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("SpikyHair"));
    Globals.getContext().getReferenceContext().importObject(gnome);
    final Race bugbear = new Race();
    bugbear.setName("Bugbear");
    bugbear.addToListFor(ListKey.RACESUBTYPE, RaceSubType.getConstant("SpikyClub"));
    Globals.getContext().getReferenceContext().importObject(bugbear);
    bugbear.addToListFor(ListKey.SERVES_AS_RACE, CDOMDirectSingleRef.getRef(gnome));
    character.setRace(fake);
    final Prerequisite prereq = new Prerequisite();
    prereq.setKind("race");
    prereq.setKey("RACESUBTYPE=aquatic");
    prereq.setOperator(PrerequisiteOperator.EQ);
    boolean passes = PrereqHandler.passes(prereq, character, null);
    assertTrue(passes);
    final Prerequisite prereq2 = new Prerequisite();
    prereq2.setKind("race");
    prereq2.setKey("RACESUBTYPE=foo");
    prereq2.setOperator(PrerequisiteOperator.EQ);
    passes = PrereqHandler.passes(prereq2, character, null);
    assertTrue(passes);
    prereq.setKey("RACESUBTYPE=SpikyHair");
    passes = PrereqHandler.passes(prereq, character, null);
    assertFalse("Prereq " + prereq + " should not be passed by character without a " + "race or servesas link.", passes);
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Race(pcgen.core.Race)

Example 20 with Race

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

the class PreRaceTest method testNeqFails.

/**
	 * Test to make sure we return false when race is equal but NOT is specificed.
	 * 
	 * @throws Exception
	 */
public void testNeqFails() throws Exception {
    final PlayerCharacter character = getCharacter();
    final Race race = new Race();
    race.setName("Human");
    Globals.getContext().getReferenceContext().importObject(race);
    character.setRace(race);
    final Prerequisite prereq = new Prerequisite();
    prereq.setKind("race");
    prereq.setKey("Human");
    prereq.setOperator(PrerequisiteOperator.NEQ);
    final boolean passes = PrereqHandler.passes(prereq, character, null);
    assertFalse(passes);
}
Also used : PlayerCharacter(pcgen.core.PlayerCharacter) Race(pcgen.core.Race)

Aggregations

Race (pcgen.core.Race)167 Test (org.junit.Test)78 PCTemplate (pcgen.core.PCTemplate)66 PlayerCharacter (pcgen.core.PlayerCharacter)28 CDOMObject (pcgen.cdom.base.CDOMObject)16 LoadContext (pcgen.rules.context.LoadContext)16 PCClass (pcgen.core.PCClass)15 ArrayList (java.util.ArrayList)10 SizeAdjustment (pcgen.core.SizeAdjustment)10 ParseResult (pcgen.rules.persistence.token.ParseResult)10 AbstractTokenModelTest (tokenmodel.testsupport.AbstractTokenModelTest)10 PCStat (pcgen.core.PCStat)9 FixedSizeFormula (pcgen.cdom.formula.FixedSizeFormula)8 Equipment (pcgen.core.Equipment)8 BonusObj (pcgen.core.bonus.BonusObj)7 Formula (pcgen.base.formula.Formula)6 WieldCategory (pcgen.core.character.WieldCategory)6 GameMode (pcgen.core.GameMode)5 Skill (pcgen.core.Skill)5 CompanionList (pcgen.cdom.list.CompanionList)4