code:
:: slave creation widgets [widget nobr]

/%
 Call as <<CustomSlaveAge>>
%/
<<widget "CustomSlaveAge">>
	<<replace #age>>
		<<if $customSlave.age < 3>>2- years old.
		<<elseif $customSlave.age < 5>>3-4 years old.
		<<elseif $customSlave.age < 7>>5-6 years old.
		<<elseif $customSlave.age < 10>>7-9 years old.
		<<elseif $customSlave.age < 13>>10-12 years old.
		<<elseif $customSlave.age < 15>>13-14 years old.
		<<elseif $customSlave.age < 18>>15-17 years old.
		<<elseif $customSlave.age < 20>>18-19 years old.
		<<elseif $customSlave.age < 25 && $retirementAge >= 25>>20-24 years old.
		<<elseif $customSlave.age < 25 && $retirementAge >= 20>>20+ years old.
		<<elseif $customSlave.age < 30 && $retirementAge >= 30>>25-29 years old.
		<<elseif $customSlave.age < 30 && $retirementAge >= 25>>25+ years old.
		<<elseif $customSlave.age < 40 && $retirementAge >= 40>>30-39 years old.
		<<elseif $customSlave.age < 40 && $retirementAge >= 30>>30+ years old.
		<<elseif $customSlave.age < 50 && $retirementAge >= 50>>40-49 years old.
		<<elseif $customSlave.age < 50 && $retirementAge >= 40>>40+ years old.
		<<elseif $customSlave.age < 60 && $retirementAge >= 60>>50-59 years old.
		<<elseif $customSlave.age < 60 && $retirementAge >= 50>>50+ years old.
		<<elseif $customSlave.age < 70 && $retirementAge >= 70>>60-69 years old.
		<<elseif $customSlave.age < 70 && $retirementAge >= 60>>60+ years old.
		<<elseif $customSlave.age < 80 && $retirementAge >= 80>>70-79 years old.
		<<elseif $customSlave.age < 80 && $retirementAge >= 70>>70+ years old.
		<<elseif $customSlave.age < 90 && $retirementAge >= 90>>80-89 years old.
		<<elseif $customSlave.age < 90 && $retirementAge >= 80>>80+ years old.
		<<elseif $customSlave.age < 100 && $retirementAge >= 100>>90-99 years old.
		<<elseif $customSlave.age < 100 && $retirementAge >= 90>>90+ years old.
		<<elseif $customSlave.age < 110 && $retirementAge >= 110>>100-109 years old.
		<<elseif $customSlave.age < 110 && $retirementAge >= 100>>100+ years old.
		<<elseif $customSlave.age < 120 && $retirementAge >= 120>>110-119 years old.
		<<elseif $customSlave.age < 120 && $retirementAge >= 110>>110+ years old.
		<<elseif $customSlave.age < 130 && $retirementAge >= 130>>120-129 years old.
		<<elseif $customSlave.age < 130 && $retirementAge >= 120>>120+ years old.
		<<else>>130+ years old.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveHealth>>
%/
<<widget "CustomSlaveHealth">>
	<<replace #health>>
		<<if $customSlave.health == 0>>Healthy.
		<<else>>Extremely healthy.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveMuscles>>
%/
<<widget "CustomSlaveMuscles">>
	<<replace #muscles>>
		<<if $customSlave.muscles > 95>>
			Ripped.
		<<elseif $customSlave.muscles > 50>>
			Muscular.
		<<elseif $customSlave.muscles > 30>>
			Well built.
		<<elseif $customSlave.muscles > 5>>
			Toned.
		<<elseif $customSlave.muscles > -6>>
			Soft.
		<<elseif $customSlave.muscles > -31>>
			Quite weak.
		<<elseif $customSlave.muscles > -51>>
			Rather weak.
		<<elseif $customSlave.muscles > -96>>
			Very weak.
		<<else>>
			Frail.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveLips>>
%/
<<widget "CustomSlaveLips">>
	<<replace #lips>>
		<<if $customSlave.lips <= 10>>Thin lips.
		<<elseif $customSlave.lips <= 20>>Normal lips.
		<<elseif $customSlave.lips <= 40>>Plush lips.
		<<elseif $customSlave.lips <= 70>>Big lips.
		<<elseif $customSlave.lips <= 95>>Huge lips.
		<<else>>Facepussy.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveVoice>>
%/
<<widget "CustomSlaveVoice">>
	<<replace #voice>>
		<<if $customSlave.voice == 3>>High, girly voice.
		<<elseif $customSlave.voice == 2>>Feminine voice.
		<<elseif $customSlave.voice == 1>>Deep voice.
		<<elseif $customSlave.voice == 0>>Mute.
		<<else>>Voice is unimportant.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveHeight>>
%/
<<widget "CustomSlaveHeight">>
	<<replace #height>>
		<<if $customSlave.heightMod == "greatly below average">>Petite.
		<<elseif $customSlave.heightMod == "below average">>Short.
		<<elseif $customSlave.heightMod == "normal">>Average height.
		<<elseif $customSlave.heightMod == "above average">>Tall.
		<<else>>Very tall.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveWeight>>
%/
<<widget "CustomSlaveWeight">>
	<<replace #weight>>
		<<if $customSlave.weight == -50>>Very thin.
		<<elseif $customSlave.weight == -15>>Thin.
		<<elseif $customSlave.weight == 0>>Average weight.
		<<elseif $customSlave.weight == 15>>Chubby.
		<<elseif $customSlave.weight == 50>>Plump.
		<<elseif $customSlave.weight == 100>>Fat.
		<<elseif $customSlave.weight == 150>>Very Fat.
		<<else>>Immobile.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveFace>>
%/
<<widget "CustomSlaveFace">>
	<<replace #face>>
		<<if $customSlave.face < -40>>Very unattractive face.
		<<elseif $customSlave.face < -10>>Unattractive face.
		<<elseif $customSlave.face <= 10>>Average face.
		<<elseif $customSlave.face <= 40>>Attractive face.
		<<elseif $customSlave.face > 40>>Very attractive face.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveRace>>
%/
<<widget "CustomSlaveRace">>
	<<replace #ethnicity>>
		<<textbox "$customSlave.race" $customSlave.race "Custom Slave">>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveSkin>>
%/
<<widget "CustomSlaveSkin">>
	<<replace #skin>>
		<<textbox "$customSlave.skin" $customSlave.skin "Custom Slave">>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveBoobs>>
%/
<<widget "CustomSlaveBoobs">>
	<<replace #boobs>>
		<<if $customSlave.boobs == 200>>Flat chest.
		<<elseif $customSlave.boobs <= 500>>Healthy breasts.
		<<elseif $customSlave.boobs <= 800>>Big breasts.
		<<elseif $customSlave.boobs <= 1400>>Huge breasts.
		<<elseif $customSlave.boobs <= 2100>>Giant breasts.
		<<else>>Massive breasts.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveButt>>
%/
<<widget "CustomSlaveButt">>
	<<replace #butt>>
		<<if $customSlave.butt == 1>>Flat buttocks.
		<<elseif $customSlave.butt < 4>>Healthy buttocks.
		<<elseif $customSlave.butt < 6>>Huge buttocks.
		<<else>>Massive buttocks.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveSex>>
%/
<<widget "CustomSlaveSex">>
	<<replace #sex>>
		<<if $customSlave.sex == 1>>Female (cock & balls options not applied).
		<<elseif $customSlave.sex == 2>>Male (pussy options not applied).
		<<else>>Futanari (clit options not applied).
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveVirgin>>
%/
<<widget "CustomSlaveVirgin">>
	<<replace #virgin>>
		<<if $customSlave.virgin == 0>>Vaginal virgin.
		<<else>>Virginity not important.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveVagina>>
%/
<<widget "CustomSlaveVagina">>
	<<replace #vagina>>
		<<if $customSlave.vagina == -1>>No vagina.
		<<elseif $customSlave.vagina == 0>>Vaginal virgin.
		<<else>>Normal vagina.
		<</if>>
		<<link "No vagina">>
			<<set $customSlave.vagina = -1, $customSlave.preg = 0, $customSlave.ovaries = 0>>
			<<CustomSlaveVagina>>
		<</link>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveDick>>
%/
<<widget "CustomSlaveDick">>
	<<replace #dick>>
		<<if $customSlave.dick == 0>>No penis.
		<<elseif $customSlave.dick == 2>>Small penis.
		<<else>>Large penis.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveBalls>>
%/
<<widget "CustomSlaveBalls">>
	<<replace #balls>>
		<<if $customSlave.balls == 0>>No testicles.
		<<elseif $customSlave.balls == 2>>Small testicles.
		<<elseif $customSlave.balls == 4>>Large testicles.
		<<else>>Huge Balls.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveClit>>
%/
<<widget "CustomSlaveClit">>
	<<replace #clit>>
		<<if $customSlave.clit == 0>>Normal clitoris.
		<<elseif $customSlave.clit == 1>>Big clitoris.
		<<elseif $customSlave.clit == 3>>Enormous clitoris.
		<<else>>Pseudophallus.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveLabia>>
%/
<<widget "CustomSlaveLabia">>
	<<replace #labia>>
		<<if $customSlave.labia == 0>>Normal labia.
		<<elseif $customSlave.labia == 1>>big labia.
		<<elseif $customSlave.labia == 2>>Huge labia.
		<<else>>Enormous labia.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveClitBalls>>
%/
<<widget "CustomSlaveClitBalls">>
	<<replace #clitballs>>
	<<if $customSlave.dick > 0>>
	<<if $customSlave.balls == 0>>No testicles.<<elseif $customSlave.balls == 2>>Small testicles.<<else>>Large testicles.<</if>>
	<<link "No testicles">>
		<<set $customSlave.balls = 0,$customSlave.clit = 0>>
		<<CustomSlaveClitBalls>>
	<</link>>
	|
	<<link "Small testicles">>
		<<set $customSlave.balls = 2,$customSlave.clit = 0>>
		<<CustomSlaveClitBalls>>
	<</link>>
	|
	<<link "Large testicles">>
		<<set $customSlave.balls = 4,$customSlave.clit = 0>>
		<<CustomSlaveClitBalls>>
	<</link>>
	<<else>>
	<<if $customSlave.clit == 0>>Normal clitoris.<<elseif $customSlave.clit == 0>>Big clitoris.<<else>>Enormous clitoris.<</if>>
	<<link "Normal clitoris">>
		<<set $customSlave.clit = 0>>
		<<CustomSlaveClitBalls>>
	<</link>>
	|
	<<link "Big clitoris">>
		<<set $customSlave.clit = 1>>
		<<CustomSlaveClitBalls>>
	<</link>>
	|
	<<link "Enormous clitoris">>
		<<set $customSlave.clit = 2>>
		<<CustomSlaveClitBalls>>
	<</link>>
	<br>
	<<if $customSlave.labia == 0>>Minimal labia.<<elseif $customSlave.labia == 1>>Normal labia.<<elseif $customSlave.labia == 2>>Huge labia.<<else>>Enormous labia.<</if>>
	<<link "Minimal labia">>
		<<set $customSlave.labia = 0>>
		<<CustomSlaveClitBalls>>
	<</link>>
	|
	<<link "Normal labia">>
		<<set $customSlave.labia = 1>>
		<<CustomSlaveClitBalls>>
	<</link>>
	|
	<<link "Huge labia">>
		<<set $customSlave.labia = 2>>
		<<CustomSlaveClitBalls>>
	<</link>>
	|
	<<link "Enormous labia">>
		<<set $customSlave.labia = 3>>
		<<CustomSlaveClitBalls>>
	<</link>>
	<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveLube>>
%/
<<widget "CustomSlaveLube">>
	<<replace #lube>>
		<<if $customSlave.vaginaLube == 0>>Dry vagina.
		<<elseif $customSlave.vaginaLube == 1>>Wet vagina.
		<<else>>Sopping wet vagina.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveAnalVirginity>>
%/
<<widget "CustomSlaveAnalVirginity">>
	<<replace #anus>>
		<<if $customSlave.analVirgin == 0>>Anal virgin.
		<<else>>Anal virginity is not important.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveAnus>>
%/
<<widget "CustomSlaveAnus">>
	<<replace #anus>>
		<<if $customSlave.anus == 0>>Anal virgin.
		<<else>>Normal anus.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveSkills>>
%/
<<widget "CustomSlaveSkills">>
	<<replace #skills>>
		<<if $customSlave.skills <= 10>>Sexually unskilled.
		<<elseif $customSlave.skills <= 35>>Basic sex skills.
		<<else>>Sexually skilled.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveWhoreSkills>>
