226
									
								
								CHANGELOG.md
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -1,4 +1,196 @@
 | 
				
			||||||
# 2.1.0
 | 
					# 2.2.0 (23-07-2024)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Explanations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Genetic Diseases**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This update introduces genetic diseases that are shared on sex. 
 | 
				
			||||||
 | 
					Infection is handled when sex finishes, so a coitus-interruptus will not result in infections. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Infections can be 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Turned off entirely 
 | 
				
			||||||
 | 
					- Spread only on penetrative sex
 | 
				
			||||||
 | 
					- Chances are adjustable per XML per Gene
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By turning their spread off, you effectively have a set of normal negative genes. 
 | 
				
			||||||
 | 
					Dead pawns can spread diseases, but cannot receive them. For all you necros out there. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Why???* 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Most of the genes so far were positive or neutral, 
 | 
				
			||||||
 | 
					so I got some fair requests to introduce negative genes to keep xenotypes balanced. 
 | 
				
			||||||
 | 
					I know that this is some overlap with the STD mod, but well ... you are free to turn things off? 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In theory, you can specify and gene of any kind to be spreadable by sex, not only ones written by this mod. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Genetic Infectors**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					These Genes can apply a genetic disease, but are not genetic diseases themselves. 
 | 
				
			||||||
 | 
					A single infector gene can have multiple resulting diseases, see this extension example: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```xml
 | 
				
			||||||
 | 
					<li Class="RJW_Genes.GeneticInfectorExtension">
 | 
				
			||||||
 | 
					    <infectionChance>0.05</infectionChance>
 | 
				
			||||||
 | 
					    <infectionGenes>
 | 
				
			||||||
 | 
					        <li>rjw_genes_size_blinded</li>
 | 
				
			||||||
 | 
					        <li>rjw_genes_infectious_bisexuality</li>
 | 
				
			||||||
 | 
					    </infectionGenes>
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The infection-chance is applied per gene - for the example above there would be a 5% chance to apply `size_blinded` and 5% chance to apply `infectious_bisexuality`.
 | 
				
			||||||
 | 
					Multiple infections can happen on a single sex. 
 | 
				
			||||||
 | 
					The `infectionGenes` can be any gene, this is not limited to genetic diseases (e.g. ugly or something). 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Infectors* are always applied even if the genetic disease spread is turned off. 
 | 
				
			||||||
 | 
					The created genetic diseases will follow the logic outlined above. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Disease Immunity**: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pawns can be immune to genetic diseases. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is either done with a specialised gene (`rjw_genes_genetic_disease_immunity`)
 | 
				
			||||||
 | 
					or by genes giving specific immunities. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Any gene can give immunity against any genetic disease using an extension: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```xml
 | 
				
			||||||
 | 
					<li Class="RJW_Genes.ImmunityAgainstGenesExtension">
 | 
				
			||||||
 | 
					    <givesImmunityAgainst>
 | 
				
			||||||
 | 
					        <li>rjw_genes_size_blinded</li>
 | 
				
			||||||
 | 
					    </givesImmunityAgainst>
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					These extensions can be slapped on any gene, 
 | 
				
			||||||
 | 
					but they are meant mostly to have infectors immune against their own diseases. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Twinkification / Feminization**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Both approaches follow the same general logic. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Pawn `A` has Twinkifier Gene and fucks Pawn `B`
 | 
				
			||||||
 | 
					- `B` receives a `twinkification progress` hediff with some effects
 | 
				
			||||||
 | 
					- Upon having ANY sex, `B` can gain genes from a relevant genepool. 
 | 
				
			||||||
 | 
					- Genes can be minor or major, depending on the progress of twinkification. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pawn `B` might be immune against twinkifier as normal immunity logic against diseases. 
 | 
				
			||||||
 | 
					But once the hediff is there, the twinkification can happen unless you wait for it to cool down.
 | 
				
			||||||
 | 
					Gene additions are subject to an application chance (25% for minor, 10% for major)
 | 
				
			||||||
 | 
					and might try to add a gene that already exists - then nothing happens. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Twink Genepool*: 
 | 
				
			||||||
 | 
					- (Minor) Body_Thin
 | 
				
			||||||
 | 
					- (Minor) Homosexual
 | 
				
			||||||
 | 
					- (Minor) Beard_NoBeardOnly
 | 
				
			||||||
 | 
					- (Minor) Small male genitalia
 | 
				
			||||||
 | 
					- (Major) Minor Vulnerability
 | 
				
			||||||
 | 
					- (Major) Infectious Homosexuality
 | 
				
			||||||
 | 
					- (Major) Delicate
 | 
				
			||||||
 | 
					- (Major) Beauty Pretty
 | 
				
			||||||
 | 
					- (Major) Fertile Anus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Feminization Genepool*:
 | 
				
			||||||
 | 
					- (Minor) Long Hair
 | 
				
			||||||
 | 
					- (Minor) No-Beard
 | 
				
			||||||
 | 
					- (Minor) Small Male Genitals
 | 
				
			||||||
 | 
					- (Minor) No Cum
 | 
				
			||||||
 | 
					- (Minor) Big Breasts (will only show later)
 | 
				
			||||||
 | 
					- (Major) Female Only
 | 
				
			||||||
 | 
					- (Major) No Penis
 | 
				
			||||||
 | 
					- (Major) Minor Vulnerability
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can configure all genes, as well as their application chance, in the Genes` XML. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Why are these changes Genetic?* 
 | 
				
			||||||
 | 
					Because this is the genes mod, and I find things here quite robust.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Changelog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Additions:** 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Gene: Genetic Disease Immunity. cannot get infected by any genetic diseases, and won't be affected by some other genes (see relevant genes)
 | 
				
			||||||
 | 
					- Disease Gene: Vulnerability. Pawn is likelier to be raped 
 | 
				
			||||||
 | 
					- Disease Gene: Infectious Hypersexuality
 | 
				
			||||||
 | 
					- Disease Gene: Infectious Homosexuality & Bisexuality
 | 
				
			||||||
 | 
					- Disease Gene: Infectious lower fertility
 | 
				
			||||||
 | 
					- Disease Gene: Infectious higher sex need
 | 
				
			||||||
 | 
					- Disease Gene: Fluctual Sexual Need. (Configurable) Chance to reset sex-need to near-zero and gain a bit of rest-need.
 | 
				
			||||||
 | 
					- Disease Gene: Size Blinded. Pawns have a higher chance for hooking up with pawns with a big cock, lower chance for small cocks.
 | 
				
			||||||
 | 
					- Infector Gene: Genetic Stretcher. Pawns can infect other pawns with *Size Blinded*
 | 
				
			||||||
 | 
					- Gene: Hardwired Progenity. Pawns with this get a malus on having no-children, and bonus on having a lot. 
 | 
				
			||||||
 | 
					- Gene: Sexual Genetic Swap. Pawns have a chance to switch a random gene with their sexpartner. 
 | 
				
			||||||
 | 
					- (Archite) Gene: Sexual Genetic Thief. Pawns have a chance to steal a gene from their sexpartner. Genetic Disease Immunity shields against this. 
 | 
				
			||||||
 | 
					- Gene: Sperm Displacement. Pawns might overwrite an existing pregnancy, becoming the new father. The pregnancy will stay in its gestation progress.
 | 
				
			||||||
 | 
					- Gene: Twinkification. Pawns turn their (male) sexual partners into breedable twinks.
 | 
				
			||||||
 | 
					- Gene: Feminization. Pawns turn their (male) sexual partners into women.
 | 
				
			||||||
 | 
					- Gene: Blocked Masturbation. Pawns cannot masturbate. 
 | 
				
			||||||
 | 
					- {Sexperience} Gene: Living Cumbucket. Pawns with this Gene get "filled" upon sex, and slowly disperse usable gathered cum. 
 | 
				
			||||||
 | 
					- Disease Gene: Infectious Blocked Masturbation
 | 
				
			||||||
 | 
					- Gene: Rut. Pawns have a chance to go into heat and need more sex for a day. (Default: 5% chance per day, to go 1 day in heat).
 | 
				
			||||||
 | 
					- Disease Gene: Infectious Rut.
 | 
				
			||||||
 | 
					- Pawns will have negative thoughts about pawns with more genetic diseases than themselves. 
 | 
				
			||||||
 | 
					- Faction Penalties for spreading diseases, stealing genes and aging pawns with age transfer
 | 
				
			||||||
 | 
					- Patch  for [Imphilee Xeno](https://steamcommunity.com/sharedfiles/filedetails/?id=2990674516) by @Bunuffin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Changes**::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Cum-Amount-Changing genes now are XML Adjustable and share a single `.cs`-class
 | 
				
			||||||
 | 
					- Incubi are now Bisexual too, as they should be. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Fixes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fixed an Issue where pawns would always get the Pheromone social boost, unless they had the pheromone (#113)
 | 
				
			||||||
 | 
					- Fixed two hidden dependencies on Ideology and Royalty (#115)
 | 
				
			||||||
 | 
					- Fixed some more hidden dependencies on Ideology Icons (#118)
 | 
				
			||||||
 | 
					- Fixed a hidden dependency on Licentialabs (#119)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Internal:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- GenderFluid-Gene now uses a generalized `TickBasedChanceExtension` over its unique special `GenderFluidExtension`
 | 
				
			||||||
 | 
					- Introduced a `ModLog.Debug` Function that checks for the settings before printing - trying to spread it over the whole project. 
 | 
				
			||||||
 | 
					- Removed TODO File. I have enough to do. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Notes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*One Time Error Load*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The changes to the cum-gene will give a 1-time warning on loading the save. The warning looks like this: 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Could not find class RJW_Genes.Gene_MuchCum while resolving node li. Trying to use Verse.Gene instead. Full node: <li Class="RJW_Genes.Gene_MuchCum"><def>rjw_genes_much_cum</def><pawn>Thing_Human697</pawn><overriddenByGene>null</overriddenByGene><loadID>82</loadID></li>
 | 
				
			||||||
 | 
					UnityEngine.StackTraceUtility:ExtractStackTrace ()
 | 
				
			||||||
 | 
					Verse.Log:Error (string)
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is not dangerous.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Blocked Masturbation* 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Might not be fully working - for testing, I run things in DevMode, and I can just order people to masturbate. 
 | 
				
			||||||
 | 
					Please playtest this a bit for me, as I want to make it work nicely. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*Supporting*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can now support me with [buying me a coffee](https://buymeacoffee.com/vegapnk). 
 | 
				
			||||||
 | 
					The mod will remain free, open source and I will not hide or lock any features. 
 | 
				
			||||||
 | 
					Its just meant if you want to drop me a tip. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Since Beta-1** (11-07-2024) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Made the Feminizer and Twinkifier configurable with XML.
 | 
				
			||||||
 | 
					- Typos in the Hediff Defs, tweaking of some values.
 | 
				
			||||||
 | 
					- Living Cum-Bucket & Rut Genes
 | 
				
			||||||
 | 
					- Great icons by @Alpenglow
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Since Beta-2** (17-07-2024)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Changed behaviour of living cumbucket. Now, once "really full" the output happens more rarely but is much more at once.
 | 
				
			||||||
 | 
					- More Icons by @Alpenglow <3 this time attributed correct. 
 | 
				
			||||||
 | 
					- Adjusted some of the metabolic values - likes cumflation, generous donor and living cumbucket have small costs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 2.1.0 (27-06-2024)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Additions**:
 | 
					**Additions**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +237,7 @@
 | 
				
			||||||
- Some new Icons thanks to Kira-Bad-Artist
 | 
					- Some new Icons thanks to Kira-Bad-Artist
 | 
				
			||||||
- Some new Icons thanks to Archer 
 | 
					- Some new Icons thanks to Archer 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 2.0.0
 | 
					# 2.0.0 (30-05-2024)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Summary**:
 | 
					**Summary**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,20 +284,20 @@
 | 
				
			||||||
- Patches to RJW-Pregnancy Helper to account for Male Pregs. 
 | 
					- Patches to RJW-Pregnancy Helper to account for Male Pregs. 
 | 
				
			||||||
- Some replacements from `hasGene` to `hasActiveGene` 
 | 
					- Some replacements from `hasGene` to `hasActiveGene` 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.3.3
 | 
					# 1.3.3 (02-11-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Fixes:** 
 | 
					**Fixes:** 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Added another check to the AG Malachai Xenotype (Fixes #68)
 | 
					- Added another check to the AG Malachai Xenotype (Fixes #68)
 | 
				
			||||||
- Fixed the `GatheredCum`Fertilin Ingestion Patch throwing an Error for people without Sexperience (Fixes #69 (nice))
 | 
					- Fixed the `GatheredCum`Fertilin Ingestion Patch throwing an Error for people without Sexperience (Fixes #69 (nice))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.3.2
 | 
					# 1.3.2 (24-10-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Fixes:**
 | 
					**Fixes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Removed patch for Malachai, needs a different patching operator but I don't want to have broken fixes for now (Tracked in a new Issue)
 | 
					- Removed patch for Malachai, needs a different patching operator but I don't want to have broken fixes for now (Tracked in a new Issue)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.3.1 
 | 
					# 1.3.1 (22-10-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Changes**
 | 
					**Changes**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -144,7 +336,7 @@ The pawns that are gender fluid can get pregnant.
 | 
				
			||||||
However, with RJW 5.3.7 these pregnancies disappear. 
 | 
					However, with RJW 5.3.7 these pregnancies disappear. 
 | 
				
			||||||
This is a change needed upstream, but I will have a look. 
 | 
					This is a change needed upstream, but I will have a look. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.2.1 
 | 
					# 1.2.1 (18-06-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Fixes**: 
 | 
					**Fixes**: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -224,9 +416,9 @@ And I am aware that the TiTs-Myr work different than the things I made now.
 | 
				
			||||||
- Mostly Patches and Changes to the Halamyr Defs
 | 
					- Mostly Patches and Changes to the Halamyr Defs
 | 
				
			||||||
- Some re-arranging and mayRequires for other mods
 | 
					- Some re-arranging and mayRequires for other mods
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.1.4
 | 
					# 1.1.4 (06-04-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fixes: 
 | 
					**Fixes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Youth Fountain and Age Drainer **really** "stop" at 18 (#26, #28) and never age pawns
 | 
					- Youth Fountain and Age Drainer **really** "stop" at 18 (#26, #28) and never age pawns
 | 
				
			||||||
- Drastically reduced vomiting time due to an missunderstanding (#29). `0.4` instead of `0.01`
 | 
					- Drastically reduced vomiting time due to an missunderstanding (#29). `0.4` instead of `0.01`
 | 
				
			||||||
| 
						 | 
					@ -234,37 +426,37 @@ Fixes:
 | 
				
			||||||
Sometimes life is like that, and you have to fix the fixes. 
 | 
					Sometimes life is like that, and you have to fix the fixes. 
 | 
				
			||||||
It was never really broken, life is just very long. 
 | 
					It was never really broken, life is just very long. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.1.3
 | 
					# 1.1.3 (28-03-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Changes:
 | 
					**Changes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Youth Fountain and Age Drainer "stop" at 18 (#26)
 | 
					- Youth Fountain and Age Drainer "stop" at 18 (#26)
 | 
				
			||||||
- Youth Fountain and Age Drainer activate only for pawns at 18 (#26)
 | 
					- Youth Fountain and Age Drainer activate only for pawns at 18 (#26)
 | 
				
			||||||
- Drained Pawns vomit less (from mtb 0.05 to 0.01)(#29)
 | 
					- Drained Pawns vomit less (from mtb 0.05 to 0.01)(#29)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fixes: 
 | 
					**Fixes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- InsectBreeder would mess with normal Pawn-Animal pregancy for egg laying animals (#23)
 | 
					- InsectBreeder would mess with normal Pawn-Animal pregancy for egg laying animals (#23)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.1.2
 | 
					# 1.1.2 (19-03-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Changes:
 | 
					**Changes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Added more cool images from WasMachenDennSachen (#22)
 | 
					- Added more cool images from WasMachenDennSachen (#22)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fixes: 
 | 
					**Fixes:** 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Aphrodisiac Pheromones checks for children and other conditions (#25)
 | 
					- Aphrodisiac Pheromones checks for children and other conditions (#25)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 1.1.1 
 | 
					# 1.1.1 (10-03-2023)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Changes: 
 | 
					**Changes:** 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Drastically increased mood-penalty for Fertilin-Loss (if the pawn is still too happy, there will never be a breakdown for missing fertilin)
 | 
					- Drastically increased mood-penalty for Fertilin-Loss (if the pawn is still too happy, there will never be a breakdown for missing fertilin)
 | 
				
			||||||
- No-Breast Genes add Nipples
 | 
					- No-Breast Genes add Nipples
 | 
				
			||||||
- Featureless Chest Gene (No Nipples at all, adds the RJW Featureless Chest as requested per some Kobold fetishists)
 | 
					- Featureless Chest Gene (No Nipples at all, adds the RJW Featureless Chest as requested per some Kobold fetishists)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Fixes: 
 | 
					**Fixes:** 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Small and Big Male Genitalia had images wrong way round 
 | 
					- Small and Big Male Genitalia had images wrong way round 
 | 
				
			||||||
- Fertilin should activate at a MinAge of 18 
 | 
					- Fertilin should activate at a MinAge of 18 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,5 +67,11 @@
 | 
				
			||||||
    <displayPriorityInXenotype>8</displayPriorityInXenotype>
 | 
					    <displayPriorityInXenotype>8</displayPriorityInXenotype>
 | 
				
			||||||
  </GeneCategoryDef>
 | 
					  </GeneCategoryDef>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
					  <GeneCategoryDef>
 | 
				
			||||||
 | 
					    <defName>rjw_genes_diseases</defName>
 | 
				
			||||||
 | 
					    <label>genetic STDs</label>
 | 
				
			||||||
 | 
					    <displayPriorityInXenotype>22</displayPriorityInXenotype>
 | 
				
			||||||
 | 
					  </GeneCategoryDef>
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,6 @@
 | 
				
			||||||
    </modExtensions>
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  <GeneDef ParentName="BreedingBase">
 | 
					  <GeneDef ParentName="BreedingBase">
 | 
				
			||||||
    <defName>rjw_genes_mechbreeder</defName>
 | 
					    <defName>rjw_genes_mechbreeder</defName>
 | 
				
			||||||
    <label>mechbreeder</label>
 | 
					    <label>mechbreeder</label>
 | 
				
			||||||
| 
						 | 
					@ -42,8 +41,9 @@
 | 
				
			||||||
  <GeneDef ParentName="BreedingBase">
 | 
					  <GeneDef ParentName="BreedingBase">
 | 
				
			||||||
    <defName>rjw_genes_fertile_anus</defName>
 | 
					    <defName>rjw_genes_fertile_anus</defName>
 | 
				
			||||||
    <label>fertile anus</label>
 | 
					    <label>fertile anus</label>
 | 
				
			||||||
    <description>Xenotypes with this gene have a functional uterus connected to the anal cavity even
 | 
					    <description>Xenotypes with this gene have a functional uterus if they do not possess one by
 | 
				
			||||||
      for males</description>
 | 
					      means of their vagina.
 | 
				
			||||||
 | 
					      For males, it is connected to the anal cavity and leads to a normal pregnancy.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/Fertile_anus</iconPath>
 | 
					    <iconPath>Genes/Icons/Fertile_anus</iconPath>
 | 
				
			||||||
    <displayOrderInCategory>54</displayOrderInCategory>
 | 
					    <displayOrderInCategory>54</displayOrderInCategory>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
| 
						 | 
					@ -81,7 +81,6 @@
 | 
				
			||||||
    <biostatMet>-1</biostatMet>
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  <GeneDef ParentName="BreedingBase">
 | 
					  <GeneDef ParentName="BreedingBase">
 | 
				
			||||||
    <defName>rjw_genes_mating_call</defName>
 | 
					    <defName>rjw_genes_mating_call</defName>
 | 
				
			||||||
    <label>Mating Call</label>
 | 
					    <label>Mating Call</label>
 | 
				
			||||||
| 
						 | 
					@ -98,7 +97,6 @@
 | 
				
			||||||
    <biostatMet>-1</biostatMet>
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  <GeneDef ParentName="BreedingBase">
 | 
					  <GeneDef ParentName="BreedingBase">
 | 
				
			||||||
    <defName>rjw_genes_pheromone_spit</defName>
 | 
					    <defName>rjw_genes_pheromone_spit</defName>
 | 
				
			||||||
    <label>Pheromone Spit</label>
 | 
					    <label>Pheromone Spit</label>
 | 
				
			||||||
| 
						 | 
					@ -115,4 +113,62 @@
 | 
				
			||||||
    <biostatMet>-1</biostatMet>
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <GeneDef ParentName="BreedingBase">
 | 
				
			||||||
 | 
					    <defName>rjw_genes_hardwired_progenity</defName>
 | 
				
			||||||
 | 
					    <label>Hardwired Progenity</label>
 | 
				
			||||||
 | 
					    <description>Carriers of this gene need to procreate. They suffer negative effects if they are
 | 
				
			||||||
 | 
					      childless, and have increased capabilities if they reach a high amount of offsprings.</description>
 | 
				
			||||||
 | 
					    <iconPath>Genes/Icons/hardwired_progenity</iconPath>
 | 
				
			||||||
 | 
					    <displayOrderInCategory>70</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <conditionalStatAffecters>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.ConditionalStatAffecter_NoChildren">
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					          <WorkSpeedGlobal>-0.1</WorkSpeedGlobal>
 | 
				
			||||||
 | 
					          <Fertility>1.2</Fertility>
 | 
				
			||||||
 | 
					          <SexFrequency>1.2</SexFrequency>
 | 
				
			||||||
 | 
					          <MentalBreakThreshold>+0.15</MentalBreakThreshold>
 | 
				
			||||||
 | 
					          <GlobalLearningFactor>-0.1</GlobalLearningFactor>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.ConditionalStatAffecter_ManyChildren">
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					          <MoveSpeed>0.05</MoveSpeed>
 | 
				
			||||||
 | 
					          <WorkSpeedGlobal>0.1</WorkSpeedGlobal>
 | 
				
			||||||
 | 
					          <Fertility>0.1</Fertility>
 | 
				
			||||||
 | 
					          <SexFrequency>0.4</SexFrequency>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.ConditionalStatAffecter_VeryManyChildren">
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					          <MoveSpeed>0.15</MoveSpeed>
 | 
				
			||||||
 | 
					          <WorkSpeedGlobal>0.25</WorkSpeedGlobal>
 | 
				
			||||||
 | 
					          <MentalBreakThreshold>-0.25</MentalBreakThreshold>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </conditionalStatAffecters>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					    <biostatMet>0</biostatMet>
 | 
				
			||||||
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <GeneDef ParentName="BreedingBase">
 | 
				
			||||||
 | 
					    <defName>rjw_genes_basic_rut</defName>
 | 
				
			||||||
 | 
					    <label>Rut</label>
 | 
				
			||||||
 | 
					    <description>Carriers of this gene can enter a state of heat, resulting in drastically higher
 | 
				
			||||||
 | 
					      sexual activity.</description>
 | 
				
			||||||
 | 
					    <iconPath>Genes/Icons/rut</iconPath>
 | 
				
			||||||
 | 
					    <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					    <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					    <displayOrderInCategory>11</displayOrderInCategory>
 | 
				
			||||||
 | 
					    <geneClass>RJW_Genes.Gene_Rut</geneClass>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.TickBasedChanceExtension">
 | 
				
			||||||
 | 
					        <!-- 60k = 1 days -->
 | 
				
			||||||
 | 
					        <tickInterval>60000</tickInterval>
 | 
				
			||||||
 | 
					        <eventChance>0.05</eventChance>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -21,10 +21,15 @@
 | 
				
			||||||
    <label>no cum</label>
 | 
					    <label>no cum</label>
 | 
				
			||||||
    <description>Males of these species have no fluid.</description>
 | 
					    <description>Males of these species have no fluid.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/No_Cum</iconPath>
 | 
					    <iconPath>Genes/Icons/No_Cum</iconPath>
 | 
				
			||||||
    <geneClass>RJW_Genes.Gene_NoCum</geneClass>
 | 
					    <geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
 | 
				
			||||||
    <displayOrderInCategory>533</displayOrderInCategory>
 | 
					    <displayOrderInCategory>533</displayOrderInCategory>
 | 
				
			||||||
    <biostatCpx>0</biostatCpx>
 | 
					    <biostatCpx>0</biostatCpx>
 | 
				
			||||||
    <biostatMet>1</biostatMet>
 | 
					    <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.MultiplierExtension">
 | 
				
			||||||
 | 
					        <multiplier>0.0</multiplier>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <GeneDef ParentName="GeneCumAmount">
 | 
					  <GeneDef ParentName="GeneCumAmount">
 | 
				
			||||||
| 
						 | 
					@ -32,10 +37,15 @@
 | 
				
			||||||
    <label>much cum</label>
 | 
					    <label>much cum</label>
 | 
				
			||||||
    <description>Males of this species produce a lot of fluid.</description>
 | 
					    <description>Males of this species produce a lot of fluid.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/Much_Cum</iconPath>
 | 
					    <iconPath>Genes/Icons/Much_Cum</iconPath>
 | 
				
			||||||
    <geneClass>RJW_Genes.Gene_MuchCum</geneClass>
 | 
					    <geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
 | 
				
			||||||
    <displayOrderInCategory>534</displayOrderInCategory>
 | 
					    <displayOrderInCategory>534</displayOrderInCategory>
 | 
				
			||||||
    <biostatCpx>1</biostatCpx>
 | 
					    <biostatCpx>1</biostatCpx>
 | 
				
			||||||
    <biostatMet>-1</biostatMet>
 | 
					    <biostatMet>0</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.MultiplierExtension">
 | 
				
			||||||
 | 
					        <multiplier>3.0</multiplier>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <GeneDef ParentName="GeneCumAmount">
 | 
					  <GeneDef ParentName="GeneCumAmount">
 | 
				
			||||||
| 
						 | 
					@ -44,10 +54,15 @@
 | 
				
			||||||
    <description>Males of this species produce a whole lot of fluid. They are like fountains
 | 
					    <description>Males of this species produce a whole lot of fluid. They are like fountains
 | 
				
			||||||
      basically.</description>
 | 
					      basically.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/Very_Much_Cum</iconPath>
 | 
					    <iconPath>Genes/Icons/Very_Much_Cum</iconPath>
 | 
				
			||||||
    <geneClass>RJW_Genes.Gene_VeryMuchCum</geneClass>
 | 
					    <geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
 | 
				
			||||||
    <displayOrderInCategory>535</displayOrderInCategory>
 | 
					    <displayOrderInCategory>535</displayOrderInCategory>
 | 
				
			||||||
    <biostatCpx>1</biostatCpx>
 | 
					    <biostatCpx>1</biostatCpx>
 | 
				
			||||||
    <biostatMet>-2</biostatMet>
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.MultiplierExtension">
 | 
				
			||||||
 | 
					        <multiplier>15.0</multiplier>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@
 | 
				
			||||||
    <displayCategory>rjw_genes_damage</displayCategory>
 | 
					    <displayCategory>rjw_genes_damage</displayCategory>
 | 
				
			||||||
    <description>This Gene makes the Carrier unable to get mood or social penalties from being raped
 | 
					    <description>This Gene makes the Carrier unable to get mood or social penalties from being raped
 | 
				
			||||||
      and they cannot be broken for a long period of time.</description>
 | 
					      and they cannot be broken for a long period of time.</description>
 | 
				
			||||||
    <iconPath>UI/Icons/Rituals/TrialDefend</iconPath>
 | 
					    <iconPath>Genes/Icons/TrialDefend</iconPath>
 | 
				
			||||||
    <displayOrderInCategory>2</displayOrderInCategory>
 | 
					    <displayOrderInCategory>2</displayOrderInCategory>
 | 
				
			||||||
    <biostatMet>-1</biostatMet>
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
    <biostatCpx>1</biostatCpx>
 | 
					    <biostatCpx>1</biostatCpx>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										336
									
								
								Common/Defs/GeneDefs/GeneDefs_Diseases.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,336 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef Name="RJWGeneDisease" Abstract="True">
 | 
				
			||||||
 | 
					        <displayCategory>rjw_genes_diseases</displayCategory>
 | 
				
			||||||
 | 
					        <randomChosen>false</randomChosen>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
				
			||||||
 | 
					                Class="VanillaGenesExpanded.GeneExtension">
 | 
				
			||||||
 | 
					                <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Disease_Background</backgroundPathEndogenes>
 | 
				
			||||||
 | 
					                <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Endogene_Disease_Background</backgroundPathXenogenes>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef>
 | 
				
			||||||
 | 
					        <displayCategory>rjw_genes_diseases</displayCategory>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_genetic_disease_immunity</defName>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>1</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <marketValueFactor>0.95</marketValueFactor>
 | 
				
			||||||
 | 
					        <label>genetic disease immunity</label>
 | 
				
			||||||
 | 
					        <description>This gene makes the pawn immune against genetic STDs and some other genes that
 | 
				
			||||||
 | 
					            imply negative side-effects.</description>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>-1</biostatMet>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/disease_immunity</iconPath>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
				
			||||||
 | 
					                Class="VanillaGenesExpanded.GeneExtension">
 | 
				
			||||||
 | 
					                <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
				
			||||||
 | 
					                <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_minor_vulnerability</defName>
 | 
				
			||||||
 | 
					        <label>minor vulnerability</label>
 | 
				
			||||||
 | 
					        <description>This gene makes the pawn a bit more vulnerable, and a slightly more attractive
 | 
				
			||||||
 | 
					            target for rape.</description>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					        <marketValueFactor>0.85</marketValueFactor>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/minor_vulnerability</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>5</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					            <Vulnerability>0.15</Vulnerability>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <exclusionTags>
 | 
				
			||||||
 | 
					            <li>RJW_Genes_Vulnerability</li>
 | 
				
			||||||
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.05</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_major_vulnerability</defName>
 | 
				
			||||||
 | 
					        <label>major vulnerability</label>
 | 
				
			||||||
 | 
					        <description>This gene makes the pawn more vulnerable, and a more attractive target for
 | 
				
			||||||
 | 
					            rape.</description>
 | 
				
			||||||
 | 
					        <biostatCpx>2</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/major_vulnerability</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>6</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <exclusionTags>
 | 
				
			||||||
 | 
					            <li>RJW_Genes_Vulnerability</li>
 | 
				
			||||||
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					            <Vulnerability>0.3</Vulnerability>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.03</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_blocked_masturbation</defName>
 | 
				
			||||||
 | 
					        <label>infectious masturbation block</label>
 | 
				
			||||||
 | 
					        <description>Carriers of this gene are unable to masturbate - they need a partner or
 | 
				
			||||||
 | 
					            equipment.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/blocked_masturbation</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>55</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>2</biostatMet>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.05</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_low_fertility</defName>
 | 
				
			||||||
 | 
					        <label>infectious low fertility vulnerability</label>
 | 
				
			||||||
 | 
					        <description>Carriers of this genetic disease have lower fertility.</description>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					        <marketValueFactor>0.9</marketValueFactor>
 | 
				
			||||||
 | 
					        <iconPath>UI/Icons/ColonistBar/Idle</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>5</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					            <Fertility>-0.15</Fertility>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.05</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_increased_sex_need</defName>
 | 
				
			||||||
 | 
					        <label>infectious increased sexneed</label>
 | 
				
			||||||
 | 
					        <description>Carriers of this genetic disease need more sex.</description>
 | 
				
			||||||
 | 
					        <biostatCpx>0</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					        <marketValueFactor>0.9</marketValueFactor>
 | 
				
			||||||
 | 
					        <iconPath>UI/Icons/ColonistBar/Idle</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>5</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					            <SexFrequency>0.15</SexFrequency>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.08</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_major_increased_sex_need</defName>
 | 
				
			||||||
 | 
					        <label>major infectious increased sexneed</label>
 | 
				
			||||||
 | 
					        <description>Carriers of this genetic disease need a lot more sex.</description>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>2</biostatMet>
 | 
				
			||||||
 | 
					        <marketValueFactor>0.85</marketValueFactor>
 | 
				
			||||||
 | 
					        <iconPath>UI/Icons/ColonistBar/Idle</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>5</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <statOffsets>
 | 
				
			||||||
 | 
					            <SexFrequency>1.0</SexFrequency>
 | 
				
			||||||
 | 
					        </statOffsets>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.03</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_hypersexuality</defName>
 | 
				
			||||||
 | 
					        <label>infectious hypersexuality</label>
 | 
				
			||||||
 | 
					        <description>This gene makes the pawn hypersexual, and has a chance to spread on
 | 
				
			||||||
 | 
					            intercourse.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/Hypersexual</iconPath>
 | 
				
			||||||
 | 
					        <biostatCpx>2</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>2</biostatMet>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>7</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <exclusionTags>
 | 
				
			||||||
 | 
					            <li>rjw_genes_hypersexuality_trait_giver</li>
 | 
				
			||||||
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <forcedTraits>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <def>Nymphomaniac</def>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </forcedTraits>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.05</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_bisexuality</defName>
 | 
				
			||||||
 | 
					        <label>infectious bisexuality</label>
 | 
				
			||||||
 | 
					        <description>This gene makes the pawn bisexual, and has a chance to spread on intercourse.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/bisexuality</iconPath>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>0</biostatMet>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>8</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <exclusionTags>
 | 
				
			||||||
 | 
					            <li>rjw_genes_bisexuality_trait_giver</li>
 | 
				
			||||||
 | 
					            <li>rjw_genes_sexual_orientation</li>
 | 
				
			||||||
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <forcedTraits>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <def>Bisexual</def>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </forcedTraits>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.1</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_homosexuality</defName>
 | 
				
			||||||
 | 
					        <label>infectious homosexuality</label>
 | 
				
			||||||
 | 
					        <description>This gene makes the pawn homosexual, and has a chance to spread on intercourse.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/homosexuality</iconPath>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>0</biostatMet>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>9</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <exclusionTags>
 | 
				
			||||||
 | 
					            <li>rjw_genes_homosexuality_trait_giver</li>
 | 
				
			||||||
 | 
					            <li>rjw_genes_sexual_orientation</li>
 | 
				
			||||||
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <forcedTraits>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <def>Gay</def>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </forcedTraits>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.1</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_fluctual_sexual_needs</defName>
 | 
				
			||||||
 | 
					        <label>fluctual sexual needs</label>
 | 
				
			||||||
 | 
					        <description>Carriers of this genetic disease have a chance to suddenly require sex, gaining
 | 
				
			||||||
 | 
					            a bit of energy to find quick relief.</description>
 | 
				
			||||||
 | 
					        <iconPath>UI/Icons/ColonistBar/Idle</iconPath>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>2</biostatMet>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>11</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <geneClass>RJW_Genes.Gene_FluctualSexualNeed</geneClass>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.1</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.TickBasedChanceExtension">
 | 
				
			||||||
 | 
					                <!-- 30k = 1/2 days -->
 | 
				
			||||||
 | 
					                <tickInterval>30000</tickInterval>
 | 
				
			||||||
 | 
					                <eventChance>0.15</eventChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_size_blinded</defName>
 | 
				
			||||||
 | 
					        <label>size blinded</label>
 | 
				
			||||||
 | 
					        <description>This genetic disease makes the carrier dramatically more drawn to pawns with
 | 
				
			||||||
 | 
					            huge cocks.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/size_blinded</iconPath>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>11</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.1</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_stretcher</defName>
 | 
				
			||||||
 | 
					        <label>genetic stretcher</label>
 | 
				
			||||||
 | 
					        <description>Pawns with this gene have a chance to alter the genes of their sexual partners
 | 
				
			||||||
 | 
					            to prefer large cocks.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/stretcher</iconPath>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>0</biostatMet>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>12</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.ImmunityAgainstGenesExtension">
 | 
				
			||||||
 | 
					                <givesImmunityAgainst>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_size_blinded</li>
 | 
				
			||||||
 | 
					                </givesImmunityAgainst>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticInfectorExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.05</infectionChance>
 | 
				
			||||||
 | 
					                <infectionGenes>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_size_blinded</li>
 | 
				
			||||||
 | 
					                </infectionGenes>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="RJWGeneDisease">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_infectious_rut</defName>
 | 
				
			||||||
 | 
					        <label>Rut</label>
 | 
				
			||||||
 | 
					        <description>Carriers of this gene can enter a state of heat, resulting in drastically
 | 
				
			||||||
 | 
					            higher
 | 
				
			||||||
 | 
					            sexual activity.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/rut</iconPath>
 | 
				
			||||||
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>2</biostatMet>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>11</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <geneClass>RJW_Genes.Gene_Rut</geneClass>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.TickBasedChanceExtension">
 | 
				
			||||||
 | 
					                <!-- 60k = 1 days -->
 | 
				
			||||||
 | 
					                <tickInterval>60000</tickInterval>
 | 
				
			||||||
 | 
					                <eventChance>0.05</eventChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
				
			||||||
 | 
					                <infectionChance>0.1</infectionChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,10 @@
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
        </forcedTraits>
 | 
					        </forcedTraits>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <exclusionTags>
 | 
				
			||||||
 | 
					            <li>rjw_genes_hypersexuality_trait_giver</li>
 | 
				
			||||||
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <randomChosen>false</randomChosen>
 | 
					        <randomChosen>false</randomChosen>
 | 
				
			||||||
        <modExtensions>
 | 
					        <modExtensions>
 | 
				
			||||||
            <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
					            <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
				
			||||||
| 
						 | 
					@ -48,31 +52,6 @@
 | 
				
			||||||
        </modExtensions>
 | 
					        </modExtensions>
 | 
				
			||||||
    </GeneDef>
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- 
 | 
					 | 
				
			||||||
	<GeneDef>
 | 
					 | 
				
			||||||
        <defName>rjw_genes_sadist_gene</defName>
 | 
					 | 
				
			||||||
        <label>sadist</label>
 | 
					 | 
				
			||||||
        <displayCategory>Reproduction</displayCategory>
 | 
					 | 
				
			||||||
        <description>Xenotypes with this Gene are Sadists.</description>
 | 
					 | 
				
			||||||
        <iconPath>Genes/Icons/Rape</iconPath>
 | 
					 | 
				
			||||||
        <biostatMet>1</biostatMet>
 | 
					 | 
				
			||||||
        <displayOrderInCategory>2</displayOrderInCategory>    
 | 
					 | 
				
			||||||
        <forcedTraits>
 | 
					 | 
				
			||||||
            <li>
 | 
					 | 
				
			||||||
                <def>rjw_genes_sadist</def>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
        </forcedTraits>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        <modExtensions>
 | 
					 | 
				
			||||||
			<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
					 | 
				
			||||||
    Class="VanillaGenesExpanded.GeneExtension">
 | 
					 | 
				
			||||||
				<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
					 | 
				
			||||||
				<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
					 | 
				
			||||||
			</li>
 | 
					 | 
				
			||||||
		</modExtensions>
 | 
					 | 
				
			||||||
    </GeneDef>
 | 
					 | 
				
			||||||
	-->
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <GeneDef>
 | 
					    <GeneDef>
 | 
				
			||||||
        <defName>rjw_genes_masochist</defName>
 | 
					        <defName>rjw_genes_masochist</defName>
 | 
				
			||||||
        <label>masochist</label>
 | 
					        <label>masochist</label>
 | 
				
			||||||
| 
						 | 
					@ -102,7 +81,7 @@
 | 
				
			||||||
        <label>homosexual</label>
 | 
					        <label>homosexual</label>
 | 
				
			||||||
        <displayCategory>Reproduction</displayCategory>
 | 
					        <displayCategory>Reproduction</displayCategory>
 | 
				
			||||||
        <description>This Gene makes you gay.</description>
 | 
					        <description>This Gene makes you gay.</description>
 | 
				
			||||||
        <iconPath>UI\Ideoligions\Universal\RoundC</iconPath>
 | 
					        <iconPath>Genes/Icons/RoundC</iconPath>
 | 
				
			||||||
        <biostatMet>0</biostatMet>
 | 
					        <biostatMet>0</biostatMet>
 | 
				
			||||||
        <displayOrderInCategory>3</displayOrderInCategory>
 | 
					        <displayOrderInCategory>3</displayOrderInCategory>
 | 
				
			||||||
        <forcedTraits>
 | 
					        <forcedTraits>
 | 
				
			||||||
| 
						 | 
					@ -111,6 +90,7 @@
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
        </forcedTraits>
 | 
					        </forcedTraits>
 | 
				
			||||||
        <exclusionTags>
 | 
					        <exclusionTags>
 | 
				
			||||||
 | 
					            <li>rjw_genes_homosexuality_trait_giver</li>
 | 
				
			||||||
            <li>rjw_genes_sexual_orientation</li>
 | 
					            <li>rjw_genes_sexual_orientation</li>
 | 
				
			||||||
        </exclusionTags>
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -129,7 +109,7 @@
 | 
				
			||||||
        <label>bisexual</label>
 | 
					        <label>bisexual</label>
 | 
				
			||||||
        <displayCategory>Reproduction</displayCategory>
 | 
					        <displayCategory>Reproduction</displayCategory>
 | 
				
			||||||
        <description>Carriers of this Gene are Bisexual.</description>
 | 
					        <description>Carriers of this Gene are Bisexual.</description>
 | 
				
			||||||
        <iconPath>UI\Ideoligions\Universal\RoundC</iconPath>
 | 
					        <iconPath>Genes/Icons/RoundC</iconPath>
 | 
				
			||||||
        <biostatMet>0</biostatMet>
 | 
					        <biostatMet>0</biostatMet>
 | 
				
			||||||
        <displayOrderInCategory>4</displayOrderInCategory>
 | 
					        <displayOrderInCategory>4</displayOrderInCategory>
 | 
				
			||||||
        <forcedTraits>
 | 
					        <forcedTraits>
 | 
				
			||||||
| 
						 | 
					@ -139,6 +119,7 @@
 | 
				
			||||||
        </forcedTraits>
 | 
					        </forcedTraits>
 | 
				
			||||||
        <exclusionTags>
 | 
					        <exclusionTags>
 | 
				
			||||||
            <li>rjw_genes_sexual_orientation</li>
 | 
					            <li>rjw_genes_sexual_orientation</li>
 | 
				
			||||||
 | 
					            <li>rjw_genes_bisexuality_trait_giver</li>
 | 
				
			||||||
        </exclusionTags>
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <randomChosen>false</randomChosen>
 | 
					        <randomChosen>false</randomChosen>
 | 
				
			||||||
| 
						 | 
					@ -200,4 +181,46 @@
 | 
				
			||||||
        </exclusionTags>
 | 
					        </exclusionTags>
 | 
				
			||||||
    </GeneDef>
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_pregnancy_overwrite</defName>
 | 
				
			||||||
 | 
					        <label>Sperm Displacement</label>
 | 
				
			||||||
 | 
					        <displayCategory>Reproduction</displayCategory>
 | 
				
			||||||
 | 
					        <description>Carriers of this gene can 'overwrite' an existing pregnancy, keeping the
 | 
				
			||||||
 | 
					            progress but effectively replacing the father.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/pregnancy_overwrite</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>120</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <biostatCpx>4</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>-2</biostatMet>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <!-- DevNote: The chance will be multiplied by both pawns' Fertility! -->
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.ChanceExtension">
 | 
				
			||||||
 | 
					                <chance>0.5</chance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
				
			||||||
 | 
					                Class="VanillaGenesExpanded.GeneExtension">
 | 
				
			||||||
 | 
					                <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
				
			||||||
 | 
					                <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  <GeneDef>
 | 
				
			||||||
 | 
					    <defName>rjw_genes_blocked_masturbation</defName>
 | 
				
			||||||
 | 
					    <label>no masturbation</label>
 | 
				
			||||||
 | 
					    <displayCategory>Reproduction</displayCategory>
 | 
				
			||||||
 | 
					    <description>Carriers of this gene are unable to masturbate - they need a partner or equipment.</description>
 | 
				
			||||||
 | 
					    <iconPath>Genes/Icons/blocked_masturbation</iconPath>
 | 
				
			||||||
 | 
					    <displayOrderInCategory>60</displayOrderInCategory>
 | 
				
			||||||
 | 
					    <biostatCpx>0</biostatCpx>
 | 
				
			||||||
 | 
					    <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					        <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
				
			||||||
 | 
					            Class="VanillaGenesExpanded.GeneExtension">
 | 
				
			||||||
 | 
					            <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
				
			||||||
 | 
					            <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@
 | 
				
			||||||
            partially filled)</description>
 | 
					            partially filled)</description>
 | 
				
			||||||
        <biostatCpx>1</biostatCpx>
 | 
					        <biostatCpx>1</biostatCpx>
 | 
				
			||||||
        <biostatMet>-2</biostatMet>
 | 
					        <biostatMet>-2</biostatMet>
 | 
				
			||||||
        <iconPath>UI/Memes/FleshPurity</iconPath>
 | 
					        <iconPath>Genes/Icons/FleshPurity</iconPath>
 | 
				
			||||||
        <displayOrderInCategory>1</displayOrderInCategory>
 | 
					        <displayOrderInCategory>1</displayOrderInCategory>
 | 
				
			||||||
    </GeneDef>
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@
 | 
				
			||||||
            (Partner stays adult)</description>
 | 
					            (Partner stays adult)</description>
 | 
				
			||||||
        <biostatCpx>2</biostatCpx>
 | 
					        <biostatCpx>2</biostatCpx>
 | 
				
			||||||
        <biostatMet>-2</biostatMet>
 | 
					        <biostatMet>-2</biostatMet>
 | 
				
			||||||
        <iconPath>UI/Ideoligions/FireLeaves</iconPath>
 | 
					        <iconPath>Genes/Icons/FireLeaves</iconPath>
 | 
				
			||||||
        <displayOrderInCategory>2</displayOrderInCategory>
 | 
					        <displayOrderInCategory>2</displayOrderInCategory>
 | 
				
			||||||
        <modExtensions>
 | 
					        <modExtensions>
 | 
				
			||||||
            <li Class="RJW_Genes.AgeTransferExtension">
 | 
					            <li Class="RJW_Genes.AgeTransferExtension">
 | 
				
			||||||
| 
						 | 
					@ -140,7 +140,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <GeneDef ParentName="SpecialBase">
 | 
					    <GeneDef ParentName="SpecialBase">
 | 
				
			||||||
        <defName>rjw_genes_sex_tamer</defName>
 | 
					        <defName>rjw_genes_sex_tamer</defName>
 | 
				
			||||||
        <label>Sexual Tamer</label>
 | 
					        <label>sexual tamer</label>
 | 
				
			||||||
        <labelShortAdj>sextamer</labelShortAdj>
 | 
					        <labelShortAdj>sextamer</labelShortAdj>
 | 
				
			||||||
        <description>Bestiality has a chance to tame animals or advance their training.</description>
 | 
					        <description>Bestiality has a chance to tame animals or advance their training.</description>
 | 
				
			||||||
        <iconPath>Genes/Icons/RJW_Genes_SexualTamer</iconPath>
 | 
					        <iconPath>Genes/Icons/RJW_Genes_SexualTamer</iconPath>
 | 
				
			||||||
| 
						 | 
					@ -149,4 +149,119 @@
 | 
				
			||||||
        <biostatMet>-1</biostatMet>
 | 
					        <biostatMet>-1</biostatMet>
 | 
				
			||||||
    </GeneDef>
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="SpecialBase">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_sexual_genetic_swap</defName>
 | 
				
			||||||
 | 
					        <label>sexual genetic swap</label>
 | 
				
			||||||
 | 
					        <description>Carriers with this gene may switch a gene with their sex-partner. Switched Genes are always endogenes.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/sexual_genetic_swap</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>20</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <biostatCpx>3</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>0</biostatMet>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.ChanceExtension">
 | 
				
			||||||
 | 
					                <chance>0.1</chance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="SpecialBase">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_sexual_genetic_thief</defName>
 | 
				
			||||||
 | 
					        <label>sexual gene thief</label>
 | 
				
			||||||
 | 
					        <description>Carriers with this gene may steal a gene from their sex-partner. Stolen genes are always xenogenes.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/sexual_genetic_thief</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>21</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <biostatCpx>5</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>-2</biostatMet>
 | 
				
			||||||
 | 
					        <biostatArc>1</biostatArc>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.ChanceExtension">
 | 
				
			||||||
 | 
					                <chance>0.2</chance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef ParentName="SpecialBase">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_feminizer</defName>
 | 
				
			||||||
 | 
					        <label>feminizer</label>
 | 
				
			||||||
 | 
					        <description>Carriers with this gene slowly turn male sexual partners into females.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/feminizer</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>31</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <biostatCpx>4</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>-1</biostatMet>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.ImmunityAgainstGenesExtension">
 | 
				
			||||||
 | 
					                <givesImmunityAgainst>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_feminizer</li>
 | 
				
			||||||
 | 
					                </givesImmunityAgainst>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.HediffIncreaseOnSexExtension">
 | 
				
			||||||
 | 
					                <hediffDef>rjw_genes_feminization_progress</hediffDef>
 | 
				
			||||||
 | 
					                <canCreateHediff>true</canCreateHediff>
 | 
				
			||||||
 | 
					                <severityIncrease>0.01</severityIncrease>
 | 
				
			||||||
 | 
					                <applicationChance>1.00</applicationChance>
 | 
				
			||||||
 | 
					                <applicableForWomen>false</applicableForWomen>
 | 
				
			||||||
 | 
					                <applicableForMen>true</applicableForMen>
 | 
				
			||||||
 | 
					                <requiresPenetrativeSex>false</requiresPenetrativeSex>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneAlteringExtension">
 | 
				
			||||||
 | 
					                <majorGenes>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_female_only</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_no_penis</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_minor_vulnerability</li>
 | 
				
			||||||
 | 
					                </majorGenes>
 | 
				
			||||||
 | 
					                <minorGenes>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_small_male_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_big_breasts</li>
 | 
				
			||||||
 | 
					                    <li>Beard_NoBeardOnly</li>
 | 
				
			||||||
 | 
					                    <li>Hair_LongOnly</li>
 | 
				
			||||||
 | 
					                </minorGenes>
 | 
				
			||||||
 | 
					                <minorApplicationChance>0.25</minorApplicationChance>
 | 
				
			||||||
 | 
					                <majorApplicationChance>0.1</majorApplicationChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <GeneDef ParentName="SpecialBase">
 | 
				
			||||||
 | 
					        <defName>rjw_genes_twinkifier</defName>
 | 
				
			||||||
 | 
					        <label>twinkifier</label>
 | 
				
			||||||
 | 
					        <description>Carriers with this gene slowly turn male sexual partners into breedabel cute twinks.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/twinkifier</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>50</displayOrderInCategory>
 | 
				
			||||||
 | 
					        <biostatCpx>4</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>-1</biostatMet>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.ImmunityAgainstGenesExtension">
 | 
				
			||||||
 | 
					                <givesImmunityAgainst>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_twinkifier</li>
 | 
				
			||||||
 | 
					                </givesImmunityAgainst>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.HediffIncreaseOnSexExtension">
 | 
				
			||||||
 | 
					                <hediffDef>rjw_genes_twinkification_progress</hediffDef>
 | 
				
			||||||
 | 
					                <canCreateHediff>true</canCreateHediff>
 | 
				
			||||||
 | 
					                <severityIncrease>0.01</severityIncrease>
 | 
				
			||||||
 | 
					                <applicationChance>1.00</applicationChance>
 | 
				
			||||||
 | 
					                <applicableForWomen>false</applicableForWomen>
 | 
				
			||||||
 | 
					                <applicableForMen>true</applicableForMen>
 | 
				
			||||||
 | 
					                <requiresPenetrativeSex>false</requiresPenetrativeSex>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.GeneAlteringExtension">
 | 
				
			||||||
 | 
					                <majorGenes>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_fertile_anus</li>
 | 
				
			||||||
 | 
					                    <li>Beauty_Pretty</li>
 | 
				
			||||||
 | 
					                    <li>Delicate</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_minor_vulnerability</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_infectious_homosexuality</li>
 | 
				
			||||||
 | 
					                </majorGenes>
 | 
				
			||||||
 | 
					                <minorGenes>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_small_male_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>Beard_NoBeardOnly</li>
 | 
				
			||||||
 | 
					                    <li>Body_Thin</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_homosexual</li>
 | 
				
			||||||
 | 
					                </minorGenes>
 | 
				
			||||||
 | 
					                <minorApplicationChance>0.25</minorApplicationChance>
 | 
				
			||||||
 | 
					                <majorApplicationChance>0.1</majorApplicationChance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -65,10 +65,10 @@
 | 
				
			||||||
        <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
					        <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
				
			||||||
        <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
					        <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="RJW_Genes.GenderFluidExtension">
 | 
					      <li Class="RJW_Genes.TickBasedChanceExtension">
 | 
				
			||||||
        <!-- 120k = 2 days -->
 | 
					        <!-- 120k = 2 days -->
 | 
				
			||||||
        <changeInterval>120000</changeInterval>
 | 
					        <tickInterval>120000</tickInterval>
 | 
				
			||||||
        <changeChance>0.25</changeChance>
 | 
					        <eventChance>0.25</eventChance>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
    </modExtensions>
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,6 +75,7 @@
 | 
				
			||||||
    </doubleXenotypeChances>
 | 
					    </doubleXenotypeChances>
 | 
				
			||||||
    <genes>
 | 
					    <genes>
 | 
				
			||||||
      <li>rjw_genes_hypersexual</li>
 | 
					      <li>rjw_genes_hypersexual</li>
 | 
				
			||||||
 | 
					      <li>rjw_genes_bisexual</li>
 | 
				
			||||||
      <li>rjw_genes_male_only</li>
 | 
					      <li>rjw_genes_male_only</li>
 | 
				
			||||||
      <li>rjw_genes_lifeforce</li>
 | 
					      <li>rjw_genes_lifeforce</li>
 | 
				
			||||||
      <li>rjw_genes_lifeforce_drain</li>
 | 
					      <li>rjw_genes_lifeforce_drain</li>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8" ?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Defs>
 | 
					<Defs>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<HediffDef>
 | 
						<HediffDef>
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,8 @@
 | 
				
			||||||
		<defName>rjw_genes_succubus_drained</defName>
 | 
							<defName>rjw_genes_succubus_drained</defName>
 | 
				
			||||||
		<hediffClass>HediffWithComps</hediffClass>
 | 
							<hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
		<label>Drained</label>
 | 
							<label>Drained</label>
 | 
				
			||||||
		<description>The vitality of this pawn has been drained. Cannot be drained again until fully recovered.</description>
 | 
							<description>The vitality of this pawn has been drained. Cannot be drained again until fully
 | 
				
			||||||
 | 
								recovered.</description>
 | 
				
			||||||
		<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
 | 
							<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
 | 
				
			||||||
		<maxSeverity>1.0</maxSeverity>
 | 
							<maxSeverity>1.0</maxSeverity>
 | 
				
			||||||
		<initialSeverity>1.0</initialSeverity>
 | 
							<initialSeverity>1.0</initialSeverity>
 | 
				
			||||||
| 
						 | 
					@ -74,7 +75,7 @@
 | 
				
			||||||
				<statOffsets>
 | 
									<statOffsets>
 | 
				
			||||||
					<WorkSpeedGlobal>-0.2</WorkSpeedGlobal>
 | 
										<WorkSpeedGlobal>-0.2</WorkSpeedGlobal>
 | 
				
			||||||
				</statOffsets>
 | 
									</statOffsets>
 | 
				
			||||||
        		<vomitMtbDays>0.4</vomitMtbDays>
 | 
									<vomitMtbDays>0.4</vomitMtbDays>
 | 
				
			||||||
				<hungerRateFactorOffset>0.1</hungerRateFactorOffset>
 | 
									<hungerRateFactorOffset>0.1</hungerRateFactorOffset>
 | 
				
			||||||
				<restFallFactorOffset>0.35</restFallFactorOffset>
 | 
									<restFallFactorOffset>0.35</restFallFactorOffset>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
| 
						 | 
					@ -90,77 +91,78 @@
 | 
				
			||||||
		<maxSeverity>1.0</maxSeverity>
 | 
							<maxSeverity>1.0</maxSeverity>
 | 
				
			||||||
		<initialSeverity>0.01</initialSeverity>
 | 
							<initialSeverity>0.01</initialSeverity>
 | 
				
			||||||
		<stages>
 | 
							<stages>
 | 
				
			||||||
		  <li>
 | 
								<li>
 | 
				
			||||||
			<label>minor</label>
 | 
									<label>minor</label>
 | 
				
			||||||
			<painOffset>0.05</painOffset>
 | 
									<painOffset>0.05</painOffset>
 | 
				
			||||||
			<capMods>
 | 
									<capMods>
 | 
				
			||||||
			  <li>
 | 
										<li>
 | 
				
			||||||
				<capacity>Consciousness</capacity>
 | 
											<capacity>Consciousness</capacity>
 | 
				
			||||||
				<setMax>0.9</setMax>
 | 
											<setMax>0.9</setMax>
 | 
				
			||||||
			  </li>
 | 
										</li>
 | 
				
			||||||
			</capMods>
 | 
									</capMods>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		  <li>
 | 
								<li>
 | 
				
			||||||
			<label>moderate</label>
 | 
									<label>moderate</label>
 | 
				
			||||||
			<minSeverity>0.35</minSeverity>
 | 
									<minSeverity>0.35</minSeverity>
 | 
				
			||||||
			<painOffset>0.1</painOffset>
 | 
									<painOffset>0.1</painOffset>
 | 
				
			||||||
			<capMods>
 | 
									<capMods>
 | 
				
			||||||
			  <li>
 | 
										<li>
 | 
				
			||||||
				<capacity>Consciousness</capacity>
 | 
											<capacity>Consciousness</capacity>
 | 
				
			||||||
				<setMax>0.8</setMax>
 | 
											<setMax>0.8</setMax>
 | 
				
			||||||
			  </li>
 | 
										</li>
 | 
				
			||||||
			</capMods>
 | 
									</capMods>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		  <li>
 | 
								<li>
 | 
				
			||||||
			<label>major</label>
 | 
									<label>major</label>
 | 
				
			||||||
			<minSeverity>0.7</minSeverity>
 | 
									<minSeverity>0.7</minSeverity>
 | 
				
			||||||
			<painOffset>0.15</painOffset>
 | 
									<painOffset>0.15</painOffset>
 | 
				
			||||||
			<capMods>
 | 
									<capMods>
 | 
				
			||||||
			  <li>
 | 
										<li>
 | 
				
			||||||
				<capacity>Consciousness</capacity>
 | 
											<capacity>Consciousness</capacity>
 | 
				
			||||||
				<setMax>0.5</setMax>
 | 
											<setMax>0.5</setMax>
 | 
				
			||||||
			  </li>
 | 
										</li>
 | 
				
			||||||
			</capMods>
 | 
									</capMods>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		</stages>
 | 
							</stages>
 | 
				
			||||||
		<comps>
 | 
							<comps>
 | 
				
			||||||
		  <li Class="RJW_Genes.HediffCompProperties_SeverityFromFertilin">
 | 
								<li Class="RJW_Genes.HediffCompProperties_SeverityFromFertilin">
 | 
				
			||||||
			<severityPerHourEmpty>0.05</severityPerHourEmpty>
 | 
									<severityPerHourEmpty>0.05</severityPerHourEmpty>
 | 
				
			||||||
			<severityPerHourHemogen>-0.1</severityPerHourHemogen>
 | 
									<severityPerHourHemogen>-0.1</severityPerHourHemogen>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		</comps>
 | 
							</comps>
 | 
				
			||||||
	</HediffDef>
 | 
						</HediffDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <HediffDef ParentName="RoleStatBuff">
 | 
						<HediffDef>
 | 
				
			||||||
    <defName>rjw_genes_naked_prowess</defName>
 | 
							<defName>rjw_genes_naked_prowess</defName>
 | 
				
			||||||
    <label>naked prowss</label>
 | 
							<defaultLabelColor>(0.52, 1, 0.95)</defaultLabelColor>
 | 
				
			||||||
    <description>Driven by fertilin, this person has greatly increased strength and resilience.</description>
 | 
							<label>naked prowss</label>
 | 
				
			||||||
    <hediffClass>HediffWithComps</hediffClass>
 | 
							<description>Driven by fertilin, this person has greatly increased strength and resilience.</description>
 | 
				
			||||||
    <stages>
 | 
							<hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
      <li>
 | 
							<stages>
 | 
				
			||||||
		<!--Maybe a bit to much, but they are supposed to be strong-->
 | 
								<li>
 | 
				
			||||||
        <statOffsets>
 | 
									<!--Maybe
 | 
				
			||||||
          <ArmorRating_Sharp>0.5</ArmorRating_Sharp>
 | 
									a bit to much, but they are supposed to be strong-->
 | 
				
			||||||
          <ArmorRating_Blunt>0.5</ArmorRating_Blunt>
 | 
									<statOffsets>
 | 
				
			||||||
          <ArmorRating_Heat>0.5</ArmorRating_Heat>
 | 
										<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
 | 
				
			||||||
<!--		  <Insulation_Cold>10</Insulation_Cold>
 | 
										<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
 | 
				
			||||||
		  <Insulation_Heat>10</Insulation_Heat> -->
 | 
										<ArmorRating_Heat>0.5</ArmorRating_Heat>
 | 
				
			||||||
        </statOffsets>
 | 
									</statOffsets>
 | 
				
			||||||
		<statFactors>
 | 
									<statFactors>
 | 
				
			||||||
		  <IncomingDamageFactor>0.5</IncomingDamageFactor>
 | 
										<IncomingDamageFactor>0.5</IncomingDamageFactor>
 | 
				
			||||||
		  <MeleeDamageFactor>1.5</MeleeDamageFactor>
 | 
										<MeleeDamageFactor>1.5</MeleeDamageFactor>
 | 
				
			||||||
		</statFactors>
 | 
									</statFactors>
 | 
				
			||||||
      </li>
 | 
								</li>
 | 
				
			||||||
    </stages>
 | 
							</stages>
 | 
				
			||||||
    <comps>
 | 
							<comps>
 | 
				
			||||||
      <li Class="HediffCompProperties_Disappears">
 | 
								<li Class="HediffCompProperties_Disappears">
 | 
				
			||||||
        <showRemainingTime>True</showRemainingTime>
 | 
									<showRemainingTime>True</showRemainingTime>
 | 
				
			||||||
        <disappearsAfterTicks>5000</disappearsAfterTicks> <!-- 2 hours -->
 | 
									<disappearsAfterTicks>5000</disappearsAfterTicks> <!-- 2 hours -->
 | 
				
			||||||
      </li>
 | 
								</li>
 | 
				
			||||||
      <li Class="HediffCompProperties_DisappearsOnDeath"/>
 | 
								<li Class="HediffCompProperties_DisappearsOnDeath" />
 | 
				
			||||||
	  <!--TODO: Make hediff disappear if pawn is nolonger naked-->
 | 
								<!--TODO:
 | 
				
			||||||
    </comps>
 | 
								Make hediff disappear if pawn is nolonger naked-->
 | 
				
			||||||
    <isBad>false</isBad>
 | 
							</comps>
 | 
				
			||||||
  </HediffDef>
 | 
							<isBad>false</isBad>
 | 
				
			||||||
 | 
						</HediffDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
							
								
								
									
										147
									
								
								Common/Defs/HediffDefs/Hediffs_InfectiveGenderChanges.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,147 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <HediffDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_feminization_progress</defName>
 | 
				
			||||||
 | 
					        <hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
 | 
					        <label>feminization</label>
 | 
				
			||||||
 | 
					        <description>Something is changing this pawn - there is a chance to develop female features
 | 
				
			||||||
 | 
					            upon sex.</description>
 | 
				
			||||||
 | 
					        <scenarioCanAdd>false</scenarioCanAdd>
 | 
				
			||||||
 | 
					        <maxSeverity>1.0</maxSeverity>
 | 
				
			||||||
 | 
					        <isBad>false</isBad>
 | 
				
			||||||
 | 
					        <tendable>false</tendable>
 | 
				
			||||||
 | 
					        <comps>
 | 
				
			||||||
 | 
					            <li Class="HediffCompProperties_SeverityPerDay">
 | 
				
			||||||
 | 
					                <severityPerDay>-0.01</severityPerDay>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </comps>
 | 
				
			||||||
 | 
					        <stages>
 | 
				
			||||||
 | 
					            <!-- DevNote: The labels and their effects can be changed, but the logic triggers at >0.6 for minor and >0.8 for major ! -->
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>neglectable</label>
 | 
				
			||||||
 | 
					                <becomeVisible>false</becomeVisible>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>minor</label>
 | 
				
			||||||
 | 
					                <minSeverity>0.6</minSeverity>
 | 
				
			||||||
 | 
					                <becomeVisible>true</becomeVisible>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>Consciousness</capacity>
 | 
				
			||||||
 | 
					                        <offset>-0.5</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <Vulnerability>0.25</Vulnerability>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>severe</label>
 | 
				
			||||||
 | 
					                <minSeverity>0.8</minSeverity>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>Consciousness</capacity>
 | 
				
			||||||
 | 
					                        <offset>-0.05</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					                <becomeVisible>true</becomeVisible>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <Vulnerability>0.5</Vulnerability>
 | 
				
			||||||
 | 
					                    <SexFrequency>0.25</SexFrequency>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>critical</label>
 | 
				
			||||||
 | 
					                <minSeverity>0.9</minSeverity>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>Consciousness</capacity>
 | 
				
			||||||
 | 
					                        <offset>-0.1</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					                <becomeVisible>true</becomeVisible>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <Vulnerability>1.0</Vulnerability>
 | 
				
			||||||
 | 
					                    <SexFrequency>0.5</SexFrequency>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </stages>
 | 
				
			||||||
 | 
					    </HediffDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <HediffDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_twinkification_progress</defName>
 | 
				
			||||||
 | 
					        <hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
 | 
					        <label>twinkification</label>
 | 
				
			||||||
 | 
					        <description>Something is changing this pawn - there is a chance to turn into a cute,
 | 
				
			||||||
 | 
					            breedable twink upon sex.</description>
 | 
				
			||||||
 | 
					        <scenarioCanAdd>false</scenarioCanAdd>
 | 
				
			||||||
 | 
					        <maxSeverity>1.0</maxSeverity>
 | 
				
			||||||
 | 
					        <isBad>false</isBad>
 | 
				
			||||||
 | 
					        <tendable>false</tendable>
 | 
				
			||||||
 | 
					        <comps>
 | 
				
			||||||
 | 
					            <li Class="HediffCompProperties_SeverityPerDay">
 | 
				
			||||||
 | 
					                <severityPerDay>-0.01</severityPerDay>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </comps>
 | 
				
			||||||
 | 
					        <stages>
 | 
				
			||||||
 | 
					            <!-- DevNote: The labels and their effects can be changed, but the logic triggers at >0.6 for minor and >0.8 for major ! -->
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>neglectable</label>
 | 
				
			||||||
 | 
					                <becomeVisible>false</becomeVisible>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>minor</label>
 | 
				
			||||||
 | 
					                <minSeverity>0.6</minSeverity>
 | 
				
			||||||
 | 
					                <becomeVisible>true</becomeVisible>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>Consciousness</capacity>
 | 
				
			||||||
 | 
					                        <offset>-0.05</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <Vulnerability>0.25</Vulnerability>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>severe</label>
 | 
				
			||||||
 | 
					                <minSeverity>0.8</minSeverity>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>Consciousness</capacity>
 | 
				
			||||||
 | 
					                        <offset>-0.05</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					                <becomeVisible>true</becomeVisible>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <Vulnerability>0.5</Vulnerability>
 | 
				
			||||||
 | 
					                    <SexFrequency>0.25</SexFrequency>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>critical</label>
 | 
				
			||||||
 | 
					                <minSeverity>0.9</minSeverity>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>Consciousness</capacity>
 | 
				
			||||||
 | 
					                        <offset>-0.1</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					                <becomeVisible>true</becomeVisible>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <Vulnerability>1.5</Vulnerability>
 | 
				
			||||||
 | 
					                    <SexFrequency>0.5</SexFrequency>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </stages>
 | 
				
			||||||
 | 
					    </HediffDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
							
								
								
									
										51
									
								
								Common/Defs/HediffDefs/Hediffs_Rut.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					    <HediffDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_genetic_rut</defName>
 | 
				
			||||||
 | 
					        <hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
 | 
					        <label>Rut</label>
 | 
				
			||||||
 | 
					        <description>Based on genetics, this pawn is in heat.</description>
 | 
				
			||||||
 | 
					        <defaultLabelColor>(240,200,110)</defaultLabelColor>
 | 
				
			||||||
 | 
					        <scenarioCanAdd>false</scenarioCanAdd>
 | 
				
			||||||
 | 
					        <maxSeverity>1.0</maxSeverity>
 | 
				
			||||||
 | 
					        <isBad>false</isBad>
 | 
				
			||||||
 | 
					        <tendable>false</tendable>
 | 
				
			||||||
 | 
					        <comps>
 | 
				
			||||||
 | 
					            <li Class="HediffCompProperties_SeverityPerDay">
 | 
				
			||||||
 | 
					                <severityPerDay>-1.00</severityPerDay>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </comps>
 | 
				
			||||||
 | 
					        <stages>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>calming down</label>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <SexFrequency>0.50</SexFrequency>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>BloodPumping</capacity>
 | 
				
			||||||
 | 
					                        <offset>0.1</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					                <label>in heat</label>
 | 
				
			||||||
 | 
					                <minSeverity>0.4</minSeverity>
 | 
				
			||||||
 | 
					                <statOffsets>
 | 
				
			||||||
 | 
					                    <SexFrequency>2.00</SexFrequency>
 | 
				
			||||||
 | 
					                </statOffsets>
 | 
				
			||||||
 | 
					                <capMods>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>Moving</capacity>
 | 
				
			||||||
 | 
					                        <offset>0.1</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                    <li>
 | 
				
			||||||
 | 
					                        <capacity>BloodPumping</capacity>
 | 
				
			||||||
 | 
					                        <offset>0.15</offset>
 | 
				
			||||||
 | 
					                    </li>
 | 
				
			||||||
 | 
					                </capMods>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </stages>
 | 
				
			||||||
 | 
					    </HediffDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@
 | 
				
			||||||
      <li>
 | 
					      <li>
 | 
				
			||||||
        <minSeverity>0</minSeverity>
 | 
					        <minSeverity>0</minSeverity>
 | 
				
			||||||
        <statOffsets>
 | 
					        <statOffsets>
 | 
				
			||||||
          <SlaveSuppressionOffset>0.40</SlaveSuppressionOffset>
 | 
					          <SlaveSuppressionOffset MayRequire="Ideology">0.40</SlaveSuppressionOffset>
 | 
				
			||||||
          <Vulnerability>3.0</Vulnerability>
 | 
					          <Vulnerability>3.0</Vulnerability>
 | 
				
			||||||
        </statOffsets>
 | 
					        </statOffsets>
 | 
				
			||||||
        <capMods>
 | 
					        <capMods>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								Common/Defs/HistoryEventDefs/DiseaseHistoryEventDefs.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					    <HistoryEventDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_GoodwillChangedReason_StoleGene</defName>
 | 
				
			||||||
 | 
					        <label>Stole a gene</label>
 | 
				
			||||||
 | 
					    </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <HistoryEventDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_GoodwillChangedReason_infected_with_disease</defName>
 | 
				
			||||||
 | 
					        <label>Infected a pawn with a genetic disease</label>
 | 
				
			||||||
 | 
					    </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <HistoryEventDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_GoodwillChangedReason_spread_genetic_disease</defName>
 | 
				
			||||||
 | 
					        <label>Spread a genetic disease</label>
 | 
				
			||||||
 | 
					    </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
							
								
								
									
										18
									
								
								Common/Defs/HistoryEventDefs/SpecialHistoryEventDefs.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					    <HistoryEventDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_GoodwillChangedReason_aged_pawn_with_sex_gene</defName>
 | 
				
			||||||
 | 
					        <label>Aged a pawn with sexual age transfer</label>
 | 
				
			||||||
 | 
					    </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <HistoryEventDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_GoodwillChangedReason_youthed_pawn_with_sex_gene</defName>
 | 
				
			||||||
 | 
					        <label>Youthed a pawn with youth fountain</label>
 | 
				
			||||||
 | 
					    </HistoryEventDef>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <HistoryEventDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_GoodwillChangedReason_OverwritePregnancy</defName>
 | 
				
			||||||
 | 
					        <label>Replaced a pregnancy</label>
 | 
				
			||||||
 | 
					    </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
							
								
								
									
										49
									
								
								Common/Defs/ThoughtDefs/Thoughts_Disease.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,49 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <ThoughtDef>
 | 
				
			||||||
 | 
					    <defName>rjw_genes_appealing_cock</defName>
 | 
				
			||||||
 | 
					    <thoughtClass>Thought_SituationalSocial</thoughtClass>
 | 
				
			||||||
 | 
					    <workerClass>RJW_Genes.ThoughtWorker_SizeBlinded_Social</workerClass>
 | 
				
			||||||
 | 
					    <validWhileDespawned>true</validWhileDespawned>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <stages>
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
 | 
					        <label>small cock</label>
 | 
				
			||||||
 | 
					        <baseOpinionOffset>-10</baseOpinionOffset>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
 | 
					        <label>big cock</label>
 | 
				
			||||||
 | 
					        <baseOpinionOffset>10</baseOpinionOffset>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
 | 
					        <label>monster cock</label>
 | 
				
			||||||
 | 
					        <baseOpinionOffset>20</baseOpinionOffset>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </stages>
 | 
				
			||||||
 | 
					  </ThoughtDef>
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  <ThoughtDef>
 | 
				
			||||||
 | 
					    <defName>rjw_genes_has_more_diseases</defName>
 | 
				
			||||||
 | 
					    <thoughtClass>Thought_SituationalSocial</thoughtClass>
 | 
				
			||||||
 | 
					    <workerClass>RJW_Genes.ThoughtWorker_HasMoreDiseasesThanMe_Social</workerClass>
 | 
				
			||||||
 | 
					    <validWhileDespawned>true</validWhileDespawned>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <stages>
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
 | 
					        <label>carries more genetic diseases than me</label>
 | 
				
			||||||
 | 
					        <baseOpinionOffset>-3</baseOpinionOffset>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
 | 
					        <label>carries more way genetic diseases than me</label>
 | 
				
			||||||
 | 
					        <baseOpinionOffset>-8</baseOpinionOffset>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
 | 
					        <label>the genetic diseases on this fellow are off charts</label>
 | 
				
			||||||
 | 
					        <baseOpinionOffset>-18</baseOpinionOffset>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </stages>
 | 
				
			||||||
 | 
					  </ThoughtDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -23,6 +23,8 @@
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      <li TKey="BestialityGeneSettings">The Settings for Animal-Gene Inheritance are distributed between RJW-Pregnancy-Settings and their own Mod-Options.</li>
 | 
					      <li TKey="BestialityGeneSettings">The Settings for Animal-Gene Inheritance are distributed between RJW-Pregnancy-Settings and their own Mod-Options.</li>
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
 | 
					      <li TKey="FertilaAnusJoke">Children born by pawns with the `Fertile Anus` gene might be bullied at school, but they can still live a fulfilling and happy life.</li>
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
    </tips>
 | 
					    </tips>
 | 
				
			||||||
  </TipSetDef>
 | 
					  </TipSetDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,10 +21,17 @@
 | 
				
			||||||
    <rjw_genes_settings_regret_stealing_love_key>Regret Stealing Love</rjw_genes_settings_regret_stealing_love_key>
 | 
					    <rjw_genes_settings_regret_stealing_love_key>Regret Stealing Love</rjw_genes_settings_regret_stealing_love_key>
 | 
				
			||||||
    <rjw_genes_settings_regret_stealing_love_explanation>If off, pawns will not get bad thoughts for seduction.</rjw_genes_settings_regret_stealing_love_explanation>
 | 
					    <rjw_genes_settings_regret_stealing_love_explanation>If off, pawns will not get bad thoughts for seduction.</rjw_genes_settings_regret_stealing_love_explanation>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    <rjw_genes_settings_animal_mating_needs_penis_key>Animal-Mating GenitalCheck</rjw_genes_settings_animal_mating_needs_penis_key>
 | 
					    <rjw_genes_settings_animal_mating_needs_penis_key>Animal-Mating GenitalCheck</rjw_genes_settings_animal_mating_needs_penis_key>
 | 
				
			||||||
    <rjw_genes_settings_animal_mating_needs_penis_explanation>If on, only animals that 'can rape' will be engaging in bestiality after being hit by a animal mating pulse. This usually means that only male animals will start breeding.</rjw_genes_settings_animal_mating_needs_penis_explanation>
 | 
					    <rjw_genes_settings_animal_mating_needs_penis_explanation>If on, only animals that 'can rape' will be engaging in bestiality after being hit by a animal mating pulse. This usually means that only male animals will start breeding.</rjw_genes_settings_animal_mating_needs_penis_explanation>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <rjw_genes_genetic_disease_header_key>Genetic STDS</rjw_genes_genetic_disease_header_key>
 | 
				
			||||||
 | 
					    <rjw_genes_settings_genetic_disease_spread_key>Genetic STD Spread</rjw_genes_settings_genetic_disease_spread_key>
 | 
				
			||||||
 | 
					    <rjw_genes_settings_genetic_disease_spread_explanation>If checked, certain Genes will spread on sex.</rjw_genes_settings_genetic_disease_spread_explanation>
 | 
				
			||||||
 | 
					    <rjw_genes_genetic_disease_as_endogenes_key>Genetic STDs as Endogenes</rjw_genes_genetic_disease_as_endogenes_key>
 | 
				
			||||||
 | 
					    <rjw_genes_genetic_disease_as_endogenes_explanation>If checked, genetic diseases will be added as Endogenes. Otherwise they are added as Xenogenes.</rjw_genes_genetic_disease_as_endogenes_explanation>
 | 
				
			||||||
 | 
					    <rjw_genes_genetic_disease_spread_only_on_penetrative_sex_key>Genetic STDs on penetrative-sex only</rjw_genes_genetic_disease_spread_only_on_penetrative_sex_key>
 | 
				
			||||||
 | 
					    <rjw_genes_genetic_disease_spread_only_on_penetrative_sex_explanation>If checked, genetic STDs are only spread on penetrative sex. Otherwise, any sextype is considered for spread.</rjw_genes_genetic_disease_spread_only_on_penetrative_sex_explanation>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    <rjw_genes_settings_generous_donor_cheatmode_key>generous-donor cheatmode</rjw_genes_settings_generous_donor_cheatmode_key>
 | 
					    <rjw_genes_settings_generous_donor_cheatmode_key>generous-donor cheatmode</rjw_genes_settings_generous_donor_cheatmode_key>
 | 
				
			||||||
    <rjw_genes_settings_generous_donor_cheatmode_explanation>When enabled, pawns with the 'generous donor' are not drained and not fertilin exhausted. Hence they can fuel succubi and incubi non-stop. This makes them drastically easier to keep, and you should not do it.</rjw_genes_settings_generous_donor_cheatmode_explanation>
 | 
					    <rjw_genes_settings_generous_donor_cheatmode_explanation>When enabled, pawns with the 'generous donor' are not drained and not fertilin exhausted. Hence they can fuel succubi and incubi non-stop. This makes them drastically easier to keep, and you should not do it.</rjw_genes_settings_generous_donor_cheatmode_explanation>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								Common/Languages/English/Keyed/StatsReports.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<LanguageData>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<StatsReport_NoChildren>Pawn doesn't have any children.</StatsReport_NoChildren>
 | 
				
			||||||
 | 
						<StatsReport_ManyChildren>Pawn has a decent amount of children.</StatsReport_ManyChildren>
 | 
				
			||||||
 | 
						<StatsReport_VeryManyChildren>Pawn has a lot of children.</StatsReport_VeryManyChildren>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</LanguageData>
 | 
				
			||||||
							
								
								
									
										36
									
								
								Common/Patches/Xenotypes/PatchImphileeXeno.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?>
 | 
				
			||||||
 | 
					<Patch>
 | 
				
			||||||
 | 
					<Operation Class="PatchOperationSequence">
 | 
				
			||||||
 | 
					    <operations>
 | 
				
			||||||
 | 
					        <li Class="PatchOperationFindMod">
 | 
				
			||||||
 | 
					            <mods>
 | 
				
			||||||
 | 
					                <li>Imphilee Xeno</li>
 | 
				
			||||||
 | 
					            </mods>
 | 
				
			||||||
 | 
					            <match Class="PatchOperationAdd">
 | 
				
			||||||
 | 
					                <xpath>Defs/XenotypeDef[defName="LD_Imphilee"]/genes</xpath>
 | 
				
			||||||
 | 
					                <value>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_tight_female_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_small_breasts</li>
 | 
				
			||||||
 | 
					                    <li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_demonic_genitalia</li>
 | 
				
			||||||
 | 
					                </value>
 | 
				
			||||||
 | 
					            </match>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					        <li Class="PatchOperationFindMod">
 | 
				
			||||||
 | 
					            <mods>
 | 
				
			||||||
 | 
					                <li>Imphilee Xeno</li>
 | 
				
			||||||
 | 
					            </mods>
 | 
				
			||||||
 | 
					            <match Class="PatchOperationAdd">
 | 
				
			||||||
 | 
					                <xpath>Defs/XenotypeDef[defName="LD_Imphilee_Overlord"]/genes</xpath>
 | 
				
			||||||
 | 
					                <value>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_tight_female_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_small_breasts</li>
 | 
				
			||||||
 | 
					                    <li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_demonic_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_rapist</li>
 | 
				
			||||||
 | 
					                </value>
 | 
				
			||||||
 | 
					            </match>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					    </operations>
 | 
				
			||||||
 | 
					</Operation>
 | 
				
			||||||
 | 
					</Patch>
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 195 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/FireLeaves.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/FleshPurity.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.6 KiB  | 
| 
		 After Width: | Height: | Size: 113 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/RoundC.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Cumflation_Immunity.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Gene_Fertile.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Gene_Inbred.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.9 KiB  | 
| 
		 After Width: | Height: | Size: 3 KiB  | 
| 
		 After Width: | Height: | Size: 3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Gene_PsychicBonding.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Gene_PsychicallyDeaf.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/Time.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 148 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/blocked_masturbation.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/disease_immunity.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/feminizer&twinkifier.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/hardwired_progenity.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/la-copa-menstrual-04.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 373 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/living_cumbucket.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/low_fertility.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/pregnancy_overwrite.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/rut.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/sexual_genetic_swap.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/sexual_genetic_thief.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/size_blinded&stretcher.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/Samples/vulnerability.psd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/TrialDefend.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/bisexuality.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 21 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/blocked_masturbation.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/disease_immunity.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/feminizer.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/hardwired_progenity.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/homosexuality.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 17 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/living_cumbucket.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/low_fertility.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/major_vulnerability.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/minor_vulnerability.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/pregnancy_overwrite.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/rut.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/sexual_genetic_swap.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/sexual_genetic_thief.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/size_blinded.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 58 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/stretcher.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 72 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Common/Textures/Genes/Icons/twinkifier.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
| 
						 | 
					@ -16,5 +16,6 @@
 | 
				
			||||||
		<li IfModActive="vanillaracesexpanded.android">Mods/Android</li>
 | 
							<li IfModActive="vanillaracesexpanded.android">Mods/Android</li>
 | 
				
			||||||
		<li IfModActive="VanillaExpanded.VGeneticsE">Mods/VE_Genetics</li>
 | 
							<li IfModActive="VanillaExpanded.VGeneticsE">Mods/VE_Genetics</li>
 | 
				
			||||||
		<li IfModActive="LustLicentia.RJWLabs">Mods/LicentiaLabs</li>
 | 
							<li IfModActive="LustLicentia.RJWLabs">Mods/LicentiaLabs</li>
 | 
				
			||||||
 | 
							<li IfModActive="rjw.sexperience">Mods/Sexperience</li>
 | 
				
			||||||
	</v1.5>
 | 
						</v1.5>
 | 
				
			||||||
</loadFolders>
 | 
					</loadFolders>
 | 
				
			||||||
| 
						 | 
					@ -27,6 +27,8 @@
 | 
				
			||||||
    <description>This Xenotype loves being cumflated.</description>
 | 
					    <description>This Xenotype loves being cumflated.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/Cumflation</iconPath>
 | 
					    <iconPath>Genes/Icons/Cumflation</iconPath>
 | 
				
			||||||
    <displayOrderInCategory>536</displayOrderInCategory>
 | 
					    <displayOrderInCategory>536</displayOrderInCategory>
 | 
				
			||||||
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
 | 
					    <biostatCpx>2</biostatCpx>
 | 
				
			||||||
    <forcedTraits>
 | 
					    <forcedTraits>
 | 
				
			||||||
      <li>
 | 
					      <li>
 | 
				
			||||||
        <def>LikesCumflation</def>
 | 
					        <def>LikesCumflation</def>
 | 
				
			||||||
| 
						 | 
					@ -71,6 +73,8 @@
 | 
				
			||||||
    <iconPath>Genes/Icons/Generous_Donor</iconPath>
 | 
					    <iconPath>Genes/Icons/Generous_Donor</iconPath>
 | 
				
			||||||
    <displayOrderInCategory>538</displayOrderInCategory>
 | 
					    <displayOrderInCategory>538</displayOrderInCategory>
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    <biostatCpx>2</biostatCpx>
 | 
				
			||||||
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
    <modExtensions>
 | 
					    <modExtensions>
 | 
				
			||||||
			<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core" Class="VanillaGenesExpanded.GeneExtension">
 | 
								<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core" Class="VanillaGenesExpanded.GeneExtension">
 | 
				
			||||||
				<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
									<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,15 +98,6 @@
 | 
				
			||||||
      <li Class="HediffCompProperties_SeverityPerDay">
 | 
					      <li Class="HediffCompProperties_SeverityPerDay">
 | 
				
			||||||
        <severityPerDay>-0.75</severityPerDay>
 | 
					        <severityPerDay>-0.75</severityPerDay>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="LicentiaLabs.Hediffs.HediffCompProperties_VomitCumMtb">
 | 
					 | 
				
			||||||
        <mtbDaysPerStage>
 | 
					 | 
				
			||||||
          <li>0</li>
 | 
					 | 
				
			||||||
          <li>0</li>
 | 
					 | 
				
			||||||
          <li>0.75</li>
 | 
					 | 
				
			||||||
          <li>0.5</li>
 | 
					 | 
				
			||||||
          <li>0.2</li>
 | 
					 | 
				
			||||||
        </mtbDaysPerStage>
 | 
					 | 
				
			||||||
      </li>
 | 
					 | 
				
			||||||
    </comps>
 | 
					    </comps>
 | 
				
			||||||
    <stages>
 | 
					    <stages>
 | 
				
			||||||
      <li>
 | 
					      <li>
 | 
				
			||||||
							
								
								
									
										21
									
								
								Mods/Sexperience/Defs/GeneDefs/Sexperience_GeneDefs.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <GeneDef>
 | 
				
			||||||
 | 
					    <defName>rjw_genes_living_cumbucket</defName>
 | 
				
			||||||
 | 
					    <label>living cumbucket</label>
 | 
				
			||||||
 | 
					    <displayCategory>rjw_genes_cum</displayCategory>
 | 
				
			||||||
 | 
					    <description>When this Xenotype partakes in sexual activity, they store cum and produce it as an item.</description>
 | 
				
			||||||
 | 
					    <iconPath>Genes/Icons/living_cumbucket</iconPath>
 | 
				
			||||||
 | 
					    <displayOrderInCategory>559</displayOrderInCategory>
 | 
				
			||||||
 | 
					    <biostatCpx>3</biostatCpx>
 | 
				
			||||||
 | 
					    <biostatMet>-2</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					        <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core" Class="VanillaGenesExpanded.GeneExtension">
 | 
				
			||||||
 | 
					            <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
				
			||||||
 | 
					            <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
							
								
								
									
										94
									
								
								Mods/Sexperience/Defs/HediffDefs/Sexperience_HediffDefs.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,94 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					    <HediffDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_filled_living_cumbucket</defName>
 | 
				
			||||||
 | 
					        <hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
 | 
					        <label>filled living cumbucket</label>
 | 
				
			||||||
 | 
					        <description>This pawn is a (filled) living cum bucket. Thanks to a generous donation, this pawn will slowly generate cum for pickup.</description>
 | 
				
			||||||
 | 
					        <defaultLabelColor>(240,200,110)</defaultLabelColor>
 | 
				
			||||||
 | 
					        <scenarioCanAdd>false</scenarioCanAdd>
 | 
				
			||||||
 | 
					        <!-- <maxSeverity>1.0</maxSeverity> -->
 | 
				
			||||||
 | 
					        <isBad>false</isBad>
 | 
				
			||||||
 | 
					        <tendable>false</tendable>
 | 
				
			||||||
 | 
					        <comps>
 | 
				
			||||||
 | 
					          <li Class="HediffCompProperties_SeverityPerDay">
 | 
				
			||||||
 | 
					            <severityPerDay>-0.5</severityPerDay>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li Class="RJW_Genes.HediffsCompProperties_ProcessCumbucketMTB">
 | 
				
			||||||
 | 
					            <mtbDaysPerStage>
 | 
				
			||||||
 | 
					              <li>0</li>
 | 
				
			||||||
 | 
					              <li>0.5</li>
 | 
				
			||||||
 | 
					              <li>0.25</li>
 | 
				
			||||||
 | 
					              <li>0.1</li>
 | 
				
			||||||
 | 
					              <li>0.5</li>
 | 
				
			||||||
 | 
					            </mtbDaysPerStage>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        </comps>
 | 
				
			||||||
 | 
					        <stages>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <label>slight</label>
 | 
				
			||||||
 | 
					            <statOffsets>
 | 
				
			||||||
 | 
					              <Vulnerability>-0.1</Vulnerability>
 | 
				
			||||||
 | 
					            </statOffsets>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <label>moderate</label>
 | 
				
			||||||
 | 
					            <minSeverity>0.4</minSeverity>
 | 
				
			||||||
 | 
					            <hungerRateFactor>0.8</hungerRateFactor>
 | 
				
			||||||
 | 
					            <statOffsets>
 | 
				
			||||||
 | 
					              <Vulnerability>-0.25</Vulnerability>
 | 
				
			||||||
 | 
					            </statOffsets>
 | 
				
			||||||
 | 
					            <capMods>
 | 
				
			||||||
 | 
					              <li>
 | 
				
			||||||
 | 
					                <capacity>Moving</capacity>
 | 
				
			||||||
 | 
					                <offset>-0.05</offset>
 | 
				
			||||||
 | 
					              </li>
 | 
				
			||||||
 | 
					            </capMods>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <label>full</label>
 | 
				
			||||||
 | 
					            <minSeverity>0.65</minSeverity>
 | 
				
			||||||
 | 
					            <hungerRateFactor>0.75</hungerRateFactor>
 | 
				
			||||||
 | 
					            <statOffsets>
 | 
				
			||||||
 | 
					              <Vulnerability>-0.25</Vulnerability>
 | 
				
			||||||
 | 
					            </statOffsets>
 | 
				
			||||||
 | 
					            <capMods>
 | 
				
			||||||
 | 
					              <li>
 | 
				
			||||||
 | 
					                <capacity>Moving</capacity>
 | 
				
			||||||
 | 
					                <offset>-0.1</offset>
 | 
				
			||||||
 | 
					              </li>
 | 
				
			||||||
 | 
					            </capMods>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <label>over-full</label>
 | 
				
			||||||
 | 
					            <minSeverity>1.1</minSeverity>
 | 
				
			||||||
 | 
					            <hungerRateFactor>0.6</hungerRateFactor>
 | 
				
			||||||
 | 
					            <statOffsets>
 | 
				
			||||||
 | 
					              <Vulnerability>-0.5</Vulnerability>
 | 
				
			||||||
 | 
					            </statOffsets>
 | 
				
			||||||
 | 
					            <capMods>
 | 
				
			||||||
 | 
					              <li>
 | 
				
			||||||
 | 
					                <capacity>Moving</capacity>
 | 
				
			||||||
 | 
					                <offset>-0.15</offset>
 | 
				
			||||||
 | 
					              </li>
 | 
				
			||||||
 | 
					            </capMods>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <label>living reservior</label>
 | 
				
			||||||
 | 
					            <minSeverity>10.1</minSeverity>
 | 
				
			||||||
 | 
					            <hungerRateFactor>0.1</hungerRateFactor>
 | 
				
			||||||
 | 
					            <statOffsets>
 | 
				
			||||||
 | 
					              <Vulnerability>-1.5</Vulnerability>
 | 
				
			||||||
 | 
					            </statOffsets>
 | 
				
			||||||
 | 
					            <capMods>
 | 
				
			||||||
 | 
					              <li>
 | 
				
			||||||
 | 
					                <capacity>Moving</capacity>
 | 
				
			||||||
 | 
					                <offset>-0.55</offset>
 | 
				
			||||||
 | 
					              </li>
 | 
				
			||||||
 | 
					            </capMods>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        </stages>
 | 
				
			||||||
 | 
					      </HediffDef>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?>
 | 
				
			||||||
 | 
					<Defs>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <!--========= General ============-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <JobDef>
 | 
				
			||||||
 | 
					    <defName>ProcessCumbucket</defName>
 | 
				
			||||||
 | 
					    <driverClass>RJW_Genes.JobDriver_ProcessingCumbucket</driverClass>
 | 
				
			||||||
 | 
					    <playerInterruptible>false</playerInterruptible>
 | 
				
			||||||
 | 
					    <casualInterruptible>false</casualInterruptible>
 | 
				
			||||||
 | 
					    <reportString>processing internal cumbucket.</reportString>
 | 
				
			||||||
 | 
					    <suspendable>false</suspendable>
 | 
				
			||||||
 | 
					  </JobDef>
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,8 @@
 | 
				
			||||||
# RJW-Genes [NSFW]
 | 
					# RJW-Genes [NSFW]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[](https://buymeacoffee.com/vegapnk)
 | 
				
			||||||
 | 
					[](https://opensource.org/licenses/MIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This mod adds genes related and based on RJW to Rimworld. 
 | 
					This mod adds genes related and based on RJW to Rimworld. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Current Features 
 | 
					## Current Features 
 | 
				
			||||||
| 
						 | 
					@ -12,6 +15,7 @@ This mod adds genes related and based on RJW to Rimworld.
 | 
				
			||||||
- Sexual Vampires that need Cum, Cocks or some other sources.
 | 
					- Sexual Vampires that need Cum, Cocks or some other sources.
 | 
				
			||||||
- Mech Breeding Additions & Orgasmic Mytosis
 | 
					- Mech Breeding Additions & Orgasmic Mytosis
 | 
				
			||||||
- Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance)
 | 
					- Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance)
 | 
				
			||||||
 | 
					- Genetic Diseases that spread on Intercourse
 | 
				
			||||||
- Patches for some popular / common Xenotypes from other Mods.
 | 
					- Patches for some popular / common Xenotypes from other Mods.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*You might not see all of them. Many genes just show up if other mods are loaded*.
 | 
					*You might not see all of them. Many genes just show up if other mods are loaded*.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										15
									
								
								Source/Common/Defs/ChanceExtension.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class ChanceExtension : DefModExtension
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public float chance;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										23
									
								
								Source/Common/Defs/HediffIncreaseOnSexExtension.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class HediffIncreaseOnSexExtension: DefModExtension
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public HediffDef hediffDef;
 | 
				
			||||||
 | 
					        public float severityIncrease;
 | 
				
			||||||
 | 
					        public float applicationChance;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public bool canCreateHediff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public bool applicableForWomen;
 | 
				
			||||||
 | 
					        public bool applicableForMen;
 | 
				
			||||||
 | 
					        public bool requiresPenetrativeSex;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								Source/Common/Defs/MultiplierExtension.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class MultiplierExtension : DefModExtension
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public float multiplier;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								Source/Common/Defs/TickBasedChanceExtension.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class TickBasedChanceExtension : TickIntervalExtension
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Set to 1 for "always", set to 0 for "never". 
 | 
				
			||||||
 | 
					        /// Everything else is a bit statistics, but e.g. when set to .5 the chances grow per day from [50%, 75%, 82.25%, ...]
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public float eventChance;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										42
									
								
								Source/Common/Helpers/FactionUtility.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class FactionUtility
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Tries to change the goodwill between the factions of two pawns. 
 | 
				
			||||||
 | 
					        /// Exceptions when nothing happens:
 | 
				
			||||||
 | 
					        /// - Pawns, or Pawns Factions, are null 
 | 
				
			||||||
 | 
					        /// - The `actors` Faction is not the players faction
 | 
				
			||||||
 | 
					        /// - Both pawns have the same faction
 | 
				
			||||||
 | 
					        /// - The Event is not found
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="actor">The pawn that initiated a faction-goodwill change by his actions</param>
 | 
				
			||||||
 | 
					        /// <param name="target">The pawn that was harmed/affected by the action</param>
 | 
				
			||||||
 | 
					        /// <param name="HistoryEventDefname">The event defname, for proper reporting</param>
 | 
				
			||||||
 | 
					        /// <param name="goodWillChange">How much (positive or negative) the goodwill will change</param>
 | 
				
			||||||
 | 
					        public static void HandleFactionGoodWillPenalties(Pawn actor, Pawn target, string HistoryEventDefname, int goodWillChange, bool canSendHostileLetter=true)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (actor == null) return;
 | 
				
			||||||
 | 
					            if (target == null) return;
 | 
				
			||||||
 | 
					            if (
 | 
				
			||||||
 | 
					                target.Faction != null && actor.Faction != null
 | 
				
			||||||
 | 
					                && target.Faction != actor.Faction
 | 
				
			||||||
 | 
					                && target.Faction != Faction.OfPlayer)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                HistoryEventDef reason = DefDatabase<HistoryEventDef>.GetNamedSilentFail(HistoryEventDefname);
 | 
				
			||||||
 | 
					                if (reason == null) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                target.Faction.TryAffectGoodwillWith(actor.Faction, goodWillChange, true, canSendHostileLetter, reason, target);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -30,5 +30,12 @@ namespace RJW_Genes
 | 
				
			||||||
			Log.Warning($"[{ModId}] {message}");
 | 
								Log.Warning($"[{ModId}] {message}");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public static void Debug(string message)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (RJW_Genes_Settings.rjw_genes_detailed_debug)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									Log.Message($"[{ModId}][debug] {message}");
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										80
									
								
								Source/Common/patches/Patch_HediffIncreaseOnSex.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,80 @@
 | 
				
			||||||
 | 
					using HarmonyLib;
 | 
				
			||||||
 | 
					using rjw;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// This patch "only" applies the hediff increase on sex. 
 | 
				
			||||||
 | 
					    /// It checks for the hediff, creates it if necessary and applicable, 
 | 
				
			||||||
 | 
					    /// and increases it based on the severity, chance and genders specified in the Extension. 
 | 
				
			||||||
 | 
					    /// 
 | 
				
			||||||
 | 
					    /// Some hediffs want follow up logic, e.g. the Feminization Gene, 
 | 
				
			||||||
 | 
					    /// which is handled in an extra patch (that requires the hediff to be present already). 
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    [HarmonyPatch(typeof(SexUtility), "Aftersex")]
 | 
				
			||||||
 | 
					    public class Patch_HediffIncreaseOnSex
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static void Postfix(SexProps props)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (props == null || props.pawn == null || props.partner == null || props.partner.IsAnimal() || props.pawn.IsAnimal())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Pawn pawn = props.pawn;
 | 
				
			||||||
 | 
					            Pawn partner = props.partner;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (pawn.genes == null || partner.genes == null) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            TryApplyHediffsOfSex(pawn, partner, props);
 | 
				
			||||||
 | 
					            TryApplyHediffsOfSex(partner, pawn, props);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Checks for every gene in a pawn if it applies a hediff or the severity of an existing hediff in a sexual partner. 
 | 
				
			||||||
 | 
					        /// If the checks pass, the hediff is added or changed accordingly. 
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="pawn">Pawn that holds (one or many) genes that might apply a hediff change</param>
 | 
				
			||||||
 | 
					        /// <param name="partner">Pawn that will receive or alter any hediffs, if applicable</param>
 | 
				
			||||||
 | 
					        /// <param name="props">The Sexprops, used for checking if sex is penetrative</param>
 | 
				
			||||||
 | 
					        static void TryApplyHediffsOfSex(Pawn pawn, Pawn partner, SexProps props)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var random = new Random();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            foreach (Gene gene in pawn.genes.GenesListForReading)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                HediffIncreaseOnSexExtension ext = gene.def.GetModExtension<HediffIncreaseOnSexExtension>();
 | 
				
			||||||
 | 
					                if (ext == null) continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (DiseaseHelper.IsImmuneAgainstGeneticDisease(partner, gene.def)) continue;
 | 
				
			||||||
 | 
					                if (ext.requiresPenetrativeSex && DiseaseHelper.IsPenetrativeSex(props)) continue;
 | 
				
			||||||
 | 
					                if (!ext.applicableForMen && partner.gender == Gender.Male) continue;
 | 
				
			||||||
 | 
					                if (!ext.applicableForWomen && partner.gender == Gender.Female) continue;
 | 
				
			||||||
 | 
					                if (random.NextDouble() >= ext.applicationChance) continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                Hediff hediff = partner.health.hediffSet.GetFirstHediffOfDef(ext.hediffDef);
 | 
				
			||||||
 | 
					                if (hediff == null)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if (!ext.canCreateHediff) continue;
 | 
				
			||||||
 | 
					                    hediff = partner.health.GetOrAddHediff(ext.hediffDef);
 | 
				
			||||||
 | 
					                    hediff.Severity = 0.01f;
 | 
				
			||||||
 | 
					                    ModLog.Debug($"{partner} got hediff {hediff.def.defName} from Patch_HediffIncreaseOnSex ({gene.def.defName}) upon sex with {pawn}");
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                float initial_severity = hediff.Severity;
 | 
				
			||||||
 | 
					                ModLog.Debug($"{partner}s hediff {hediff.def.defName} was changed by Patch_HediffIncreaseOnSex ({gene.def.defName}) upon sex with {pawn} [from {initial_severity} to {initial_severity + ext.severityIncrease}]");
 | 
				
			||||||
 | 
					                hediff.Severity += ext.severityIncrease;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // DevNote: I also want to have "negative" hediff changes here, but I think its not necessary. Once the severity reaches 0, or below, the hediff should remove itself. 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -73,14 +73,18 @@ namespace RJW_Genes
 | 
				
			||||||
		public static readonly GeneDef rjw_genes_fervent_ovipositor;
 | 
							public static readonly GeneDef rjw_genes_fervent_ovipositor;
 | 
				
			||||||
		public static readonly GeneDef rjw_genes_insectbreeder;
 | 
							public static readonly GeneDef rjw_genes_insectbreeder;
 | 
				
			||||||
		public static readonly GeneDef rjw_genes_insectincubator;
 | 
							public static readonly GeneDef rjw_genes_insectincubator;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_hardwired_progenity;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_blocked_masturbation;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_basic_rut;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Cum 
 | 
					        // Cum 
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_no_cum;
 | 
					        public static readonly GeneDef rjw_genes_no_cum;
 | 
				
			||||||
		public static readonly GeneDef rjw_genes_much_cum;
 | 
							public static readonly GeneDef rjw_genes_much_cum;
 | 
				
			||||||
		public static readonly GeneDef rjw_genes_very_much_cum;
 | 
							public static readonly GeneDef rjw_genes_very_much_cum;
 | 
				
			||||||
		[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_likes_cumflation;
 | 
							[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_likes_cumflation;
 | 
				
			||||||
		[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_cumflation_immunity;
 | 
							[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_cumflation_immunity;
 | 
				
			||||||
		[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_generous_donor;
 | 
							[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_generous_donor;
 | 
				
			||||||
 | 
							[MayRequire("rjw.sexperience")] public static readonly GeneDef rjw_genes_living_cumbucket;
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Reproduction 
 | 
					        // Reproduction 
 | 
				
			||||||
| 
						 | 
					@ -104,12 +108,17 @@ namespace RJW_Genes
 | 
				
			||||||
		public static readonly GeneDef rjw_genes_hormonal_saliva;
 | 
							public static readonly GeneDef rjw_genes_hormonal_saliva;
 | 
				
			||||||
		public static readonly GeneDef rjw_genes_cocoonweaver;
 | 
							public static readonly GeneDef rjw_genes_cocoonweaver;
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_sex_tamer;
 | 
					        public static readonly GeneDef rjw_genes_sex_tamer;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_sexual_genetic_swap;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_sexual_genetic_thief;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_pregnancy_overwrite;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_feminizer;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_twinkifier;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Cosmetic
 | 
					        // Cosmetic
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_succubus_tail;
 | 
					        public static readonly GeneDef rjw_genes_succubus_tail;
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_succubus_wings;
 | 
					        public static readonly GeneDef rjw_genes_succubus_wings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //life force
 | 
					        // Life force | Fertilin
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_lifeforce;
 | 
					        public static readonly GeneDef rjw_genes_lifeforce;
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_pussyhealing;
 | 
					        public static readonly GeneDef rjw_genes_pussyhealing;
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_lifeforce_drain;
 | 
					        public static readonly GeneDef rjw_genes_lifeforce_drain;
 | 
				
			||||||
| 
						 | 
					@ -121,6 +130,21 @@ namespace RJW_Genes
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_cockeater;
 | 
					        public static readonly GeneDef rjw_genes_cockeater;
 | 
				
			||||||
        public static readonly GeneDef rjw_genes_lifeforce_empath;
 | 
					        public static readonly GeneDef rjw_genes_lifeforce_empath;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Diseases
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_genetic_disease_immunity;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_minor_vulnerability;
 | 
				
			||||||
 | 
					        public static readonly GeneDef rjw_genes_major_vulnerability;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_fluctual_sexual_needs;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_size_blinded;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_infectious_low_fertility;
 | 
				
			||||||
 | 
					        public static readonly GeneDef rjw_genes_infectious_increased_sex_need;
 | 
				
			||||||
 | 
					        public static readonly GeneDef rjw_genes_infectious_bisexuality;
 | 
				
			||||||
 | 
					        public static readonly GeneDef rjw_genes_infectious_homosexuality;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_infectious_hypersexuality;
 | 
				
			||||||
 | 
					        public static readonly GeneDef rjw_genes_stretcher;
 | 
				
			||||||
 | 
							public static readonly GeneDef rjw_genes_infectious_blocked_masturbation;
 | 
				
			||||||
 | 
					        public static readonly GeneDef rjw_genes_infectious_rut;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Other Defs
 | 
					        //Other Defs
 | 
				
			||||||
        public static readonly XenotypeDef rjw_genes_succubus;
 | 
					        public static readonly XenotypeDef rjw_genes_succubus;
 | 
				
			||||||
        public static readonly DutyDef rjw_genes_flirt;
 | 
					        public static readonly DutyDef rjw_genes_flirt;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,38 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class ConditionalStatAffecter_ManyChildren : ConditionalStatAffecter
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public override string Label => (string)"StatsReport_ManyChildren".Translate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public const int THRESHOLD_FOR_CHILDREN = 3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public override bool Applies(StatRequest req)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (req == null || req.Thing == null || !req.Thing.Spawned) return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (req.Thing is Pawn pawn)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                // Do nothing if Pawn is Baby or Child (#25)
 | 
				
			||||||
 | 
					                if (!pawn.ageTracker.Adult)
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_hardwired_progenity))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    // This "middle" Conditional Stat Affecter only fires if the other one does not apply
 | 
				
			||||||
 | 
					                    return pawn.relations.ChildrenCount >= THRESHOLD_FOR_CHILDREN 
 | 
				
			||||||
 | 
					                        && pawn.relations.ChildrenCount < ConditionalStatAffecter_VeryManyChildren.THRESHOLD_FOR_CHILDREN;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// This conditional stat affecter "fires" if the pawn has no children. 
 | 
				
			||||||
 | 
					    /// 
 | 
				
			||||||
 | 
					    /// DevNote: I salvaged this from 1.3.3 Halamyr Conditional Stat Affecters. 
 | 
				
			||||||
 | 
					    /// It seems that with RW 1.5 there was a change how these work, as the req.Pawn seems to be null. 
 | 
				
			||||||
 | 
					    /// Now, the pawn is in req.Thing. 
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public class ConditionalStatAffecter_NoChildren : ConditionalStatAffecter
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public override string Label => (string)"StatsReport_NoChildren".Translate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public override bool Applies(StatRequest req)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (req == null || req.Thing == null || !req.Thing.Spawned) return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (req.Thing is Pawn pawn)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                // Do nothing if Pawn is Baby or Child (#25)
 | 
				
			||||||
 | 
					                if (!pawn.ageTracker.Adult)
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_hardwired_progenity))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    return pawn.relations.ChildrenCount == 0;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class ConditionalStatAffecter_VeryManyChildren : ConditionalStatAffecter
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public override string Label => (string)"StatsReport_VeryManyChildren".Translate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public const int THRESHOLD_FOR_CHILDREN = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public override bool Applies(StatRequest req)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (req == null || req.Thing == null || !req.Thing.Spawned) return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (req.Thing is Pawn pawn)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                // Do nothing if Pawn is Baby or Child (#25)
 | 
				
			||||||
 | 
					                if (!pawn.ageTracker.Adult)
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_hardwired_progenity))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    return pawn.relations.ChildrenCount >= THRESHOLD_FOR_CHILDREN;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										33
									
								
								Source/Genes/Breeding/Genes/Gene_Rut.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class Gene_Rut : Gene
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public override void Tick()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            base.Tick();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (pawn == null || pawn.genes == null)
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var chanceExtension = this.def.GetModExtension<TickBasedChanceExtension>();
 | 
				
			||||||
 | 
					            if (chanceExtension == null) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (pawn.IsHashIntervalTick(chanceExtension.tickInterval)){
 | 
				
			||||||
 | 
					                Random r = new Random();
 | 
				
			||||||
 | 
					                if (r.NextDouble() < chanceExtension.eventChance)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Hediff rut = pawn.health.GetOrAddHediff(HediffDefOf.rjw_genes_genetic_rut);
 | 
				
			||||||
 | 
					                    rut.Severity = 1;
 | 
				
			||||||
 | 
					                    ModLog.Debug($"Pawn {pawn} gained rjw_genes_genetic_rut based on chance.");
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										26
									
								
								Source/Genes/Breeding/Patches/Patch_BlockedMasturbation.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,26 @@
 | 
				
			||||||
 | 
					using HarmonyLib;
 | 
				
			||||||
 | 
					using rjw;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    [HarmonyPatch(typeof(xxx), "can_masturbate")]
 | 
				
			||||||
 | 
					    public class Patch_BlockedMasturbation
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public void PostFix(Pawn pawn, ref bool __result)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (pawn != null && !pawn.IsAnimal() && pawn.genes != null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                __result = __result 
 | 
				
			||||||
 | 
					                    && !pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_blocked_masturbation)
 | 
				
			||||||
 | 
					                    && !pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_infectious_blocked_masturbation);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -34,8 +34,23 @@ namespace RJW_Genes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Get total fluidamount a person has.
 | 
							/// <summary>
 | 
				
			||||||
		public static float GetTotalFluidAmount(Pawn pawn, float multiplier = 1f)
 | 
							/// Looks up the "MultiplierExtensions" Value for a given Gene, with a fall back. 
 | 
				
			||||||
 | 
							/// Returns the fallback if there is no Extension, or if the Multiplier is smaller than 0. 
 | 
				
			||||||
 | 
							/// </summary>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static float LookupCumMultiplier(Gene gene, float FALLBACK = 3.0f) => LookupCumMultiplier(gene.def,FALLBACK);
 | 
				
			||||||
 | 
					        public static float LookupCumMultiplier(GeneDef def, float FALLBACK = 3.0f)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            MultiplierExtension multiplier = def.GetModExtension<MultiplierExtension>();
 | 
				
			||||||
 | 
					            if (multiplier == null || multiplier.multiplier < 0)
 | 
				
			||||||
 | 
					                return FALLBACK;
 | 
				
			||||||
 | 
					            else return multiplier.multiplier;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //Get total fluidamount a person has.
 | 
				
			||||||
 | 
					        public static float GetTotalFluidAmount(Pawn pawn, float multiplier = 1f)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var partBPR = Genital_Helper.get_genitalsBPR(pawn);
 | 
								var partBPR = Genital_Helper.get_genitalsBPR(pawn);
 | 
				
			||||||
			var parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
 | 
								var parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,34 +0,0 @@
 | 
				
			||||||
namespace RJW_Genes
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public class Gene_NoCum : RJW_Gene
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        bool has_been_fired = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostMake()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostMake();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            CumUtility.MultiplyFluidAmountBy(pawn, 0f);
 | 
					 | 
				
			||||||
            has_been_fired = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostAdd()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
            if (!has_been_fired) { 
 | 
					 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, 0f); 
 | 
					 | 
				
			||||||
                has_been_fired = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostRemove()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // Cum Removal does not do at the moment :/ I would need to safe the old cum amount but I don't want to at the moment
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,39 +0,0 @@
 | 
				
			||||||
namespace RJW_Genes
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public class Gene_VeryMuchCum : RJW_Gene
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        bool has_been_fired = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        float multiplier_much_cum = 10f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostMake()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostMake();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
 | 
					 | 
				
			||||||
            has_been_fired = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostAdd()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
            if (!has_been_fired) { 
 | 
					 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum); 
 | 
					 | 
				
			||||||
                has_been_fired = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostRemove()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (has_been_fired)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, 1/multiplier_much_cum);
 | 
					 | 
				
			||||||
                has_been_fired = false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,36 +1,38 @@
 | 
				
			||||||
namespace RJW_Genes
 | 
					namespace RJW_Genes
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public class Gene_MuchCum : RJW_Gene
 | 
					    public class Gene_ChangeCumAmount : RJW_Gene
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        bool has_been_fired = false;
 | 
					        bool has_been_fired = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        float multiplier_much_cum = 3f;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override void PostMake()
 | 
					        public override void PostMake()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            base.PostMake();
 | 
					            base.PostMake();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
 | 
					            float multipier = CumUtility.LookupCumMultiplier(this);
 | 
				
			||||||
 | 
					            CumUtility.MultiplyFluidAmountBy(pawn, multipier);
 | 
				
			||||||
            has_been_fired = true;
 | 
					            has_been_fired = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override void PostAdd()
 | 
					        public override void PostAdd()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            base.PostAdd();
 | 
					            base.PostAdd();
 | 
				
			||||||
            if (!has_been_fired) { 
 | 
					            if (!has_been_fired)
 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum); 
 | 
					            {
 | 
				
			||||||
 | 
					                float multipier = CumUtility.LookupCumMultiplier(this);
 | 
				
			||||||
 | 
					                CumUtility.MultiplyFluidAmountBy(pawn, multipier);
 | 
				
			||||||
                has_been_fired = true;
 | 
					                has_been_fired = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostRemove()
 | 
					        public override void PostRemove()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            base.PostAdd();
 | 
					            base.PostAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (has_been_fired)
 | 
					            if (has_been_fired)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, 1/multiplier_much_cum);
 | 
					                float multipier = CumUtility.LookupCumMultiplier(this);
 | 
				
			||||||
 | 
					                CumUtility.MultiplyFluidAmountBy(pawn, 1/ multipier);
 | 
				
			||||||
                has_been_fired = false;
 | 
					                has_been_fired = false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
							
								
								
									
										28
									
								
								Source/Genes/Cum/HediffComp_ProcessCumbucket.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class HediffComp_ProcessCumbucket : HediffComp
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public HediffsCompProperties_ProcessCumbucketMTB Props
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return (HediffsCompProperties_ProcessCumbucketMTB)this.props;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public override void CompPostTick(ref float severityAdjustment)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (this.Props.mtbDaysPerStage[this.parent.CurStageIndex] > 0f && base.Pawn.IsHashIntervalTick(60) && Rand.MTBEventOccurs(this.Props.mtbDaysPerStage[this.parent.CurStageIndex], 60000f, 60f))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ModLog.Debug($"Triggered HediffComp_ProcessCumbucket CompPostTick - Starting a JobDriver ProcessCumbucket for {this.parent.pawn}");
 | 
				
			||||||
 | 
					                this.Pawn.jobs.StartJob(JobMaker.MakeJob(DefDatabase<JobDef>.GetNamed("ProcessCumbucket")), lastJobEndCondition: Verse.AI.JobCondition.InterruptForced, resumeCurJobAfterwards: true);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class HediffsCompProperties_ProcessCumbucketMTB : HediffCompProperties
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public HediffsCompProperties_ProcessCumbucketMTB()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            this.compClass = typeof(HediffComp_ProcessCumbucket);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public override IEnumerable<string> ConfigErrors(HediffDef parentDef)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            foreach (string text in base.ConfigErrors(parentDef))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                yield return text;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (this.mtbDaysPerStage == null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                yield return "mtbDaysPerStage is not defined";
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (this.mtbDaysPerStage.Count != parentDef.stages.Count)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                yield return "mtbDaysPerStage count doesn't match Hediffs number of stages";
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            yield break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public List<float> mtbDaysPerStage;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										132
									
								
								Source/Genes/Cum/JobDriver_ProcessingCumbucket.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,132 @@
 | 
				
			||||||
 | 
					using LicentiaLabs;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					using Verse.AI;
 | 
				
			||||||
 | 
					using UnityEngine;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using rjw;
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Shamelessly stolen from LicentaLabs
 | 
				
			||||||
 | 
					    /// [Jaals Fork] https://gitgud.io/Jaaldabaoth/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/JobDriver_VomitCum.cs
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    class JobDriver_ProcessingCumbucket : JobDriver_Vomit
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public override bool CanBeginNowWhileLyingDown()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        protected override IEnumerable<Toil> MakeNewToils()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (!ModsConfig.IsActive("rjw.sexperience"))
 | 
				
			||||||
 | 
					                yield break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Toil toil = new Toil();
 | 
				
			||||||
 | 
					            toil.initAction = delegate ()
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                this.ticksLeft = Rand.Range(150, 600);
 | 
				
			||||||
 | 
					                int num = 0;
 | 
				
			||||||
 | 
					                IntVec3 c;
 | 
				
			||||||
 | 
					                for (; ; )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    c = this.pawn.Position + GenAdj.AdjacentCellsAndInside[Rand.Range(0, 9)];
 | 
				
			||||||
 | 
					                    num++;
 | 
				
			||||||
 | 
					                    if (num > 12)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if (c.InBounds(this.pawn.Map) && c.Standable(this.pawn.Map))
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        // DevNote: I am not 100% what this all means, but IL_77 is a jump to the case below (it says IL_77).
 | 
				
			||||||
 | 
					                        // basically, this calls the next part of the function, but I am not super sure why this has to be like this. 
 | 
				
			||||||
 | 
					                        // JobDrivers are scary. 
 | 
				
			||||||
 | 
					                        goto IL_77;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                c = this.pawn.Position;
 | 
				
			||||||
 | 
					            IL_77:
 | 
				
			||||||
 | 
					                this.job.targetA = c;
 | 
				
			||||||
 | 
					                this.pawn.pather.StopDead();
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            toil.tickAction = delegate ()
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (this.ticksLeft % 150 == 149)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if (!sourceName.NullOrEmpty())
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        if (ModsConfig.IsActive("LustLicentia.RJWLabs"))
 | 
				
			||||||
 | 
					                            FilthMaker.TryMakeFilth(this.job.targetA.Cell, base.Map, Licentia.ThingDefs.FilthCum, sourceName);
 | 
				
			||||||
 | 
					                        SpawnCum(this.pawn, this.job.targetA.Cell, base.Map);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    else
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        if (ModsConfig.IsActive("LustLicentia.RJWLabs"))
 | 
				
			||||||
 | 
					                            FilthMaker.TryMakeFilth(this.job.targetA.Cell, base.Map, Licentia.ThingDefs.FilthCum);
 | 
				
			||||||
 | 
					                        SpawnCum(this.pawn, this.job.targetA.Cell, base.Map);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                this.ticksLeft--;
 | 
				
			||||||
 | 
					                if (this.ticksLeft <= 0)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    base.ReadyForNextToil();
 | 
				
			||||||
 | 
					                    TaleRecorder.RecordTale(Licentia.TaleDefs.VomitedCum, new object[]
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        this.pawn
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            toil.defaultCompleteMode = ToilCompleteMode.Never;
 | 
				
			||||||
 | 
					            toil.WithEffect(EffecterDefOf.Vomit, TargetIndex.A, new Color(100f, 100f, 100f, 0.5f));
 | 
				
			||||||
 | 
					            toil.PlaySustainerOrSound(() => SoundDefOf.Vomit, 1f);
 | 
				
			||||||
 | 
					            yield return toil;
 | 
				
			||||||
 | 
					            yield break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private void SpawnCum(Pawn pawn, IntVec3 cell, Map map)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            ThingDef cumDef = DefDatabase<ThingDef>.GetNamed("GatheredCum", true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.rjw_genes_filled_living_cumbucket);
 | 
				
			||||||
 | 
					            if (hediff == null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ModLog.Warning($"{pawn} has the JobDriver_ProcessCumbucket but does not have the Hediff for filled cumbucket.");
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            // Case 1: "Normal Severity", just puke out a bit of cum here and there. 
 | 
				
			||||||
 | 
					            if (hediff.Severity <= 10)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Thing cum = ThingMaker.MakeThing(cumDef);
 | 
				
			||||||
 | 
					                cum.Position = cell;
 | 
				
			||||||
 | 
					                int stacks = Math.Max(1, (int)(hediff.Severity * 1.5));
 | 
				
			||||||
 | 
					                stacks = Math.Min(stacks, 75); // 75 is the default max stacksize ...
 | 
				
			||||||
 | 
					                cum.stackCount = stacks;
 | 
				
			||||||
 | 
					                cum.SpawnSetup(map, false);
 | 
				
			||||||
 | 
					                hediff.Severity -= (stacks / 50);
 | 
				
			||||||
 | 
					            } else
 | 
				
			||||||
 | 
					            // Case 2: Reserviour mode, put out a lot of cum at once but less often. 
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                int stacks = Math.Max(1, (int)(hediff.Severity * 1.5));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                while (stacks > 0)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Thing cum = ThingMaker.MakeThing(cumDef);
 | 
				
			||||||
 | 
					                    cum.Position = cell;
 | 
				
			||||||
 | 
					                    var curStacks = Math.Min(stacks, 75); // 75 is the default max stacksize ...
 | 
				
			||||||
 | 
					                    cum.stackCount = stacks;
 | 
				
			||||||
 | 
					                    cum.SpawnSetup(map, false);
 | 
				
			||||||
 | 
					                    hediff.Severity -= (curStacks / 50);
 | 
				
			||||||
 | 
					                    stacks -= curStacks;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private int ticksLeft;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public string sourceName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					using HarmonyLib;
 | 
				
			||||||
 | 
					using rjw;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					using static System.Net.Mime.MediaTypeNames;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [HarmonyPatch(typeof(SexUtility), nameof(SexUtility.SatisfyPersonal))]
 | 
				
			||||||
 | 
					    public class Patch_LivingCumbucket_StackHediff
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// This is the amount of fluid required if the pawn has a bodysize of 1, to reach a severity in the hediff of 1. 
 | 
				
			||||||
 | 
					        /// The hediff can still be increased over 1.0. 
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        const float fluid_amount_required_for_hediff_severity_ = 100.0f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static void Postfix(SexProps props)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (!ModsConfig.IsActive("rjw.sexperience"))
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // ShortCuts: Exit Early if Pawn or Partner are null (can happen with Masturbation or other nieche-cases)
 | 
				
			||||||
 | 
					            if (props == null || props.pawn == null || !props.hasPartner())
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Pawn pawnA = props.pawn;
 | 
				
			||||||
 | 
					            Pawn pawnB = props.partner;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (pawnA.genes != null && pawnA.genes.HasActiveGene(GeneDefOf.rjw_genes_living_cumbucket) && CumUtility.GetTotalFluidAmount(pawnB) > 0)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ProcessLivingCumbucket(pawnA, CumUtility.GetTotalFluidAmount(pawnB));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (pawnB.genes != null && pawnB.genes.HasActiveGene(GeneDefOf.rjw_genes_living_cumbucket) && CumUtility.GetTotalFluidAmount(pawnA) > 0)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ProcessLivingCumbucket(pawnB, CumUtility.GetTotalFluidAmount(pawnA));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static void ProcessLivingCumbucket(Pawn pawn, float cumamount)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            float bodysize = pawn.BodySize;
 | 
				
			||||||
 | 
					            float result_severity_increase = cumamount / (fluid_amount_required_for_hediff_severity_ * bodysize);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.rjw_genes_filled_living_cumbucket);
 | 
				
			||||||
 | 
					            if (hediff == null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                hediff = pawn.health.GetOrAddHediff(HediffDefOf.rjw_genes_filled_living_cumbucket);
 | 
				
			||||||
 | 
					                hediff.Severity = 0.01f;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            hediff.Severity += result_severity_increase;
 | 
				
			||||||
 | 
					            ModLog.Debug($"Pumping the living cumbucket {pawn} (Bodysize {bodysize}) with {cumamount} cum, resulting in severity {hediff.Severity} (+{result_severity_increase})");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								Source/Genes/Diseases/Defs/GeneticDiseaseExtension.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class GeneticDiseaseExtension : DefModExtension
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// The chance for this gene to spread upon (finished) sex. 
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public float infectionChance;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||