예제 #1
0
  private void updateTemplateType(Element element, GenericCharacterTemplate characterTemplate)
      throws PersistenceException {
    ITemplateType templateType = new TemplateTypeParser().parse(element);
    characterTemplate.setTemplateType(templateType);

    boolean isLegacy = ElementUtilities.getBooleanAttribute(element, TAG_LEGACY, false);
    characterTemplate.setLegacy(isLegacy);

    ICasteCollection casteCollection = casteCollectionRegistry.get(templateType.getCharacterType());
    if (casteCollection != null) characterTemplate.setCasteCollection(casteCollection);
  }
 @Test
 public void testParseXmlWithoutAbilityBallResources() throws Exception {
   String xml = "<presentation />"; // $NON-NLS-1$
   GenericPresentationTemplate presentationProperties = parseXml(xml);
   GenericCharacterTemplate parentTemplate = new GenericCharacterTemplate();
   parentTemplate.setTemplateType(new TemplateType(new DummyExaltCharacterType()));
   presentationProperties.setParentTemplate(parentTemplate);
   assertEquals(
       "DummyButtonLifeSecondEdition16.png",
       presentationProperties.getSmallCasteIconResource(
           AbilityGroupType.Life.getId(), new SecondEdition().getId())); // $NON-NLS-1$
 }
예제 #3
0
 private void setAdditionalRules(
     Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element element = generalElement.element(TAG_ADDITIONAL_RULES);
   if (element == null) {
     return;
   }
   AdditionalRulesTemplateParser parser =
       new AdditionalRulesTemplateParser(
           registryCollection.getAdditionalRulesRegistry(),
           provider.getSpecialCharms(
               characterTemplate.getTemplateType().getCharacterType(),
               characterTemplate.getEdition()),
           backgroundRegistry);
   GenericAdditionalRules rules = parser.parseTemplate(element);
   characterTemplate.setAdditionalRules(rules);
 }
예제 #4
0
 private void setEdition(Element generalElement, GenericCharacterTemplate characterTemplate) {
   Element element = generalElement.element(TAG_EDITION);
   if (element == null) {
     return;
   }
   String edition = element.attributeValue(ATTRIB_EDITION);
   characterTemplate.setEdition(ExaltedEdition.valueOf(edition));
 }
예제 #5
0
 private void setBonusPoints(GenericCharacterTemplate characterTemplate, Element creationElement)
     throws PersistenceException {
   Element bonusPointsElement = creationElement.element("bonusPointCosts"); // $NON-NLS-1$
   if (bonusPointsElement == null) {
     return;
   }
   BonusPointCostTemplateParser parser =
       new BonusPointCostTemplateParser(
           registryCollection.getBonusPointTemplateRegistry(),
           characterTemplate
               .getMagicTemplate()
               .getCharmTemplate()
               .getMartialArtsRules()
               .getStandardLevel());
   GenericBonusPointCosts bonusPoints = parser.parseTemplate(bonusPointsElement);
   characterTemplate.setBonusPointCosts(bonusPoints);
 }
예제 #6
0
 private void setExperiencePoints(
     GenericCharacterTemplate characterTemplate, Element experienceElement)
     throws PersistenceException {
   Element experiencePointsElement = experienceElement.element(TAG_EXPERIENCE_POINT_COST);
   if (experiencePointsElement == null) {
     return;
   }
   ExperienceTemplateParser parser =
       new ExperienceTemplateParser(
           registryCollection.getExperienceTemplateRegistry(),
           characterTemplate
               .getMagicTemplate()
               .getCharmTemplate()
               .getMartialArtsRules()
               .getStandardLevel());
   GenericExperiencePointCosts experienceTemplate = parser.parseTemplate(experiencePointsElement);
   characterTemplate.setExperiencePointCosts(experienceTemplate);
 }
예제 #7
0
 private void setYoziGroups(Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element yoziGroupElement = generalElement.element(TAG_YOZI_GROUPS);
   if (yoziGroupElement == null) {
     GenericGroupedTraitTypeProvider provider =
         new GenericGroupedTraitTypeProvider(AllYoziTraitTypeGroup.getInstance());
     List<String> emptyList = new ArrayList<String>();
     for (YoziType yozi : YoziType.values())
       provider.addGroupedAbilityType(yozi.getId(), yozi.getId(), null, emptyList);
     characterTemplate.setYoziGroups(provider.getTraitTypeGroups());
     return;
   }
   IXmlTemplateRegistry<GenericGroupedTraitTypeProvider> registry =
       registryCollection.getTraitGroupTemplateRegistry();
   TraitTypeGroupTemplateParser parser =
       new TraitTypeGroupTemplateParser(registry, AllYoziTraitTypeGroup.getInstance());
   GenericGroupedTraitTypeProvider yoziGroups = parser.parseTemplate(yoziGroupElement);
   characterTemplate.setYoziGroups(yoziGroups.getTraitTypeGroups());
 }
