Пример #1
0
 @Override
 public void copyInto(CharStats intoStats) {
   if (intoStats instanceof DefaultCharStats) {
     ((DefaultCharStats) intoStats).arriveStr = arriveStr;
     ((DefaultCharStats) intoStats).leaveStr = leaveStr;
     ((DefaultCharStats) intoStats).breathables = breathables;
     ((DefaultCharStats) intoStats).proficiencies = proficiencies;
     if (myClasses == null) ((DefaultCharStats) intoStats).myClasses = null;
     else if ((((DefaultCharStats) intoStats).myClasses != null)
         && (((DefaultCharStats) intoStats).myClasses.length == myClasses.length)) {
       for (int i = 0; i < myClasses.length; i++)
         ((DefaultCharStats) intoStats).myClasses[i] = myClasses[i];
     } else ((DefaultCharStats) intoStats).myClasses = myClasses.clone();
     if (myLevels == null) ((DefaultCharStats) intoStats).myLevels = null;
     else if ((((DefaultCharStats) intoStats).myLevels != null)
         && (((DefaultCharStats) intoStats).myLevels.length == myLevels.length)) {
       for (int i = 0; i < myLevels.length; i++)
         ((DefaultCharStats) intoStats).myLevels[i] = myLevels[i];
     } else ((DefaultCharStats) intoStats).myLevels = myLevels.clone();
     if (myRace != null) ((DefaultCharStats) intoStats).myRace = myRace;
     ((DefaultCharStats) intoStats).raceName = raceName;
     ((DefaultCharStats) intoStats).genderName = genderName;
     ((DefaultCharStats) intoStats).displayClassName = displayClassName;
     ((DefaultCharStats) intoStats).displayClassLevel = displayClassLevel;
     if (profAdj == null) ((DefaultCharStats) intoStats).profAdj = null;
     else ((DefaultCharStats) intoStats).profAdj = new TreeMap<String, Integer>(profAdj);
     if (bodyAlterations == null) ((DefaultCharStats) intoStats).bodyAlterations = null;
     else if ((((DefaultCharStats) intoStats).bodyAlterations != null)
         && (((DefaultCharStats) intoStats).bodyAlterations.length == bodyAlterations.length)) {
       for (int i = 0; i < bodyAlterations.length; i++)
         ((DefaultCharStats) intoStats).bodyAlterations[i] = bodyAlterations[i];
     } else ((DefaultCharStats) intoStats).bodyAlterations = bodyAlterations.clone();
     for (int i = 0; i < stats.length; i++) ((DefaultCharStats) intoStats).stats[i] = stats[i];
     ((DefaultCharStats) intoStats).unwearableBitmap = unwearableBitmap;
   } else {
     intoStats.setMyClasses(getMyClassesStr());
     intoStats.setMyLevels(getMyLevelsStr());
     intoStats.setMyRace(getMyRace());
     intoStats.setRaceName(raceName);
     intoStats.setRaceName(raceName);
     intoStats.setGenderName(genderName);
     intoStats.setArriveLeaveStr(arriveStr, leaveStr);
     intoStats.setDisplayClassName(displayClassName);
     intoStats.setDisplayClassLevel(displayClassLevel);
     intoStats.setBodyPartsFromStringAfterRace(getBodyPartsAsString());
     intoStats.setWearableRestrictionsBitmap(unwearableBitmap);
     intoStats.setBreathables(breathables);
     intoStats.setItemProficiencies(proficiencies);
   }
 }
Пример #2
0
 @Override
 public void affectCharStats(MOB affected, CharStats affectableStats) {
   super.affectCharStats(affected, affectableStats);
   final int[] breatheables = affectableStats.getBreathables();
   if (breatheables.length == 0) return;
   if ((lastSet != breatheables) || (newSet == null)) {
     newSet =
         Arrays.copyOf(
             affectableStats.getBreathables(), affectableStats.getBreathables().length + 2);
     newSet[newSet.length - 1] = RawMaterial.RESOURCE_SALTWATER;
     newSet[newSet.length - 2] = RawMaterial.RESOURCE_FRESHWATER;
     Arrays.sort(newSet);
     lastSet = breatheables;
   }
   affectableStats.setBreathables(newSet);
 }