public CustomNPC(NPCData data) { super(); this.data = data; growth = data.getGrowth(); preferredAttributes = new ArrayList<PreferredAttribute>(data.getPreferredAttributes()); character = new NPC(data.getName(), data.getStats().level, this); character.outfitPlan.addAll(data.getTopOutfit()); character.outfitPlan.addAll(data.getBottomOutfit()); character.closet.addAll(character.outfitPlan); character.change(Modifier.normal); character.att = new HashMap<Attribute, Integer>(data.getStats().attributes); character.traits = new HashSet<Trait>(data.getStats().traits); character.getArousal().setMax(data.getStats().arousal); character.getStamina().setMax(data.getStats().stamina); character.getMojo().setMax(data.getStats().mojo); character.getWillpower().setMax(data.getStats().willpower); character.setTrophy(data.getTrophy()); character.plan = data.getPlan(); character.mood = Emotion.confident; character.custom = true; try { character.body = data.getBody().clone(character); } catch (CloneNotSupportedException e) { e.printStackTrace(); character.body = new Body(character); } character.body.finishBody(data.getSex()); for (ItemAmount i : data.getStartingItems()) { character.gain(i.item, i.amount); ; } Global.gainSkills(character); }