use of com.lilithsthrone.game.character.body.Hair in project liliths-throne-public by Innoxia.
the class SlaveryManagementDialogue method getCosmeticsResponse.
private static Response getCosmeticsResponse(int responseTab, int index) {
if (index == 1) {
if (BodyChanging.getTarget().getBodyMaterial() == BodyMaterial.SLIME) {
return new Response("Makeup", UtilText.parse(BodyChanging.getTarget(), "Kate is unable to apply any makeup to [npc.name]'s slimy body!"), null);
} else {
return new Response("Makeup", "Kate offers a wide range of different cosmetic services, and several pages of the brochure are devoted to images displaying different styles and colours of lipstick, nail polish, and other forms of makeup.", SLAVE_MANAGEMENT_COSMETICS_MAKEUP);
}
} else if (index == 2) {
return new Response("Hair", "There's a double-page spread of all the different dyes, styles, and lengths of hair that Kate's able to work with.", SLAVE_MANAGEMENT_COSMETICS_HAIR);
} else if (index == 3) {
return new Response("Piercings", "Kate offers a wide range of different piercings.", SLAVE_MANAGEMENT_COSMETICS_PIERCINGS);
} else if (index == 4) {
return new Response("Eyes", "There's a special page near the front of the brochure, advertising Kate's ability to recolour a person's eyes." + " Just like skin recolourings, this is quite demanding on her aura, and is therefore very expensive.", SLAVE_MANAGEMENT_COSMETICS_EYES);
} else if (index == 5) {
return new Response("Coverings", "There's a special page in the middle of the brochure, advertising Kate's special ability to harness the arcane in order to recolour a person's skin or fur." + " Apparently, this is quite demanding on her aura, and is therefore very expensive.", SLAVE_MANAGEMENT_COSMETICS_COVERINGS) {
@Override
public void effects() {
CoveringsNamesMap = new LinkedHashMap<>();
if (BodyChanging.getTarget().getBodyMaterial() == BodyMaterial.SLIME) {
CoveringsNamesMap.put(BodyCoveringType.SLIME, Util.newArrayListOfValues(new ListValue<>("SLIME")));
} else {
for (BodyPartInterface bp : BodyChanging.getTarget().getAllBodyParts()) {
if (bp.getType().getBodyCoveringType(BodyChanging.getTarget()) != null && bp.getType().getBodyCoveringType(BodyChanging.getTarget()).getRace() != null && !(bp instanceof Hair) && !(bp instanceof Eye)) {
String name = bp.getName(BodyChanging.getTarget());
if (bp instanceof Skin) {
name = "torso";
} else if (bp instanceof Vagina) {
name = "vagina";
}
if (CoveringsNamesMap.containsKey(bp.getType().getBodyCoveringType(BodyChanging.getTarget()))) {
CoveringsNamesMap.get(bp.getType().getBodyCoveringType(BodyChanging.getTarget())).add(name);
} else {
CoveringsNamesMap.put(bp.getType().getBodyCoveringType(BodyChanging.getTarget()), Util.newArrayListOfValues(new ListValue<>(name)));
}
}
}
CoveringsNamesMap.put(BodyCoveringType.ANUS, Util.newArrayListOfValues(new ListValue<>("anus")));
CoveringsNamesMap.put(BodyCoveringType.MOUTH, Util.newArrayListOfValues(new ListValue<>("mouth")));
CoveringsNamesMap.put(BodyCoveringType.NIPPLES, Util.newArrayListOfValues(new ListValue<>("nipples")));
CoveringsNamesMap.put(BodyCoveringType.TONGUE, Util.newArrayListOfValues(new ListValue<>("tongue")));
}
}
};
} else if (index == 6) {
return new Response("Other", "Kate can offer other miscellaneous services, such as anal bleaching.", SLAVE_MANAGEMENT_COSMETICS_OTHER);
} else if (index == 7) {
return new Response("Tattoos", "Most of the brochure is taken up with drawings and photographs displaying Kate's considerable artistic talents." + " She's even able to apply arcane-enchanted tattoos, but they look to be very expensive...</br>" + "<b>Will be done as soon as possible!</b>", null);
} else if (index == 0) {
return new Response("Back", "Return to the slave management screen.", SLAVE_MANAGEMENT) {
@Override
public DialogueNodeOld getNextDialogue() {
return SlaveryManagementDialogue.getSlaveryManagementDialogue(Main.game.getDialogueFlags().getSlaveTrader());
}
@Override
public void effects() {
Main.game.getDialogueFlags().setSlaveryManagerSlaveSelected(null);
}
};
} else {
return null;
}
}
use of com.lilithsthrone.game.character.body.Hair in project liliths-throne-public by Innoxia.
the class CharacterUtils method generateBody.
public static Body generateBody(Gender startingGender, RacialBody startingBodyType, Subspecies species, RaceStage stage) {
boolean hasVagina = startingGender.getGenderName().isHasVagina();
boolean hasPenis = startingGender.getGenderName().isHasPenis();
boolean hasBreasts = startingGender.getGenderName().isHasBreasts();
Body body = new Body.BodyBuilder(new Arm((stage.isArmFurry() ? startingBodyType.getArmType() : ArmType.HUMAN), startingBodyType.getArmRows()), new Ass(stage.isAssFurry() ? startingBodyType.getAssType() : AssType.HUMAN, (startingGender.isFeminine() ? startingBodyType.getFemaleAssSize() : startingBodyType.getMaleAssSize()), startingBodyType.getAnusWetness(), startingBodyType.getAnusCapacity(), startingBodyType.getAnusElasticity(), startingBodyType.getAnusPlasticity(), true), new Breast(stage.isBreastFurry() ? startingBodyType.getBreastType() : BreastType.HUMAN, BreastShape.getRandomBreastShape(), (hasBreasts ? startingBodyType.getBreastSize() : startingBodyType.getNoBreastSize()), (startingGender.isFeminine() ? startingBodyType.getFemaleLactationRate() : startingBodyType.getMaleLactationRate()), ((stage.isSkinFurry() && Main.getProperties().multiBreasts == 1) || (stage.isBreastFurry() && Main.getProperties().multiBreasts == 2) ? (startingGender.isFeminine() ? startingBodyType.getBreastCountFemale() : startingBodyType.getBreastCountMale()) : 1), (startingGender.isFeminine() ? startingBodyType.getFemaleNippleSize() : startingBodyType.getMaleNippleSize()), (startingGender.isFeminine() ? startingBodyType.getFemaleNippleShape() : startingBodyType.getMaleNippleShape()), (startingGender.isFeminine() ? startingBodyType.getFemaleAreolaeSize() : startingBodyType.getMaleAreolaeSize()), (stage.isBreastFurry() ? (startingGender.isFeminine() ? startingBodyType.getFemaleNippleCountPerBreast() : startingBodyType.getMaleNippleCountPerBreast()) : 1), (startingGender.isFeminine() ? startingBodyType.getFemaleBreastCapacity() : startingBodyType.getMaleBreastCapacity()), (startingGender.isFeminine() ? startingBodyType.getFemaleBreastElasticity() : startingBodyType.getMaleBreastElasticity()), (startingGender.isFeminine() ? startingBodyType.getFemaleBreastPlasticity() : startingBodyType.getMaleBreastPlasticity()), true), new Face((stage.isFaceFurry() ? startingBodyType.getFaceType() : FaceType.HUMAN), (startingGender.isFeminine() ? startingBodyType.getFemaleLipSize() : startingBodyType.getMaleLipSize())), new Eye(stage.isEyeFurry() ? startingBodyType.getEyeType() : EyeType.HUMAN), new Ear(stage.isEarFurry() ? startingBodyType.getEarType() : EarType.HUMAN), new Hair(stage.isHairFurry() ? startingBodyType.getHairType() : HairType.HUMAN, (startingBodyType.isHairTypeLinkedToFaceType() ? (stage.isFaceFurry() ? (startingGender.isFeminine() ? startingBodyType.getFemaleHairLength() : startingBodyType.getMaleHairLength()) : (startingGender.isFeminine() ? RacialBody.HUMAN.getFemaleHairLength() : RacialBody.HUMAN.getMaleHairLength())) : (startingGender.isFeminine() ? startingBodyType.getFemaleHairLength() : startingBodyType.getMaleHairLength())), HairStyle.getRandomHairStyle((startingGender.isFeminine() ? startingBodyType.getFemaleHairLength() : startingBodyType.getMaleHairLength()))), new Leg(stage.isLegFurry() ? startingBodyType.getLegType() : LegType.HUMAN), new Skin(stage.isSkinFurry() ? startingBodyType.getSkinType() : SkinType.HUMAN), startingBodyType.getBodyMaterial(), startingBodyType.getGenitalArrangement(), (startingGender.isFeminine() ? startingBodyType.getFemaleHeight() : startingBodyType.getMaleHeight()), startingGender.getType() == PronounType.NEUTRAL ? 50 : (startingGender.isFeminine() ? startingBodyType.getFemaleFemininity() : startingBodyType.getMaleFemininity()), (startingGender.isFeminine() ? startingBodyType.getFemaleBodySize() : startingBodyType.getMaleBodySize()), (startingGender.isFeminine() ? startingBodyType.getFemaleMuscle() : startingBodyType.getMaleMuscle())).vagina(hasVagina ? new Vagina(stage.isVaginaFurry() ? startingBodyType.getVaginaType() : VaginaType.HUMAN, LabiaSize.getRandomLabiaSize().getValue(), startingBodyType.getClitSize(), startingBodyType.getVaginaWetness(), startingBodyType.getVaginaCapacity(), startingBodyType.getVaginaElasticity(), startingBodyType.getVaginaPlasticity(), true) : new Vagina(VaginaType.NONE, 0, 0, 0, 0, 3, 3, true)).penis(hasPenis ? new Penis(stage.isPenisFurry() ? startingBodyType.getPenisType() : PenisType.HUMAN, startingBodyType.getPenisSize(), startingBodyType.getPenisGirth(), startingBodyType.getTesticleSize(), startingBodyType.getCumProduction(), startingBodyType.getTesticleQuantity()) : new Penis(PenisType.NONE, 0, 0, 0, 0, 2)).horn(new Horn((stage.isHornFurry() ? startingBodyType.getRandomHornType(false) : HornType.NONE), (startingGender.isFeminine() ? startingBodyType.getFemaleHornLength() : startingBodyType.getMaleHornLength()))).antenna(new Antenna(stage.isAntennaFurry() ? startingBodyType.getAntennaType() : AntennaType.NONE)).tail(new Tail(stage.isTailFurry() ? startingBodyType.getTailType() : TailType.NONE)).wing(new Wing((stage.isWingFurry() ? startingBodyType.getWingType() : WingType.NONE), (startingGender.isFeminine() ? startingBodyType.getFemaleWingSize() : startingBodyType.getMaleWingSize()))).build();
// Pubic hair:
BodyHair hair = BodyHair.getRandomBodyHair();
body.setPubicHair(hair);
body.getFace().setFacialHair(null, hair);
body.getArm().setUnderarmHair(null, hair);
body.getAss().getAnus().setAssHair(null, hair);
if (species != null) {
body.calculateRace();
species.applySpeciesChanges(body);
body.calculateRace();
}
return body;
}
Aggregations