コード例 #1
0
 /* (non-Javadoc)
  * @see pcgen.core.facade.SpellSupportFacade#addToSpellBook(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String)
  */
 @Override
 public void addToSpellBook(SpellNode spell, String spellBook) {
   String bookName = spellBook;
   if (bookName.endsWith("]") && bookName.contains(" [")) {
     bookName = bookName.substring(0, bookName.lastIndexOf(" ["));
   }
   SpellNode node = addSpellToCharacter(spell, bookName, new ArrayList<>());
   if (node != null) {
     if (bookSpellNodes.containsElement(node)) {
       SpellNode spellNode = bookSpellNodes.getElementAt(bookSpellNodes.getIndexOfElement(node));
       spellNode.addCount(1);
       // Remove and readd to ensure the display is updated
       bookSpellNodes.removeElement(spellNode);
       bookSpellNodes.addElement(spellNode);
     } else {
       bookSpellNodes.addElement(node);
     }
     // Remove dummy spellbook node from the list
     for (Iterator<SpellNode> iterator = bookSpellNodes.iterator(); iterator.hasNext(); ) {
       SpellNode sn = iterator.next();
       if (sn.getSpell() == null && bookName.equals(sn.getRootNode().getName())) {
         iterator.remove();
       }
     }
   }
 }
コード例 #2
0
 /* (non-Javadoc)
  * @see pcgen.core.facade.SpellSupportFacade#addPreparedSpell(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String)
  */
 @Override
 public void addPreparedSpell(SpellNode spell, String spellList, boolean useMetamagic) {
   List<Ability> metamagicFeats = new ArrayList<>();
   if (useMetamagic) {
     metamagicFeats = queryUserForMetamagic(spell);
     if (metamagicFeats == null) {
       return;
     }
   }
   SpellNode node = addSpellToCharacter(spell, spellList, metamagicFeats);
   if (node != null) {
     if (preparedSpellNodes.containsElement(node)) {
       SpellNode spellNode =
           preparedSpellNodes.getElementAt(preparedSpellNodes.getIndexOfElement(node));
       spellNode.addCount(1);
       // Remove and readd to ensure the display is updated
       preparedSpellNodes.removeElement(spellNode);
       preparedSpellNodes.addElement(spellNode);
     } else {
       preparedSpellNodes.addElement(node);
     }
     // Remove dummy spelllist node from the list
     for (Iterator<SpellNode> iterator = preparedSpellNodes.iterator(); iterator.hasNext(); ) {
       SpellNode sn = iterator.next();
       if (sn.getSpell() == null && spellList.equals(sn.getRootNode().getName())) {
         iterator.remove();
       }
     }
   }
 }
コード例 #3
0
  /* (non-Javadoc)
   * @see pcgen.core.facade.SpellSupportFacade#removeFromSpellBook(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String)
   */
  @Override
  public void removeFromSpellBook(SpellNode spell, String spellBook) {
    if (removeSpellFromCharacter(spell, spellBook)) {
      if (spell.getCount() > 1) {
        spell.addCount(-1);
        // Remove and readd to ensure the display is updated
        bookSpellNodes.removeElement(spell);
        bookSpellNodes.addElement(spell);
      } else {
        bookSpellNodes.removeElement(spell);
      }

      addDummyNodeIfSpellBookEmpty(spellBook);
    }
  }
コード例 #4
0
  /* (non-Javadoc)
   * @see pcgen.core.facade.SpellSupportFacade#removePreparedSpell(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String)
   */
  @Override
  public void removePreparedSpell(SpellNode spell, String spellList) {
    if (removeSpellFromCharacter(spell, spellList)) {
      if (spell.getCount() > 1) {
        spell.addCount(-1);
        // Remove and readd to ensure the display is updated
        preparedSpellNodes.removeElement(spell);
        preparedSpellNodes.addElement(spell);
      } else {
        preparedSpellNodes.removeElement(spell);
      }

      addDummyNodeIfSpellListEmpty(spellList);
    }
  }