code:
/**
 * Displays a summary of the infant
 * @param {App.Entity.InfantState} child
 * @returns {string}
 */
App.Facilities.Nursery.InfantSummary = function(child) {
	const weeksOwned = V.week - child.weekAcquired;
	const pronouns = getPronouns(child);
	const abbreviate = V.UI.slaveSummary.abbreviation;

	let r = ``;

	function InfantSummaryUncached() {
		// r += health();
		r += description();
		r += race();
		r += nationality();
		r += skin();
		r += age();
		r += face();

		r += `</span><br>`;

		if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
			r += "    ";
		}

		r += intelligence();
		if (child.prestige > 0) {
			r += prestige();
		}
		if (child.pornPrestige > 0) {
			r += pornPrestige();
		}
		r += behavioralFlaw();
		r += sexualFlaw();

		if ((child.relationship !== 0) || (abbreviate.clothes === 2) || (abbreviate.rulesets === 2)) {
			r += `<br> `;
			if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
				r += `    `;
			}
		}

		r += extendedFamily();
		r += rival();

		r += `    `;

		if (abbreviate.origins === 2 && child.origin !== 0) {
			r += origins();
		}

		return r;
	}

	// function health() {
	// if (abbreviate.health === 1) {
	// 	return shortHealth();
	// } else if (abbreviate.health === 2) {
	// 	return longHealth();
	// }
	// }

	function description() {
		let desc;

		if (abbreviate.nationality +
			abbreviate.genitalia +
			abbreviate.physicals +
			abbreviate.skills +
			abbreviate.mental !== 0) {
			r += `<br> `;
			if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
				r += "    ";
			}
		}

		if (child.actualAge > 0) {
			if (child.actualAge > 1) {
				desc = `toddler`;
			} else {
				desc = `baby`;
			}
		} else {
			if (weeksOwned <= 1) {
				desc = `newborn`;
			} else {
				desc = `baby`;
			}
		}

		const firstLetter = desc.substring(0, 1).toUpperCase();

		desc = firstLetter + desc.substring(1);
		r += `<strong><span class="coral">${desc}${abbreviate.physicals === 2 ? '.' : ''}</span></strong> `;

		return r;
	}

	function race() {
		let r = ``;

		if (V.seeRace) {
			r += `<span class="tan">`;

			if (abbreviate.race === 1) {
				r += shortRace();
			} else if (abbreviate.race === 2) {
				r += longRace();
			}
			r += `</span> `;
		}

		return r;
	}

	function nationality() {
		if (abbreviate.nationality === 1) {
			return shortNationality();
		} else if (abbreviate.nationality === 2) {
			return longNationality();
		}
	}

	function skin() {
		if (abbreviate.physicals === 1) {
			return shortSkin();
		} else {
			return longSkin();
		}
	}

	function age() {
		if (abbreviate.physicals === 1) {
			return shortAge();
		} else if (abbreviate.physicals === 2) {
			return longAge();
		}
	}

	function face() {
		if (abbreviate.physicals === 1) {
			return shortFace();
		} else if (abbreviate.physicals === 2) {
			return longFace();
		}
	}

	function intelligence() {
		if (abbreviate.skills === 1) {
			return shortIntelligence();
		} else if (abbreviate.skills === 2) {
			return longIntelligence();
		}
	}

	function prestige() {
		if (abbreviate.skills === 1) {
			return shortPrestige();
		} else if (abbreviate.skills === 2) {
			return longPrestige();
		}
	}

	function pornPrestige() {
		if (abbreviate.skills === 1) {
			return shortPornPrestige();
		} else if (abbreviate.skills === 2) {
			return longPornPrestige();
		}
	}

	function behavioralFlaw() {
		if (abbreviate.mental === 1) {
			return shortBehaviorFlaw();
		} else if (abbreviate.mental === 2) {
			return longBehaviorFlaw();
		}
	}

	function sexualFlaw() {
		if (abbreviate.mental === 1) {
			return shortSexFlaw();
		} else if (abbreviate.mental === 2) {
			return longSexFlaw();
		}
	}

	function extendedFamily() {
		if (abbreviate.mental === 1) {
			let r = ``;

			r += `<span class="lightgreen">`;
			shortExtendedFamily();
			r += `</span> `;

			return r;
		} else if (abbreviate.mental === 2) {
			return longExtendedFamily();
		}
	}

	function rival() {
		if (abbreviate.mental === 1) {
			return shortRival();
		} else if (abbreviate.mental === 2) {
			return longRival();
		}
	}

	function origins() {
		let r = `<br> `;

		if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
			r += `    `;
		}
		r += `<span class="gray">${child.origin}</span> `;

		return r;
	}

	// /**	TODO: add health to infants
	// function shortHealth() {
	// 	if (child.health.condition < -20) {
	// 		r += `<strong><span class="red">H ${V.summaryStats ? `[${child.health.condition}]` : ''}</span></strong> `;
	// 	} else if (child.health.condition <= 20) {
	// 		r += `<strong><span class="yellow">H ${V.summaryStats ? `[${child.health.condition}]` : ''}</span></strong> `;
	// 	} else if (child.health.condition > 20) {
	// 		r += `<strong><span class="green">H ${V.summaryStats ? `[${child.health.condition}]` : ''}</span></strong> `;
	// 	}
	// 	r += " ";
	// }

	// function longHealth() {
	// 	if (child.health.condition < -90) {
	// 		r += `<span class="red">On the edge of death ${V.summaryStats ? `[${child.health.condition}]` : ''}.</span> `;
	// 	} else if (child.health.condition < -50) {
	// 		r += `<span class="red">Extremely unhealthy${V.summaryStats ? `[${child.health.condition}]` : ''}.</span> `;
	// 	} else if (child.health.condition < -20) {
	// 		r += `<span class="red">Unhealthy${V.summaryStats ? `[${child.health.condition}]` : ''}.</span> `;
	// 	} else if (child.health.condition <= 20) {
	// 		r += `<span class="yellow">Healthy${V.summaryStats ? `[${child.health.condition}]` : ''}.</span> `;
	// 	} else if (child.health.condition <= 50) {
	// 		r += `<span class="green">Very healthy${V.summaryStats ? `[${child.health.condition}]` : ''}.</span> `;
	// 	} else if (child.health.condition <= 90) {
	// 		r += `<span class="green">Extremely healthy${V.summaryStats ? `[${child.health.condition}]` : ''}.</span> `;
	// 	} else {
	// 		r += `<span class="green">Unnaturally healthy${V.summaryStats ? `[${child.health.condition}]` : ''}.</span> `;
	// 	}
	// 	r += " ";
	// }

	function shortRace() {
		let r = ``;

		switch (child.race) {
			case "white":
				r += `C`;
				break;
			case "asian":
				r += `A`;
				break;
			case "indo-aryan":
				r += `I`;
				break;
			case "latina":
				r += `L`;
				break;
			case "middle eastern":
				r += `ME`;
				break;
			case "black":
				r += `B`;
				break;
			case "pacific islander":
				r += `PI`;
				break;
			case "malay":
				r += `M`;
				break;
			case "amerindian":
				r += `AI`;
				break;
			case "semitic":
				r += `S`;
				break;
			case "southern european":
				r += `SE`;
				break;
			case "mixed race":
				r += `MR`;
				break;
			default:
				r += `${child.race.charAt(0).toUpperCase() + child.race.charAt(1) + child.race.charAt(2)}`;
				break;
		}

		return r;
	}

	function longRace() {
		let r = ``;

		switch (child.race) {
			case "white":
				r += `Caucasian. `;
				break;
			case "asian":
				r += `Asian. `;
				break;
			case "indo-aryan":
				r += `Indo-aryan. `;
				break;
			case "latina":
				r += `Latina. `;
				break;
			case "middle eastern":
				r += `Middle Eastern. `;
				break;
			case "black":
				r += `Black. `;
				break;
			case "pacific islander":
				r += `Pacific Islander. `;
				break;
			case "malay":
				r += `Malay. `;
				break;
			case "amerindian":
				r += `Amerindian. `;
				break;
			case "semitic":
				r += `Semitic. `;
				break;
			case "southern european":
				r += `Southern European. `;
				break;
			case "mixed race":
				r += `Mixed race. `;
				break;
			default:
				r += `${child.race.charAt(0).toUpperCase() + child.race.slice(1)}. `;
				break;
		}

		return r;
	}

	function shortNationality() {
		let r = `<span class="tan">`;

		switch (child.nationality) {
			case "Afghan":
				r += `Afg`;
				break;
			case "Albanian":
				r += `Alb`;
				break;
			case "Algerian":
				r += `Alg`;
				break;
			case "American":
				r += `USA`;
				break;
			case "Andorran":
				r += `And`;
				break;
			case "Angolan":
				r += `Ang`;
				break;
			case "Antiguan":
				r += `AB`;
				break;
			case "Argentinian":
				r += `Arg`;
				break;
			case "Armenian":
				r += `Arm`;
				break;
			case "Aruban":
				r += `Aru`;
				break;
			case "Australian":
				r += `Aus`;
				break;
			case "Austrian":
				r += `Aut`;
				break;
			case "Azerbaijani":
				r += `Aze`;
				break;
			case "Bahamian":
				r += `Bah`;
				break;
			case "Bahraini":
				r += `Bah`;
				break;
			case "Bangladeshi":
				r += `Bgd`;
				break;
			case "Barbadian":
				r += `Bar`;
				break;
			case "Belarusian":
				r += `Ber`;
				break;
			case "Belgian":
				r += `Bel`;
				break;
			case "Belizean":
				r += `Blz`;
				break;
			case "Beninese":
				r += `Ben`;
				break;
			case "Bermudian":
				r += `Bmd`;
				break;
			case "Bhutanese":
				r += `Bhu`;
				break;
			case "Bissau-Guinean":
				r += `GB`;
				break;
			case "Bolivian":
				r += `Bol`;
				break;
			case "Bosnian":
				r += `Bos`;
				break;
			case "Brazilian":
				r += `Bra`;
				break;
			case "British":
				r += `UK`;
				break;
			case "Bruneian":
				r += `Bru`;
				break;
			case "Bulgarian":
				r += `Bul`;
				break;
			case "Burkinabé":
				r += `BF`;
				break;
			case "Burmese":
				r += `Bur`;
				break;
			case "Burundian":
				r += `Bnd`;
				break;
			case "Cambodian":
				r += `Kam`;
				break;
			case "Cameroonian":
				r += `Cam`;
				break;
			case "Canadian":
				r += `Can`;
				break;
			case "Cape Verdean":
				r += `CV`;
				break;
			case "Catalan":
				r += `Cat`;
				break;
			case "Central African":
				r += `CAR`;
				break;
			case "Chadian":
				r += `Cha`;
				break;
			case "Chilean":
				r += `Chl`;
				break;
			case "Chinese":
				r += `Chi`;
				break;
			case "Colombian":
				r += `Col`;
				break;
			case "Comorian":
				r += `Com`;
				break;
			case "Congolese":
				r += `RC`;
				break;
			case "a Cook Islander":
				r += `CI`;
				break;
			case "Costa Rican":
				r += `CR`;
				break;
			case "Croatian":
				r += `Cro`;
				break;
			case "Cuban":
				r += `Cub`;
				break;
			case "Curaçaoan":
				r += `Cur`;
				break;
			case "Cypriot":
				r += `Cyp`;
				break;
			case "Czech":
				r += `Cze`;
				break;
			case "Danish":
				r += `Den`;
				break;
			case "Djiboutian":
				r += `Dji`;
				break;
			case "Dominican":
				r += `DR`;
				break;
			case "Dominiquais":
				r += `Dom`;
				break;
			case "Dutch":
				r += `Nld`;
				break;
			case "East Timorese":
				r += `ET`;
				break;
			case "Ecuadorian":
				r += `Ecu`;
				break;
			case "Egyptian":
				r += `Egy`;
				break;
			case "Emirati":
				r += `UAE`;
				break;
			case "Equatoguinean":
				r += `EG`;
				break;
			case "Eritrean":
				r += `Eri`;
				break;
			case "Estonian":
				r += `Est`;
				break;
			case "Ethiopian":
				r += `Eth`;
				break;
			case "Fijian":
				r += `Fij`;
				break;
			case "Filipina":
				r += `Phl`;
				break;
			case "Finnish":
				r += `Fin`;
				break;
			case "French":
				r += `Fra`;
				break;
			case "French Guianan":
				r += `FG`;
				break;
			case "French Polynesian":
				r += `FP`;
				break;
			case "Gabonese":
				r += `Gab`;
				break;
			case "Gambian":
				r += `Gam`;
				break;
			case "Georgian":
				r += `Geo`;
				break;
			case "German":
				r += `Ger`;
				break;
			case "Ghanan":
				r += `Gha`;
				break;
			case "Greek":
				r += `Gre`;
				break;
			case "Greenlandic":
				r += `Grn`;
				break;
			case "Grenadian":
				r += `Gda`;
				break;
			case "Guamanian":
				r += `Gua`;
				break;
			case "Guatemalan":
				r += `Gtm`;
				break;
			case "Guinean":
				r += `Gui`;
				break;
			case "Guyanese":
				r += `Guy`;
				break;
			case "Haitian":
				r += `Hai`;
				break;
			case "Honduran":
				r += `Hon`;
				break;
			case "Hungarian":
				r += `Hun`;
				break;
			case "I-Kiribati":
				r += `Kir`;
				break;
			case "Icelandic":
				r += `Ice`;
				break;
			case "Indian":
				r += `Ind`;
				break;
			case "Indonesian":
				r += `Idn`;
				break;
			case "Iranian":
				r += `Irn`;
				break;
			case "Iraqi":
				r += `Irq`;
				break;
			case "Irish":
				r += `Irl`;
				break;
			case "Israeli":
				r += `Isr`;
				break;
			case "Italian":
				r += `Ita`;
				break;
			case "Ivorian":
				r += `IC`;
				break;
			case "Jamaican":
				r += `Jam`;
				break;
			case "Japanese":
				r += `Jpn`;
				break;
			case "Jordanian":
				r += `Jor`;
				break;
			case "Kazakh":
				r += `Kaz`;
				break;
			case "Kenyan":
				r += `Ken`;
				break;
			case "Kittitian":
				r += `SKN`;
				break;
			case "Korean":
				r += `Kor`;
				break;
			case "Kosovan":
				r += `Kos`;
				break;
			case "Kurdish":
				r += `Kur`;
				break;
			case "Kuwaiti":
				r += `Kuw`;
				break;
			case "Kyrgyz":
				r += `Kyr`;
				break;
			case "Laotian":
				r += `Lao`;
				break;
			case "Latvian":
				r += `Lat`;
				break;
			case "Lebanese":
				r += `Lbn`;
				break;
			case "Liberian":
				r += `Lib`;
				break;
			case "Libyan":
				r += `Lby`;
				break;
			case "a Liechtensteiner":
				r += `Lie`;
				break;
			case "Lithuanian":
				r += `Lit`;
				break;
			case "Luxembourgian":
				r += `Lux`;
				break;
			case "Macedonian":
				r += `Mac`;
				break;
			case "Malagasy":
				r += `Mad`;
				break;
			case "Malawian":
				r += `Mwi`;
				break;
			case "Malaysian":
				r += `Mys`;
				break;
			case "Maldivian":
				r += `Mdv`;
				break;
			case "Malian":
				r += `Mal`;
				break;
			case "Maltese":
				r += `Mlt`;
				break;
			case "Marshallese":
				r += `MI`;
				break;
			case "Mauritanian":
				r += `Mta`;
				break;
			case "Mauritian":
				r += `Mts`;
				break;
			case "Mexican":
				r += `Mex`;
				break;
			case "Micronesian":
				r += `FSM`;
				break;
			case "Moldovan":
				r += `Mol`;
				break;
			case "Monégasque":
				r += `Mnc`;
				break;
			case "Mongolian":
				r += `Mon`;
				break;
			case "Montenegrin":
				r += `Mng`;
				break;
			case "Moroccan":
				r += `Mor`;
				break;
			case "Mosotho":
				r += `Les`;
				break;
			case "Motswana":
				r += `Bot`;
				break;
			case "Mozambican":
				r += `Moz`;
				break;
			case "Namibian":
				r += `Nam`;
				break;
			case "Nauruan":
				r += `Nau`;
				break;
			case "Nepalese":
				r += `Npl`;
				break;
			case "New Caledonian":
				r += `NC`;
				break;
			case "a New Zealander":
				r += `NZ`;
				break;
			case "Ni-Vanuatu":
				r += `Van`;
				break;
			case "Nicaraguan":
				r += `Nic`;
				break;
			case "Nigerian":
				r += `Nga`;
				break;
			case "Nigerien":
				r += `Ngr`;
				break;
			case "Niuean":
				r += `Niu`;
				break;
			case "Norwegian":
				r += `Nor`;
				break;
			case "Omani":
				r += `Omn`;
				break;
			case "Pakistani":
				r += `Pak`;
				break;
			case "Palauan":
				r += `Plu`;
				break;
			case "Palestinian":
				r += `Pal`;
				break;
			case "Panamanian":
				r += `Pan`;
				break;
			case "Papua New Guinean":
				r += `PNG`;
				break;
			case "Paraguayan":
				r += `Par`;
				break;
			case "Peruvian":
				r += `Per`;
				break;
			case "Polish":
				r += `Pol`;
				break;
			case "Portuguese":
				r += `Por`;
				break;
			case "Puerto Rican":
				r += `PR`;
				break;
			case "Qatari":
				r += `Qat`;
				break;
			case "Romanian":
				r += `Rom`;
				break;
			case "Russian":
				r += `Rus`;
				break;
			case "Rwandan":
				r += `Rwa`;
				break;
			case "Sahrawi":
				r += `Sah`;
				break;
			case "Saint Lucian":
				r += `SL`;
				break;
			case "Salvadoran":
				r += `ES`;
				break;
			case "Sammarinese":
				r += `SM`;
				break;
			case "Samoan":
				r += `Sam`;
				break;
			case "São Toméan":
				r += `STP`;
				break;
			case "Saudi":
				r += `Sau`;
				break;
			case "Scottish":
				r += `Sco`;
				break;
			case "Senegalese":
				r += `Sen`;
				break;
			case "Serbian":
				r += `Srb`;
				break;
			case "Seychellois":
				r += `Sey`;
				break;
			case "Sierra Leonean":
				r += `Sie`;
				break;
			case "Singaporean":
				r += `Sng`;
				break;
			case "Slovak":
				r += `Svk`;
				break;
			case "Slovene":
				r += `Svn`;
				break;
			case "a Solomon Islander":
				r += `SI`;
				break;
			case "Somali":
				r += `Som`;
				break;
			case "South African":
				r += `RSA`;
				break;
			case "South Sudanese":
				r += `SS`;
				break;
			case "Spanish":
				r += `Spa`;
				break;
			case "Sri Lankan":
				r += `Sri`;
				break;
			case "Sudanese":
				r += `Sud`;
				break;
			case "Surinamese":
				r += `Sur`;
				break;
			case "Swazi":
				r += `Swa`;
				break;
			case "Swedish":
				r += `Swe`;
				break;
			case "Swiss":
				r += `Swi`;
				break;
			case "Syrian":
				r += `Syr`;
				break;
			case "Taiwanese":
				r += `Tai`;
				break;
			case "Tajik":
				r += `Taj`;
				break;
			case "Tanzanian":
				r += `Tza`;
				break;
			case "Thai":
				r += `Tha`;
				break;
			case "Tibetan":
				r += `Tib`;
				break;
			case "Togolese":
				r += `Tog`;
				break;
			case "Tongan":
				r += `Ton`;
				break;
			case "Trinidadian":
				r += `TT`;
				break;
			case "Tunisian":
				r += `Tun`;
				break;
			case "Turkish":
				r += `Tur`;
				break;
			case "Turkmen":
				r += `Tkm`;
				break;
			case "Tuvaluan":
				r += `Tuv`;
				break;
			case "Ugandan":
				r += `Uga`;
				break;
			case "Ukrainian":
				r += `Ukr`;
				break;
			case "Uruguayan":
				r += `Uru`;
				break;
			case "Uzbek":
				r += `Uzb`;
				break;
			case "Vatican":
				r += `VC`;
				break;
			case "Venezuelan":
				r += `Ven`;
				break;
			case "Vietnamese":
				r += `Vnm`;
				break;
			case "Vincentian":
				r += `SVG`;
				break;
			case "Yemeni":
				r += `Yem`;
				break;
			case "Zairian":
				r += `DRC`;
				break;
			case "Zambian":
				r += `Zam`;
				break;
			case "Zimbabwean":
				if (child.race === "white") {
					r += `Rho`;
				} else {
					r += `Zwe`;
				}
				break;
			case "Ancient Chinese Revivalist":
				r += `Chi Rev`;
				break;
			case "Ancient Egyptian Revivalist":
				r += `Egy Rev`;
				break;
			case "Arabian Revivalist":
				r += `Ara Rev`;
				break;
			case "Aztec Revivalist":
				r += `Azt Rev`;
				break;
			case "Edo Revivalist":
				r += `Edo Rev`;
				break;
			case "Roman Revivalist":
				r += `Rom Rev`;
				break;
			case "":
			case "none":
			case "child":
			case "Stateless":
				r += `None`;
				break;
			default:
				r += `${child.nationality.charAt(0) + child.nationality.charAt(1) + child.nationality.charAt(2)}`;
				break;
		}

		r += `</span> `;

		return r;
	}

	function longNationality() {
		let r = `<span class="tan">`;

		switch (child.nationality) {
			case "a Cook Islander":
				r += `Cook Islander. `;
				break;
			case "a Liechtensteiner":
				r += `Liechtensteiner. `;
				break;
			case "a New Zealander":
				r += `New Zealander. `;
				break;
			case "a Solomon Islander":
				r += `Solomon Islander. `;
				break;
			case "Zimbabwean":
				if (child.race === "white") {
					r += `Rhodesian. `;
				} else {
					r += `${child.nationality}. `;
				}
				break;
			case "child":
			case "none":
			case "":
			case "Stateless":
				r += `Stateless. `;
				break;
			default:
				r += `${child.nationality}. `;
				break;
		}

		r += `</span> `;

		return r;
	}

	function shortSkin() {
		let r = `<span class="pink">`;

		switch (child.skin) {
			case "pure white":
				r += `P. Whi`;
				break;
			case "extremely fair":
				r += `E. Fai`;
				break;
			case "very fair":
				r += `V. Fai`;
				break;
			case "extremely pale":
				r += `E. Pal`;
				break;
			case "very pale":
				r += `V. Pal`;
				break;
			case "light brown":
				r += `L. Br`;
				break;
			case "dark brown":
				r += `D. Br`;
				break;
			case "light olive":
				r += `L. Oli`;
				break;
			case "dark olive":
				r += `D. Oli`;
				break;
			case "light beige":
				r += `L. Bei`;
				break;
			case "dark beige":
				r += `D. Bei`;
				break;
			case "tan":
				r += `Tan`;
				break;
			case "bronze":
				r += `Bron`;
				break;
			case "ebony":
				r += `Ebon`;
				break;
			case "pure black":
				r += `P. Bla`;
				break;
			case "dark":
			case "fair":
			case "pale":
				r += `${child.skin.charAt(0).toUpperCase() + child.skin.slice(1)}`;
				break;
			default:
				r += `${child.skin.charAt(0).toUpperCase() + child.skin.charAt(1) + child.skin.charAt(2)}`;
				break;
		}
		r += `</span> `;

		return r;
	}

	function longSkin() {
		return `<span class="pink">${child.skin.charAt(0).toUpperCase() + child.skin.slice(1)} skin.</span> `;
	}

	function shortAge() {
		let r = `<span class="pink">`;

		if (V.showAgeDetail === 1) {
			if (child.actualAge > 0) {
				r += `${capFirstChar(num(child.actualAge))}yrs. `;
			} else {
				if (weeksOwned > 4) {
					r += `${capFirstChar(num(Math.trunc(weeksOwned / 4)))}mos. `;
				} else {
					if (weeksOwned <= 1) {
						r += `Nwbrn. `;
					} else {
						r += `${capFirstChar(num(weeksOwned))}wks. `;
					}
				}
			}
		}

		return r;
	}

	function longAge() {
		let r = `<span class="pink">`;

		if (V.showAgeDetail) {
			if (child.actualAge > 0) {
				r += `${capFirstChar(num(child.actualAge))}-year-old `;
				if (child.actualAge > 1) {
					r += `toddler. `;
				} else {
					r += `baby. `;
				}
			} else {
				if (weeksOwned > 4) {
					r += `${capFirstChar(num(Math.trunc(weeksOwned / 4)))} months old. `;
				} else {
					if (weeksOwned <= 1) {
						r += `Newborn. `;
					} else {
						r += `${capFirstChar(num(weeksOwned))} weeks old. `;
					}
				}
			}
		}

		return r;
	}

	function shortFace() {
		let r = ``;

		if (child.face < -95) {
			r += `<span class="red">Face---${V.summaryStats ? `[${child.face}]` : ''}</span> `;
		} else if (child.face < -40) {
			r += `<span class="red">Face--${V.summaryStats ? `[${child.face}]` : ''}</span> `;
		} else if (child.face < -10) {
			r += `<span class="red">Face-${V.summaryStats ? `[${child.face}]` : ''}</span> `;
		} else if (child.face <= 10) {
			r += `Face${V.summaryStats ? `[${child.face}]` : ''}`;
		} else if (child.face <= 40) {
			r += `<span class="pink">Face+${V.summaryStats ? `[${child.face}]` : ''}</span> `;
		} else if (child.face <= 95) {
			r += `<span class="pink">Face++${V.summaryStats ? `[${child.face}]` : ''}</span> `;
		} else {
			r += `<span class="pink">Face+++${V.summaryStats ? `[${child.face}]` : ''}</span> `;
		}

		return r;
	}

	function longFace() {
		let r = `Likely to have `;

		if (child.face < -95) {
			r += `a <span class="red">very ugly${V.summaryStats ? `[${child.face}]`: ''}</span>`;
		} else if (child.face < -40) {
			r += `a <span class="red">ugly${V.summaryStats ? `[${child.face}]`: ''}</span>`;
		} else if (child.face < -10) {
			r += `a <span class="red">unattractive${V.summaryStats ? `[${child.face}]`: ''}</span>`;
		} else if (child.face <= 10) {
			r += `an average${V.summaryStats ? `[${child.face}]`: ''}`;
		} else if (child.face <= 40) {
			r += `an <span class="pink">attractive${V.summaryStats ? `[${child.face}]`: ''}</span>`;
		} else if (child.face <= 95) {
			r += `a <span class="pink">beautiful${V.summaryStats ? `[${child.face}]`: ''}</span>`;
		} else {
			r += `a <span class="pink">very beautiful${V.summaryStats ? `[${child.face}]`: ''}</span>`;
		}
		r += `, ${child.faceShape} face. `;

		return r;
	}

	function shortIntelligence() {
		let intelligence = child.intelligence;
		let r = ``;

		if (child.hasOwnProperty("intelligenceImplant")) {
			intelligence += child.intelligenceImplant;
		}

		if (child.fetish === "mindbroken") {
			return;
		} else if (child.hasOwnProperty("intelligenceImplant") && child.intelligenceImplant >= 30) {
			if (intelligence >= 130) {
				r += `<span class="deepskyblue">I++++(e+)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence > 95) {
				r += `<span class="deepskyblue">I+++(e+)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence > 50) {
				r += `<span class="deepskyblue">I++(e+)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence > 15) {
				r += `<span class="deepskyblue">I+(e+)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence >= -15) {
				r += `I(e+)${V.summaryStats ? `[${intelligence}]` : ''}`;
			} else if (intelligence >= -50) {
				r += `<span class="orangered">I-(e+)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence >= -95) {
				r += `<span class="orangered">I--(e+)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else {
				r += `<span class="orangered">I---(e+)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			}
		} else if (child.hasOwnProperty("intelligenceImplant") && child.intelligenceImplant >= 15) {
			if (intelligence > 95) {
				r += `<span class="deepskyblue">I+++(e)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence > 50) {
				r += `<span class="deepskyblue">I++(e)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence > 15) {
				r += `<span class="deepskyblue">I+(e)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence >= -15) {
				r += `I(e)${V.summaryStats ? `[${intelligence}]` : ''}`;
			} else if (intelligence >= -50) {
				r += `<span class="orangered">I-(e)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence >= -95) {
				r += `<span class="orangered">I--(e)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else {
				r += `<span class="orangered">I---(e)${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			}
		} else {
			if (intelligence > 95) {
				r += `<span class="deepskyblue">I+++${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence > 50) {
				r += `<span class="deepskyblue">I++${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence > 15) {
				r += `<span class="deepskyblue">I+${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence >= -15) {
				r += `I${V.summaryStats ? `[${intelligence}]` : ''}`;
			} else if (intelligence >= -50) {
				r += `<span class="orangered">I-${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else if (intelligence >= -95) {
				r += `<span class="orangered">I--${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			} else {
				r += `<span class="orangered">I---${V.summaryStats ? `[${intelligence}]` : ''}</span> `;
			}
		}

		return r;
	}

	function longIntelligence() {
		let intelligence = child.intelligence;
		let r = ``;

		if (child.hasOwnProperty("intelligenceImplant")) {
			intelligence += child.intelligenceImplant;
		}

		if (child.intelligence > 95) {
			r += `<span class="deepskyblue">Likely to be brilliant${V.summaryStats ? `[${intelligence}]` : ''}.</span> `;
		} else if (intelligence > 50) {
			r += `<span class="deepskyblue">Likely to be very smart${V.summaryStats ? `[${intelligence}]` : ''}.</span> `;
		} else if (intelligence > 15) {
			r += `<span class="deepskyblue">Likely to be smart${V.summaryStats ? `[${intelligence}]` : ''}.</span> `;
		} else if (intelligence >= -15) {
			r += `Average intelligence${V.summaryStats ? `[${intelligence}]` : ''}. `;
		} else if (intelligence >= -50) {
			r += `<span class="orangered">Likely to be slow${V.summaryStats ? `[${intelligence}]` : ''}.</span> `;
		} else if (intelligence >= -95) {
			r += `<span class="orangered">Likely to be very slow${V.summaryStats ? `[${intelligence}]` : ''}.</span> `;
		} else {
			r += `<span class="orangered">Likely to be moronic${V.summaryStats ? `[${intelligence}]` : ''}.</span> `;
		}

		return r;
	}

	function shortPrestige() {
		let r = `<span class="green">`;

		if (child.prestige > 2) {
			r += `Prest++`;
		} else if (child.prestige === 2) {
			r += `Prest+`;
		} else if (child.prestige === 1) {
			r += `Prest`;
		}
		r += `</span> `;

		return r;
	}

	function longPrestige() {
		let r = `<span class="green">`;

		if (child.prestige > 2) {
			r += `Extremely prestigious. `;
		} else if (child.prestige === 2) {
			r += `Very prestigious. `;
		} else if (child.prestige === 1) {
			r += `Prestigious. `;
		}
		r += `</span> `;

		return r;
	}

	function shortPornPrestige() {
		let r = `<span class="green">`;

		if (child.pornPrestige > 2) {
			r += `PPrest++`;
		} else if (child.pornPrestige === 2) {
			r += `PPrest+`;
		} else if (child.pornPrestige === 1) {
			r += `PPrest`;
		}
		r += `</span> `;

		return r;
	}

	function longPornPrestige() {
		let r = `<span class="green">`;

		if (child.pornPrestige > 2) {
			r += `Porn star. `;
		} else if (child.pornPrestige === 2) {
			r += `Porn slut. `;
		} else if (child.pornPrestige === 1) {
			r += `Porn amateur. `;
		}
		r += `</span> `;

		return r;
	}

	function shortBehaviorFlaw() {
		let r = `<span class="red">`;

		switch (child.behavioralFlaw) {
			case "arrogant":
				r += `Arrog`;
				break;
			case "bitchy":
				r += `Bitchy`;
				break;
			case "odd":
				r += `Odd`;
				break;
			case "hates men":
				r += `Men-`;
				break;
			case "hates women":
				r += `Women-`;
				break;
			case "gluttonous":
				r += `Glut`;
				break;
			case "anorexic":
				r += `Ano`;
				break;
			case "devout":
				r += `Dev`;
				break;
			case "liberated":
				r += `Lib`;
				break;
			default:
				child.behavioralFlaw = "none";
				break;
		}
		r += `</span> `;

		return r;
	}

	function longBehaviorFlaw() {
		let r = `<span class="red">`;

		switch (child.behavioralFlaw) {
			case "arrogant":
				r += `Arrogant. `;
				break;
			case "bitchy":
				r += `Bitchy. `;
				break;
			case "odd":
				r += `Odd. `;
				break;
			case "hates men":
				r += `Hates men. `;
				break;
			case "hates women":
				r += `Hates women. `;
				break;
			case "gluttonous":
				r += `Stress eater. `;
				break;
			case "anorexic":
				r += `Anorexic. `;
				break;
			case "devout":
				r += `Devoutly religious. `;
				break;
			case "liberated":
				r += `Mentally liberated. `;
				break;
			default:
				child.behavioralFlaw = "none";
				break;
		}
		r += `</span> `;

		return r;
	}

	function shortSexFlaw() {
		let r = ``;

		switch (child.sexualFlaw) {
			case "hates oral":
				r += `<span class="red">Oral-</span> `;
				break;
			case "hates anal":
				r += `<span class="red">Anal-</span> `;
				break;
			case "hates penetration":
				r += `<span class="red">Fuck-</span> `;
				break;
			case "shamefast":
				r += `<span class="red">Shame</span> `;
				break;
			case "idealistic":
				r += `<span class="red">Ideal</span> `;
				break;
			case "repressed":
				r += `<span class="red">Repre</span> `;
				break;
			case "apathetic":
				r += `<span class="red">Apath</span> `;
				break;
			case "crude":
				r += `<span class="red">Crude</span> `;
				break;
			case "judgemental":
				r += `<span class="red">Judge</span> `;
				break;
			case "cum addict":
				r += `<span class="yellow">CumAdd</span> `;
				break;
			case "anal addict":
				r += `<span class="yellow">AnalAdd</span> `;
				break;
			case "attention whore":
				r += `<span class="yellow">Attention</span> `;
				break;
			case "breast growth":
				r += `<span class="yellow">BoobObsess</span> `;
				break;
			case "abusive":
				r += `<span class="yellow">Abusive</span> `;
				break;
			case "malicious":
				r += `<span class="yellow">Malice</span> `;
				break;
			case "self hating":
				r += `<span class="yellow">SelfHatr</span> `;
				break;
			case "neglectful":
				r += `<span class="yellow">SelfNeglect</span> `;
				break;
			case "breeder":
				r += `<span class="yellow">BreedObsess</span> `;
				break;
			default:
				child.sexualFlaw = "none";
				break;
		}

		return r;
	}

	function longSexFlaw() {
		let r = ``;

		switch (child.sexualFlaw) {
			case "hates oral":
				r += `<span class="red">Hates oral.</span> `;
				break;
			case "hates anal":
				r += `<span class="red">Hates anal.</span> `;
				break;
			case "hates penetration":
				r += `<span class="red">Hates penetration.</span> `;
				break;
			case "shamefast":
				r += `<span class="red">Shamefast.</span> `;
				break;
			case "idealistic":
				r += `<span class="red">Sexually idealistic.</span> `;
				break;
			case "repressed":
				r += `<span class="red">Sexually repressed.</span> `;
				break;
			case "apathetic":
				r += `<span class="red">Sexually apathetic.</span> `;
				break;
			case "crude":
				r += `<span class="red">Sexually crude.</span> `;
				break;
			case "judgemental":
				r += `<span class="red">Sexually judgemental.</span> `;
				break;
			case "cum addict":
				r += `<span class="yellow">Cum addict.</span> `;
				break;
			case "anal addict":
				r += `<span class="yellow">Anal addict.</span> `;
				break;
			case "attention whore":
				r += `<span class="yellow">Attention whore.</span> `;
				break;
			case "breast growth":
				r += `<span class="yellow">Breast obsession.</span> `;
				break;
			case "abusive":
				r += `<span class="yellow">Sexually abusive.</span> `;
				break;
			case "malicious":
				r += `<span class="yellow">Sexually malicious.</span> `;
				break;
			case "self hating":
				r += `<span class="yellow">Self hatred.</span> `;
				break;
			case "neglectful":
				r += `<span class="yellow">Self neglectful.</span> `;
				break;
			case "breeder":
				r += `<span class="yellow">Breeding obsession.</span> `;
				break;
			default:
				child.sexualFlaw = "none";
				break;
		}

		return r;
	}

	function shortExtendedFamily() {
		const {daughter, sister, wife} = getPronouns(child);

		let handled = 0;
		let r = ``;

		if (child.mother > 0) {
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.mother;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s ${daughter}`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTermShort(child);
					r += ` & ${friendShipShort}`;
					handled = 1;
				}
			}
			r += " ";
		} else if (child.mother === -1) {
			r += `Your ${daughter}`;
			if (child.relationship < -1) {
				res += ` & ${PCrelationshipTerm(child)}`;
				handled = 1;
			}
			r += " ";
		} else if (child.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
			r += `${V.missingTable[child.mother].fullName}'s ${daughter} `;
		}

		if (child.father > 0 && child.father !== child.mother) {
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.father;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s ${daughter}`;
				if (child.relationshipTarget === V.slaves[_ssj].ID && handled !== 1) {
					const friendShipShort = relationshipTermShort(child);
					r += ` & ${friendShipShort}`;
					handled = 1;
				}
			}
			r += " ";
		} else if (child.father === -1 && child.mother !== -1) {
			r += `Your ${daughter}`;
			if (child.relationship < -1) {
				res += ` & ${PCrelationshipTerm(child)}`;
				handled = 1;
			}
			r += " ";
		} else if (child.father in V.missingTable && child.father !== child.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
			r += `${V.missingTable[child.father].fullName}'s ${daughter}`;
		}

		if (child.daughters === 1) {
			let _ssj = V.slaves.findIndex(function(s) {
				return s.mother === child.ID;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s mother`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTermShort(child);
					r += ` & ${friendShipShort}`;
					handled = 1;
				}
			}
			r += " ";
			_ssj = V.slaves.findIndex(function(s) {
				return s.father === child.ID;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s father`;
				if (child.relationshipTarget === V.slaves[_ssj].ID && handled !== 1) {
					const friendShipShort = relationshipTermShort(child);
					r += ` & ${friendShipShort}`;
					handled = 1;
				}
			}
			r += " ";
		} else if (child.daughters > 1) {
			r += `multiple daughters `;
		}

		if (child.sisters === 1) {
			const _ssj = V.slaves.findIndex(function(s) {
				return areSisters(s, child) > 0;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s ${sister}`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTermShort(child);
					r += `& ${friendShipShort}`;
					handled = 1;
				}
			}
			r += " ";
		} else if (child.sisters > 1) {
			r += `multiple sisters `;
		}

		if (child.relationship > 0 && handled !== 1) {
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.relationshipTarget;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s`;
				const friendShipShort = relationshipTermShort(child);
				r += ` ${friendShipShort}`;
			}
		} else if (child.relationship === -3 && child.mother !== -1 && child.father !== -1) {
			r += `Your ${wife}`;
		} else if (child.relationship === -2) {
			r += `E Bonded`;
		} else if (child.relationship === -1) {
			r += `E Slut`;
		}

		return r;
	}

	function longExtendedFamily() {
		const {daughter, sister, wife} = getPronouns(child);

		let handled = 0;
		let r = ``;

		if (child.mother > 0) {
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.mother;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${daughter}`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTerm(child);
					r += ` and ${friendShipShort}`;
					handled = 1;
				}
				r += `.</span> `;
			}
		} else if (child.mother === -1) {
			r += `Your `;

			if (child.relationship < -1) {
				r += `<span class="lightgreen">${daughter} and ${PCrelationshipTerm(child)}.</span> `;
				handled = 1;
			} else {
				r += `<span class="lightgreen">${daughter}.</span> `;
			}
		} else if (child.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
			r += `${V.missingTable[child.mother].fullName}'s <span class="lightgreen">${daughter}.</span> `;
		}

		if (child.father > 0 && child.father !== child.mother) {
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.father;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${daughter}`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTerm(child);
					r += ` and ${friendShipShort}`;
					handled = 1;
				}
				r += `.</span> `;
			}
		} else if (child.father === -1 && child.father !== child.mother) {
			r += `Your `;
			if (child.relationship < -1) {
				r += `<span class="lightgreen">${daughter} and ${PCrelationshipTerm(child)}.</span> `;
				handled = 1;
			} else {
				r += `<span class="lightgreen">${daughter}.</span> `;
			}
		} else if (child.father in V.missingTable && child.father !== child.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
			r += `${V.missingTable[child.father].fullName}'s <span class="lightgreen">${daughter}.</span> `;
		}

		if (child.daughters === 1) {
			let _ssj = V.slaves.findIndex(function(s) {
				return s.mother === child.ID;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">mother`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTerm(child);
					r += ` and ${friendShipShort}`;
					handled = 1;
				}
				r += `.</span> `;
			}
			_ssj = V.slaves.findIndex(function(s) {
				return s.father === child.ID;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">father`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTerm(child);
					r += ` and ${friendShipShort}`;
					handled = 1;
				}
				r += `.</span> `;
			}
		} else if (child.daughters > 1) {
			if (child.daughters > 10) {
				r += `<span class="lightgreen">Has tons of daughters.</span> `;
			} else if (child.daughters > 5) {
				r += `<span class="lightgreen">Has many daughters.</span> `;
			} else {
				r += `<span class="lightgreen">Has several daughters.</span> `;
			}
		}

		if (child.sisters === 1) {
			const _ssj = V.slaves.findIndex(function(s) {
				return areSisters(s, child) > 0;
			});
			if (_ssj !== -1) {
				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${sister}`;
				if (child.relationshipTarget === V.slaves[_ssj].ID) {
					const friendShipShort = relationshipTerm(child);
					r += ` and ${friendShipShort}`;
					handled = 1;
				}
				r += `.</span> `;
			}
		} else if (child.sisters > 1) {
			if (child.sisters > 10) {
				r += `<span class="lightgreen">One of many sisters.</span> `;
			} else if (child.sisters > 5) {
				r += `<span class="lightgreen">Has many sisters.</span> `;
			} else {
				r += `<span class="lightgreen">Has several sisters.</span> `;
			}
		}

		if (child.relationship > 0 && handled !== 1) {
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.relationshipTarget;
			});
			if (_ssj !== -1) {
				const friendship = relationshipTerm(child);
				r += `${SlaveFullName(V.slaves[_ssj])}'s `;
				r += `<span class="lightgreen">${friendship}.</span> `;
			}
		} else if (child.relationship === -3 && child.mother !== -1 && child.father !== -1) {
			r += `<span class="lightgreen">Your ${wife}.</span> `;
		} else if (child.relationship === -2) {
			r += `<span class="lightgreen">Emotionally bonded to you.</span> `;
		} else if (child.relationship === -1) {
			r += `<span class="lightgreen">Emotional slut.</span> `;
		}

		return r;
	}

	function shortRival() {
		let r = ``;

		if (child.rivalry !== 0) {
			r += `    `;
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.rivalryTarget;
			});
			if (_ssj !== -1) {
				r += `<span class="lightsalmon">`;
				if (child.rivalry <= 1) {
					r += `Disl ${SlaveFullName(V.slaves[_ssj])}`;
				} else if (child.rivalry <= 2) {
					r += `${SlaveFullName(V.slaves[_ssj])}'s rival`;
				} else {
					r += `Hates ${SlaveFullName(V.slaves[_ssj])}`;
				}
				r += `</span> `;
			}
		}

		return r;
	}

	function longRival() {
		let r = ``;

		if (child.rivalry !== 0) {
			r += `    `;
			const _ssj = V.slaves.findIndex(function(s) {
				return s.ID === child.rivalryTarget;
			});

			if (_ssj !== -1) {
				if (child.rivalry <= 1) {
					r += `<span class="lightsalmon">Dislikes</span> ${SlaveFullName(V.slaves[_ssj])}. `;
				} else if (child.rivalry <= 2) {
					r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightsalmon">rival.</span> `;
				} else {
					r += `<span class="lightsalmon">Hates</span> ${SlaveFullName(V.slaves[_ssj])}. `;
				}
			}
			r += " ";
		}

		return r;
	}

	return InfantSummaryUncached();
};


code:
/**
 * Displays a detailed description of the infant
 * @param {App.Entity.InfantState} child
 * @returns {string}
 */
App.Facilities.Nursery.LongInfantDescription = function(child, {market = 0, eventDescription = 0} = {}) {
	const PC = V.PC;
	const arcology = V.arcologies[0];
	const weeksOwned = V.week - child.weekAcquired;

	let r = ``;
	let age;
	let title;
	let father = 0;
	let fatherPC = 0;
	let mother = 0;
	let motherPC = 0;

	const {he, his, He} = getPronouns(child);

	if (child.father === -1 && child.mother === -1) {
		father = PC;
		fatherPC = 1;
		mother = PC;
		motherPC = 1;
	} else {
		if (child.father === -1) {
			father = PC;
			fatherPC = 1;
			mother = getSlave(child.mother);
		} else if (child.mother === -1) {
			father = getSlave(child.father);
			mother = PC;
			motherPC = 1;
		} else {
			if (child.father > 0) { /* Fathered by a current slave */
				father = getSlave(child.father);
			} else if (child.father < 0) { /* Fathered by a missing slave */
				father = -1;
			}
			if (child.father > 0) { /* Mothered by a current slave */
				mother = getSlave(child.mother);
			} else if (child.mother < 0) { /* Mothered by a missing slave */
				mother = -1;
			}
		}
	}

	// TODO: add infant art here

	r += `     `;

	r += `<span id="childName" class="slave name simple">${SlaveFullName(child)}</span> `;

	if (jsDef(child.custom)) {
		if (child.custom.label) {
			r += ` (<span class="custom-label">${child.custom.label}</span>) `;
		}
	}

	if (child.actualAge > 0) {
		age = `${num(child.actualAge)}-year-old`;
		if (child.actualAge > 1) {
			title = `toddler`;
		} else {
			title = `baby`;
		}
	} else {
		if (weeksOwned > 4) {
			age = `${num(Math.trunc(weeksOwned / 4))}-month-old`;
			title = `baby`;
		} else {
			if (weeksOwned <= 1) {
				age = ``;
				title = `newborn`;
			} else {
				age = `${num(weeksOwned)}-week-old`;
				title = `baby`;
			}
		}
	}

	r += ` is a ${age} <strong><span class="coral">${title}.</span></strong> ${He} was born in ${arcology.name} ${weeksOwned > 4 ? weeksOwned < 9 ? `about a month` : `${num(weeksOwned)} months` : weeksOwned <= 1 ? `last week` : `${num(weeksOwned)} weeks`}${weeksOwned > 1 ? ` ago` : ``}`;

	if (jsDef(child.counter)) {
		const oral = child.counter.oral;
		const vaginal = child.counter.vaginal;
		const anal = child.counter.oral;
		const mammary = child.counter.mammary;
		const penetrative = child.counter.penetrative;
		const total = oral + vaginal + anal + mammary + penetrative;

		if (total > 0) {
			r += ` and has been fucked about ${num(total)} times, including `;
			if ((vaginal + anal + mammary + penetrative) > 0) {
				if (vaginal > 0) {
					r += `${num(vaginal)} vanilla, `;
				}
				if (anal > 0) {
					r += `${num(anal)} anal, `;
				}
				if (mammary > 0) {
					r += `${num(mammary)} mammary `;
				}
				if (penetrative > 0) {
					r += `${num(penetrative)} penetrating, `;
				}
				r += ` and `;
			}
			r += `${num(oral)} oral sexual encounters. `;
		} else {
			if (weeksOwned >= 1) {
				r += ` and `;
			} else {
				r += `. ${He} `;
			}

			r += `has had little or no sexual experience `;
			if (child.weekAcquired !== 0) {
				r += `as your slave `;
			} else {
				r += `in your new arcology `;
			}
			r += `yet. `;

			let sortedCounts = [];
			sortedCounts.push(
				{type: "oral", value: oral},
				{type: "vaginal", value: vaginal},
				{type: "anal", value: anal},
				{type: "mammary", value: mammary},
				{type: "penetrative", value: penetrative}
			);
			sortedCounts = sortedCounts.sort(function(a, b) {	// sorts the counts from largest to smallest
				return b.value - a.value;
			});

			if (sortedCounts[0].type === "oral") {
				if (((weeksOwned * 112) / oral) < 4) {
					r += `Remarkably, this means that ${he}'s sucked something off `;
					if (((weeksOwned * 112) / oral) < 1) {
						r += `more than once every hour `;
					} else if (((weeksOwned * 112) / oral) < 1.5) {
						r += `about once every hour `;
					} else if (((weeksOwned * 112) / oral) < 2.5) {
						r += `about once every two hours `;
					} else if (((weeksOwned * 112) / oral) < 3.5) {
						r += `about once every three hours `;
					} else {
						r += `about once every four hours `;
					}
					r += ` ${he}'s spent awake. `;
				}
			} else if (sortedCounts[0].type === "vaginal") {
				if (((weeksOwned * 112) / oral) < 4) {
					r += `Remarkably, this means that ${his} pussy has been fucked `;
					if (((weeksOwned * 112) / oral) < 1) {
						r += `more than once every hour `;
					} else if (((weeksOwned * 112) / oral) < 1.5) {
						r += `about once every hour `;
					} else if (((weeksOwned * 112) / oral) < 2.5) {
						r += `about once every two hours `;
					} else if (((weeksOwned * 112) / oral) < 3.5) {
						r += `about once every three hours `;
					} else {
						r += `about once every four hours `;
					}
					r += ` ${he}'s spent awake. `;
				}
			} else if (sortedCounts[0].type === "anal") {
				if (((weeksOwned * 112) / oral) < 4) {
					r += `Remarkably, this means that ${he}'s been buttfucked `;
					if (((weeksOwned * 112) / oral) < 1) {
						r += `more than once every hour `;
					} else if (((weeksOwned * 112) / oral) < 1.5) {
						r += `about once every hour `;
					} else if (((weeksOwned * 112) / oral) < 2.5) {
						r += `about once every two hours `;
					} else if (((weeksOwned * 112) / oral) < 3.5) {
						r += `about once every three hours `;
					} else {
						r += `about once every four hours `;
					}
					r += ` ${he}'s spent awake. `;
				}
			} else if (sortedCounts[0].type === "mammary") {
				if (((weeksOwned * 112) / oral) < 4) {
					r += `Remarkably, this means that ${he}'s put ${his} tits to work `;
					if (((weeksOwned * 112) / oral) < 1) {
						r += `more than once every hour `;
					} else if (((weeksOwned * 112) / oral) < 1.5) {
						r += `about once every hour `;
					} else if (((weeksOwned * 112) / oral) < 2.5) {
						r += `about once every two hours `;
					} else if (((weeksOwned * 112) / oral) < 3.5) {
						r += `about once every three hours `;
					} else {
						r += `about once every four hours `;
					}
					r += ` ${he}'s spent awake. `;
				}
			} else if (sortedCounts[0].type === "penetrative") {
				if (((weeksOwned * 112) / oral) < 4) {
					r += `Remarkably, this means that ${he}'s pounded a hole `;
					if (((weeksOwned * 112) / oral) < 1) {
						r += `more than once every hour `;
					} else if (((weeksOwned * 112) / oral) < 1.5) {
						r += `about once every hour `;
					} else if (((weeksOwned * 112) / oral) < 2.5) {
						r += `about once every two hours `;
					} else if (((weeksOwned * 112) / oral) < 3.5) {
						r += `about once every three hours `;
					} else {
						r += `about once every four hours `;
					}
					r += ` ${he}'s spent awake. `;
				}
			}
		}
	} else {
		r += `. `;
	}

	r += App.Desc.family(child) + ' ';

	if (father && fatherPC) {
		if (child.eyeColor === PC.eye.origColor) {
			r += `${He} has your ${child.eyeColor} eyes, `;
		} else if (mother) {
			r += `${He} has ${his} mother ${mother.slaveName}'s ${child.eyeColor} eyes, `;
		}
	} else {
		if (father && child.eyeColor === father.eyeColor) {
			r += `${He} has ${his} father ${father.slaveName}'s ${child.eyeColor} eyes, `;
		} else if (mother) {
			r += `${He} has ${his} mother ${mother.slaveName}'s ${child.eyeColor} eyes, `;
		} else {
			r += `${He} has ${child.eyeColor} eyes, `;
		}
	}
	r += ` and ${he} will most likely have ${child.hColor} hair when ${he}'s older. `;

	r += `${He} ${V.seeRace ? `is ${child.race} and ${child.nationality}, and` : ``} has ${child.skin} skin. `;

	return r;
};

repo_name: Welptard/fc

license: mit


code:
:: FFuckdollAnal [nobr no-history]

<<run App.Utils.setLocalPronouns(getSlave($AS))>>

<<set getSlave($AS).counter.anal++, $analTotal++>>
You decide to use the Fuckdoll's <<if getSlave($AS).anus > 3>>gaping<<elseif getSlave($AS).anus == 3>>loose<<elseif getSlave($AS).anus == 2>>relaxed<<elseif getSlave($AS).anus == 1>>tight<</if>> rear hole.
<<if getSlave($AS).fuckdoll <= 10>>
	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs(getSlave($AS))>>walk over to $him<<else>>flip $him over<</if>> and ram <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> up $his rear hole.
<<elseif getSlave($AS).fuckdoll <= 80>>
	$He can follow intermediate commands, so you order $him to present $his rear hole. $He obediently <<if hasAnyLegs(getSlave($AS))>>bends over, arches $his back, and<<else>>flips over and<</if>> winks $his anus until you insert <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>>.
<<else>>
	$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs(getSlave($AS))>>and order $him to squat down onto your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> and slide $his anus up and down <<if $PC.dick != 0>>your<<else>>the<</if>> shaft.<<else>>and impale $him on <<if $PC.dick != 0>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
<</if>>
<<if getSlave($AS).fuckdoll <= 20>>
	$He's not fully used to having things suddenly forced up $his ass, so $he struggles, and $his sphincter spasms deliciously.
<<elseif getSlave($AS).fuckdoll <= 40>>
	Aware that $he is supposed to relax and accept anal rape, $he does $his best to accommodate the sodomy.
<<else>>
	You command $him to milk your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> with $his asshole, and $he obediently tightens $his sphincter against the invading phallus rhythmically.
<</if>>
<<if getSlave($AS).fuckdoll <= 60>>
	<<if getSlave($AS).energy > 60>>Denied any other outlet for $his powerful sex drive, $he orgasms.<</if>>
<<else>>
	Tuned to enjoy any use by total denial of all other stimulation, $he orgasms repeatedly as you fuck $his anus.
<</if>>
<<if getSlave($AS).voice == 0>>
	Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
<<else>>
	$He moans, <<if getSlave($AS).lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>.
<</if>>
You climax<<if $PC.dick != 0>>, filling $his rectum with your cum,<</if>> and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
<<if $PC.dick != 0>>
	<<if getSlave($AS).anus > 2>>Your cum flows out of $his gaped rear hole and down the material of $his suit.
	<<elseif getSlave($AS).anus == 2>>Your cum drips out of $his loosened rear hole and down the material of $his suit.
	<<else>>$His tight rear hole retains every drop of your cum.
	<</if>>
	<<if canImpreg(getSlave($AS), $PC)>>
		<<= knockMeUp(getSlave($AS), 5, 0, -1)>>
	<</if>>
	The Fuckdoll will be cleaned by another slave.
<</if>>
<<if getSlave($AS).anus == 0>>
	<<if getSlave($AS).fetish != "mindbroken">>
		As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his anal virginity.
	<<else>>
		$He gives no external indication that $he's aware that $he's just lost $his anal virginity.
	<</if>>
	In any case, $his rear hole has been broken in.
	<<set getSlave($AS).anus = 1>>
<</if>>


code:
:: FFuckdollImpreg [nobr no-history]

<<run App.Utils.setLocalPronouns(getSlave($AS))>>
<<set _bonus = random(6,20)>>

<<if getSlave($AS).mpreg == 1>>
	<<set getSlave($AS).counter.anal += _bonus+1, $analTotal += _bonus+1>>
<<else>>
	<<set getSlave($AS).counter.vaginal += _bonus+1, $vaginalTotal += _bonus+1>>
<</if>>

You decide to use the Fuckdoll's fertile womb to grow a child.
<<if getSlave($AS).fuckdoll <= 10>>
	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs(getSlave($AS))>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> inside $his <<if getSlave($AS).mpreg == 1>>asshole<<else>>vagina<</if>>.
<<elseif getSlave($AS).fuckdoll <= 70>>
	$He can follow intermediate commands, so you order $him into a position for use of $his <<if getSlave($AS).mpreg == 1>>rear<<else>>front<</if>> hole. $He obediently <<if hasAllLimbs(getSlave($AS))>>gets down on all fours and <</if>>cocks $his hips, offering $his <<if getSlave($AS).mpreg == 1>>asspussy<<else>>cunt<</if>> until you insert your
	<<if $PC.dick > 0>>
		cock
	<<else>>
		strap-on
	<</if>>
	into $his <<if getSlave($AS).mpreg == 1>>winking<<else>>wet<</if>> channel.
<<else>>
	$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs(getSlave($AS))>>and order $him to squat down onto your cock and ride.<<else>>and impale $him on your cock, ordering $him to do $his feeble best to bounce.<</if>>
<</if>>
<<if getSlave($AS).fuckdoll <= 20>>
	$He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
<<elseif getSlave($AS).fuckdoll <= 40>>
	Aware that $he is supposed to relax and accept rape, $he does $his best to let you take $him without resistance.
<<else>>
	You command $him to milk your cock with $his <<if getSlave($AS).mpreg == 1>>anal<<else>>vaginal<</if>> walls, and $he obediently starts to flex $his well-developed <<if getSlave($AS).mpreg == 1>>cunt<<else>>anal<</if>> muscles, squeezing you from base to tip.
<</if>>
<<if getSlave($AS).fuckdoll <= 60>>
	<<if getSlave($AS).energy > 40>>Denied any other outlet for $his healthy sex drive, $he orgasms.<</if>>
<<else>>
	$He orgasmed for the first time as you entered $him, and $he continues to do so as you fuck $him. $He's perfectly tuned.
<</if>>
<<if getSlave($AS).voice == 0>>
	Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
<<else>>
	$He moans, <<if getSlave($AS).lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>.
<</if>>
You climax, your cum shooting forward to splash against $his womb, and return $he to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>> to allow your seed to find $his mark.
<<if getSlave($AS).mpreg == 1>>
	<<if getSlave($AS).anus > 2>>Your cum flows out of $his gaping rear hole and down the material of $his suit.
	<<elseif getSlave($AS).anus == 2>>Your cum drips out of $his well-fucked rear hole and down the material of $his suit.
	<<else>>$His tight rear hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
	<</if>>
	The Fuckdoll will be cleaned by another slave.
	<<if getSlave($AS).anus == 0>>
		<<if getSlave($AS).fetish != "mindbroken">>
			As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his anal virginity.
		<<else>>
			$He gives no external indication that $he's aware that $he's just lost $his virginity.
		<</if>>
		In any case, $his rear hole has been broken in.
		<<set getSlave($AS).anus = 1>>
	<</if>>
<<else>>
	<<if getSlave($AS).vagina >= 10>>Your cum steadily flows from its prolapsed front hole and down the material of $his suit.
	<<elseif getSlave($AS).vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit.
	<<elseif getSlave($AS).vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit.
	<<else>>$His tight front hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
	<</if>>
	The Fuckdoll will be cleaned by another slave.
	<<if getSlave($AS).vagina == 0>>
		<<if getSlave($AS).fetish != "mindbroken">>
			As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his virginity.
		<<else>>
			$He gives no external indication that $he's aware that $he's just lost $his virginity.
		<</if>>
		In any case, $his front hole has been broken in.
		<<set getSlave($AS).vagina = 1>>
	<</if>>
<</if>>

You repeat this ritual throughout the week, ensuring that $he will be an @@.pregnant;incubator for your child.@@

<<= knockMeUp(getSlave($AS), 100, 2, -1, 1)>>

<<if $arcologies[0].FSRestart != "unset" && $eugenicsFullControl != 1>>
	<<if getSlave($AS).breedingMark != 1 || $propOutcome == 0>>
		Rumors spread about you knocking up your playthings; the Societal Elite are @@.elites.loss; very displeased@@ by these rumors.
		<<set $failedElite += 5>>
	<</if>>
<</if>>


code:
:: FFuckdollOral [nobr no-history]

<<run App.Utils.setLocalPronouns(getSlave($AS))>>

<<set getSlave($AS).counter.oral++, $oralTotal++>>
You decide to use the Fuckdoll's <<if getSlave($AS).lips > 95>>facepussy<<else>>face hole<</if>>.
<<if getSlave($AS).fuckdoll <= 10>>
	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasBothLegs(getSlave($AS))>>shove $him into a kneeling position<<else>>set $him on the couch<</if>> and straddle $his face.
<<elseif getSlave($AS).fuckdoll <= 80>>
	$He can follow intermediate commands, so you order $him into a position for use of $his face hole. $He obediently <<if hasBothLegs(getSlave($AS))>>gets to $his knees<<else>>cranes $his neck up<</if>> and sticks $his tongue out as far as it will go, wiggling it invitingly. You straddle $his face.
<<else>>
	$He can follow advanced commands, so you order $him into a position for use of $his face hole. $He instantly <<if hasAnyLegs(getSlave($AS))>><<if $PC.dick != 0>>bends at the waist and turns $his head upward, placing $his throat horizontally and at waist height.<<else>>gets to $his knees and turns $his head upward at just the right angle for a pussy to ride $his face hole.<</if>><<else>>cranes $his neck up and sticks $his tongue out as far as it will go, wiggling it invitingly.<</if>> You straddle $his face.
<</if>>
<<if getSlave($AS).fuckdoll <= 20>>
	$He's not fully used to being surprised with face rape, so $he struggles, and $his difficulty breathing <<if $PC.dick != 0>>makes $his throat spasm around your dickhead<<else>>feels lovely on your cunt<</if>>.
<<elseif getSlave($AS).fuckdoll <= 50>>
	Aware that $he is supposed to relax and let you rape $his face, $he does $his best to let you <<if $PC.dick != 0>>fuck $his throat<<else>>ride $his face<</if>>.
<<else>>
	You command $him to <<if $PC.dick != 0>>milk your dick, and $he begins to suck with almost frightening force<<else>>pleasure your cunt, and $he begins to eat you out with almost frightening hunger<</if>>.
<</if>>
<<if getSlave($AS).fuckdoll <= 60>>
	<<if getSlave($AS).energy > 80>>Denied any other outlet for $his extreme sex drive, $he orgasms from nothing more than oral stimulation.<</if>>
<<else>>
	$He's so perfectly tuned that $he begins to orgasm from nothing more than oral stimulation, and $he continues to shiver with repeated orgasms as $he sucks.
<</if>>
You climax, <<if $PC.dick != 0>>blowing your load down $his throat<<else>>giving $him a good amount of femcum to swallow<</if>>, and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
<<if $PC.dick != 0>>
	<<if getSlave($AS).lips > 95>>$He gives sloppy blowjobs, $his lips being too big for much control, and strings of your cum beribbon $his suit. The Fuckdoll will be cleaned by another slave.
	<<else>>$He swallows repeatedly as $he returns to $his resting posture.
	<</if>>
<</if>>


code:
:: FFuckdollVaginal [nobr no-history]

<<run App.Utils.setLocalPronouns(getSlave($AS))>>

<<set getSlave($AS).counter.vaginal++, $vaginalTotal++>>
You decide to use the Fuckdoll's <<if getSlave($AS).vagina > 3>>cavernous<<elseif getSlave($AS).vagina == 3>>soft<<elseif getSlave($AS).vagina == 2>>inviting<<elseif getSlave($AS).vagina == 1>>tight<</if>> front hole.
<<if getSlave($AS).fuckdoll <= 10>>
	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs(getSlave($AS))>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> inside $his vagina.
<<elseif getSlave($AS).fuckdoll <= 70>>
	$He can follow intermediate commands, so you order $him into a position for use of $his front hole. $He obediently <<if hasAllLimbs(getSlave($AS))>>gets down on all fours and <<elseif hasAnyLegs(getSlave($AS))>>bends over and <</if>>cocks $his hips, offering $his cunt until you insert <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> into $his wet channel.
<<else>>
	$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs(getSlave($AS))>>and order $him to squat down onto your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> and ride.<<else>>and impale $him on <<if $PC.dick != 0>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
<</if>>
<<if getSlave($AS).fuckdoll <= 20>>
	$He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
<<elseif getSlave($AS).fuckdoll <= 40>>
	Aware that $he is supposed to relax and accept rape, $he does $his best to let you take $him without resistance.
<<else>>
	You command $him to milk your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> with $his vaginal walls, and $he obediently starts to flex $his well-developed cunt muscles, squeezing <<if $PC.dick != 0>>you<<else>>your strap-on<</if>> from base to tip.
<</if>>
<<if getSlave($AS).fuckdoll <= 60>>
	<<if getSlave($AS).energy > 40>>Denied any other outlet for $his healthy sex drive, $he orgasms.<</if>>
<<else>>
	$He orgasmed for the first time as you entered $him, and $he continues to do so as you fuck $him. $He's perfectly tuned.
<</if>>
<<if getSlave($AS).voice == 0>>
	Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
<<else>>
	$He moans, <<if getSlave($AS).lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>.
<</if>>
You climax<<if $PC.dick != 0>>, your cum shooting forward to splash against $his womb,<</if>> and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
<<if $PC.dick != 0>>
	<<if getSlave($AS).vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit.
	<<elseif getSlave($AS).vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit.
	<<else>>$His tight front hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
	<</if>>
	<<if canImpreg(getSlave($AS), $PC)>>
		<<= knockMeUp(getSlave($AS), 5, 1, -1)>>
	<</if>>
	The Fuckdoll will be cleaned by another slave.
<</if>>
<<if getSlave($AS).vagina == 0>>
	<<if getSlave($AS).fetish != "mindbroken">>
		As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his virginity.
	<<else>>
		$He gives no external indication that $he's aware that $he's just lost $his virginity.
	<</if>>
	In any case, @@.lime;$his front hole has been broken in.@@
	<<set getSlave($AS).vagina = 1>>
<</if>>


code:
:: FSuckle [nobr no-history]

<<run Enunciate(getSlave($AS))>>
<<run App.Utils.setLocalPronouns(getSlave($AS))>>

<<set getSlave($AS).counter.mammary++>>
<<set $mammaryTotal++>>
<<if $PC.pregMood == 0 || $PC.preg < 28>>
	<<set _mood = 0>>
<<elseif $PC.pregMood == 1>>
	<<set _mood = 1>>
<<elseif $PC.pregMood == 2>>
	<<set _mood = 2>>
<</if>>

/* still needed: breast implant support, nipple piercing support */

You <<if _mood == 2>>demand<<else>>beckon<</if>> <<= getSlave($AS).slaveName>> to
<<if (!hasAnyLegs(getSlave($AS)))>>
	have another slave set $him on the floor close to you.
<<elseif tooBigBreasts(getSlave($AS))>>
	have another slave help $him heft $his tits so $he can take a seat on the floor close to you.
<<elseif tooBigBelly(getSlave($AS))>>
	have another slave help $him heft $his belly so $he can take a seat on the floor close to you.
<<elseif tooBigButt(getSlave($AS))>>
	have another slave help $him heft $his ass cheeks so $he can take a seat on the floor close to you.
<<elseif tooBigDick(getSlave($AS))>>
	have another slave help $him heft $his cock so $he can take a seat on the floor close to you.
<<elseif tooBigBalls(getSlave($AS))>>
	have another slave help $him heft $his balls so $he can take a seat on the floor close to you.
<<elseif tooFatSlave(getSlave($AS))>>
	have another slave help $him up so $he can take a seat on the floor close to you.
<<else>>
	to take a seat on the floor close to you.
<</if>>

<<if canMove(getSlave($AS))>>
	<<if getSlave($AS).fetish == "mindbroken">>
		$He complies without a thought.
	<<elseif getSlave($AS).devotion > 20 && getSlave($AS).trust > 20>>
		$He complies,
		<<if _mood == 2>>
			knowing full well what you want.
		<<else>>
			giddy with anticipation of your plans for $him.
		<</if>>
	<<elseif getSlave($AS).trust < -20>>
		$He hurriedly complies,
		<<if _mood == 2>>
			fearful of the sudden shift in your demeanor.
		<<else>>
			aware of the consequences of disobedience.
		<</if>>
	<<elseif getSlave($AS).devotion < -20>>
		<<if _mood == 2>>
			$He is shaken by your tone, knowing that disobedience may lead to even worse matters for $him; $he complies without any further hassle.
		<<else>>
			$He begrudgingly complies, not understanding your intentions, but knowing worse things await at $his disobedience.
		<</if>>
	<<else>>
		<<if _mood == 2>>
			$He is a little afraid of your sudden demanding tone, but steels $himself for whatever punishment you wish to mete out to $him.
		<<else>>
			Though hesitant, $he complies without question.
		<</if>>
	<</if>>
<<else>>
	<<if getSlave($AS).fetish == "mindbroken">>
		$He pays no attention as $he is carefully positioned for your use.
	<<elseif getSlave($AS).devotion > 20 && getSlave($AS).trust > 20>>
		Though $he has no agency over this,
		<<if _mood == 2>>
			$he is somewhat confused by your sudden aggressive posture.
		<<else>>
			$he is visibly giddy with anticipation for your next course of action as $he is helped into position.
		<</if>>
	<<elseif getSlave($AS).trust < -20>>
		<<if _mood == 2>>
			$He knows better than to struggle as $he is helped into position, though $he dreads what $his pregnant <<= getWrittenTitle(getSlave($AS))>> has planned.
		<<else>>
			$He knows better than to struggle as $he is helped into position, well aware of the consequences it would bring.
		<</if>>
	<<elseif getSlave($AS).devotion < -20>>
		Though $he is rebellious,
		<<if _mood == 2>>
			seeing such a gravid person take such a predatory stance shakes $him and $he becomes more compliant.
		<<else>>
			$his inability to move and distaste for falling to the ground kept $him from giving $his help much trouble.
		<</if>>
	<<else>>
		<<if _mood == 2>>
			Though $he is frightened by your sudden aggressiveness, $he complies with $his helper as $he is positioned.
		<<else>>
			Though hesitant, $he complies with $his helper as $he is positioned.
		<</if>>
	<</if>>
<</if>>

<<if getSlave($AS).boobs >= 20000>>
	You <<if _mood == 1>>caress<<else>>take note of<</if>> $his massive udders,
	<<if _mood == 2>>
		<<if getSlave($AS).nipples == "puffy">>
			grabbing a puffy nipple, lifting it up and letting it drop back down with a loud plop and a spurt of milk. They are dripping with excess milk and the flurry of kicks in your middle tells you what you need to do.
		<<elseif getSlave($AS).nipples == "inverted">>
			prying an inverted nipple out of one of them before letting it slip back down with a loud plop and a gush of milk. A strong kick tells you that you are to take some of that cream for yourself.
		<<elseif getSlave($AS).nipples == "fuckable">>
			using two fingers to pry a nippleslit open before letting it slip shut with a moist plop. A strong kick tells you that something good is hiding in there that you'll need to work out.
		<<else>>
			grabbing one by the nipple only to let it drop back down with a loud plop and a spurt of milk. A strong kick tells you that you are to take some of that cream for yourself.
		<</if>>
	<<else>>
		dripping with excess milk and resting on $his legs, the very spot you plan to make your own, but it will take finesse.
	<</if>>
	You lift up $his hefty breasts and <<if $PC.belly >= 10000>>gently lower yourself<<else>>lie<</if>> down on $his lap,
	<<if getSlave($AS).belly >= 30000>>
		<<if getSlave($AS).bellyPreg > 1000>>
			getting familiar with $his huge life-swollen baby bump and
		<<else>>
			getting familiar with $his hugely swollen belly and
		<</if>>
	<<elseif getSlave($AS).belly >= 10000>>
		<<if getSlave($AS).bellyPreg >= 8000>>
			beside $his baby bump and
		<<elseif getSlave($AS).bellyImplant >= 8000>>
			beside the swollen orb that is $his stomach and
		<<else>>
			beside the bloated container of <<= getSlave($AS).inflationType>> that is $his middle and
		<</if>>
	<<elseif getSlave($AS).belly >= 1000>>
		<<if getSlave($AS).bellyPreg >= 1000>>
			beside the life growing within $him and
		<<elseif getSlave($AS).bellyImplant >= 1000>>
			beside the curve of $his stomach and
		<<else>>
			beside the groaning container of <<= getSlave($AS).inflationType>> within $him and
		<</if>>
	<<elseif getSlave($AS).weight > 95>>
		getting familiar with $his fat belly and
	<</if>>
	letting go so that $his tits cover your face and <<if $PC.belly >= 5000>>belly<<else>>torso<</if>> in heavenly softness, $his
	<<if getSlave($AS).nipples != "fuckable">>
		<<if getSlave($AS).nipples == "puffy">>
			exceedingly soft nipple already brushing against your lips, covering your face with excess milk as if begging for you to empty $him.
		<<elseif getSlave($AS).nipples == "inverted" || getSlave($AS).nipples == "partially inverted">>
			internally curved nipple providing an inviting hole for you to tease out with your tongue.
		<<else>>
			overly exertive nipple already prodding at your mouth, as if begging to be suckled on.
		<</if>>
		Though muffled, you
		<<if _mood == 2>>
			order $him to deal with <<if $PC.dick != 0>>the erect monster pressing uncomfortably against the underside of your belly<<else>>the needy hole leaking all over your floor<</if>>.
			<<if getSlave($AS).fetish == "mindbroken">>
				$He obeys without question and mechanically begins to <<if $PC.dick != 0>>jerk you off<<else>>finger you<</if>>.
			<<elseif getSlave($AS).devotion >= -20>>
				This proves unnecessary as, before you finish speaking, $he <<if $PC.dick != 0>>wraps $his fingers around your needy cock<<else>><<if canSmell(getSlave($AS))>>smells<<else>>recognizes<</if>> your arousal<</if>> and begins to apply $his ministrations to take care of you<<if getSlave($AS).nipples == "inverted" || getSlave($AS).nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You buck to $his touch, forcing $him to try and steady $his breasts as your baby bump jumps with life.
			<<elseif getSlave($AS).trust < -20>>
				$He begins to question your order, but quickly realizes that was a mistake as you grab $his hand and force it to your crotch. Hastily, $he begins to stroke <<if $PC.dick != 0>>your dick<<else>>your pussy<</if>> until reassured that $he is pleasing you from your lusty moans and thrusting. $He does $his best, hoping to not anger you further as $he presses <<if $PC.dick != 0>>the head<<else>>your lower lips<</if>> against $his nearby nipple.
			<<else>>
				Though $he furrows $his brow, $he decides it's better to get it over with quickly and in $his hand before $he is pinned in a much more compromising position by your pregnancy. <<= getSlave($AS).slaveName>> begins to <<if $PC.dick != 0>>tug at your penis, pressing the head against $his nearby nipple, hoping this doesn't<<else>>finger your quivering pussy, rubbing $his thumb against your clit, hoping this won't<</if>> take too long.
			<</if>>
		<<else>>
			instruct $him to use $his hand to appease the evident arousal between your legs.
			<<if getSlave($AS).fetish == "mindbroken">>
				$He obeys without question and mechanically begins to <<if $PC.dick != 0>>jerk you off<<else>>finger you<</if>>.
			<<elseif getSlave($AS).devotion >= -20>>
				This proves unnecessary as, before you finish speaking, $he <<if $PC.dick != 0>>notices your hardening penis<<else>><<if canSmell(getSlave($AS))>>smells<<else>>recognizes<</if>> your arousal<</if>> and begins to apply $his ministrations to take care of you<<if getSlave($AS).nipples == "inverted" || getSlave($AS).nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You respond further with a positive "Mmmhmm~", which calms $his worries as $he works on pleasuring you as much as $he can with one hand.
			<<elseif getSlave($AS).trust < -20>>
				$He begins to question your order, but quickly realizes <<if $PC.dick != 0>>your penis is at full mast and prodding $his breastflesh<<else>>you're soaking wet and quivering with desire<</if>>. Cautiously, $he begins to stroke <<if $PC.dick != 0>>it<<else>>your pussy<</if>> until reassured that $he is pleasing you with a positive "Mmmhmm~". $He does $his best, hoping to not anger you in any way or make a mistake as $he presses <<if $PC.dick != 0>>the head<<else>>your lower lips<</if>> against $his nearby nipple.
			<<else>>
				Though $he furrows $his brow, $he decides it's better to get it over with quickly and in $his hand rather than any other hole or in worse circumstances. <<= getSlave($AS).slaveName>> begins to <<if $PC.dick != 0>>tug at your hardened penis, pressing the head against $his nearby nipple, hoping this doesn't<<else>>finger your quivering pussy, rubbing $his thumb against your clit, hoping this won't<</if>> take too long.
			<</if>>
		<</if>>
	<<else>>
		exotic nipple brushing across your lips, as if wanting to have your tongue inside it, while $his other nipple
		<<if _mood == 2>>
			brushes across your <<if $PC.dick != 0>>penis, just begging to be penetrated. You struggle to shift yourself in such a way to penetrate $his nipple, before finally managing to slip the tip into $him<<else>>clit, as if begging to join in. You struggle to shift yourself to an angle where you could attach your sex to<</if>> $his nippleslit.
			<<if getSlave($AS).fetish == "mindbroken">>
				<<if $PC.dick != 0>>$He gasps in surprise as you force yourself all the way into $him and your gravid swell parts $his breasts.<<else>>$He fails to understand your efforts, leaving you humping against $his breast.<</if>>
			<<elseif getSlave($AS).devotion >= -20>>
				$He gasps in surprise before understanding what you desire and begins to <<if $PC.dick != 0>>ease $his breast into consuming the rest of your length. $He fails to do so fast enough and you force yourself upwards, your gravid swell parting $his breasts as your cock delves into the depths of $his tits<<else>>jiggle $his breast in an attempt to add to your efforts<</if>>.
			<<elseif getSlave($AS).trust < -20>>
				$He begins to question your intent, but quickly realizes your <<if $PC.dick != 0>>penis is entering $his breastpussy by force and the $he'd better get used to it<<else>>pussy is rubbing against $his nippleslit. $He begins to jiggle $his breast in an attempt to add to your efforts<</if>>.
			<<else>>
				Though $he furrows $his brow, $he decides it's better to get it over with quickly rather than in worse circumstances. <<= getSlave($AS).slaveName>> <<if $PC.dick != 0>>shudders as the rest of your shaft forces its way into $his breastpussy<<else>>begins to jiggle $his breast in an attempt to get you off<</if>>, hoping this doesn't take too long.
			<</if>>
			You breathe in $his scent as you let out a moan, your child<<if $PC.pregType > 1>>ren<</if>> satisfied with the sensations of $his milky depths surrounding your crotch.
		<<else>>
			brushes across your hardening <<if $PC.dick != 0>>penis, as if begging to be penetrated. You shift to angle yourself just right before thrusting your hips upwards, inserting the tip of your shaft into<<else>>clit, as if begging to join in. You shift to angle yourself just right before thrusting your hips upwards in an attempt to attach your sex to<</if>> $his nippleslit.
			<<if getSlave($AS).fetish == "mindbroken">>
				<<if $PC.dick != 0>>$He gasps in surprise as you push all the way into $him.<<else>>$He fails to understand your efforts, leaving you rubbing yourself against $his breast.<</if>>
			<<elseif getSlave($AS).devotion >= -20>>
				$He gasps in surprise before understanding what you desire and begins to <<if $PC.dick != 0>>ease $his breast into consuming the rest of your length<<else>>jiggle $his breast in an attempt to add to your efforts<</if>>.
			<<elseif getSlave($AS).trust < -20>>
				$He begins to question your intent, but quickly realizes your <<if $PC.dick != 0>>penis is entering $his breastpussy one way or another and begins to ease it all the way in before you decide to force the matter<<else>>pussy is rubbing against $his nippleslit. $He begins to jiggle $his breast in an attempt to add to your efforts<</if>>.
			<<else>>
				Though $he furrows $his brow, $he decides it's better to get it over with quickly rather than in worse circumstances. <<= getSlave($AS).slaveName>> begins to <<if $PC.dick != 0>>ease the rest of your shaft into $his breastpussy<<else>>jiggle $his breast in an attempt to get you off<</if>>, hoping this doesn't take too long.
			<</if>>
			You breathe in $his scent as you let out a sigh, content with the sensations of $his milky depths surrounding your crotch.
		<</if>>
	<</if>>
<<elseif getSlave($AS).boobs >= 2000>>
	You <<if _mood == 1>>caress<<elseif _mood == 2>>hungrily eye<<else>>eye<</if>> $his <<= getSlave($AS).nipples>> nipples,
	<<if getSlave($AS).nipples == "puffy">>
		<<if _mood == 2>>
			gripping the nipple with your hand and squeezing hard enough to force out a spurt of milk. A flurry of kicks tells you that you are to take one of those swollen, dripping beauties and have a drink.
		<<else>>
			swollen and dripping with excess milk and calling on your instincts to suckle on them.
		<</if>>
	<<elseif getSlave($AS).nipples == "inverted">>
		<<if _mood == 2>>
			poking it with your finger as deep as you can. The inviting hole keeps all the delicious milk locked up, your instincts insisting that you pry out the flavor for yourself. The kicking in your middle settles it, you're taking a drink whether or not $his nipples agree.
		<<else>>
			the inviting hole keeping all the delicious milk locked up, your instincts insisting that you pry out the flavor for yourself.
		<</if>>
	<<elseif getSlave($AS).nipples == "fuckable">>
		<<if _mood == 2>>
			using two fingers to penetrate and spread apart to appreciate the insides. They are dripping with excess milk and resemble a tiny pussy; a series of kicks insist that you have a taste<<if $PC.dick != 0>> and a little stress relief<</if>>.
		<<else>>
			dripping with excess milk and resembling a tiny pussy, your instincts doubly insisting that you have a taste.
		<</if>>
	<<else>>
		<<if _mood == 2>>
			pinching one between your thumb and forefinger with enough force to hurt. Excess milk drips from it as a rather forceful kick from your womb insists that you take your fill; you wouldn't mind a taste yourself.
		<<else>>
			dripping with excess milk and calling on your instincts to suckle on them.
		<</if>>
	<</if>>
	Though you plan to sate those innate desires, you also plan to do so with finesse. You <<if $PC.belly >= 10000>>gently lower yourself<<else>>lay<</if>> down on $his lap and
	<<if getSlave($AS).nipples == "fuckable">>
		ease your head onto
	<<else>>
		rest your head on
	<</if>>
	$his thigh,
	<<if getSlave($AS).belly >= 30000>>
		<<if getSlave($AS).bellyPreg > 1000>>
			the huge life-swollen orb that is $his middle brushing you and
		<<else>>
			the hugely swollen orb that is $his middle brushing you and
		<</if>>
	<<elseif getSlave($AS).belly >= 10000>>
		<<if getSlave($AS).bellyPreg >= 8000>>
			beside $his baby bump and
		<<elseif getSlave($AS).bellyImplant >= 8000>>
			beside the swollen orb that is $his stomach and
		<<else>>
			beside the bloated container of <<= getSlave($AS).inflationType>> that is $his middle and
		<</if>>
	<<elseif getSlave($AS).belly >= 1000>>
		<<if getSlave($AS).bellyPreg >= 1000>>
			beside the life growing within $him and
		<<elseif getSlave($AS).bellyImplant >= 1000>>
			beside the curve of $his stomach and
		<<else>>
			beside the groaning container of <<= getSlave($AS).inflationType>> within $him and
		<</if>>
	<<elseif getSlave($AS).weight > 95>>
		getting familiar with $his fat belly as
	<</if>>
	$his over-productive bosoms dripping sweet cream on your face<<if getSlave($AS).nipples == "inverted">>, the milk waiting to be sucked from the tight inverted holes above you<</if>><<if $PC.belly >= 10000>> and your belly brushing the undersides of $his tits<</if>>. You
	<<if _mood == 2>>
		order $him to deal with <<if $PC.dick != 0>>the erect monster pressing uncomfortably against the underside of your belly<<else>>the needy hole leaking all over your floor<</if>>.
	<<else>>
		instruct $him to use $his hand to appease the evident arousal between your legs.
	<</if>>
	<<if getSlave($AS).fetish == "mindbroken">>
		$He obeys without question and mechanically begins to <<if $PC.dick != 0>>jerk you off<<else>>finger you<</if>>.
	<<elseif getSlave($AS).devotion >= -20 || getSlave($AS).trust < -20>>
		<<if $PC.dick != 0>>Though $he believes it would be better for you to use another of $his slew of pleasurable orifices, $he does not question your decision<<else>>$He happily sets to work on your clit<</if>>.
	<<else>>
		Though $he furrows $his brow, $he decides it's better to get it over with quickly and in $his hand rather than any other hole or in worse circumstances. <<= getSlave($AS).slaveName>> begins to <<if $PC.dick != 0>>tug at your hardened penis<<else>>stroke your quivering pussy as best as $he can<</if>>, hoping this doesn't take too long.
	<</if>>
<</if>>

<<if getSlave($AS).fetish == "mindbroken">>
	You <<if _mood == 1>>struggle to lean forward and wrap your lips gently around a nipple<<else>>lurch forward and engulf a nipple with your lips<</if>>, causing $him to shudder with arousal as the suction causes milk to gush into your mouth to sate your needs.
<<elseif getSlave($AS).devotion <= 20 || getSlave($AS).trust < -20>>
	$He braces $himself as you <<if _mood == 1>>struggle to lean forward and wrap your lips gently around a nipple<<else>>lurch forward and engulf a nipple with your lips<</if>>, cringing as the suction causes milk to gush into your mouth to sate your needs.
<<else>>
	You <<if _mood == 1>>struggle to lean forward and wrap your lips gently around a nipple<<else>>lurch forward and engulf a nipple with your lips<</if>>, causing $him to coo with delight<<if _mood == 1>> and support your head<</if>> as the suction causes milk to gush into your mouth to sate your needs.
<</if>>
<<if _mood == 2>>
	Your <<if $PC.pregType > 1>>babies calm<<else>>baby calms<</if>> down as $his cream reaches your system.
<<elseif _mood == 1>>
	Your <<if $PC.pregType > 1>>babies kick<<else>>baby kicks<</if>> happily as you hug yourself closer to $him.
<<else>>
	You find yourself moaning at the delight of $his cream flowing into you.
	<<if $PC.preg > 15>> A fluttering sensation in your womb tells you someone else also appreciates the drink.<</if>>
<</if>>

<<if getSlave($AS).boobs >= 20000>>
	Such sensations hasten your breath, making you take in more of $his womanly scent. You work with your lips and tongue to
	<<if getSlave($AS).nipples == "inverted" || getSlave($AS).nipples == "partially inverted">>
		tease out $his nipple and suckle with newfound gusto,
	<<elseif getSlave($AS).nipples == "fuckable">>
		explore the inner chambers of $his breasts and ease out more of $his cream in a lustful frenzy,
	<<else>>
		ease out more of $his cream in a lustful frenzy,
	<</if>>
	as though the rest of the world did not exist. It might as well not, given how the entirety of your upper body sees and feels nothing but $his mesmerizing mammaries and
	<<if getSlave($AS).nipples == "puffy">>
		$his soft nipple in your mouth, while your sex focuses on the soft hand diligently working it. You feverishly suckle on $his nipple as you thrash your tongue, your efforts rewarded with more milk.
	<<elseif getSlave($AS).nipples == "inverted" || getSlave($AS).nipples == "partially inverted">>
		$his erect nipple in your mouth, while your sex focuses on the soft hand diligently working it. You feverishly suckle on $his nipple as you thrash your tongue, your efforts rewarded with more milk.
	<<elseif getSlave($AS).nipples == "fuckable">>
		your sex feeling nothing but the wet <<if $PC.dick != 0>>insides of $his breast<<else>>lips of $his breastpussy<</if>>. You feverishly thrash your tongue around inside of the bumpy enclosure, with each strong movement sending shivers through $him, forcing gasps, moans and milk out of $him.
	<<else>>
		$his milky nipple in your mouth, while your sex focuses on the soft hand diligently working it. You feverishly suckle on $his nipple as you thrash your tongue, your efforts rewarded with more milk.
	<</if>>
	You would worry about drowning if it didn't taste good enough for you to suckle ever harder with each spurt.
<<elseif getSlave($AS).boobs >= 2000>>
	Such sensations bring your attention further to $his teat; as you
	<<if getSlave($AS).nipples == "inverted">>
		tease $his nipple
	<<elseif getSlave($AS).nipples == "fuckable">>
		explore the depths of $his inner breast
	<<else>>
		roll and prod
	<</if>>
	with your tongue, trying to get the most out of $his mammaries, you hasten $his breath and bring $him further pleasure<<if getSlave($AS).nipples == "inverted">> as it slowly hardens and leaves its inverted state<</if>>.
	<<if getSlave($AS).nipples == "puffy">>
		You note the texture of $his nipple: soft, more so even than the rest of $his boob. Your constant efforts of sucking and tongueplay are rewarded
	<<elseif getSlave($AS).nipples == "fuckable">>
		You feverishly thrash your tongue around in the bumpy enclosure, each strong movement sending shivers through $him, causing $him to gasp and moan, as well as rewarding you
	<<elseif getSlave($AS).nipples != "inverted">>
		You take in the texture of $his nipple: hard and bumpy, a stark contrast to the rest of $his boob — an undeniable ocean of softness. Your constant efforts of sucking and tongueplay are rewarded
	<<else>>
		Your constant efforts of sucking and tongueplay are rewarded
	<</if>>
	with more milk straight from the tap.
<</if>>

Milk continues to spill into your mouth as you suckle away at the
<<if getSlave($AS).nipples == "puffy">>
	softness,
<<elseif getSlave($AS).nipples == "inverted" || getSlave($AS).nipples == "partially inverted">>
	erect hardness,
<<elseif getSlave($AS).nipples == "fuckable">>
	milky slit,
<<else>>
	hardness,
<</if>>
relishing the delicious treat one could have only received from a mother's bosom; at least, so was the case before modern medicine decided to say something about it. Though it may as well be artificial, the act of breastfeeding continues to appease a fundamental emotional need that is arguably unique to the action.
<<if _mood == 2>>
	It gives you undeniable emotional respite despite the mood caused by your pregnancy, even if it will only last as long as you stay with $him.
<<elseif _mood == 1>>
	You can only hope $he'll return the favor when you yourself become too heavy with milk.
<<elseif $PC.preg > 30>>
	You know that you'll soon have your own child<<if $PC.pregType > 1>>ren<</if>> to share this feeling with and deep down, you hope to enjoy it just as much as $he does.
<</if>>

<<if getSlave($AS).boobs >= 20000>>
	<<if getSlave($AS).nipples == "fuckable">>
		$He
		<<if $PC.dick != 0>>
			holds $his breast and jiggles it in an attempt to compliment your thrusts, adding even more sensation alongside your own efforts. With the milk adding lubrication to the sensual hole of $his nipple and the enclosed nature of $his sopping wet breastpussy itself adding suction, it's like you were enveloped inside of a highly advanced cock milking machine, each bump sending thrums of pleasure as your dick brushed against them.
		<<else>>
			held $his breast and jiggled it in an attempt to compliment your thrusts, adding more sensation to your own efforts. The milk adding wetness to the sensual hole of $his nipple and the nature of $his sopping wet breastpussy itself adding suction felt like you were being enveloped by a world class pussy pump, each movement adding more suction and wetness than the last.
		<</if>>
	<<else>>
		While you were busy suckling, $he was anything but idle, using $his hand as best as $he could to bring you the most pleasure $he is capable of. Though no lube was applied, $his ministrations were more than enough to take you to the knife's edge of orgasm more than once. In your <<if $PC.dick != 0>>already dazed state<<else>>lust addled haze<</if>>, $his fingers seem to send lightning along your nerves<<if $PC.dick != 0>>; the tips brushing across your shaft to tickle its head make you thrust instinctively. $His tugs, gentle yet firm<<else>>. $His fingertips brush across your labia to tickle your clit, making you buck instinctively. $His strokes, gentle yet decisive<</if>>, have an almost motherly feel to them. Such ministrations cannot help but prepare you to <<if $PC.dick != 0>>shoot your load<<else>>come<</if>> as hard as you can.
	<</if>>
<<elseif getSlave($AS).boobs >= 2000>>
	While you were busy suckling, $he was anything but idle, using $his hand as best as $he could to bring you the most pleasure $he is is capable of. Though no lube was applied, $his ministrations were more than enough to take you to the knife's edge of orgasm more than once. $His hand continues to apply itself to your <<if $PC.dick != 0>>shaft, its fingertips brushing across your shaft to tickle its head and make you thrust instinctively. $His tugs<<else>>sex, $his fingertips seeming to send lightning along your nerves. As $he tickles your clit, you buck instinctively. $His strokes<</if>>, gentle yet firm, have an almost motherly feel to them. Such ministrations cannot help but prepare you to <<if $PC.dick != 0>>shoot your load<<else>>come<</if>> as hard as you can.
<</if>>

The two of you put so much into seeking pleasure in the act that you both cum at once, $his great gasp coinciding with your <<if $PC.dick != 0>><<if $PC.balls >= 10>>flood<<else>>jet<</if>> of jizz flying<<else>>own jet of pussy juice squirting<</if>>
<<if getSlave($AS).boobs >= 20000 && getSlave($AS).nipples == "fuckable">>
	into
<<else>>
	onto
<</if>>
$his other breast<<if $PC.dick != 0>><<if $PC.balls >= 10>> and backflowing hard from your sheer volume<</if>><</if>>. You release $his nipple with a loud pop and lick your lips in delight.
<<if getSlave($AS).boobs >= 20000 && getSlave($AS).nipples == "fuckable">>
	Your <<if $PC.dick != 0>>dick slips out<<else>>pussy separates<</if>> from $his other breast with a delicate pop, followed by lewd dripping noises and the sight of <<if $PC.dick != 0>>semen<<else>>girlcum<</if>> and milk oozing from $his <<if $PC.dick != 0>>newly expanded hole<<else>>nippleslit<</if>>.
<</if>>
<<if _mood == 2>>
	For a moment, $he thought you were finished, but with your hormone fueled libido, $he'll be feeling a lot more than sore nipples but the time you tire of $his touch.
<<elseif _mood == 1>>
	You cuddle up against $him, holding close to $him as you snooze off your milky meal.
	<<if getSlave($AS).fetish == "mindbroken">>
		$He struggles in discomfort at your pregnant weight pinning $him down until $he manages to rouse your child<<if $PC.pregType > 1>>ren<</if>> and get you to move.
	<<elseif getSlave($AS).devotion > 20 && getSlave($AS).trust > 20>>
		$He holds you close, gently caressing your head and pregnancy as you rest it off.
	<<elseif getSlave($AS).trust < -20>>
		$He freezes in fear, unsure of what to do other than let you rest.
	<<elseif getSlave($AS).devotion < -20>>
		$He groans at the weight leaning against $him and begrudgingly rests $his arm atop your pregnant bulge.
		<<if $PC.pregSource == getSlave($AS).ID>>
			$He takes a moment to appreciate the size of your belly, knowing $he was the one that seeded you. $He admires $his work with pride.
		<<else>>
			$He knows $he has little choice but to put up with it.
		<</if>>
	<<else>>
		Though hesitant, $he carefully rubs the taut dome of your belly as you rest.
	<</if>>
<</if>>

<<if getSlave($AS).lactation > 0>>
	<<set getSlave($AS).lactationDuration = 2>>
	<<set getSlave($AS).boobs -= getSlave($AS).boobsMilk, getSlave($AS).boobsMilk = 0>>
<</if>>

Once you <<if _mood == 1>>wake and slowly rise to your feet, you help $him clean up<<else>>are done, you allow $him to clean up<</if>>
<<switch getSlave($AS).assignment>>
<<case "work in the brothel">>
	before returning $his lovely tits to the brothel.
<<case "serve in the club">>
	before resuming $his lovely bouncing in the club.
<<case "work in the dairy">>
	before returning to the dairy.
<<case "work as a farmhand">>
	to avoid tainting the food in $farmyardName.
<<case "work as a servant">>
	mostly to keep everything $he has to clean from getting any dirtier.
<<case "work as a nanny">>
	before heading back to take care of the children.
<<case "whore">>
	before returning to offering $his lovely tits for sale.
<<case "serve the public">>
	before returning to offering $his lovely tits for free.
<<case "rest">>
	before crawling back into bed.
<<case "get milked">>
	before resting until $his tits swell with milk again.
<<case "be a servant">>
	since $his chores didn't perform themselves while you enjoyed $him.
<<case "please you">>
	before returning to await your next use of $his body, as though nothing had happened.
<<case "be a subordinate slave">>
	though it's only a matter of time before another slave decides to play with $his tits.
<<case "be your Head Girl">>
	worried that $his charges got up to trouble while $he enjoyed $his <<= getWrittenTitle(getSlave($AS))>>'s use.
<<case "guard you">>
	so $he can be fresh and ready for more sexual use even as $he guards your person.
<<case "train slaves">>
	before $he returns to teaching $his classes.
<<default>>
	before $he returns to <<= getSlave($AS).assignment>>.
<</switch>>