Exemplo n.º 1
0
 public static PersistentTransitionChoice<?> processOldAdd(LoadContext context, String first)
     throws PersistenceLayerException {
   int openParenLoc = first.indexOf('(');
   if (openParenLoc == -1) {
     Logging.errorPrint("Expected to have a ( : " + first);
     return null;
   }
   int closeParenLoc = first.lastIndexOf(')');
   if (openParenLoc == -1) {
     Logging.errorPrint("Expected to have a ) : " + first);
     return null;
   }
   String key = first.substring(7, openParenLoc);
   String choices = first.substring(openParenLoc + 1, closeParenLoc);
   String count = "";
   if (closeParenLoc != first.length() - 1) {
     count = first.substring(closeParenLoc + 1) + '|';
   }
   PCClass applied = new PCClass();
   ParseResult pr = context.processSubToken(applied, "ADD", key, count + choices);
   pr.printMessages();
   if (!pr.passed()) {
     return null;
   }
   context.commit();
   PersistentTransitionChoice<?> ptc = applied.getListFor(ListKey.ADD).get(0);
   return ptc;
 }
Exemplo n.º 2
0
  /*
   * CONSIDER Why does this not inherit classSkillChoices?
   */
  public void inheritAttributesFrom(final PCClass otherClass) {
    Boolean hbss = otherClass.get(ObjectKey.HAS_BONUS_SPELL_STAT);
    if (hbss != null) {
      put(ObjectKey.HAS_BONUS_SPELL_STAT, hbss);
      CDOMSingleRef<PCStat> bss = otherClass.get(ObjectKey.BONUS_SPELL_STAT);
      if (bss != null) {
        put(ObjectKey.BONUS_SPELL_STAT, bss);
      }
    }

    Boolean usbs = otherClass.get(ObjectKey.USE_SPELL_SPELL_STAT);
    if (usbs != null) {
      put(ObjectKey.USE_SPELL_SPELL_STAT, usbs);
    }
    Boolean cwss = otherClass.get(ObjectKey.CASTER_WITHOUT_SPELL_STAT);
    if (cwss != null) {
      put(ObjectKey.CASTER_WITHOUT_SPELL_STAT, cwss);
    }
    CDOMSingleRef<PCStat> ss = otherClass.get(ObjectKey.SPELL_STAT);
    if (ss != null) {
      put(ObjectKey.SPELL_STAT, ss);
    }

    TransitionChoice<CDOMListObject<Spell>> slc = otherClass.get(ObjectKey.SPELLLIST_CHOICE);
    if (slc != null) {
      put(ObjectKey.SPELLLIST_CHOICE, slc);
    }

    List<QualifiedObject<CDOMReference<Equipment>>> e = otherClass.getListFor(ListKey.EQUIPMENT);
    if (e != null) {
      addAllToListFor(ListKey.EQUIPMENT, e);
    }

    List<WeaponProfProvider> wp = otherClass.getListFor(ListKey.WEAPONPROF);
    if (wp != null) {
      addAllToListFor(ListKey.WEAPONPROF, wp);
    }
    QualifiedObject<Boolean> otherWP = otherClass.get(ObjectKey.HAS_DEITY_WEAPONPROF);
    if (otherWP != null) {
      put(ObjectKey.HAS_DEITY_WEAPONPROF, otherWP);
    }

    List<ArmorProfProvider> ap = otherClass.getListFor(ListKey.AUTO_ARMORPROF);
    if (ap != null) {
      addAllToListFor(ListKey.AUTO_ARMORPROF, ap);
    }

    List<ShieldProfProvider> sp = otherClass.getListFor(ListKey.AUTO_SHIELDPROF);
    if (sp != null) {
      addAllToListFor(ListKey.AUTO_SHIELDPROF, sp);
    }

    List<BonusObj> bonusList = otherClass.getListFor(ListKey.BONUS);
    if (bonusList != null) {
      addAllToListFor(ListKey.BONUS, bonusList);
    }
    try {
      ownBonuses(this);
    } catch (CloneNotSupportedException ce) {
      // TODO Auto-generated catch block
      ce.printStackTrace();
    }

    for (VariableKey vk : otherClass.getVariableKeys()) {
      put(vk, otherClass.get(vk));
    }

    if (otherClass.containsListFor(ListKey.CSKILL)) {
      removeListFor(ListKey.CSKILL);
      addAllToListFor(ListKey.CSKILL, otherClass.getListFor(ListKey.CSKILL));
    }

    if (otherClass.containsListFor(ListKey.LOCALCCSKILL)) {
      removeListFor(ListKey.LOCALCCSKILL);
      addAllToListFor(ListKey.LOCALCCSKILL, otherClass.getListFor(ListKey.LOCALCCSKILL));
    }

    removeListFor(ListKey.KIT_CHOICE);
    addAllToListFor(ListKey.KIT_CHOICE, otherClass.getSafeListFor(ListKey.KIT_CHOICE));

    remove(ObjectKey.REGION_CHOICE);
    if (otherClass.containsKey(ObjectKey.REGION_CHOICE)) {
      put(ObjectKey.REGION_CHOICE, otherClass.get(ObjectKey.REGION_CHOICE));
    }

    removeListFor(ListKey.SAB);
    addAllToListFor(ListKey.SAB, otherClass.getSafeListFor(ListKey.SAB));

    /*
     * TODO Does this need to have things from the Class Level objects?
     * I don't think so based on deferred processing of levels...
     */

    addAllToListFor(ListKey.DAMAGE_REDUCTION, otherClass.getListFor(ListKey.DAMAGE_REDUCTION));

    for (CDOMReference<Vision> ref : otherClass.getSafeListMods(Vision.VISIONLIST)) {
      for (AssociatedPrereqObject apo : otherClass.getListAssociations(Vision.VISIONLIST, ref)) {
        putToList(Vision.VISIONLIST, ref, apo);
      }
    }

    /*
     * TODO This is a clone problem, but works for now - thpr 10/3/08
     */
    if (otherClass instanceof SubClass) {
      levelMap.clear();
      copyLevelsFrom(otherClass);
    }

    addAllToListFor(ListKey.NATURAL_WEAPON, otherClass.getListFor(ListKey.NATURAL_WEAPON));

    put(ObjectKey.LEVEL_HITDIE, otherClass.get(ObjectKey.LEVEL_HITDIE));
  }