%/
<<widget "CustomSlaveWhoreSkills">>
	<<replace #whoreskills>>
		<<if $customSlave.skill.whore <= 10>>Unskilled at prostitution and entertainment.
		<<elseif $customSlave.skill.whore <= 35>>Basic prostitution and entertainment skills.
		<<else>>Skilled at prostitution and entertainment.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveCombatSkills>>
%/
<<widget "CustomSlaveCombatSkills">>
	<<replace #combatskills>>
		<<if $customSlave.skill.combat == 0>>Unskilled at combat.
		<<else>>Skilled at combat.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveIntelligence>>
%/
<<widget "CustomSlaveIntelligence">>
	<<replace #intelligence>>
		<<if $customSlave.intelligence >= 3>>Brilliant.
		<<elseif $customSlave.intelligence == 2>>Very smart.
		<<elseif $customSlave.intelligence == 1>>Smart.
		<<elseif $customSlave.intelligence == 0>>Average intelligence.
		<<elseif $customSlave.intelligence == -1>>Stupid.
		<<elseif $customSlave.intelligence == -2>>Very stupid.
		<<else>>Moronic.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveEducation>>
%/
<<widget "CustomSlaveEducation">>
	<<replace #education>>
		<<if $customSlave.intelligenceImplant >= 30>>Well educated.
		<<elseif $customSlave.intelligenceImplant >= 15>>Educated.
		<<else>>Uneducated.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveNationality>>
%/
<<widget "CustomSlaveNationality">>
	<<replace #nationality>>
		Nationality: $customSlave.nationality.
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveEyes>>
%/
<<widget "CustomSlaveEyes">>
	<<replace #eyes>>
		<<if getBestVision($customSlave) === 2>>Normal vision.
		<<elseif getBestVision($customSlave) === 1>>Nearsighted.
		<<else>>Blind.
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveEars>>
%/
<<widget "CustomSlaveEars">>
	<<replace #hears>>
		<<if $seeExtreme == 1>>
			<<if $customSlave.hears == -2>>Deaf.
			<<elseif $customSlave.hears == -1>>Hard of hearing.
			<<else>>Normal.
			<</if>>
		<<else>>
			<<if $customSlave.hears == -1>>Hard of hearing.
			<<else>>Normal.
			<</if>>
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveSmell>>
%/
<<widget "CustomSlaveSmell">>
	<<replace #smelling>>
		<<if $seeExtreme == 1>>
			<<if $customSlave.smells == -1>>None.
			<<else>>Normal.
			<</if>>
		<</if>>
	<</replace>>
<</widget>>

/%
 Call as <<CustomSlaveTaste>>
%/
<<widget "CustomSlaveTaste">>
	<<replace #tasting>>
		<<if $seeExtreme == 1>>
			<<if $customSlave.tastes == -1>>None.
			<<else>>Normal.
			<</if>>
		<</if>>
	<</replace>>
<</widget>>

/%
	Call as <<MarketName 'market' ['arcology']>>
	If $args[0] is undefined, will generate a kidnapper's market slave.
	If $args[0] is "corporate" and $args[1] is undefined, will use neighboring arcology 1.
%/
<<widget MarketName>>
<<if $args[0]>>
	<<set _market = $args[0]>>
<<else>>
	<<set _market = "kidnappers">>
<</if>>

<<switch _market>>
<<case "corporate">>
	your corporation
<<case "neighbor">>
	<<if $args[1]>>
		<<print $arcologies[$args[1]].name>>
	<<else>>
		<<print $arcologies[1].name>>
	<</if>>
<<case "kidnappers">>
	the Kidnappers' Market
<<case "indentures">>
	the Indentures Market
<<case "hunters">>
	the Runaway Hunters' Market
<<case "raiders">>
	the Raiders' Market
<<case "underage raiders">>
	the Raiders' Black Market
<<case "heap">>
	the Flesh Heap as alive as when you purchased them.
<<case "wetware">>
	the Wetware CPU market
<<case "trainers">>
	the Trainers' Market
<<case "TSS">>
	The Slavegirl School
<<case "GRI">>
	Growth Research Institute
<<case "SCP">>
	St. Claver Preparatory
<<case "LDE">>
	L'école des Enculées
<<case "TGA">>
	The Gymnasium-Academy
<<case "TCR">>
	The Cattle Ranch
<<case "TFS">>
	The Futanari Sisters
<<case HA>>
	The Hippolyta Academy
<<case NUL>>
	Nueva Universidad de Libertad
<<case "low tier criminals" "gangs and smugglers" "white collar" "military prison">>
	the prisoner sale
<<default>>
	Someone messed up. _market is not known.

<</switch>>
<</widget>>

/%
	Call as <<MarketNamePeriod 'market' ['arcology']>>
	If $args[0] is undefined, will generate a kidnapper's market slave.
	If $args[0] is "corporate" and $args[1] is undefined, will use neighboring arcology 1.
%/
<<widget MarketNamePeriod>>
<<if $args[0]>>
	<<set _market = $args[0]>>
<<else>>
	<<set _market = "kidnappers">>
<</if>>

<<switch _market>>
<<case "corporate">>
	your corporation.
<<case "neighbor">>
	<<if $args[1]>>
		<<print $arcologies[$args[1]].name>>.
	<<else>>
		<<print $arcologies[1].name>>.
	<</if>>
<<case "kidnappers">>
	the Kidnappers' Market.
<<case "indentures">>
	the Indentures Market.
<<case "hunters">>
	the Runaway Hunters' Market.
<<case "raiders">>
	the Raiders' Market.
<<case "underage raiders">>
	the Raiders' Black Market.
<<case "heap">>
	the Flesh Heap, alive and not dead.
<<case "wetware">>
	the Wetware CPU market.
<<case "trainers">>
	the Trainers' Market.
<<case "TSS">>
	The Slavegirl School.
<<case "GRI">>
	Growth Research Institute.
<<case "SCP">>
	St. Claver Preparatory.
<<case "LDE">>
	L'école des Enculées.
<<case "TGA">>
	The Gymnasium-Academy.
<<case "TCR">>
	The Cattle Ranch.
<<case "TFS">>
	The Futanari Sisters.
<<case HA>>
	The Hippolyta Academy.
<<case NUL>>
	Nueva Universidad de Libertad.
<<case "low tier criminals" "gangs and smugglers" "white collar" "military prison">>
	the prisoner sale.
<<default>>
	Someone messed up. _market is not known.

<</switch>>
<</widget>>

/%
 Call as <<JFCSlave>>
%/
<<widget "JFCSlave">>
	<<set $activeSlaveOneTimeMinAge = 20>>
	<<set $activeSlaveOneTimeMaxAge = 36>>
	<<set $one_time_age_overrides_pedo_mode = 1>>
	<<set $oneTimeDisableDisability = 1>>
	<<set $activeSlave = GenerateNewSlave("XX")>>
	<<set $activeSlave.weight = random(-30,20), $activeSlave.waist = random(-30,10), $activeSlave.face = random(40,60)>>
	<<if $activeSlave.faceShape == "masculine">>
		<<set $activeSlave.faceShape = "sensual">>
	<</if>>
	<<if $activeSlave.boobShape == "saggy" || $activeSlave.boobShape == "downward-facing">>
		<<set $activeSlave.boobShape = "perky">>
	<</if>>
	<<run eyeSurgery($activeSlave, "both", "normal")>>
	<<set $activeSlave.hears = 0, $activeSlave.voice = 2>>
	<<set $activeSlave.intelligenceImplant = 30, $activeSlave.intelligence = random(20,100)>>
	<<set $activeSlave.trust = 80, $activeSlave.devotion = 80>>
	<<run setHealth($activeSlave, jsRandom(80,95), 0, 0, 0, 0)>>
	<<set $activeSlave.origin = "The Job Fulfillment Center offered $his contract to fill your request for a ">>
	<<set $activeSlave.origin += $Role>>
	<<set $activeSlave.origin += ".">>
	<<switch $Role>>
	/* Opens security */
		<<case "Lieutenant Colonel">>
			<<set $activeSlave.devotion = random(96,100), $activeSlave.trust = random(96, 100), $activeSlave.energy = random(96,100), $activeSlave.intelligence = 70, $activeSlave.skill.combat = 1>>
			<<set $activeSlave.career = either("a bodyguard", "a bouncer", "a bounty hunter", "a gang member", "a law enforcement officer", "a mercenary", "a prison guard", "a private detective", "a revolutionary", "a security guard", "a soldier", "a street thug", "a transporter", "an assassin", "an enforcer", "in a militia")>>
		<<case "Bodyguard">>
			<<set $activeSlave.devotion = 90, $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.weight = random(-10,10), $activeSlave.teeth = either("normal", "pointy"), $activeSlave.skill.combat = 1>>
			<<if jsRandom(0, 2) === 0>>
				<<run configureLimbs($activeSlave, "all", 5)>>
			<</if>>
			<<set $activeSlave.career = either("a bodyguard", "a kunoichi", "a law enforcement officer", "a military brat", "a revolutionary", "a soldier", "a transporter", "an assassin", "in a militia")>>
		<<case "Wardeness">>
			<<set $activeSlave.energy = random(80,100), $activeSlave.sexualFlaw = either("malicious", "none", "none", "none", "none"), $activeSlave.fetish = "sadist", $activeSlave.fetishStrength = 100, $activeSlave.muscles = random(50,80), $activeSlave.skill.combat = 1>>
			<<set $activeSlave.career = either("a bouncer", "a bounty hunter", "a gang member", "a mercenary", "a prison guard", "a private detective", "a security guard", "a street thug", "an enforcer")>>
			<<if $seeDicks > 0>>
				<<set $activeSlave.dick = random(3,6), $activeSlave.balls = random(3,6), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2,2,3)>>
			<</if>>
	/* Closes Security */
	/* Opens management */
		<<case "Headgirl">>
			<<set $activeSlave.devotion = 90, $activeSlave.trust = 100, $activeSlave.fetish = "dom", $activeSlave.fetishStrength = 100, $activeSlave.energy = random(70,90), $activeSlave.intelligence = random(60,100), $activeSlave.skill.entertainment = 100, $activeSlave.skill.whoring = 100, $activeSlave.skill.anal = 100, $activeSlave.skill.oral = 100, $activeSlave.skill.vaginal = 100, $activeSlave.career = either("a lawyer", "a military officer", "a politician")>>
			<<if $seeDicks > 0>>
				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(3,6), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,2)>>
			<</if>>
			<<set $activeSlave.vagina = random(3,4)>>
			<<if $AgePenalty == 1>>
				<<set $activeSlave.actualAge = random(36,$retirementAge-5)>>
			<<else>>
				<<set $activeSlave.actualAge = random(20,$retirementAge-5)>>
			<</if>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
		<<case "Teacher">>
			<<set $activeSlave.fetish = "dom", $activeSlave.fetishStrength = 100, $activeSlave.energy = random(70,90), $activeSlave.intelligence = 100, $activeSlave.skill.entertainment = 100, $activeSlave.skill.whoring = 100, $activeSlave.skill.anal = 100, $activeSlave.skill.oral = 100, $activeSlave.skill.vaginal = 100, $activeSlave.face = random(41,90), $activeSlave.career = either("a librarian", "a principal", "a private instructor", "a professor", "a scholar", "a scientist", "a teacher", "a teaching assistant")>>
			<<if $seeDicks > 0>>
				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(3,6), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2,2,3)>>
			<</if>>
			<<set $activeSlave.actualAge = random(36,$retirementAge-3)>>
			<<set $activeSlave.vagina = random(3,4)>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
		<<case "Nurse">>
			<<set $activeSlave.fetish = "dom", $activeSlave.fetishStrength = 100, $activeSlave.muscles = random(6,50), $activeSlave.face = random(41,90), $activeSlave.sexualQuirk = "caring", $activeSlave.career = either("a doctor", "a medic", "a medical student", "a nurse", "a paramedic"), $activeSlave.intelligence = random(40,90)>>
		<<case "Motherly Attendant">>
			<<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 100, $activeSlave.face = random(60,90)>>
			<<set $activeSlave.career = either("a counselor", "a dispatch officer", "a lifeguard", "a masseuse", "a psychologist", "a therapist"), $activeSlave.counter.birthsTotal = random(1,3), $activeSlave.pregKnown = 1, $activeSlave.preg = random(20,35), $activeSlave.pregWeek = $activeSlave.preg, $activeSlave.pregType = 1>>
			<<run SetBellySize($activeSlave)>>
			<<set $activeSlave.actualAge = random(36,$retirementAge-3)>>
			<<set $activeSlave.vagina = random(3,4)>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
		<<case "Attendant">>
			<<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 100, $activeSlave.preg = 0, $activeSlave.face = random(60,90), $activeSlave.career = either("a counselor", "a masseuse", "a therapist")>>
			<<run eyeSurgery($activeSlave, "both", either(0, 2, 2) === 2 ? "normal" : "blind")>>
			<<set $activeSlave.actualAge = random(26,$retirementAge-3)>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
		<<case "Matron">>
			<<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.sexualQuirk = "caring", $activeSlave.counter.birthsTotal = random(2,4), $activeSlave.vagina = 3, $activeSlave.face = random(60,90), $activeSlave.career = either( "a nanny", "a practitioner")>>
			<<run eyeSurgery($activeSlave, "both", "normal")>>
			<<set $activeSlave.actualAge = random(24,$retirementAge-3)>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
		<<case "Stewardess">>
			<<set $activeSlave.energy = random(70,90), $activeSlave.fetish = "dom", $activeSlave.fetishStrength = 100, $activeSlave.career = either("a barista", "a bartender", "a caregiver", "a charity worker", "a professional bartender", "a secretary", "a wedding planner", "an air hostess", "an estate agent", "an investor", "an office worker")>>
			<<if $AgePenalty == 1>>
				<<set $activeSlave.actualAge = random(36,$retirementAge-5)>>
			<<else>>
				<<set $activeSlave.actualAge = random(20,$retirementAge-5)>>
			<</if>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
		<<case "Milkmaid">>
			<<set $activeSlave.muscles = random(31,60), $activeSlave.skill.oral = random(31,60), $activeSlave.sexualQuirk = "caring", $activeSlave.behavioralQuirk = "funny", $activeSlave.career = either("a cowgirl", "a dairy worker", "a milkmaid", "a farmer's daughter", "a shepherd", "a veterinarian"), $activeSlave.intelligence = random(20,70)>>
			<<if $seeDicks > 0>>
				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(4,9), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2)>>
			<</if>>
		<<case "Farmer">>
			<<set $activeSlave.devotion = 80, $activeSlave.trust = 80, $activeSlave.muscles = random(41,70), $activeSlave.sexualQuirk = "caring", $activeSlave.career = either("a farmer", "a farmer's daughter", "a rancher", "a farmhand", "a zookeeper"), $activeSlave.intelligenceImplant = 30, $activeSlave.intelligence = random(20,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.weight = random(0,30)>>
			<<run setHealth($activeSlave, jsRandom(80, 95), 0, 0, 0, 0)>>
			<<if $seeDicks > 0>>
				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(4,9), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2)>>
			<</if>>
			<<if $AgePenalty == 1>>
				<<set $activeSlave.actualAge = random(36,$retirementAge-5)>>
			<<else>>
				<<set $activeSlave.actualAge = random(20,$retirementAge-5)>>
			<</if>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
	/* Closes management */
	/* Opens entertain */
		<<case "DJ">>
			<<set $activeSlave.skill.entertainment = 100, $activeSlave.muscles = random(6,30), $activeSlave.face = random(80,100), $activeSlave.career = either("a classical dancer", "a classical musician", "a dancer", "a house DJ", "a musician", "an aspiring pop star")>>
		<<case "Madam">>
			<<set $activeSlave.skill.whoring = 100, $activeSlave.career = either("a business owner", "a manager", "a pimp", "a procuress", "an innkeeper")>>
			<<if $seeDicks > 0>>
				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(3,5), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2)>>
			<</if>>
			<<if $AgePenalty == 1>>
				<<set $activeSlave.actualAge = random(36,$retirementAge-5)>>
			<<else>>
				<<set $activeSlave.actualAge = random(20,$retirementAge-5)>>
			<</if>>
			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
		<<case "Concubine">>
			<<set $activeSlave.prestige = 3, $activeSlave.energy = random(80,100), $activeSlave.skill.entertainment = 100, $activeSlave.skill.whoring = 100, $activeSlave.skill.anal = 100, $activeSlave.skill.oral = 100, $activeSlave.skill.vaginal = 100, $activeSlave.face = 100, $activeSlave.devotion = random(90,95), $activeSlave.trust = random(90,100)>>
		/* Closes Entertain */
		<</switch>>
