Exemplo n.º 1
0
  @Override
  public PCClass clone() {
    PCClass aClass = null;

    try {
      aClass = (PCClass) super.clone();

      List<KnownSpellIdentifier> ksl = getListFor(ListKey.KNOWN_SPELLS);
      if (ksl != null) {
        aClass.removeListFor(ListKey.KNOWN_SPELLS);
        for (KnownSpellIdentifier ksi : ksl) {
          aClass.addToListFor(ListKey.KNOWN_SPELLS, ksi);
        }
      }
      Map<AttackType, Integer> acmap = getMapFor(MapKey.ATTACK_CYCLE);
      if (acmap != null && !acmap.isEmpty()) {
        aClass.removeMapFor(MapKey.ATTACK_CYCLE);
        for (Map.Entry<AttackType, Integer> me : acmap.entrySet()) {
          aClass.addToMapFor(MapKey.ATTACK_CYCLE, me.getKey(), me.getValue());
        }
      }

      aClass.levelMap = new TreeMap<>();
      for (Map.Entry<Integer, PCClassLevel> me : levelMap.entrySet()) {
        aClass.levelMap.put(me.getKey(), me.getValue().clone());
      }
    } catch (CloneNotSupportedException exc) {
      ShowMessageDelegate.showMessageDialog(
          exc.getMessage(), Constants.APPLICATION_NAME, MessageType.ERROR);
    }

    return aClass;
  }