Ejemplo n.º 1
0
  private List<PCClass> getCharactersSpellcastingClasses() {
    List<PCClass> castingClasses = new ArrayList<>();
    Collection<PCClass> classes = charDisplay.getClassSet();
    for (PCClass pcClass : classes) {
      if (pcClass.get(FactKey.valueOf("SpellType")) != null) {
        SpellSupportForPCClass spellSupport = pc.getSpellSupport(pcClass);
        if (spellSupport.canCastSpells(pc) || spellSupport.hasKnownList()) {
          castingClasses.add(pcClass);
        }
      }
    }

    return castingClasses;
  }
Ejemplo 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));
  }
Ejemplo n.º 3
0
 private boolean isSpellCaster(PCClass pcc) {
   return pcc.getSafe(ObjectKey.USE_SPELL_SPELL_STAT)
       || pcc.getSafe(ObjectKey.CASTER_WITHOUT_SPELL_STAT)
       || (pcc.get(ObjectKey.SPELL_STAT) != null);
 }