<</widget>>

/%
 % Shows controls for buying and advancing the queue for buying slaves from a school
 % Arguments: none
 % Call as <<buyingFromMarketControls>>
 %/
<<widget "buyingFromMarketControls">>
<br>[["Decline to purchase " + $him + " and check out another slave"|passage()][$slavesSeen += 1]]
<<if $cash >= _slaveCost>>
	<br>[["Buy " + $him + " and check out other slaves to order"|passage()][cashX(forceNeg(_slaveCost), "slaveTransfer", $activeSlave),$newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
	<<if $newSlaves.length == 0>>
		<br>[["Buy " + $his + " slave contract"|New Slave Intro][cashX(forceNeg(_slaveCost), "slaveTransfer", $activeSlave),$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
	<<else>>
		<br>[["Buy " + $him + " and finish your order of slaves"|Bulk Slave Intro][cashX(forceNeg(_slaveCost), "slaveTransfer", $activeSlave), $newSlaves.push($activeSlave)]]
	<</if>>
<<else>>
	<br>//You lack the necessary funds to buy this slave.//
<</if>>
<<if $newSlaves.length > 0>>
	<br>[[Finish your order of slaves|Bulk Slave Intro]]
<</if>>
<br><br>
<<if App.Data.misc.lawlessMarkets.includes($slaveMarket)>>
	<<set $applyLaw = 0>>
<<else>>
	<<set $applyLaw = 1>>
<</if>>
<<set $saleDescription = 1>><<include "Long Slave Description">>
<</widget>>

/%
 % Shows controls for buying and advancing the queue for buying slaves from a school
 % Arguments:
 % 0: school
 % 1: name for a single slave ("slave", "cow", etc.)
 % 2: name for a bunch of them ("slaves", "cattle", etc.)
 % Call as <<buyingFromSchoolControls $TCR "cow" "cattle">>
 %/
<<widget "buyingFromSchoolControls">>
<br>[["Decline to purchase " + $him + " and check out another " + $args[1]|passage()][$slavesSeen += 1]]
<<if $cash >= _slaveCost>>
	<<set _schoolToBuyFrom = $args[0]>>
	<br>[["Buy " + $him + " and check out other " + $args[2] + " to order"|passage()][cashX(forceNeg(_slaveCost), "slaveTransfer", $activeSlave), _schoolToBuyFrom.schoolSale = 0, _schoolToBuyFrom.studentsBought += 1, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
	<<if $newSlaves.length == 0>>
		<br>[["Buy " + $his + " slave contract"|New Slave Intro][cashX(forceNeg(_slaveCost), "slaveTransfer", $activeSlave), _schoolToBuyFrom.schoolSale = 0, _schoolToBuyFrom.studentsBought += 1, $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Main"]]
	<<else>>
		<br>[["Buy " + $him + " and finish your order of " + $args[2]|Bulk Slave Intro][cashX(forceNeg(_slaveCost), "slaveTransfer", $activeSlave), _schoolToBuyFrom.schoolSale = 0, _schoolToBuyFrom.studentsBought += 1, $newSlaves.push($activeSlave)]]
	<</if>>
<<else>>
	<br>//You lack the necessary funds to buy this $args[1].//
<</if>>
<<if $newSlaves.length > 0>>
	<br>[["Finish your order of " + $args[2]|"Bulk Slave Intro"]]
<</if>>

<br><br>
<<set $saleDescription = 1>><<include "Long Slave Description">>
<</widget>>


code:
/* subscribe to game save/load events */
Config.saves.onLoad = App.EventHandlers.onLoad;
Config.saves.onSave = App.EventHandlers.onSave;

$(document).on(':storyready', function() {
	App.EventHandlers.storyReady();
});

$(document).one(':passagestart', function() {
	App.EventHandlers.optionsChanged();
});

$(document).on(':passagestart', function() {
	Object.defineProperty(State.temporary, "S", {
		get: () => S
	});
});

$(document).on("passageinit", () => {
	if (V.passageSwitchHandler) {
		V.passageSwitchHandler();
		delete V.passageSwitchHandler;
	}
});

repo_name: KnightBoulegard/fc

license: mit


code:
[submodule "submodules/sugarcube-2"]
	branch = fc


code:
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs     diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln       merge=binary
#*.csproj    merge=binary
#*.vbproj    merge=binary
#*.vcxproj   merge=binary
#*.vcproj    merge=binary
#*.dbproj    merge=binary
#*.fsproj    merge=binary
#*.lsproj    merge=binary
#*.wixproj   merge=binary
#*.modelproj merge=binary
#*.sqlproj   merge=binary
#*.wwaproj   merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg   binary
#*.png   binary
#*.gif   binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc   diff=astextplain
#*.DOC   diff=astextplain
#*.docx  diff=astextplain
#*.DOCX  diff=astextplain
#*.dot   diff=astextplain
#*.DOT   diff=astextplain
#*.pdf   diff=astextplain
#*.PDF   diff=astextplain
#*.rtf   diff=astextplain
#*.RTF   diff=astextplain

repo_name: Hungarianmonarchy/RimJobWorld

path: .gitattributes


code:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# DNX
project.lock.json
project.fragment.lock.json
artifacts/

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
#*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush
.cr/

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
/Archived
/MyTo-Do.txt
/LL_post.txt
/creditsnew.txt

path: .gitignore


code:
<?xml version="1.0" encoding="utf-8"?>

<ModMetaData>
	<name>RimJobWorld</name>
	<author>Void Main & RimJobWorld Community Project Team</author>
	<targetVersion>0.18.1722</targetVersion>
	<description> </description>
</ModMetaData>


code:
<?xml version="1.0" encoding="utf-8" ?>

<Defs>
	<BodyPartDef>
		<defName>InsectGenitals</defName>
		insectGenitals
		<hitPoints>20</hitPoints>
		<frostbiteVulnerability>0.1</frostbiteVulnerability>
		<oldInjuryBaseChance>0.015</oldInjuryBaseChance>
		<skinCovered>true</skinCovered>
		<isSolid>true</isSolid>
		<dontSuggestAmputation>false</dontSuggestAmputation>
		<bleedingRateMultiplier>1.0</bleedingRateMultiplier>
		<tags>

RJW_FertilitySource

		</tags>
	</BodyPartDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>

<Defs>
	<BodyPartDef>
		<defName>MechGenitals</defName>
		mechGenitals
		<hitPoints>20</hitPoints>
		<frostbiteVulnerability>0.1</frostbiteVulnerability>
		<oldInjuryBaseChance>0.015</oldInjuryBaseChance>
		<skinCovered>true</skinCovered>
		<isSolid>true</isSolid>
		<dontSuggestAmputation>false</dontSuggestAmputation>
		<bleedingRateMultiplier>1.0</bleedingRateMultiplier>
		<tags>

RJW_FertilitySource

		</tags>
	</BodyPartDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<BodyPartDef>
		<defName>Genitals</defName>
		genitals
		<hitPoints>12</hitPoints>
		<frostbiteVulnerability>0.1</frostbiteVulnerability>
		<oldInjuryBaseChance>0.015</oldInjuryBaseChance>
		<skinCovered>true</skinCovered>
		<isSolid>false</isSolid>
		<dontSuggestAmputation>false</dontSuggestAmputation>
		<bleedingRateMultiplier>1.0</bleedingRateMultiplier>
		<tags>

RJW_FertilitySource

		</tags>
	</BodyPartDef>

	<BodyPartDef>
		<defName>Chest</defName>
		chest
		<hitPoints>12</hitPoints>
		<frostbiteVulnerability>0.1</frostbiteVulnerability>
		<oldInjuryBaseChance>0.015</oldInjuryBaseChance>
		<skinCovered>true</skinCovered>
		<isSolid>false</isSolid>
		<dontSuggestAmputation>true</dontSuggestAmputation>
		<bleedingRateMultiplier>1.0</bleedingRateMultiplier>
	</BodyPartDef>

	<BodyPartDef>
		<defName>Anus</defName>
		anus
		<hitPoints>8</hitPoints>
		<frostbiteVulnerability>0.1</frostbiteVulnerability>
		<oldInjuryBaseChance>0.015</oldInjuryBaseChance>
		<skinCovered>true</skinCovered>
		<isSolid>false</isSolid>
		<dontSuggestAmputation>false</dontSuggestAmputation>
		<bleedingRateMultiplier>1.0</bleedingRateMultiplier>
	</BodyPartDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<HediffDef>
		<defName>Armbinder</defName>
		<hediffClass>Hediff</hediffClass>
		<defaultLabelColor>(0.5, 0.5, 0.9)</defaultLabelColor>
		armbinder
		<makesSickThought>false</makesSickThought>
		<tendable>false</tendable>
		<stages>

				<capMods>

						<capacity>Manipulation</capacity>
						<setMax>0.00</setMax>

				</capMods>

		</stages>
	</HediffDef>

	<HediffDef>
		<defName>Gag</defName>
		<hediffClass>Hediff</hediffClass>
		<defaultLabelColor>(0.5, 0.5, 0.9)</defaultLabelColor>
		gag
		<makesSickThought>false</makesSickThought>
		<tendable>false</tendable>
		<stages>

				<capMods>

						<capacity>Talking</capacity>
						<setMax>0.00</setMax>

						<capacity>Eating</capacity>
						<offset>-0.75</offset>

				</capMods>

		</stages>
	</HediffDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<ThingDef>
		<defName>Hololock</defName>
		Hololock
		<description>
			A high-tech locking mechanism. Features include:
			- Extremely hardy, plasteel-reinforced build
			- Key and lock paired using a cryptographic UID holographically embedded in a jade substrate, ensuring counterfeit keys are impossible to produce
			- Self-destruct failsafe triggers when the lock is tampered with, ensuring that the protected item is destroyed rather than captured by the enemy

			Originally designed for military use, the hololock has since become popular in the BDSM community, where it is customary to engrave a key and lock pair with matching names so they are easier to identify.
		</description>
		<thingClass>ThingWithComps</thingClass>
		<category>Item</category>
		<thingCategories>

Manufactured

		</thingCategories>
		<useHitPoints>true</useHitPoints>
		<selectable>true</selectable>
		<statBases>
			<MaxHitPoints>500</MaxHitPoints>
			<Flammability>0.0</Flammability>
			<DeteriorationRate>0.1</DeteriorationRate>
			<Beauty>-6</Beauty>
			<MarketValue>400</MarketValue>
			<Mass>0.5</Mass>
		</statBases>
		<altitudeLayer>Item</altitudeLayer>
		<tickerType>Never</tickerType>
		<alwaysHaulable>true</alwaysHaulable>
		<tradeTags>

Exotic

		</tradeTags>
		<comps>

		</comps>
		<pathCost>2</pathCost>
		<graphicData>
			<texPath>hololock</texPath>
			<graphicClass>Graphic_Single</graphicClass>
		</graphicData>
	</ThingDef>

	<ThingDef>
		<defName>Holokey</defName>
		Holokey
		<description>A high-tech key. Releases the lock on an item with a matching cryptographic stamp.</description>
		<thingClass>ThingWithComps</thingClass>
		<category>Item</category>
		<thingCategories>

Manufactured

		</thingCategories>
		<useHitPoints>true</useHitPoints>
		<selectable>true</selectable>
		<statBases>
			<MaxHitPoints>50</MaxHitPoints>
			<Flammability>0.2</Flammability>
			<DeteriorationRate>0.5</DeteriorationRate>
			<Beauty>0</Beauty>
			<MarketValue>100</MarketValue>
			<Mass>0.1</Mass>
		</statBases>
		<altitudeLayer>Item</altitudeLayer>
		<tickerType>Never</tickerType>
		<alwaysHaulable>true</alwaysHaulable>
		<tradeTags>

Exotic

		</tradeTags>
		<tradeability>Sellable</tradeability>
		<comps>

				<compClass>rjw.CompStampedApparelKey</compClass>
				<useJob>UnlockBondageGear</useJob>
				<useLabel>Unlock apparel</useLabel>

				<compClass>rjw.CompUnlockBondageGear</compClass>

		</comps>
		<pathCost>1</pathCost>
		<graphicData>
			<texPath>holokey</texPath>
			<graphicClass>Graphic_Single</graphicClass>
		</graphicData>
	</ThingDef>

	<rjw.bondage_gear_def Name="BondageGearBase" Abstract="True">
		<thingClass>rjw.bondage_gear</thingClass>
		<category>Item</category>
		<thingCategories>

Apparel

		</thingCategories>
		<useHitPoints>true</useHitPoints>
		<selectable>true</selectable>
		<drawGUIOverlay>true</drawGUIOverlay>
		<altitudeLayer>Item</altitudeLayer>
		<tickerType>Never</tickerType>
		<alwaysHaulable>true</alwaysHaulable>
		<canBeSpawningInventory>false</canBeSpawningInventory>
		<tradeTags>

Exotic

		</tradeTags>
		<tradeNeverStack>true</tradeNeverStack>
		<comps>

				<compClass>rjw.CompBondageGear</compClass>
				<useJob>GiveBondageGear</useJob>
				<useLabel>Equip</useLabel>

				<compClass>rjw.CompGetBondageGear</compClass>

		</comps>
		<pathCost>10</pathCost>
	</rjw.bondage_gear_def>

	<rjw.bondage_gear_def ParentName="BondageGearBase">
		<defName>Armbinder</defName>
		armbinder
		<description>A high-tech armbinder. It prevents any pawn it's attached to from using their arms.</description>
		<thingClass>rjw.armbinder</thingClass>
		<graphicData>
			<texPath>armbinder</texPath>
			<graphicClass>Graphic_Single</graphicClass>
		</graphicData>
		<statBases>
			<MaxHitPoints>250</MaxHitPoints>
			<Flammability>0.3</Flammability>
			<DeteriorationRate>1.0</DeteriorationRate>
			<Beauty>-6</Beauty>
			<MarketValue>850</MarketValue>
			<Mass>4</Mass>
			<ArmorRating_Blunt>0.15</ArmorRating_Blunt>
			<ArmorRating_Sharp>0.25</ArmorRating_Sharp>
			<Insulation_Cold>-4</Insulation_Cold>
		</statBases>
		<apparel>
			<bodyPartGroups>

Arms

LeftHand

RightHand

			</bodyPartGroups>
			<layers>

Shell

			</layers>

		</apparel>
		<soul_type>rjw.bondage_gear_soul</soul_type>
		<equipped_hediff>Armbinder</equipped_hediff>
		<gives_bound_moodlet>true</gives_bound_moodlet>
		<gives_gagged_moodlet>false</gives_gagged_moodlet>
	</rjw.bondage_gear_def>

	<rjw.bondage_gear_def ParentName="BondageGearBase">
		<defName>Gag</defName>
		gag
		<description>A high-tech gag. It prevents any pawn it's attached to from talking.</description>
		<thingClass>rjw.bondage_gear</thingClass>
		<graphicData>
			<texPath>gag</texPath>
			<graphicClass>Graphic_Single</graphicClass>
		</graphicData>
		<statBases>
			<MaxHitPoints>150</MaxHitPoints>
			<Flammability>0.2</Flammability>
			<DeteriorationRate>1.0</DeteriorationRate>
			<Beauty>-6</Beauty>
			<MarketValue>550</MarketValue>
			<Mass>1</Mass>
		</statBases>
		<apparel>
			<bodyPartGroups>

FullHead

			</bodyPartGroups>
			<layers>

OnSkin

			</layers>

		</apparel>
		<soul_type>rjw.bondage_gear_soul</soul_type>
		<equipped_hediff>Gag</equipped_hediff>
		<gives_bound_moodlet>false</gives_bound_moodlet>
		<gives_gagged_moodlet>true</gives_gagged_moodlet>
	</rjw.bondage_gear_def>

	<rjw.bondage_gear_def ParentName="BondageGearBase">
		<defName>ChastityBelt</defName>
		chastity belt
		<description>A high-tech chastity belt. It prevents sex and masturbation.</description>
		<thingClass>rjw.bondage_gear</thingClass>
		<graphicData>
			<texPath>chastity_belt</texPath>
			<graphicClass>Graphic_Single</graphicClass>
		</graphicData>
		<statBases>
			<MaxHitPoints>300</MaxHitPoints>
			<Flammability>0.1</Flammability>
			<DeteriorationRate>0.5</DeteriorationRate>
			<Beauty>-6</Beauty>
			<MarketValue>1200</MarketValue>
			<Mass>3</Mass>
		</statBases>
		<apparel>

			<bodyPartGroups>

Legs

			</bodyPartGroups>

			<layers>

Shell

			</layers>

		</apparel>
		<equippedStatOffsets>
			<SexAbility>-9.99</SexAbility>
		</equippedStatOffsets>
		<soul_type>rjw.bondage_gear_soul</soul_type>

		<gives_bound_moodlet>true</gives_bound_moodlet>
		<gives_gagged_moodlet>false</gives_gagged_moodlet>
		<blocks_genitals>true</blocks_genitals>
	</rjw.bondage_gear_def>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<RecipeDef>
		<defName>MakeHololock</defName>
		make hololock
		<description>Make a hololock.</description>
		<jobString>Making hololock.</jobString>
		<workSpeedStat>SmithingSpeed</workSpeedStat>
		<effectWorking>Cook</effectWorking>
		<soundWorking>Recipe_Machining</soundWorking>
		<workAmount>9000</workAmount>
		<unfinishedThingDef>UnfinishedComponent</unfinishedThingDef>
		<ingredients>

				<filter>
					<thingDefs>

Plasteel

					</thingDefs>
				</filter>
				<count>20</count>

				<filter>
					<thingDefs>

Component

					</thingDefs>
				</filter>
				<count>4</count>

				<filter>
					<thingDefs>

Jade

					</thingDefs>
				</filter>
				<count>2</count>

		</ingredients>
		<fixedIngredientFilter>
			<thingDefs>

Plasteel

Component

Jade

			</thingDefs>
		</fixedIngredientFilter>
		<products>
			<Hololock>1</Hololock>
		</products>
		<skillRequirements>
			<Crafting>6</Crafting>
		</skillRequirements>
		<workSkill>Crafting</workSkill>
	</RecipeDef>

	<RecipeDef>
		<defName>MakeArmbinder</defName>
		make armbinder
		<description>Make an armbinder.</description>
		<jobString>Making armbinder.</jobString>
		<workSpeedStat>TailoringSpeed</workSpeedStat>
		<soundWorking>Recipe_Tailor</soundWorking>
		<workAmount>5000</workAmount>
		<unfinishedThingDef>UnfinishedApparel</unfinishedThingDef>
		<ingredients>

				<filter>
					<thingDefs>

DevilstrandCloth

					</thingDefs>
				</filter>
				<count>50</count>

				<filter>
					<thingDefs>

Steel

					</thingDefs>
				</filter>
				<count>30</count>

				<filter>
					<thingDefs>

Hololock

					</thingDefs>
				</filter>
				<count>1</count>

		</ingredients>
		<fixedIngredientFilter>
			<thingDefs>

DevilstrandCloth

Steel

Hololock

			</thingDefs>
		</fixedIngredientFilter>
		<products>
			<Armbinder>1</Armbinder>
		</products>
		<skillRequirements>
			<Crafting>6</Crafting>
		</skillRequirements>
		<workSkill>Crafting</workSkill>
	</RecipeDef>

	<RecipeDef>
		<defName>MakeGag</defName>
		make gag
		<description>Make a gag.</description>
		<jobString>Making gag.</jobString>
		<workSpeedStat>TailoringSpeed</workSpeedStat>
		<soundWorking>Recipe_Tailor</soundWorking>
		<workAmount>1500</workAmount>
		<unfinishedThingDef>UnfinishedApparel</unfinishedThingDef>
		<ingredients>

				<filter>
					<thingDefs>

DevilstrandCloth

					</thingDefs>
				</filter>
				<count>15</count>

				<filter>
					<thingDefs>

Steel

					</thingDefs>
				</filter>
				<count>10</count>

				<filter>
					<thingDefs>

Hololock

					</thingDefs>
				</filter>
				<count>1</count>

		</ingredients>
		<fixedIngredientFilter>
			<thingDefs>

DevilstrandCloth

Steel

Hololock

			</thingDefs>
		</fixedIngredientFilter>
		<products>
			<Gag>1</Gag>
		</products>
		<skillRequirements>
			<Crafting>4</Crafting>
		</skillRequirements>
		<workSkill>Crafting</workSkill>
	</RecipeDef>

	<RecipeDef>
		<defName>MakeChastityBelt</defName>
		make chastity belt
		<description>Make a chastity belt.</description>
		<jobString>Making chastity belt.</jobString>
		<workSpeedStat>TailoringSpeed</workSpeedStat>
		<soundWorking>Recipe_Tailor</soundWorking>
		<workAmount>4000</workAmount>
		<unfinishedThingDef>UnfinishedApparel</unfinishedThingDef>
		<ingredients>

				<filter>
					<thingDefs>

Plasteel

					</thingDefs>
				</filter>
				<count>50</count>

				<filter>
					<thingDefs>

Hololock

					</thingDefs>
				</filter>
				<count>1</count>

		</ingredients>
		<fixedIngredientFilter>
			<thingDefs>

Plasteel

Hololock

			</thingDefs>
		</fixedIngredientFilter>
		<products>
			<ChastityBelt>1</ChastityBelt>
		</products>
		<skillRequirements>
			<Crafting>4</Crafting>
		</skillRequirements>
		<workSkill>Crafting</workSkill>
	</RecipeDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<rjw.force_off_gear_def Abstract="True" Name="ForceOffGenericGear">
		<workerClass>rjw.Recipe_ForceOffGear</workerClass>
		<effectWorking>Surgery</effectWorking>
		<soundWorking>Recipe_Surgery</soundWorking>
		<workSpeedStat>MedicalOperationSpeed</workSpeedStat>
		<workSkill>Medicine</workSkill>
		<workSkillLearnFactor>8</workSkillLearnFactor>
		<workAmount>1500</workAmount>
		<surgerySuccessChanceFactor>2.0</surgerySuccessChanceFactor>
		<deathOnFailedSurgeryChance>0.0</deathOnFailedSurgeryChance>

		<targetsBodyPart>true</targetsBodyPart>
		<ingredients>

				<filter>
					<categories>

Medicine

					</categories>
				</filter>
				<count>1</count>

		</ingredients>
		<fixedIngredientFilter>
			<categories>

Medicine

			</categories>
		</fixedIngredientFilter>
		<recipeUsers>

Human

		</recipeUsers>
	</rjw.force_off_gear_def>

	<rjw.force_off_gear_def ParentName="ForceOffGenericGear">
		<defName>ForceOffArmbinder</defName>
		force off armbinder
		<description>Forcibly removes an armbinder without the key at the cost of significant damage to the wearer.</description>
		<jobString>Forcibly removing armbinder.</jobString>
		<removes_apparel>Armbinder</removes_apparel>
		<failure_affects>Torso</failure_affects>
		<destroys_one_of>

LeftHand

RightHand

		</destroys_one_of>
		<major_burns_on>

LeftHand

RightHand

LeftArm

RightArm

		</major_burns_on>
		<minor_burns_on>

Torso

		</minor_burns_on>
	</rjw.force_off_gear_def>

	<rjw.force_off_gear_def ParentName="ForceOffGenericGear">
		<defName>ForceOffGag</defName>
		force off gag
		<description>Forcibly removes a gag without the key at the cost of significant damage to the wearer.</description>
		<jobString>Forcibly removing gag.</jobString>
		<removes_apparel>Gag</removes_apparel>
		<failure_affects>Head</failure_affects>
		<destroys_one_of>

Jaw

		</destroys_one_of>
		<major_burns_on>

Head

Neck

		</major_burns_on>
	</rjw.force_off_gear_def>

	<rjw.force_off_gear_def ParentName="ForceOffGenericGear">
		<defName>ForceOffChastityBelt</defName>
		force off chastity belt
		<description>Forcibly removes a chastity belt without the key at the cost of significant damage to the wearer.</description>
		<jobString>Forcibly removing chastity belt.</jobString>
		<removes_apparel>ChastityBelt</removes_apparel>
		<failure_affects>Torso</failure_affects>
		<destroys_one_of>

Genitals

		</destroys_one_of>
		<major_burns_on>

Torso

		</major_burns_on>
		<minor_burns_on>

LeftLeg

RightLeg

		</minor_burns_on>
	</rjw.force_off_gear_def>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<ThoughtDef>
		<defName>Bound</defName>
		<workerClass>rjw.ThoughtWorker_Bound</workerClass>
		<validWhileDespawned>true</validWhileDespawned>
		<nullifyingTraits>

Masochist

		</nullifyingTraits>
		<stages>

				bound
				<description>This thing is seriously annoying. I wish I could take it off.</description>
				<baseMoodEffect>-5</baseMoodEffect>

				gagged
				<description>Ish shnn ish shrrrrsh uhnnninnn</description>
				<baseMoodEffect>-4</baseMoodEffect>

				bound and gagged
				<description>Ufff ish hhhh shrrrnnn shhhrrr! hhhek shi thfffff!</description>
				<baseMoodEffect>-8</baseMoodEffect>

		</stages>
	</ThoughtDef>

	<ThoughtDef>
		<defName>MasochistBound</defName>
		<workerClass>rjw.ThoughtWorker_Bound</workerClass>
		<validWhileDespawned>true</validWhileDespawned>
		<requiredTraits>

Masochist

		</requiredTraits>
		<stages>

				masochist bound
				<description>Heh... heh heh...</description>
				<baseMoodEffect>5</baseMoodEffect>

				masochist gagged
				<description>Nnnn shsh hhhch uhnnn</description>
				<baseMoodEffect>4</baseMoodEffect>

				masochist bound and gagged
				<description>Shnnn ihhh shrrr fff shnnn... shsh chhhnnn uhfsh~!</description>
				<baseMoodEffect>8</baseMoodEffect>

		</stages>
	</ThoughtDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8"?>
<Defs>

	<ConceptDef>
		<defName>WhoreBeds</defName>
		Whore beds
		<priority>50</priority>
		<needsOpportunity>True</needsOpportunity>
		<helpText>Whores prefer to work in beds.\n\nThere are specific whore beds you can build for them.</helpText>
		<highlightTags>

MainTab-Architect-Closed

DesignationCategoryButton-Furniture-Closed

Designator-Build-WhoreBed

		</highlightTags>
	</ConceptDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<DamageDef>
		<defName>ViralDamage</defName>
		<workerClass>DamageWorker_AddInjury</workerClass>
		<label>viral damage</label>
		<externalViolence>false</externalViolence>
		<deathMessage>{0} has died of disease.</deathMessage>
		<hediff>VirusPerma</hediff>
		<hediffSkin>VirusPerma</hediffSkin>
		<hediffSolid>VirusPerma</hediffSolid>
		<makesBlood>false</makesBlood>
		<harmAllLayersUntilOutside>false</harmAllLayersUntilOutside>
	</DamageDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<ArchitectSense.DesignationSubCategoryDef>
		<defName>SubCategory_Whore_Beds</defName>
		Whore Beds
		<description>Beds for whores.</description>
		<defNames>

WhoreSleepingSpot

BedWhore

DoubleBedWhore

RoyalBedWhore

		</defNames>
		<designationCategory>Furniture</designationCategory>
	</ArchitectSense.DesignationSubCategoryDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<DesignationDef>
		<defName>ComfortPrisoner</defName>
		<texturePath>UI/Commands/comfort_prisoner_true</texturePath>
		<targetType>Thing</targetType>
	</DesignationDef>

	<DesignationDef>
		<defName>ComfortPrisonerNoSticky</defName>
		<texturePath>UI/Commands/comfort_prisoner_invisible</texturePath>
		<targetType>Thing</targetType>
	</DesignationDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>

<Defs>

	<rjw.HediffDef_InsectEgg Name="RJW_ImplantEgg" Abstract="True">
		<defName>RJW_InsectEgg</defName>
		<hediffClass>rjw.Hediff_InsectEgg</hediffClass>
		<defaultLabelColor>(0.8, 0.8, 0.35)</defaultLabelColor>
		<initialSeverity>0.1</initialSeverity>
		<isBad>true</isBad>
		<tendable>false</tendable>
	</rjw.HediffDef_InsectEgg>

	<rjw.HediffDef_InsectEgg ParentName="RJW_ImplantEgg">
		<defName>RJW_MegascarabEgg</defName>
		Megascarab's Egg
		<parentDef>Megascarab</parentDef>
		<bornTick>500000</bornTick>
	</rjw.HediffDef_InsectEgg>
	<rjw.HediffDef_InsectEgg ParentName="RJW_ImplantEgg">
		<defName>RJW_MegaspiderEgg</defName>
		Megaspider's Egg
		<parentDef>Megaspider</parentDef>
		<bornTick>700000</bornTick>
	</rjw.HediffDef_InsectEgg>
	<rjw.HediffDef_InsectEgg ParentName="RJW_ImplantEgg">
		<defName>RJW_SpelopedeEgg</defName>
		Spelopede's Egg
		<parentDef>Spelopede</parentDef>
		<bornTick>600000</bornTick>
	</rjw.HediffDef_InsectEgg>

  <rjw.HediffDef_MechImplants Name="RJW_ImplantMech" Abstract="True">
		<hediffClass>rjw.Hediff_MechImplants</hediffClass>
		<defaultLabelColor>(0.8, 0.8, 0.35)</defaultLabelColor>
		<initialSeverity>0.1</initialSeverity>
		<parentDefs>

Mechanoid_Scyther

Mechanoid_Centipede

		</parentDefs>
		<tendable>false</tendable>
	</rjw.HediffDef_MechImplants>

  <rjw.HediffDef_MechImplants ParentName="RJW_ImplantMech">
		<hediffClass>rjw.Hediff_MicroComputer</hediffClass>
		<defName>RJW_MicroComputer</defName>
		<tendable>false</tendable>
		<isBad>true</isBad>
		MicroComputer
		<minEventInterval>30000</minEventInterval>
		<maxEventInterval>90000</maxEventInterval>
		<randomHediffDefs>

RJW_Orgasm

TransportCums

		</randomHediffDefs>
	</rjw.HediffDef_MechImplants>

	<rjw.HediffDef_EnemyImplants>
		<defName>Parasite</defName>
		<hediffClass>rjw.Hediff_Parasite</hediffClass>
		<defaultLabelColor>(0.7, 1.0, 0.7)</defaultLabelColor>
		<initialSeverity>0.1</initialSeverity>
		pregnant
		<comps>

				<sendLetterWhenDiscovered>true</sendLetterWhenDiscovered>
				<discoverLetterLabel>{0} Parasited</discoverLetterLabel>
				<discoverLetterText>{0} is parasited!</discoverLetterText>

		</comps>
		<stages>

				early-stage-hidden

				<vomitMtbDays>2.5</vomitMtbDays>

				middle-stage
				<minSeverity>0.333</minSeverity>
				<capMods>

						<capacity>Moving</capacity>
						<offset>-0.15</offset>

				</capMods>

				late-stage
				<minSeverity>0.666</minSeverity>
				<vomitMtbDays>2</vomitMtbDays>
				<capMods>

						<capacity>Moving</capacity>
						<offset>-0.30</offset>

				</capMods>

		</stages>
	</rjw.HediffDef_EnemyImplants>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<HediffDef>
		<defName>FeelingBroken</defName>
		<hediffClass>HediffWithComps</hediffClass>
		Stages to broken body
		<defaultLabelColor>(0.5, 0.7, 0.45)</defaultLabelColor>
		<makesSickThought>false</makesSickThought>
		<initialSeverity>0.1</initialSeverity>
		<maxSeverity>1</maxSeverity>
		<scenarioCanAdd>true</scenarioCanAdd>
		<tendable>false</tendable>
		<comps>

				<severityPerDay>-0.025</severityPerDay>

		</comps>
		<stages>

				In a trance
				<painOffset>0.1</painOffset>
				<capMods>

						<capacity>Consciousness</capacity>
						<postFactor>0.8</postFactor>

						<capacity>Manipulation</capacity>
						<postFactor>0.8</postFactor>

				</capMods>

				Broken body
				<minSeverity>0.101</minSeverity>
				<painOffset>0.05</painOffset>
				<capMods>

						<capacity>Consciousness</capacity>
						<postFactor>0.65</postFactor>

						<capacity>Manipulation</capacity>
						<postFactor>0.65</postFactor>

						<capacity>Moving</capacity>
						<postFactor>0.9</postFactor>

						<capacity>Talking</capacity>
						<postFactor>0.9</postFactor>

				</capMods>
				<statOffsets>
					<Vulnerability>0.25</Vulnerability>
				</statOffsets>

				Extremely broken body
				<minSeverity>0.501</minSeverity>
				<capMods>

						<capacity>Consciousness</capacity>
						<postFactor>0.4</postFactor>

						<capacity>Manipulation</capacity>
						<postFactor>0.4</postFactor>

						<capacity>Moving</capacity>
						<postFactor>0.7</postFactor>

						<capacity>Talking</capacity>
						<postFactor>0.8</postFactor>

				</capMods>
				<statOffsets>
					<Vulnerability>0.5</Vulnerability>
				</statOffsets>

		</stages>
	</HediffDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
  <HediffDef>
    <defName>RJW_Orgasm</defName>
    <hediffClass>rjw.Hediff_Orgasm</hediffClass>
    Orgasm
    <defaultLabelColor>(0.5, 0.7, 0.45)</defaultLabelColor>
    <makesSickThought>false</makesSickThought>
    <initialSeverity>0.1</initialSeverity>
    <maxSeverity>1</maxSeverity>
    <scenarioCanAdd>false</scenarioCanAdd>
    <tendable>false</tendable>
    <comps>

        <severityPerDay>-1</severityPerDay>

    </comps>
    <stages>

        Slightly
        <capMods>

            <capacity>Consciousness</capacity>
            <postFactor>0.9</postFactor>

            <capacity>Manipulation</capacity>
            <postFactor>0.9</postFactor>

            <capacity>Moving</capacity>
            <postFactor>0.9</postFactor>

            <capacity>Talking</capacity>
            <postFactor>0.9</postFactor>

        </capMods>
        <statOffsets>
          <Vulnerability>0.2</Vulnerability>
        </statOffsets>

        Heavy
        <minSeverity>0.2</minSeverity>
        <capMods>

            <capacity>Consciousness</capacity>
            <postFactor>0.65</postFactor>

            <capacity>Manipulation</capacity>
            <postFactor>0.65</postFactor>

            <capacity>Moving</capacity>
            <postFactor>0.65</postFactor>

            <capacity>Talking</capacity>
            <postFactor>0.65</postFactor>

        </capMods>
        <statOffsets>
          <Vulnerability>0.3</Vulnerability>
        </statOffsets>

        Extremely
        <minSeverity>0.501</minSeverity>
        <capMods>

            <capacity>Consciousness</capacity>
            <postFactor>0.3</postFactor>

            <capacity>Manipulation</capacity>
            <postFactor>0.65</postFactor>

            <capacity>Moving</capacity>
            <postFactor>0.2</postFactor>

            <capacity>Talking</capacity>
            <postFactor>0.5</postFactor>

        </capMods>
        <statOffsets>
          <Vulnerability>0.6</Vulnerability>
        </statOffsets>

    </stages>
  </HediffDef>

  <HediffDef>
    <defName>TransportCums</defName>
    <hediffClass>rjw.Hediff_TransportCums</hediffClass>
  </HediffDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<HediffDef>
		<defName>Immunodeficiency</defName>
		<hediffClass>rjw.Hediff_ID</hediffClass>
		<defaultLabelColor>(1.0, 0.0, 0.0)</defaultLabelColor>
		Immunodeficiency
		<makesSickThought>false</makesSickThought>
		<minSeverity>0.600</minSeverity>
		<initialSeverity>0.601</initialSeverity>
		<tendable>false</tendable>
		<stages>

				<minSeverity>0.60</minSeverity>
				minor
				<restFallFactor>1.10</restFallFactor>
				<capMods>

						<capacity>Consciousness</capacity>
						<offset>-0.05</offset>

				</capMods>

				<minSeverity>0.75</minSeverity>
				major
				<restFallFactor>1.30</restFallFactor>
				<capMods>

						<capacity>Consciousness</capacity>
						<offset>-0.10</offset>

						<capacity>Manipulation</capacity>
						<offset>-0.15</offset>

						<capacity>Moving</capacity>
						<offset>-0.15</offset>

				</capMods>

				<minSeverity>0.90</minSeverity>
				extreme
				<restFallFactor>1.50</restFallFactor>
				<capMods>

						<capacity>Consciousness</capacity>
						<offset>-0.15</offset>

						<capacity>Manipulation</capacity>
						<offset>-0.30</offset>

						<capacity>Moving</capacity>
						<offset>-0.30</offset>

				</capMods>

		</stages>
	</HediffDef>

	<HediffDef>
		<defName>VirusPerma</defName>
		<hediffClass>Hediff_Injury</hediffClass>
		<tendable>false</tendable>
		<displayWound>true</displayWound>
		<chanceToCauseNoPain>1.0</chanceToCauseNoPain>
		viral damage
		<comps>

				<oldLabel>permanent viral damage</oldLabel>
				<instantlyOldLabel>permanent viral damage</instantlyOldLabel>

		</comps>
		<injuryProps>
			<painPerSeverity>0.0</painPerSeverity>
			<averagePainPerSeverityOld>0.0</averagePainPerSeverityOld>
			<destroyedLabel>Destroyed by disease</destroyedLabel>
			<destroyedOutLabel>Destroyed by disease</destroyedOutLabel>
		</injuryProps>
	</HediffDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<HediffDef Name="NaturalPrivatePartBase" Abstract="True">
		<hediffClass>Hediff_Implant</hediffClass>
		<defaultLabelColor>(0.5, 0.8, 0.5)</defaultLabelColor>
		<isBad>false</isBad>
	</HediffDef>

	<HediffDef Name="NaturalRegularPrivatePartBase" Abstract="True">
		<hediffClass>rjw.Hediff_RegularPrivatesImplant</hediffClass>
		<defaultLabelColor>(0.5, 0.8, 0.5)</defaultLabelColor>
		<isBad>false</isBad>
	</HediffDef>

	<HediffDef Name="ArtificialPrivatePartBase" Abstract="True">
		<hediffClass>Hediff_AddedPart</hediffClass>
		<defaultLabelColor>(0.5, 0.5, 0.9)</defaultLabelColor>
		<isBad>false</isBad>
		<addedPartProps>
			<isSolid>true</isSolid>
			<partEfficiency>1.0</partEfficiency>
		</addedPartProps>
	</HediffDef>

	<HediffDef>
		<hediffClass>rjw.Hediff_InitPrivates</hediffClass>
		<defaultLabelColor>(1.0, 1.0, 1.0)</defaultLabelColor>
		<isBad>false</isBad>
		<defName>DummyPrivates</defName>
		dummy privates
		<addedPartProps>
			<isSolid>false</isSolid>
			<partEfficiency>1.0</partEfficiency>
		</addedPartProps>
	</HediffDef>

	<HediffDef ParentName="NaturalRegularPrivatePartBase">
		<defName>Penis</defName>
		penis
		<stages>

				<statOffsets>
					<SexAbility>1.0</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>Penis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>Micropenis</defName>
		micropenis
		<stages>

				<statOffsets>
					<SexAbility>0.6</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>Micropenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>SmallPenis</defName>
		small penis
		<stages>

				<statOffsets>
					<SexAbility>0.8</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>SmallPenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>BigPenis</defName>
		Big Penis
		<stages>

				<statOffsets>
					<SexAbility>1.2</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>BigPenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>HugePenis</defName>
		Huge penis
		<stages>

				<statOffsets>
					<SexAbility>1.4</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>HugePenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>HorsePenis</defName>
		Horse penis
		<stages>

				<statOffsets>
					<SexAbility>1.6</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>HorsePenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>CatPenis</defName>
		Cat penis
		<stages>

				<statOffsets>
					<SexAbility>1.4</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>CatPenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>DogPenis</defName>
		Dog penis
		<stages>

				<statOffsets>
					<SexAbility>1.5</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>DogPenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>DragonPenis</defName>
		Dragon penis
		<stages>

				<statOffsets>
					<SexAbility>1.8</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>DragonPenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalRegularPrivatePartBase">
		<defName>Vagina</defName>
		vagina
		<stages>

				<statOffsets>
					<SexAbility>1.0</SexAbility>
					<Vulnerability>0.1</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>Vagina</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>TightVagina</defName>
		tight vagina
		<stages>

				<statOffsets>
					<SexAbility>1.5</SexAbility>
					<Vulnerability>0.14</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>TightVagina</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>LooseVagina</defName>
		loose vagina
		<stages>

				<statOffsets>
					<SexAbility>0.5</SexAbility>
					<Vulnerability>0.06</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>LooseVagina</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalRegularPrivatePartBase">
		<defName>Breasts</defName>
		breasts
		<stages>

				<statOffsets>
					<SexAbility>0.5</SexAbility>
					<Vulnerability>0.08</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>Breasts</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>SmallBreasts</defName>
		small breasts
		<stages>

				<statOffsets>
					<SexAbility>0.3</SexAbility>
					<Vulnerability>0.04</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>SmallBreasts</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>LargeBreasts</defName>
		large breasts
		<stages>

				<statOffsets>
					<SexAbility>0.7</SexAbility>
					<Vulnerability>0.12</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>LargeBreasts</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>HugeBreasts</defName>
		huge breasts
		<stages>

				<statOffsets>
					<SexAbility>0.9</SexAbility>
					<Vulnerability>0.16</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>HugeBreasts</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalRegularPrivatePartBase">
		<defName>Anus</defName>
		anus
		<stages>

				<statOffsets>
					<SexAbility>1.0</SexAbility>
					<Vulnerability>0.12</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>Anus</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>TightAnus</defName>
		tight anus
		<stages>

				<statOffsets>
					<SexAbility>1.5</SexAbility>
					<Vulnerability>0.16</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>TightAnus</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="NaturalPrivatePartBase">
		<defName>LooseAnus</defName>
		loose anus
		<stages>

				<statOffsets>
					<SexAbility>0.5</SexAbility>
					<Vulnerability>0.08</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>LooseAnus</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>PegDick</defName>
		peg dick
		<stages>

				<statOffsets>
					<SexAbility>0.65</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>PegDick</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>HydraulicVagina</defName>
		hydraulic vagina
		<stages>

				<statOffsets>
					<SexAbility>0.50</SexAbility>
					<Vulnerability>0.04</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>HydraulicVagina</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>HydraulicBreasts</defName>
		hydraulic breasts
		<stages>

				<statOffsets>
					<SexAbility>0.50</SexAbility>
					<Vulnerability>0.03</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>HydraulicBreasts</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>HydraulicAnus</defName>
		hydraulic anus
		<stages>

				<statOffsets>
					<SexAbility>0.50</SexAbility>
					<Vulnerability>0.04</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>HydraulicAnus</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>BionicPenis</defName>
		bionic penis
		<stages>

				<statOffsets>
					<SexAbility>1.60</SexAbility>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>BionicPenis</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>BionicVagina</defName>
		bionic vagina
		<stages>

				<statOffsets>
					<SexAbility>1.60</SexAbility>
					<Vulnerability>0.2</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>BionicVagina</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>BionicBreasts</defName>
		bionic breasts
		<stages>

				<statOffsets>
					<SexAbility>1.20</SexAbility>
					<Vulnerability>0.18</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>BionicBreasts</spawnThingOnRemoved>
	</HediffDef>

	<HediffDef ParentName="ArtificialPrivatePartBase">
		<defName>BionicAnus</defName>
		bionic anus
		<stages>

				<statOffsets>
					<SexAbility>1.60</SexAbility>
					<Vulnerability>0.2</Vulnerability>
				</statOffsets>

		</stages>
		<spawnThingOnRemoved>BionicAnus</spawnThingOnRemoved>
	</HediffDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<HediffDef Name="STDBase" Abstract="True">
		<hediffClass>HediffWithComps</hediffClass>
		<defaultLabelColor>(0.8, 0.8, 0.35)</defaultLabelColor>
		<initialSeverity>0.010</initialSeverity>
	</HediffDef>

	<HediffDef Abstract="True" ParentName="STDBase" Name="HIVBase">
		<hediffClass>HediffWithComps</hediffClass>
		<tendable>true</tendable>
		<stages>

				<minSeverity>0.000</minSeverity>
				detectable

				<minSeverity>0.100</minSeverity>
				minor
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.05</offset>

				</capMods>

				<minSeverity>0.200</minSeverity>
				minor
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.10</offset>

				</capMods>

				<minSeverity>0.300</minSeverity>
				minor
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.15</offset>

				</capMods>

				<minSeverity>0.400</minSeverity>
				moderate
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.20</offset>

				</capMods>

				<minSeverity>0.500</minSeverity>
				major
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.30</offset>

				</capMods>

				<minSeverity>0.600</minSeverity>
				major
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.40</offset>

				</capMods>

				<minSeverity>0.700</minSeverity>
				major
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.50</offset>

				</capMods>

				<minSeverity>0.800</minSeverity>
				extreme
				<lifeThreatening>true</lifeThreatening>
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.70</offset>

				</capMods>

				<minSeverity>0.900</minSeverity>
				extreme
				<lifeThreatening>true</lifeThreatening>
				<capMods>

						<capacity>BloodFiltration</capacity>
						<offset>-0.95</offset>

				</capMods>

		</stages>
	</HediffDef>

	<HediffDef ParentName="HIVBase">
		<defName>AcuteHIV</defName>
		HIV - Acute
		<makesSickThought>true</makesSickThought>
		<maxSeverity>1</maxSeverity>
		<tendable>true</tendable>
		<comps>

				<sendLetterWhenDiscovered>false</sendLetterWhenDiscovered>

				<tendDuration>60000</tendDuration>

				<severityPerDayTended>-0.022</severityPerDayTended>

				<immunityPerDayNotSick>-0.060</immunityPerDayNotSick>
				<immunityPerDaySick>0.280</immunityPerDaySick>
				<severityPerDayNotImmune>0.130</severityPerDayNotImmune>
				<severityPerDayImmune>-0.600</severityPerDayImmune>

		</comps>
	</HediffDef>

	<HediffDef ParentName="HIVBase">
		<defName>ChronicHIV</defName>
		HIV - Chronic
		<makesSickThought>false</makesSickThought>
		<minSeverity>0.001</minSeverity>
		<maxSeverity>1.000</maxSeverity>
		<tendable>true</tendable>
		<comps>

				<sendLetterWhenDiscovered>false</sendLetterWhenDiscovered>

				<tendDuration>600000</tendDuration>

				<severityPerDayTended>-0.0013</severityPerDayTended>

				<severityPerDayNotImmune>0.0048</severityPerDayNotImmune>

		</comps>
	</HediffDef>

	<HediffDef ParentName="STDBase">
		<defName>Herpes</defName>
		Herpes
		<makesSickThought>false</makesSickThought>
		<minSeverity>0.001</minSeverity>
		<maxSeverity>0.650</maxSeverity>
		<tendable>true</tendable>
		<comps>

				<sendLetterWhenDiscovered>false</sendLetterWhenDiscovered>

				<tendDuration>600000</tendDuration>

				<severityPerDayTended>-0.050</severityPerDayTended>

				<severityPerDayNotImmune>0.035</severityPerDayNotImmune>

		</comps>
		<stages>

				<minSeverity>0.000</minSeverity>
				minor
				<painOffset>0.05</painOffset>

				<minSeverity>0.250</minSeverity>
				moderate
				<painOffset>0.10</painOffset>

				<minSeverity>0.500</minSeverity>
				major
				<painOffset>0.15</painOffset>

		</stages>
	</HediffDef>

	<HediffDef ParentName="STDBase">
		<defName>Warts</defName>
		Warts
		<makesSickThought>false</makesSickThought>
		<minSeverity>0.000</minSeverity>
		<maxSeverity>0.650</maxSeverity>
		<tendable>true</tendable>
		<comps>

				<sendLetterWhenDiscovered>false</sendLetterWhenDiscovered>

				<tendDuration>60000</tendDuration>

				<severityPerDayTended>-0.138</severityPerDayTended>

				<immunityPerDayNotSick>-0.090</immunityPerDayNotSick>
				<immunityPerDaySick>0.165</immunityPerDaySick>
				<severityPerDayNotImmune>0.225</severityPerDayNotImmune>
				<severityPerDayImmune>-0.400</severityPerDayImmune>

		</comps>
		<stages>

				<minSeverity>0.000</minSeverity>
				minor

				<minSeverity>0.400</minSeverity>
				major

		</stages>
	</HediffDef>

	<HediffDef ParentName="STDBase">
		<defName>Syphilis</defName>
		Syphilis
		<makesSickThought>true</makesSickThought>
		<initialSeverity>0.200</initialSeverity>
		<minSeverity>0.000</minSeverity>
		<lethalSeverity>1.000</lethalSeverity>
		<tendable>true</tendable>
		<comps>

				<sendLetterWhenDiscovered>false</sendLetterWhenDiscovered>

				<tendDuration>90000</tendDuration>

				<severityPerDayTended>-0.160</severityPerDayTended>

				<immunityPerDayNotSick>-0.045</immunityPerDayNotSick>
				<immunityPerDaySick>0.060</immunityPerDaySick>
				<severityPerDayNotImmune>0.080</severityPerDayNotImmune>
				<severityPerDayImmune>-0.240</severityPerDayImmune>

		</comps>
		<stages>

				<minSeverity>0.000</minSeverity>
				minor

				<minSeverity>0.360</minSeverity>
				moderate
				<capMods>

						<capacity>Consciousness</capacity>
						<offset>-0.05</offset>

				</capMods>

				<minSeverity>0.600</minSeverity>
				major
				<painOffset>0.05</painOffset>
				<capMods>

						<capacity>Consciousness</capacity>
						<offset>-0.15</offset>

						<capacity>Manipulation</capacity>
						<offset>-0.10</offset>

				</capMods>

				<minSeverity>0.840</minSeverity>
				extreme
				<painOffset>0.15</painOffset>
				<lifeThreatening>true</lifeThreatening>
				<capMods>

						<capacity>Consciousness</capacity>
						<offset>-0.30</offset>

						<capacity>Manipulation</capacity>
						<offset>-0.20</offset>

				</capMods>

				<minSeverity>0.888</minSeverity>
				extreme
				<painOffset>0.18</painOffset>
				<lifeThreatening>true</lifeThreatening>
				<capMods>

						<capacity>Consciousness</capacity>
						<setMax>0.50</setMax>

						<capacity>Manipulation</capacity>
						<offset>-0.30</offset>

				</capMods>

				<minSeverity>0.936</minSeverity>
				extreme
				<painOffset>0.22</painOffset>
				<lifeThreatening>true</lifeThreatening>
				<capMods>

						<capacity>Consciousness</capacity>
						<setMax>0.10</setMax>

						<capacity>Manipulation</capacity>
						<offset>-0.40</offset>

				</capMods>

		</stages>
	</HediffDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
	<HediffDef>
		<defName>RJW_BabyState</defName>
		<hediffClass>rjw.Hediff_SimpleBaby</hediffClass>
		child growing
		<initialSeverity>0.1</initialSeverity>
		<stages>

				baby
				<minSeverity>0.1</minSeverity>
				<capMods>

						<capacity>Moving</capacity>
						<setMax>0</setMax>

						<capacity>Talking</capacity>
						<setMax>0</setMax>

				</capMods>

				toddler
				<minSeverity>0.5</minSeverity>
				<capMods>

						<capacity>Manipulation</capacity>
						<offset>-1.0</offset>

						<capacity>Talking</capacity>
						<offset>-0.5</offset>

						<capacity>Moving</capacity>
						<offset>-0.35</offset>

				</capMods>

				child
				<minSeverity>0.75</minSeverity>

		</stages>
	</HediffDef>

	<HediffDef>
		<defName>RJW_NoManipulationFlag</defName>
		<hediffClass>HediffWithComps</hediffClass>
		disable manipulation
		<initialSeverity>0.001</initialSeverity>
		<stages>

				<capMods>

						<capacity>Manipulation</capacity>
						<setMax>0.0</setMax>

				</capMods>

		</stages>
	</HediffDef>

</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<HediffDef>
		<defName>Sterilized</defName>
		<hediffClass>HediffWithComps</hediffClass>
		<defaultLabelColor>(0.8, 0.8, 0.35)</defaultLabelColor>
		sterilized
		<stages>

				<capMods>

						<capacity>Reproduction</capacity>
						<setMax>0</setMax>

				</capMods>

		</stages>
	</HediffDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<HediffGiverSetDef>
		<defName>DummyPrivatesForModdedPawnsOnBirthday</defName>
		<hediffGivers>

				<hediff>DummyPrivates</hediff>
				<partsToAffect>

Genitals

				</partsToAffect>
				<canAffectAnyLivePart>false</canAffectAnyLivePart>
				<ageFractionChanceCurve>
					<points>

(0.00, 1.00)

					</points>
				</ageFractionChanceCurve>
				<averageSeverityPerDayBeforeGeneration>0.00</averageSeverityPerDayBeforeGeneration>

		</hediffGivers>
	</HediffGiverSetDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<IncidentDef>
		<defName>TestInc</defName>
		test inc
		<category>Misc</category>
		<targetTypes>

MapPlayerHome

		</targetTypes>
		<workerClass>rjw.IncidentWorker_TestInc</workerClass>
		<letterLabel>Something Happened</letterLabel>
		<letterText>Something Happened</letterText>
		<letterDef>ThreatSmall</letterDef>
		<baseChance>0.0</baseChance>
		<minRefireDays>9999</minRefireDays>
	</IncidentDef>

	<IncidentDef>
		<defName>TestInc2</defName>
		test inc2
		<category>Misc</category>
		<targetTypes>

MapPlayerHome

		</targetTypes>
		<workerClass>rjw.IncidentWorker_TestInc2</workerClass>
		<letterLabel>Something Happened2</letterLabel>
		<letterText>Something Happened2</letterText>
		<letterDef>ThreatSmall</letterDef>
		<baseChance>0.0</baseChance>
		<minRefireDays>9999</minRefireDays>
	</IncidentDef>

	<IncidentDef>
		<defName>SexualizeThePawns</defName>
		sexualize the pawns
		<category>Misc</category>
		<targetTypes>

World

		</targetTypes>
		<workerClass>rjw.IncidentWorker_Sexualize</workerClass>
		<baseChance>0.0</baseChance>
		<minRefireDays>9999</minRefireDays>
	</IncidentDef>

	<IncidentDef>
		<defName>NymphJoins</defName>
		nymph joins
		<category>AllyArrival</category>
		<targetTypes>

MapPlayerHome

		</targetTypes>
		<workerClass>rjw.IncidentWorker_NymphJoins</workerClass>
		<baseChance>0.67</baseChance>
		<minRefireDays>6</minRefireDays>
	</IncidentDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<InteractionDef>
		<defName>AnalSex</defName>
		anal sex
		<workerClass>rjw.InteractionWorker_AnalSexAttempt</workerClass>
		<symbol>noheart</symbol>
		<socialFightBaseChance>0.0</socialFightBaseChance>
		<recipientThought>StoleSomeLovin</recipientThought>
		<initiatorXpGainSkill>Melee</initiatorXpGainSkill>
		<initiatorXpGainAmount>30</initiatorXpGainAmount>
		<logRulesInitiator>
			<rulesStrings>

logentry->Raped [other_nameShortIndef].

			</rulesStrings>
		</logRulesInitiator>
		<logRulesRecipient>
			<rulesStrings>

logentry->Was raped by [other_nameShortIndef].

			</rulesStrings>
		</logRulesRecipient>
	</InteractionDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<JobDef>
		<defName>Fappin</defName>
		<driverClass>rjw.JobDriver_Fappin</driverClass>
		<reportString>fappin'.</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<!-- No longer need to override this def since the additional code is patched into the original driver
  <JobDef>
    <defName>Lovin</defName>
    <driverClass>rjw.JobDriver_LovinPP</driverClass>
    <reportString>lovin'.</reportString>
    <checkOverrideOnDamage>true</checkOverrideOnDamage>
    <casualInterruptible>false</casualInterruptible>
  </JobDef>
  -->

	<JobDef>
		<defName>NymphJoinInBed</defName>
		<driverClass>rjw.JobDriver_NymphJoinInBed</driverClass>
		<reportString>joining random bed.</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>ComfortPrisonerRapin</defName>
		<driverClass>rjw.JobDriver_ComfortPrisonerRapin</driverClass>
		<reportString>rapin'.</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>GettinLoved</defName>
		<driverClass>rjw.JobDriver_GettinLoved</driverClass>
		<reportString>lovin'.</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>GettinRaped</defName>
		<driverClass>rjw.JobDriver_GettinRaped</driverClass>
		<reportString>gettin' raped.</reportString>
		<checkOverrideOnDamage>Never</checkOverrideOnDamage>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>StruggleInBondageGear</defName>
		<driverClass>rjw.JobDriver_StruggleInBondageGear</driverClass>
		<reportString>struggling</reportString>
	</JobDef>

	<JobDef>
		<defName>UnlockBondageGear</defName>
		<driverClass>rjw.JobDriver_UseItemOn</driverClass>
		<reportString>unlocking</reportString>
	</JobDef>

	<JobDef>
		<defName>GiveBondageGear</defName>
		<driverClass>rjw.JobDriver_UseItemOn</driverClass>
		<reportString>equipping</reportString>
	</JobDef>

	<JobDef>
		<defName>ViolateCorpse</defName>
		<driverClass>rjw.JobDriver_ViolateCorpse</driverClass>
		<reportString>violating corpse</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>Beastiality</defName>
		<driverClass>rjw.JobDriver_Beastiality</driverClass>
		<reportString>lovin' animal</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>RandomRape</defName>
		<driverClass>rjw.JobDriver_RandomRape</driverClass>
		<reportString>randomly raping</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>WhoreIsServingVisitors</defName>
		<driverClass>rjw.JobDriver_WhoreIsServingVisitors</driverClass>
		<reportString>serving visitors</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef>
		<defName>InvitingVisitors</defName>
		<driverClass>rjw.JobDriver_InvitingVisitors</driverClass>
		<reportString>attempting hookup</reportString>
		<casualInterruptible>false</casualInterruptible>
	</JobDef>

	<JobDef Class="rjw.JobDef_RapeEnemy">
		<defName>RapeEnemy</defName>
		<driverClass>rjw.JobDriver_RapeEnemy</driverClass>
		<reportString>Rapin' Enemy</reportString>
		<priority>100</priority>
		<!-- High value is high priority. -->
		<!-- Add defNames to do this type of rape-->
		<TargetDefNames>
		</TargetDefNames>
	</JobDef>

	<JobDef Class="rjw.JobDef_RapeEnemy">
		<defName>RapeEnemyByInsect</defName>
		<!-- Rape to plant egg. see Hediffs_EnemyImplants.xml more detail-->
		<driverClass>rjw.JobDriver_RapeEnemyByInsect</driverClass>
		<reportString>Rapin' Enemy</reportString>
		<priority>1000</priority>
		<TargetDefNames>
		</TargetDefNames>
	</JobDef>

	<JobDef Class="rjw.JobDef_RapeEnemy">
		<defName>RapeEnemyByAnimal</defName>
		<!-- Rape to Implant something. see Hediffs_EnemyImplants.xml more detail-->
		<driverClass>rjw.JobDriver_RapeEnemyByAnimal</driverClass>
		<reportString>Rapin' Enemy</reportString>
		<priority>1000</priority>
		<TargetDefNames>
		</TargetDefNames>
	</JobDef>

	<JobDef Class="rjw.JobDef_RapeEnemy">
		<defName>RapeEnemyByMech</defName>
		<!-- Rape to Implant something. see Hediffs_EnemyImplants.xml more detail-->
		<driverClass>rjw.JobDriver_RapeEnemyByMech</driverClass>
		<reportString>Rapin' Enemy</reportString>
		<priority>1000</priority>
		<TargetDefNames>
		</TargetDefNames>
	</JobDef>

	<JobDef Class="rjw.JobDef_RapeEnemy">
		<defName>RapeEnemyToParasite</defName>
		<!-- Rape to pregnant same kind of male.-->
		<driverClass>rjw.JobDriver_RapeEnemyToParasite</driverClass>
		<reportString>Rapin' Enemy</reportString>
		<priority>2000</priority>
		<TargetDefNames>
		</TargetDefNames>
	</JobDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<rjw.SexualMentalStateDef Abstract="True" Name="BaseMentalState">
		<minTicksBeforeRecovery>10000</minTicksBeforeRecovery>
		<stateClass>rjw.SexualMentalState</stateClass>
		<workerClass>rjw.SexualMentalStateWorker</workerClass>
		<recoveryMtbDays>0.3</recoveryMtbDays>
		<requireCanFuck>true</requireCanFuck>
		<requireCanBeFuck>true</requireCanBeFuck>
		<requireCanRape>true</requireCanRape>
		<requireCanGetRaped>true</requireCanGetRaped>
	</rjw.SexualMentalStateDef>

	<rjw.SexualMentalBreakDef Abstract="True" Name="BaseSexualMentalBreak">
		<commonalityMultiplierBySexNeed>
			<points>

(0, 2)

(50, 0)

			</points>
		</commonalityMultiplierBySexNeed>
	</rjw.SexualMentalBreakDef>

	<rjw.SexualMentalBreakDef ParentName="BaseSexualMentalBreak">
		<defName>RandomRape</defName>
		<mentalState>RandomRape</mentalState>
		<baseCommonality>1.5</baseCommonality>
		<intensity>Extreme</intensity>
		<commonalityMultiplierBySexNeed>
			<points>

(0, 2)

(50, 0)

			</points>
		</commonalityMultiplierBySexNeed>
	</rjw.SexualMentalBreakDef>

	<rjw.SexualMentalStateDef ParentName="BaseMentalState">
		<defName>RandomRape</defName>
		<stateClass>rjw.MentalState_RandomRape</stateClass>
		random rape
		<category>Indulgent</category>
		<prisonersCanDo>false</prisonersCanDo>
		<colonistsOnly>true</colonistsOnly>
		<minTicksBeforeRecovery>30000</minTicksBeforeRecovery>
		<recoveryMtbDays>0.8</recoveryMtbDays>
		<maxTicksBeforeRecovery>80000</maxTicksBeforeRecovery>
		<nameColor>(0.5, 0.9, 0.5)</nameColor>
		<beginLetterLabel>random rape</beginLetterLabel>
		<beginLetter>{0} is sexually frustrated and is looking for a rape target.</beginLetter>
		<beginLetterDef>ThreatSmall</beginLetterDef>
		<recoveryMessage>{0} is sexually satisfied and no longer raping randomly.</recoveryMessage>
		<baseInspectLine>Mental state: Random Rape</baseInspectLine>
		<recoverFromSleep>true</recoverFromSleep>

		<unspawnedCanDo>true</unspawnedCanDo>
	</rjw.SexualMentalStateDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<rjw.MiscTranslationDef>
		<defName>DesignatorComfortPrisoner</defName>
		<targetClass>rjw.Designator_ComfortPrisoner</targetClass>
		comfort prisoner
		<description>Designate the prisoner as a tool to satisfy everyone's sexual need.</description>
	</rjw.MiscTranslationDef>

	<rjw.MiscTranslationDef>
		<defName>rjw_vatgrown_sex_slave</defName>
		<targetClass>rjw.nymph_backstories</targetClass>
		Vat-Grown Sex Slave
		<description>NAME is made as a sex machine, rather than a human. During HIS growing period in the factory, HE was taught plenty of social skills and sex skills, just to satisfy various sex demands.</description>
		<stringA>SexSlave</stringA>
	</rjw.MiscTranslationDef>

	<rjw.MiscTranslationDef>
		<defName>rjw_feisty</defName>
		<targetClass>rjw.nymph_backstories</targetClass>
		Feisty Nymph
		<description>
			NAME struts around the colony like a conqueror examining a newly annexed territory. You try to focus on your work but HE won't let you.\n"I heard what you said about me!" HE accuses. You didn't say anything about HIM. HECAP knows that. "Wanna fight?" HE challenges. You already know what HE means: a few minutes of play wrestling and then you take HIM, or, if you hesitate, HE takes you.\n Though NAME can be hard to get along with you've come to appreciate how HE's more practical than the others.\n You explain to HIM, "See these things here? They need to be over there" and "Those people are trying to kill us, so let's kill them first." HECAP listens, and does what is necessary.
		</description>
		<stringA>Nymph</stringA>
	</rjw.MiscTranslationDef>

	<rjw.MiscTranslationDef>
		<defName>rjw_curious</defName>
		<targetClass>rjw.nymph_backstories</targetClass>
		Curious Nymph
		<description>
			Hold the covering plate back and place the actuator in slot C. Line the rod up. No, that won't do, it needs to be perfect. Now pop the JC-444 chip in place.\n Solder the orange wire to pin #16 and the striped wire to pin #5.\n Suddenly, there HE is. You aren't surprised to see NAME, you just didn't hear HIM approach. By now you're used to it.\n You continue your work in silence as HE hovers over you, her large eyes fixated on the rapid, rythmic, deliberate motions of your hands.
		</description>
		<stringA>Nymph</stringA>
	</rjw.MiscTranslationDef>

	<rjw.MiscTranslationDef>
		<defName>rjw_tender</defName>
		<targetClass>rjw.nymph_backstories</targetClass>
		Tender Nymph
		<description>
			NAME has a pair of charming eyes, and HIS voice is soft and sweet. Due to HIS previous nurse job, HE tends people quite well.\n
			HE's crouched in the corner, hands over HIS ears and tears in HIS eyes.
			You don't understand, then you notice it: the distant sound of the pained squeals of pigs being slaughtered.
		</description>
		<stringA>Nymph</stringA>
	</rjw.MiscTranslationDef>

	<rjw.MiscTranslationDef>
		<defName>rjw_chatty</defName>
		<targetClass>rjw.nymph_backstories</targetClass>
		Chatty Nymph
		<description>No one can be more loquacious than NAME. HECAP has a flexible tongue, a sharp mind, and hot lips.</description>
		<stringA>Nymph</stringA>
	</rjw.MiscTranslationDef>

	<rjw.MiscTranslationDef>
		<defName>rjw_broken</defName>
		<targetClass>rjw.nymph_backstories</targetClass>
		Broken Nymph
		<description>
			Maybe NAME suffered some terrible things, HE looks rather emaciated, and no one wants to speak with HIM.\n HECAP only behaves a bit vivaciously while staring at some rod-like stuffs.
		</description>
		<stringA>Nymph</stringA>
	</rjw.MiscTranslationDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<!-- From core -->
	<ThingDef Name="MoteBase" Abstract="True">
		<thingClass>MoteThrown</thingClass>
		<label>Mote</label>
		<category>Mote</category>
		<graphicData>
			<graphicClass>Graphic_Mote</graphicClass>
			<shaderType>Mote</shaderType>
		</graphicData>
		<altitudeLayer>MoteLow</altitudeLayer>
		<tickerType>Normal</tickerType>
		<useHitPoints>false</useHitPoints>
		<isSaveable>false</isSaveable>
		<rotatable>false</rotatable>
	</ThingDef>

	<ThingDef ParentName="MoteBase">
		<defName>Mote_NoHeart</defName>
		<graphicData>
			<texPath>noheart</texPath>
		</graphicData>
		<altitudeLayer>MetaOverlays</altitudeLayer>
		<mote>
			<fadeInTime>0.08</fadeInTime>
			<solidTime>1.4</solidTime>
			<fadeOutTime>1.5</fadeOutTime>
		</mote>
	</ThingDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<NeedDef>
		<defName>Sex</defName>
		<needClass>rjw.Need_Sex</needClass>
		<label>sex</label>
		<description>Represents fulfillment of sexual need, which is gained by doing sexual related activities and declined by time & turn-ons. Sleeping pauses the need.</description>
		<baseLevel>0.60</baseLevel>
		<fallPerDay>0.00</fallPerDay>
		<showOnNeedList>true</showOnNeedList>
		<listPriority>49</listPriority>
		<major>false</major>
		<freezeWhileSleeping>true</freezeWhileSleeping>
		<minIntelligence>Humanlike</minIntelligence>
		<colonistsOnly>false</colonistsOnly>
		<showForCaravanMembers>true</showForCaravanMembers>
	</NeedDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>

<Defs>
	<PawnCapacityDef>
		<defName>Reproduction</defName>
		<workerClass>rjw.PawnCapacityWorker_Fertility</workerClass>
		<label>fertility</label>
		<listOrder>200</listOrder>
		<lethalFlesh>false</lethalFlesh>
		<showOnMechanoids>false</showOnMechanoids>
	</PawnCapacityDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

	<PawnKindDef>
		<defName>Nymph</defName>
		nymph
		<combatPower>25</combatPower>
		<race>Human</race>
		<baseRecruitDifficulty>0.25</baseRecruitDifficulty>
		<backstoryCategory>rjw_nymphsCategory</backstoryCategory>
		<defaultFactionType>Outlander</defaultFactionType>
		<itemQuality>Poor</itemQuality>
		<backstoryCryptosleepCommonality>0.0</backstoryCryptosleepCommonality>
		<isFighter>false</isFighter>
		<chemicalAddictionChance>0.20</chemicalAddictionChance>
		<gearHealthRange>
			<min>0.3</min>
			<max>0.9</max>
		</gearHealthRange>
		<apparelTags>

Outlander

		</apparelTags>
		<apparelMoney>
			<min>0</min>
			<max>0</max>
		</apparelMoney>
		<apparelAllowHeadwearChance>0</apparelAllowHeadwearChance>
		<techHediffsMoney>
			<min>0</min>
			<max>0</max>
		</techHediffsMoney>
		<techHediffsTags>

Poor

		</techHediffsTags>
		<techHediffsChance>0.0</techHediffsChance>
		<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
	</PawnKindDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>

  <rjw.RandomDialoguesDef>
    <DefName>rape0</DefName>
    <label>RD before rape</label>
    <description>RD before rape</description>
    <JobType>Rape</JobType>
    <RD0>Let me taste your body, babe.</RD0>
    <RD1>C'mon babe, don't be shy.</RD1>
    <RD2>Rape</RD2>
    <RD3>Rape</RD3>
    <RD4>Rape</RD4>
    <RD5>Rape</RD5>
    <RD6>Rape</RD6>
    <RD7>Rape</RD7>
    <RD8>Rape</RD8>
    <RD9>Rape</RD9>
    <RD10>Rape</RD10>
    <RD11>Rape</RD11>
    <RD12>Rape</RD12>
    <RD13>Rape</RD13>
    <RD14>Rape</RD14>
    <RD15>Rape</RD15>
    <RD16>Rape</RD16>
    <RD17>Rape</RD17>
    <RD18>Rape</RD18>
    <RD19>Rape</RD19>
  </rjw.RandomDialoguesDef>

</Defs>

path: Defs/RandomDialoguesxml