@Override
 public void affectCharStats(MOB affected, CharStats affectableStats) {
   super.affectCharStats(affected, affectableStats);
   if (lycanRace() != null) {
     affectableStats.setMyRace(lycanRace());
     if (affected.baseCharStats().getStat(CharStats.STAT_AGE) > 0)
       affectableStats.setStat(
           CharStats.STAT_AGE,
           lycanRace().getAgingChart()[affected.baseCharStats().ageCategory()]);
   }
 }
 @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);
   }
 }