예제 #8
0
 private void setCreationPoints(
     GenericCharacterTemplate characterTemplate, Element creationElement)
     throws PersistenceException {
   Element creationPointsElement = creationElement.element(TAG_CREATION_POINTS);
   if (creationPointsElement == null) {
     return;
   }
   CreationPointTemplateParser parser = createCreationPointTemplateParser();
   GenericCreationPoints creationPoints = parser.parseTemplate(creationPointsElement);
   characterTemplate.setCreationPoints(creationPoints);
 }
예제 #9
0
 private void setMagicTemplate(Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element magicTemplateElement = generalElement.element(TAG_MAGIC_TEMPLATE);
   if (magicTemplateElement == null) {
     return;
   }
   GenericMagicTemplateParser parser =
       new GenericMagicTemplateParser(
           registryCollection.getMagicTemplateRegistry(), characterTemplate);
   GenericMagicTemplate template = parser.parseTemplate(magicTemplateElement);
   characterTemplate.setMagicTemplate(template);
 }
예제 #10
0
 private void setToughnessControllingTrait(
     Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element healthElement = generalElement.element(TAG_HEALTH_TEMPLATE);
   if (healthElement == null) {
     return;
   }
   HealthTemplateParser parser =
       new HealthTemplateParser(registryCollection.getHealthTemplateRegistry());
   GenericHealthTemplate template = parser.parseTemplate(healthElement);
   characterTemplate.setHealthTemplate(template);
 }
예제 #11
0
 private void setEssenceTemplate(
     Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element essenceElement = generalElement.element(TAG_ESSENCE);
   if (essenceElement == null) {
     return;
   }
   EssenceTemplateParser parser =
       new EssenceTemplateParser(registryCollection.getEssenceTemplateRegistry());
   GenericEssenceTemplate essenceTemplate = parser.parseTemplate(essenceElement);
   characterTemplate.setEssenceTemplate(essenceTemplate);
 }
예제 #12
0
 private void setAbilityGroups(Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element abilityGroupElement = generalElement.element(TAG_ABILITY_GROUPS);
   if (abilityGroupElement == null) {
     return;
   }
   IXmlTemplateRegistry<GenericGroupedTraitTypeProvider> registry =
       registryCollection.getTraitGroupTemplateRegistry();
   TraitTypeGroupTemplateParser parser =
       new TraitTypeGroupTemplateParser(registry, AllAbilityTraitTypeGroup.getInstance());
   GenericGroupedTraitTypeProvider abilityGroups = parser.parseTemplate(abilityGroupElement);
   characterTemplate.setAbilityGroups(abilityGroups.getTraitTypeGroups());
 }
예제 #13
0
 private void setPresentationTemplate(
     Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element presentationTemplateElement = generalElement.element(TAG_PRESENTATION_TEMPLATE);
   if (presentationTemplateElement == null) {
     return;
   }
   PresentationPropertiesParser parser =
       new PresentationPropertiesParser(
           registryCollection.getPresentationTemplateRegistry(),
           registryCollection.getCharmPresentationTemplateRegistry());
   GenericPresentationTemplate template = parser.parseTemplate(presentationTemplateElement);
   characterTemplate.setPresentationTemplate(template);
 }
예제 #14
0
 private void setTraitCollection(
     Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element traitCollectionElement = generalElement.element(TAG_TRAIT_COLLECTION);
   if (traitCollectionElement == null) {
     return;
   }
   GenericTraitTemplateFactoryParser parser =
       new GenericTraitTemplateFactoryParser(
           registryCollection.getTraitFactoryRegistry(),
           registryCollection.getTraitTemplatePoolRegistry(),
           backgroundRegistry);
   GenericTraitTemplateFactory factory = parser.parseTemplate(traitCollectionElement);
   characterTemplate.setTraitFactory(factory);
 }
예제 #15
0
 private void setAdditionalModelTemplates(
     Element generalElement, GenericCharacterTemplate characterTemplate)
     throws PersistenceException {
   Element additionalElement = generalElement.element(TAG_ADDITIONAL_TEMPLATES);
   if (additionalElement == null) {
     return;
   }
   List<Element> templateElements = ElementUtilities.elements(additionalElement, TAG_TEMPLATE);
   for (Element templateElement : templateElements) {
     String id = ElementUtilities.getRequiredAttrib(templateElement, ATTRIB_ID);
     IAdditionalTemplate template =
         additionModelTemplateParserRegistry.get(id).parse(templateElement);
     characterTemplate.addAdditionalTemplate(template);
   }
 }