Compare commits

..

114 commits

Author SHA1 Message Date
Telanda
b70b975b67
Merge 2.6.2 Update (#228)
* - Seperation of Animal Gene code from base RJW_Genes

* - Clean-up of leftover XML Files
- Minor update to README.md

* Fixed missing translation text
Fixed Missing B&S Undead Patch
Fixed Anal Fertility Errors, might be broken again.

DLL Included for Merge.
2026-02-28 23:15:14 +11:00
Telanda-DDS
4946df511e - Recompiled Cumpliation plugin against newest version of Cumpilation.
- Fixed Indentation
2025-10-18 10:45:32 +11:00
Telanda-DDS
ef953fa1b7 - Fixes to address changed RJW Settings Variables. 2025-10-16 16:18:28 +11:00
Telanda-DDS
be27255832 - Updated All Version Information. 2025-09-05 16:42:35 +10:00
Telanda
83e9f9ef5b
Dev (#222)
- Seperation of Animal Gene code from base RJW_Genes
- Minor update to README.md
2025-09-05 16:37:32 +10:00
Telanda-DDS
45a451a127 - Added additional Debug Message Check. 2025-08-21 09:46:51 +10:00
Telanda-DDS
7692ce3425 - Fixed bug with beastiality gene inheritance null reference. 2025-08-18 14:40:02 +10:00
Telanda-DDS
b13f761ede - Versioning Updates 2025-08-18 12:26:00 +10:00
Telanda-DDS
ed761327d2 - Fixed bug with fertile Anus not correctly detecting if penetrating partner was fertile. 2025-08-18 12:20:00 +10:00
Telanda-DDS
e0a333f539 - Fixed incorrect reference to Sexperience mod. 2025-08-04 10:27:19 +10:00
Telanda-DDS
5025700727 - Fixed potential null varaible exception in ElToro Stretching patch.
- Fixed Orgasm Rush not triggering when partner was an Animal.
2025-08-03 12:06:16 +10:00
Telanda-DDS
a407f3f400 - 2.5.5 Version Update & CHANGELOG.md 2025-07-25 14:11:06 +10:00
Telanda-DDS
6e26d596cf - Updated Elastic gene to also increase speed at which stretched parts return to normal under ElToro's streching Mod.
- Removed Unnecessary packages.config
2025-07-25 14:06:02 +10:00
Telanda-DDS
670361a748 - Support for RJW RC-5
- Fixed Typo in Disease ThoughtDef
2025-07-25 11:25:52 +10:00
Telanda-DDS
c7ea7144dc - Fixed ElToro Stretching support causing an error if not present. 2025-07-25 09:51:45 +10:00
Telanda-DDS
97eabd540d - Fixed incorrect consciousness value. 2025-07-24 18:03:03 +10:00
Telanda-DDS
61fdb2c3b7 - Fixed Load bug with VRE-Genie Sexperience interaction. 2025-07-24 16:30:29 +10:00
Telanda-DDS
27511a29f3 - Fixed regressed CHANGELOG.md 2025-07-24 14:04:28 +10:00
Telanda-DDS
ef05a5bbc3 - Incremented version in mod settings. 2025-07-24 14:01:21 +10:00
Telanda-DDS
7f6dc2a668 - Added in Elasticity support for Cumpilation and Eltoro Stretching.
- Updated Breeding Pulse c# with more debugging information.
- Updated Vanilla Genes Expanded Genie with updated function call.
- Removed Licentia XML & method calls from Gene_Elasticity.cs
- Fixed MatingCall Ability & checked to make sure Pheromone Spit was still functional.
- Fixed incorrect mod requirement for sex curiosity Gene.
2025-07-24 13:41:47 +10:00
Telanda-DDS
ba53413687 - Migrated all textures to the Common Directory 2025-07-20 10:50:45 +10:00
Telanda-DDS
aa3d3985bc - Removed incorrectly located DLL. 2025-07-19 22:10:05 +10:00
Telanda-DDS
11226249b3 ###Fixes###
- Fixed "Big and Small - Heaven and Hell" XML patch being applied incorrectly, again.
- Fixed issue that was causing Extra genitals,Anus,breasts being added to pawns when a gene was applied.
- Removed some code duplication in the Gender specific Genes, I cannot see any situations where this code was required, but but there are some notes in other genes relating to character editor, I'm leaving other genes As they are for now, and will wait to see if it breaks some strange edge case I didn't test for.
2025-07-19 16:49:52 +10:00
Telanda-DDS
dde1c98b18 - Incremented version to 2.5.1
- Removed DDS Files
- Added Initial Support for Rimworld 1.6
- Added Additional mod requirement to PatchBSShared.xml to prevent premature loading.
- Refactored Cumpilation integration to make it optional rather then a Required Mod.
- Disabled succubus tail interactions pending rewrite for RJW's new interactions system.
- Disabled Quirks pending rewrite RJW separating them into their own mod.
2025-07-17 21:07:51 +10:00
DukeElToro
7540b96ecb
Added Cumpilation dependancy to the about.xml 2024-11-26 11:10:52 +03:00
vegapnk
b0da74ebd3
Merge pull request #202 from vegapnk/dev
2.4.2
2024-11-25 20:54:02 +08:00
vegapnk
e9fa05d218
Update CHANGELOG.md 2024-11-25 20:53:33 +08:00
DukeElToro
8577c3ee55 Updated manifest 2024-11-20 08:37:48 +03:00
DukeElToro
19148cc768 Removed HugsLib from about.xml 2024-11-20 07:59:17 +03:00
ElToro
72acfbb8bf Return of Pig and Orc genitalia 2024-11-18 01:55:35 +03:00
ElToro
f5975212b1 Not to forget permament fix for EvergrowingGenitalia gene 2024-11-17 01:50:35 +03:00
ElToro
f1ea695516 More fixes 2024-11-17 01:47:48 +03:00
ElToro
2d055a134f RJW 5.6 fix 2024-11-16 23:24:54 +03:00
vegapnk
e402a6b2a8
Merge pull request #191 from vegapnk/dev
2.4.1
2024-10-22 08:39:37 +02:00
Vegapnk
f5898523a9 2.4.1 Release Artifacts 2024-10-22 08:38:26 +02:00
Vegapnk
f3bf271381 Mentions Nazeems addon Gene in Changelog (#101) 2024-10-22 08:14:45 +02:00
Vegapnk
626ae5bbd4 Fixed Typo in LilGlutton Xenotype Patch (closes #122) 2024-10-22 08:00:31 +02:00
Vegapnk
8e272db117 Added Issue Templates 2024-10-22 07:57:25 +02:00
Vegapnk
93e9c5471c Attribution & Summary for #188 2024-10-22 07:56:03 +02:00
Vegapnk
b336c3059e Merge branch 'dev' of https://github.com/vegapnk/RJW-Genes into dev 2024-10-22 07:49:57 +02:00
vegapnk
89028f361b
Merge pull request #188 from casualArtifice/main
Add patches for more xenotypes
2024-10-22 07:49:45 +02:00
Vegapnk
f470213a3c Added more code-checks for living cumbucket (fixes #190) 2024-10-22 07:47:51 +02:00
casualArtifice
67cd837166
Update PatchBSRaces.xml
fixed typo from previous commit
2024-10-17 10:28:57 -04:00
casualArtifice
5aadcffcb1
Update PatchBSRaces.xml
Swapped instances of Licentia genes to Cumpilation equivalents where applicable
2024-10-17 10:28:34 -04:00
casualArtifice
44c0fff37e
Update PatchBSHeavHell.xml
Removed Licentia Labs requirement for Generous Donor gene
Swapped instances of Licentia genes to Cumpilation equivalents where applicable
2024-10-17 10:27:40 -04:00
casualArtifice
74b16b9ff3
Add files via upload 2024-10-17 10:15:45 -04:00
vegapnk
4712e5fdf2
Merge pull request #187 from vegapnk/dev
Dev
2024-10-17 14:55:03 +02:00
Vegapnk
ea8f2a35a5 2.4.0 Release Artifacts 2024-10-17 12:08:55 +02:00
Vegapnk
cb0c8c408b Eating cum gives twice as much fertilin 2024-10-17 12:01:13 +02:00
Vegapnk
2413ab8f79 Made implants removable with surgery (closes #186) 2024-10-17 11:55:54 +02:00
Vegapnk
8b70ac8965 Adjustments to Evergrowth (#161) 2024-10-17 11:42:13 +02:00
Vegapnk
2941dd9a47 Added #175 to patchnotes 2024-10-16 15:35:28 +02:00
vegapnk
ab726f8279
Merge pull request #175 from elatedCentipede/main
Fix empath gene description
2024-10-16 15:34:39 +02:00
Vegapnk
abd0e2e8d9 Extra checks for Aphrodisiac Pheromones #183 2024-10-16 15:33:07 +02:00
Vegapnk
07b0d2bb37 Hardened Orgasmic Mytosis against lovethrall, fixes #130 2024-10-16 15:24:48 +02:00
Vegapnk
152b6157ba Fertilin Check for Cumpilation #171, #185 2024-10-16 15:14:19 +02:00
Vegapnk
e8e3bc43be Another reference to litteredbirths #181 2024-10-16 14:54:24 +02:00
Vegapnk
3d8e1f79cd Pregnancies are not copied for orgasmic mytosis #184 2024-10-16 14:46:06 +02:00
Vegapnk
564cee8da8 Hardening Orgasmic Mytosis #184 2024-10-15 18:28:08 +02:00
Vegapnk
c4919e20e8 Fixed Generous Donor to not need Licentia #185 2024-10-15 18:07:49 +02:00
Vegapnk
c7d1a9c734 Migrated Living Cumbucket to Cumpilation, currently no tuning for item amount #185 2024-10-15 15:41:45 +02:00
Vegapnk
6135cfe449 Got Likes Cumflation working again for Cumpilation 2024-10-15 14:46:53 +02:00
Vegapnk
5744d5df0f Made littered Births translatable #178 2024-10-11 16:39:06 +02:00
Vegapnk
ec40a6cfb6 Fixed Naming in two Xenotype Patches> #181 2024-10-11 16:32:26 +02:00
Vegapnk
fe52686b9a Bumped About to 2.3.3 2024-10-11 16:32:05 +02:00
elatedCentipede
55a005463e
Fix empath gene description
Fixed empath gene still referencing the old "Lifeforce" instead of Fertilin
2024-09-21 08:27:52 +02:00
vegapnk
183a5b75fe
Merge pull request #173 from vegapnk/dev
Dev
2024-09-19 19:32:41 +02:00
Vegapnk
c8395c80be 2.3.2 Built 2024-09-19 19:31:24 +02:00
Vegapnk
921f25b387 Added conditional load for Cumpilation 2024-09-18 08:51:27 +02:00
Vegapnk
bffa601e36 Updated Patches for Fertilin, #172 2024-09-18 08:24:57 +02:00
Vegapnk
31bd50b763 Migrated and Adjusted Patch for GatheredCum, #172 2024-09-18 08:15:03 +02:00
Vegapnk
ef3f89f996 Version Bump 2024-09-18 08:05:54 +02:00
vegapnk
ddf218f514
Merge pull request #168 from Myphicbowser/main
Vanillia-cation of Genes
2024-09-18 08:00:39 +02:00
Myphicbowser
1e8e4f1449 Vanillia-cation of Genes
Changes the descriptions of Genes to be more Vanilla Friendly and Direct
2024-09-14 03:24:21 -04:00
vegapnk
ed3d35850b
Merge pull request #167 from vegapnk/dev
2.3.1
2024-09-13 12:00:12 +02:00
Vegapnk
9a12a901e5 Some Hardening for #159, Build for 2.3.1 2024-09-13 11:57:45 +02:00
Vegapnk
df832b6556 Patch-Cleanup 2024-09-09 14:40:08 +02:00
Vegapnk
b867ab284c Same Treatment for Android Sexneed, closes #137 2024-09-09 14:07:46 +02:00
Vegapnk
d514722de0 Changed behaviour of no-sex-need, closes #164) 2024-09-09 14:04:15 +02:00
Vegapnk
03fd7b37de Oversaw some patches ... 2024-09-07 10:20:40 +02:00
vegapnk
9b0da1ffc9
Merge pull request #160 from vegapnk/dev
Dev
2024-09-07 09:45:37 +02:00
Vegapnk
dd54129d7c Build and notes for 2.3.0 2024-09-07 09:42:42 +02:00
Vegapnk
1cfd3b7f2d Finished the Disease Carrier Gene, #135 2024-09-05 13:52:46 +02:00
Vegapnk
b777640cb4 WIP genetic carriers 2024-09-05 11:30:10 +02:00
Vegapnk
17ee471d9a Typo in Gene Labels for Milk Cum and Cum Milk 2024-09-03 12:44:26 +02:00
Vegapnk
a98addf03e Cleared some last references, .dll for beta 2024-09-03 12:22:39 +02:00
Vegapnk
04a0190367 Adjusted hormonal saliva to new logic 2024-09-03 12:05:39 +02:00
Vegapnk
243fc64233 Merge conflict 2024-09-03 11:56:24 +02:00
Vegapnk
feec2834d7 Added a Gene that charges nearby electricity 2024-09-03 11:54:04 +02:00
Vegapnk
f2527581e0 Moved some things around 2024-09-03 09:14:42 +02:00
Vegapnk
96f048e15b Genitalia Sizes are now XML configurable 2024-09-03 09:11:34 +02:00
Vegapnk
ca885d64e2 Introduced a (high) maximum severity for Living Cumbucket (Touches #153) 2024-09-03 08:51:51 +02:00
Vegapnk
2eff7cef71 Renamed Littered Births to naming convention 2024-09-03 08:48:30 +02:00
Vegapnk
077d520981 Added simple Fluid-Change Genes 2024-09-03 08:35:43 +02:00
Vegapnk
51b385e032 Updated References to the Fluids 2024-09-03 07:51:04 +02:00
Vegapnk
4a51044db2 Progress on renaming things to fluid 2024-09-03 07:46:46 +02:00
Vegapnk
ebf97656a9 Moved things from Cum to Fluid 2024-09-03 07:27:01 +02:00
Vegapnk
46999e8819 Wip 2024-09-03 06:58:06 +02:00
Vegapnk
4bd0de1ed9 Minor other things 2024-09-03 06:54:38 +02:00
Vegapnk
0e6587a123 Minor notes 2024-09-03 06:51:49 +02:00
Vegapnk
c3d3381b29 Normal Size-Genes work 2024-09-02 11:32:23 +02:00
Vegapnk
2bea200d75 Updated XML errors to disappear 2024-09-01 20:30:25 +02:00
Vegapnk
c0abeb8fc6 Removed some legacy (?) genitaliatypes 2024-09-01 20:11:15 +02:00
Vegapnk
5e8aec2c96 Merge branch 'dev' of https://github.com/vegapnk/RJW-Genes into dev 2024-09-01 19:38:45 +02:00
vegapnk
02eafe4833
Merge pull request #146 from prototype99/rjw-new
add support for rjw parts rework
2024-09-01 19:38:30 +02:00
Vegapnk
81e89e662d fixed Changelog 2024-09-01 18:57:07 +02:00
Seirra Blake
91ab6d3599 add rjw parts rework support for new changes 2024-08-23 11:34:42 +01:00
Seirra Blake
37c9367d70 update reference to match dev branch of rjw 2024-08-23 10:02:50 +01:00
Seirra Blake
b42bc17601 actually use the multiplier constant 2024-08-23 10:02:41 +01:00
Seirra Blake
78cb100e73 finish updating fervent ovipositor
there's now a variable, so... surely we can set it once? I'm not sure how, but either way this should be a similar performance impact
2024-08-23 10:02:30 +01:00
Seirra Blake
3c6fcb28c3 update udder gene
udders are now considered to be another kind of breast
2024-08-23 10:02:18 +01:00
Seirra Blake
9023725ac2 add more support for rjw dev branch
mostly more changes to match the changed refs, as well as a reworked breast check, based on rjw code
2024-08-23 10:02:06 +01:00
Seirra
660359472a add support for rjw dev branch 2024-08-23 10:01:47 +01:00
vegapnk
17b1d1a3cf
Merge pull request #155 from vegapnk/dev
2.2.1 Release
2024-08-23 10:49:13 +02:00
815 changed files with 22034 additions and 1159 deletions

31
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,31 @@
---
name: Bug Report
about: Create a report to help us improve
---
**Description**
Whats happening? What should happen?
Put any error message here too.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Screenshots**
If applicable, add screenshots.
Add the Error Message, if there is some
**Hugslog / ModList**
Please put your Link to Hugslog here.
**Additional context**
Add anything else here.
Please mention if you have a changed config or if you suspect a certain mod / interaction.

19
.github/ISSUE_TEMPLATE/feature.md vendored Normal file
View file

@ -0,0 +1,19 @@
---
name: Feature Request
about: Suggest an Idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. I'm always frustrated when [...]
**OR**
I would love to see something like [...]
**Describe the solution you'd like**
Feel free to be oppinionated, or a bit crazy.
I might not do it, but I usually don't judge.
**Additional context**
Add any other context or screenshots about the feature request here.
Feel free to share your paint-sketch

2
.gitignore vendored
View file

@ -255,3 +255,5 @@ paket-files/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
*.dds

View file

@ -58,11 +58,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_anusBPR(pawn);
additional_anus = HediffMaker.MakeHediff(anusDef, pawn);
var CompHediff = additional_anus.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_anus.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_anus, partBPR);

View file

@ -60,11 +60,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_breastsBPR(pawn);
additional_breasts = HediffMaker.MakeHediff(breastDef, pawn);
var CompHediff = additional_breasts.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_breasts.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_breasts, partBPR);

View file

@ -60,11 +60,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_penis = HediffMaker.MakeHediff(penisDef, pawn);
var CompHediff = additional_penis.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_penis.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_penis, partBPR);

View file

@ -65,11 +65,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_vagina = HediffMaker.MakeHediff(vaginaDef, pawn);
var CompHediff = additional_vagina.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_vagina.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_vagina, partBPR);

View file

@ -64,11 +64,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_genital = HediffMaker.MakeHediff(penisDef, pawn);
var CompHediff = additional_genital.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_genital.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_genital, partBPR);
@ -81,11 +81,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_genital = HediffMaker.MakeHediff(vaginaDef, pawn);
var CompHediff = additional_genital.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_genital.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_genital, partBPR);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

View file

@ -50,8 +50,8 @@
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_cum</defName>
<label>cum</label>
<defName>rjw_genes_fluids</defName>
<label>fluids</label>
<displayPriorityInXenotype>12</displayPriorityInXenotype>
</GeneCategoryDef>

View file

@ -18,7 +18,7 @@
<GeneDef ParentName="BreedingBase">
<defName>rjw_genes_mechbreeder</defName>
<label>mechbreeder</label>
<description>Pawns with this gene are able to birth mechanoids unharmed.</description>
<description>Carriers of this gene are able to birth mechanoids unharmed.</description>
<iconPath>World/WorldObjects/Expanding/Mechanoids</iconPath>
<displayOrderInCategory>51</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
@ -28,7 +28,7 @@
<GeneDef ParentName="BreedingBase">
<defName>rjw_genes_zoophile</defName>
<label>zoophile</label>
<description>Xenotypes with this Gene are Zoophile.</description>
<description>Carriers of this Gene are drawn to animals sexually.</description>
<iconPath>Genes/Icons/Zoophile</iconPath>
<displayOrderInCategory>54</displayOrderInCategory>
<forcedTraits>
@ -41,9 +41,7 @@
<GeneDef ParentName="BreedingBase">
<defName>rjw_genes_fertile_anus</defName>
<label>fertile anus</label>
<description>Xenotypes with this gene have a functional uterus if they do not possess one by
means of their vagina.
For males, it is connected to the anal cavity and leads to a normal pregnancy.</description>
<description>Carriers of this gene have a functional uterus if they do not possess one by 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>
<displayOrderInCategory>54</displayOrderInCategory>
</GeneDef>
@ -52,7 +50,7 @@
<defName>rjw_genes_insectincubator</defName>
<label>insect incubator</label>
<geneClass>RJW_Genes.Gene_InsectIncubator</geneClass>
<description>Pawns with this gene fertilize insect eggs that are placed inside them.</description>
<description>Carriers of this gene fertilize insect eggs that are placed inside them.</description>
<iconPath>Genes/Icons/Egg</iconPath>
<displayOrderInCategory>52</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
@ -62,7 +60,7 @@
<GeneDef ParentName="BreedingBase">
<defName>rjw_genes_insectbreeder</defName>
<label>insect breeder</label>
<description>Pawns with this gene are able to fertilize eggs with any fertile penis.</description>
<description>Carriers of this gene are able to fertilize eggs with any fertile penis.</description>
<iconPath>Genes/Icons/Insect_Breeder</iconPath>
<displayOrderInCategory>53</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
@ -73,8 +71,7 @@
<defName>rjw_genes_fervent_ovipositor</defName>
<label>fervent ovipositor</label>
<geneClass>RJW_Genes.Gene_FerventOvipositor</geneClass>
<description>Pawns that have a female (egg producing) ovipositor produce eggs at drastically
increased speed.</description>
<description>Carriers of this gene that have a female (egg producing) ovipositor produce eggs at drastically increased speed.</description>
<iconPath>Genes/Icons/Fervent_Ovipositor</iconPath>
<displayOrderInCategory>55</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
@ -84,7 +81,7 @@
<GeneDef ParentName="BreedingBase">
<defName>rjw_genes_mating_call</defName>
<label>mating call</label>
<description>This gene allows to call nearby animals and invite them for mating.</description>
<description>Carriers of this gene are able to call nearby animals and invite them for mating.</description>
<iconPath>Genes/Icons/RJW_Genes_Mating_Call</iconPath>
<displayOrderInCategory>65</displayOrderInCategory>
<abilities>
@ -100,7 +97,7 @@
<GeneDef ParentName="BreedingBase">
<defName>rjw_genes_pheromone_spit</defName>
<label>pheromone spit</label>
<description>This gene allows to mark targets for breeding, enticing nearby animals for a ride.</description>
<description>Carriers of this gene are able to release a burst of pheremones on another, making them desirable and breedable to nearby animals.</description>
<iconPath>Genes/Icons/RJW_Genes_PheromoneSpit</iconPath>
<displayOrderInCategory>66</displayOrderInCategory>
<abilities>
@ -116,8 +113,7 @@
<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>
<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>
@ -155,8 +151,7 @@
<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>
<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>

View file

@ -58,8 +58,7 @@
<GeneDef ParentName="GeneTailBase">
<defName>rjw_genes_succubus_tail</defName>
<label>succubus tail</label>
<description>Carriers of this gene grow a slender tail ending with a heart that can act as a
dexterous fifth limb.</description>
<description>Carriers of this gene grow a slender tail ending with a heart that can act as a dexterous fifth limb.</description>
<iconPath>Genes/Icons/Succubus_Tail</iconPath>
<iconColor>(1, 0, 0)</iconColor>
<displayOrderInCategory>1000</displayOrderInCategory>

View file

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<GeneDef Name="GeneCumAmount" Abstract="True">
<displayCategory>rjw_genes_cum</displayCategory>
<exclusionTags>
<li>CumAmount</li>
</exclusionTags>
<randomChosen>false</randomChosen>
<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>
<!-- Penis -->
<GeneDef ParentName="GeneCumAmount">
<defName>rjw_genes_no_cum</defName>
<label>no cum</label>
<description>Males of these species have no fluid.</description>
<iconPath>Genes/Icons/No_Cum</iconPath>
<geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
<displayOrderInCategory>533</displayOrderInCategory>
<biostatCpx>0</biostatCpx>
<biostatMet>1</biostatMet>
<modExtensions>
<li Class="RJW_Genes.MultiplierExtension">
<multiplier>0.0</multiplier>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneCumAmount">
<defName>rjw_genes_much_cum</defName>
<label>much cum</label>
<description>Males of this species produce a lot of fluid.</description>
<iconPath>Genes/Icons/Much_Cum</iconPath>
<geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
<displayOrderInCategory>534</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>0</biostatMet>
<modExtensions>
<li Class="RJW_Genes.MultiplierExtension">
<multiplier>3.0</multiplier>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneCumAmount">
<defName>rjw_genes_very_much_cum</defName>
<label>very much cum</label>
<description>Males of this species produce a whole lot of fluid. They are like fountains
basically.</description>
<iconPath>Genes/Icons/Very_Much_Cum</iconPath>
<geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
<displayOrderInCategory>535</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<modExtensions>
<li Class="RJW_Genes.MultiplierExtension">
<multiplier>15.0</multiplier>
</li>
</modExtensions>
</GeneDef>
</Defs>

View file

@ -5,8 +5,7 @@
<defName>rjw_genes_unbreakable</defName>
<label>unbreakable</label>
<displayCategory>rjw_genes_damage</displayCategory>
<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>
<description>Carriers of this gene are unable to get mood or social penalties from being raped and they cannot be broken for a long period of time.</description>
<iconPath>Genes/Icons/TrialDefend</iconPath>
<displayOrderInCategory>2</displayOrderInCategory>
<biostatMet>-1</biostatMet>

View file

@ -17,10 +17,9 @@
<displayCategory>rjw_genes_diseases</displayCategory>
<defName>rjw_genes_genetic_disease_immunity</defName>
<displayOrderInCategory>1</displayOrderInCategory>
<marketValueFactor>0.95</marketValueFactor>
<marketValueFactor>1.15</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>
<description>Carriers of this gene are 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>
@ -33,12 +32,30 @@
</modExtensions>
</GeneDef>
<GeneDef>
<displayCategory>rjw_genes_diseases</displayCategory>
<defName>rjw_genes_disease_carrier</defName>
<displayOrderInCategory>1</displayOrderInCategory>
<marketValueFactor>1.1</marketValueFactor>
<label>disease carrier</label>
<description>Carriers of this gene are asymptomatic to genetic STDs, yet they are capable of spreading them on intercourse. </description>
<biostatCpx>2</biostatCpx>
<biostatMet>-2</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>
<description>Carriers of this gene are a bit more vulnerable, and a slightly more attractive target for rape.</description>
<biostatCpx>1</biostatCpx>
<biostatMet>1</biostatMet>
<marketValueFactor>0.85</marketValueFactor>
@ -63,8 +80,7 @@
<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>
<description>Carriers of this gene are more vulnerable, and a more attractive target for rape.</description>
<biostatCpx>2</biostatCpx>
<biostatMet>1</biostatMet>
<iconPath>Genes/Icons/major_vulnerability</iconPath>
@ -89,8 +105,7 @@
<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>
<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>
@ -168,8 +183,7 @@
<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>
<description>Carriers of this genetic disease are hypersexual, and have a chance to spread this gene during intercourse.</description>
<iconPath>Genes/Icons/Hypersexual</iconPath>
<biostatCpx>2</biostatCpx>
<biostatMet>2</biostatMet>
@ -194,7 +208,7 @@
<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>
<description>Carriers of this genetic disease are bisexual, and have a chance to spread this gene during intercourse.</description>
<iconPath>Genes/Icons/bisexuality</iconPath>
<biostatCpx>1</biostatCpx>
<biostatMet>0</biostatMet>
@ -221,7 +235,7 @@
<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>
<description>Carriers of this genetic diseases are homosexual, and have a chance to spread this gene during intercourse.</description>
<iconPath>Genes/Icons/homosexuality</iconPath>
<biostatCpx>1</biostatCpx>
<biostatMet>0</biostatMet>
@ -248,8 +262,7 @@
<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>
<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>
@ -271,8 +284,7 @@
<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>
<description>Carriers of this genetic disease are dramatically more drawn to pawns with huge cocks.</description>
<iconPath>Genes/Icons/size_blinded</iconPath>
<biostatCpx>1</biostatCpx>
<biostatMet>1</biostatMet>
@ -287,8 +299,7 @@
<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>
<description>Carriers of 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>
@ -312,9 +323,7 @@
<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>
<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>

View file

@ -17,7 +17,7 @@
<label>extra penis</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>Males of this species grow an additional penis .</description>
<description>Male Carriers with this gene grow an additional penis .</description>
<iconPath>Genes/Icons/extra_male</iconPath>
<geneClass>RJW_Genes.Gene_ExtraPenis</geneClass>
<displayOrderInCategory>701</displayOrderInCategory>
@ -30,7 +30,7 @@
<defName>rjw_genes_no_penis</defName>
<label>no penis</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>Males of this do not have a penis.</description>
<description>Male Carriers of this gene do not have a penis.</description>
<iconPath>Genes/Icons/No_Male_Genitalia</iconPath>
<geneClass>RJW_Genes.Gene_NoPenis</geneClass>
<displayOrderInCategory>702</displayOrderInCategory>
@ -44,7 +44,7 @@
<defName>rjw_genes_extra_vagina</defName>
<label>extra vagina</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>Females of this species grow an additional vagina .</description>
<description>Female Carriers with this gene grow an additional vagina .</description>
<iconPath>Genes/Icons/Extra_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_ExtraVagina</geneClass>
<displayOrderInCategory>703</displayOrderInCategory>
@ -57,7 +57,7 @@
<defName>rjw_genes_no_vagina</defName>
<label>no vagina</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>Females of this do not have a vagina.</description>
<description>Female Carriers of this gene do not have a vagina.</description>
<iconPath>Genes/Icons/No_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_NoVagina</geneClass>
<displayOrderInCategory>704</displayOrderInCategory>
@ -71,7 +71,7 @@
<defName>rjw_genes_extra_breasts</defName>
<label>extra breasts</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>Females of this species grow an additional pair of breasts .</description>
<description>Female Carriers of this gene grow an additional pair of breasts .</description>
<iconPath>Genes/Icons/Extra_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_ExtraBreasts</geneClass>
<displayOrderInCategory>705</displayOrderInCategory>
@ -84,7 +84,7 @@
<defName>rjw_genes_no_breasts</defName>
<label>no breasts</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>Females of this do not have a pair of breasts, but only nipples.</description>
<description>Female Carriers of this gene do not have a pair of breasts, but only nipples.</description>
<iconPath>Genes/Icons/No_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_NoBreasts</geneClass>
<displayOrderInCategory>706</displayOrderInCategory>
@ -97,7 +97,7 @@
<defName>rjw_genes_extra_anus</defName>
<label>extra anus</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>This specias has an extra anus.</description>
<description>Carriers of this gene have an extra anus.</description>
<iconPath>Genes/Icons/Extra_Anus</iconPath>
<geneClass>RJW_Genes.Gene_ExtraAnus</geneClass>
<displayOrderInCategory>707</displayOrderInCategory>
@ -110,7 +110,7 @@
<defName>rjw_genes_no_anus</defName>
<label>no anus</label>
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<description>This specias has no anus.</description>
<description>Carriers of this gene have no anus.</description>
<iconPath>Genes/Icons/No_Anus</iconPath>
<geneClass>RJW_Genes.Gene_NoAnus</geneClass>
<displayOrderInCategory>708</displayOrderInCategory>
@ -123,8 +123,7 @@
<defName>rjw_genes_futa</defName>
<label>futanari</label>
<displayCategory>rjw_genes_gender</displayCategory>
<description>Males with this gene grow additional female genitalia, females grow additional male
genitalia.</description>
<description>Male Carriers of this gene grow additional female genitalia, Female Carriers grow additional male genitalia.</description>
<iconPath>Genes/Icons/Futa</iconPath>
<geneClass>RJW_Genes.Gene_Futa</geneClass>
<displayOrderInCategory>709</displayOrderInCategory>
@ -138,7 +137,7 @@
<defName>rjw_genes_femboy</defName>
<label>femboy</label>
<displayCategory>rjw_genes_gender</displayCategory>
<description>Males with this gene are considered female despite having a penis</description>
<description>Male Carriers of this gene are considered female despite having a penis</description>
<iconPath>Genes/Icons/Futa</iconPath>
<geneClass>RJW_Genes.Gene_Femboy</geneClass>
<displayOrderInCategory>709</displayOrderInCategory>

View file

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<GeneDef Name="GeneFluidAmount" Abstract="True">
<displayCategory>rjw_genes_fluids</displayCategory>
<exclusionTags>
<li>FluidAmount</li>
</exclusionTags>
<randomChosen>false</randomChosen>
<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="GeneFluidAmount">
<defName>rjw_genes_no_fluid</defName>
<label>no fluid</label>
<description>Carriers of this gene produce no sexual fluids.</description>
<iconPath>Genes/Icons/No_Cum</iconPath>
<geneClass>RJW_Genes.Gene_ChangeFluidAmount</geneClass>
<displayOrderInCategory>533</displayOrderInCategory>
<biostatCpx>0</biostatCpx>
<biostatMet>1</biostatMet>
<modExtensions>
<li Class="RJW_Genes.MultiplierExtension">
<multiplier>0.0</multiplier>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneFluidAmount">
<defName>rjw_genes_much_fluid</defName>
<label>much fluid</label>
<description>Carriers of this gene produce a lot of sexual fluids.</description>
<iconPath>Genes/Icons/Much_Cum</iconPath>
<geneClass>RJW_Genes.Gene_ChangeFluidAmount</geneClass>
<displayOrderInCategory>534</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>0</biostatMet>
<modExtensions>
<li Class="RJW_Genes.MultiplierExtension">
<multiplier>3.0</multiplier>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneFluidAmount">
<defName>rjw_genes_very_much_fluid</defName>
<label>very much fluid</label>
<description>Carriers of this gene produce an excessive amount of sexual fluids.</description>
<iconPath>Genes/Icons/Very_Much_Cum</iconPath>
<geneClass>RJW_Genes.Gene_ChangeFluidAmount</geneClass>
<displayOrderInCategory>535</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<modExtensions>
<li Class="RJW_Genes.MultiplierExtension">
<multiplier>15.0</multiplier>
</li>
</modExtensions>
</GeneDef>
<GeneDef Name="GeneFluidType" Abstract="True">
<displayCategory>rjw_genes_fluids</displayCategory>
<randomChosen>false</randomChosen>
<geneClass>RJW_Genes.Gene_ChangeFluidType</geneClass>
<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="GeneFluidType">
<defName>rjw_genes_fluid_insect_spunk</defName>
<label>insect spunk</label>
<description>Carriers of this gene produce insect spunk instead of cum.</description>
<iconPath>Genes/Icons/RoundC</iconPath>
<displayOrderInCategory>311</displayOrderInCategory>
<modExtensions>
<li Class="RJW_Genes.GenitaliaFluidChangeExtension">
<penisFluidReplacement>InsectSpunk</penisFluidReplacement>
<vaginaFluidReplacement>InsectSpunk</vaginaFluidReplacement>
<!-- <breastFluidReplacement>Cum</breastFluidReplacement> -->
<!-- <otherFluidReplacement>Cum</otherFluidReplacement> -->
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneFluidType">
<defName>rjw_genes_fluid_cum_breasts</defName>
<label>cum milk</label>
<description>Carriers of this gene produce cum from their breasts instead of milk.</description>
<iconPath>Genes/Icons/RoundC</iconPath>
<displayOrderInCategory>312</displayOrderInCategory>
<modExtensions>
<li Class="RJW_Genes.GenitaliaFluidChangeExtension">
<breastFluidReplacement>Cum</breastFluidReplacement>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneFluidType">
<defName>rjw_genes_fluid_milk_penis</defName>
<label>milk cum</label>
<description>Carriers of this gene produce milk from their penis instead of cum.</description>
<iconPath>Genes/Icons/RoundC</iconPath>
<displayOrderInCategory>313</displayOrderInCategory>
<modExtensions>
<li Class="RJW_Genes.GenitaliaFluidChangeExtension">
<penisFluidReplacement>Milk</penisFluidReplacement>
</li>
</modExtensions>
</GeneDef>
<GeneDef>
<defName>rjw_genes_generous_donor</defName>
<label>generous donor</label>
<displayCategory>rjw_genes_fluids</displayCategory>
<description>When this Xenotype transfers fluids during sex, the giver will not get hungry.</description>
<iconPath>Genes/Icons/Generous_Donor</iconPath>
<displayOrderInCategory>538</displayOrderInCategory>
<biostatCpx>2</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>

View file

@ -16,100 +16,148 @@
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_big_male_genitalia</defName>
<label>big male genitalia</label>
<description>Penises of this Xenotype are bigger.(Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have larger penises.(Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Big_Male_Genitalia</iconPath>
<geneClass>RJW_Genes.Gene_BigMaleGenitalia</geneClass>
<displayOrderInCategory>751</displayOrderInCategory>
<exclusionTags>
<li>PenisSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.6</minimum>
<maximum>1.01</maximum>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_small_male_genitalia</defName>
<label>small male genitalia</label>
<description>Penises of this Xenotype are smaller. (Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have smaller penises. (Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Small_Male_Genitalia</iconPath>
<geneClass>RJW_Genes.Gene_SmallMaleGenitalia</geneClass>
<displayOrderInCategory>753</displayOrderInCategory>
<exclusionTags>
<li>PenisSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.0</minimum>
<maximum>0.4</maximum>
</li>
</modExtensions>
</GeneDef>
<!-- Vagina -->
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_loose_female_genitalia</defName>
<label>loose female genitalia</label>
<description>Vaginas of this Xenotype are quite spacy. (Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have spacious vaginas. (Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Loose_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_LooseFemaleGenitalia</geneClass>
<displayOrderInCategory>754</displayOrderInCategory>
<exclusionTags>
<li>VaginaSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.6</minimum>
<maximum>1.01</maximum>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_tight_female_genitalia</defName>
<label>tight female genitalia</label>
<description>Vaginas of this Xenotype are pretty tight.(Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have tight vaginas.(Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Tight_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_TightFemaleGenitalia</geneClass>
<displayOrderInCategory>756</displayOrderInCategory>
<exclusionTags>
<li>VaginaSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.0</minimum>
<maximum>0.4</maximum>
</li>
</modExtensions>
</GeneDef>
<!-- Breasts -->
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_big_breasts</defName>
<label>big breasts</label>
<description>Females of this Xenotype have big honkers.(Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have larger breasts.(Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Big_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_BigBreasts</geneClass>
<displayOrderInCategory>757</displayOrderInCategory>
<exclusionTags>
<li>BreastSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.6</minimum>
<maximum>1.0</maximum>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_small_breasts</defName>
<label>small breasts</label>
<description>Females of this Xenotype have smaller breasts.(Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have smaller breasts.(Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Small_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_SmallBreasts</geneClass>
<displayOrderInCategory>759</displayOrderInCategory>
<exclusionTags>
<li>BreastSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.0</minimum>
<maximum>0.4</maximum>
</li>
</modExtensions>
</GeneDef>
<!-- Anus -->
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_loose_anus</defName>
<label>loose anus</label>
<description>The Anus of this Xenotype is roomy.(Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have a spacious anus.(Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Loose_Anus</iconPath>
<geneClass>RJW_Genes.Gene_LooseAnus</geneClass>
<displayOrderInCategory>760</displayOrderInCategory>
<exclusionTags>
<li>AnusSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.6</minimum>
<maximum>1.0</maximum>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_tight_anus</defName>
<label>tight anus</label>
<description>The anus of this Xenotype is small.(Resizing takes place at 20th Birthday)</description>
<description>Carriers of this gene have a tight anus.(Resizing takes place at 20th Birthday)</description>
<iconPath>Genes/Icons/Tight_Anus</iconPath>
<geneClass>RJW_Genes.Gene_TightAnus</geneClass>
<displayOrderInCategory>762</displayOrderInCategory>
<exclusionTags>
<li>AnusSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.BoundedExtension">
<minimum>0.0</minimum>
<maximum>0.4</maximum>
</li>
</modExtensions>
</GeneDef>
<!-- Extra -->
@ -121,10 +169,6 @@
<iconPath>Genes/Icons/Big_Male_Genitalia</iconPath>
<geneClass>RJW_Genes.Gene_EvergrowingGenitalia</geneClass>
<displayOrderInCategory>767</displayOrderInCategory>
<exclusionTags>
<li>PenisSize</li>
<li>VaginaSize</li>
</exclusionTags>
<modExtensions>
<li Class="RJW_Genes.TickIntervalExtension">
<!-- One day has 60k ticks-->

View file

@ -198,68 +198,6 @@
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Ghost_genitalia</defName>
<label>ghost genitalia</label>
<description>Carriers of this gene have ghost genitalia.</description>
<iconPath>Genes/Icons/Genitalia_ghost_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>GhostPenis</penis>
<vagina>GhostVagina</vagina>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Golem_genitalia</defName>
<label>golem genitalia</label>
<description>Carriers of this gene have rocky golem genitalia.</description>
<iconPath>Genes/Icons/penis_rock_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>GolemPenis</penis>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Marine_genitalia</defName>
<label>marine genitalia</label>
<description>Carriers of this gene have marine mammal like genitalia.</description>
<iconPath>Genes/Icons/Genitalia_marine_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>MarinePenis</penis>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Necro_genitalia</defName>
<label>undead genitalia</label>
<description>Carriers of this gene have necrotic undead genitalia.</description>
<iconPath>Genes/Icons/Genitalia_necro_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>NecroPenis</penis>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Needle_genitalia</defName>
<label>narrow genitalia</label>
@ -274,47 +212,6 @@
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Orc_genitalia</defName>
<label>orc genitalia</label>
<description>Carriers of this gene have orc genitalia.</description>
<iconPath>Genes/Icons/Genitalia_orc_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>OrcPenis</penis>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Pig_genitalia</defName>
<label>screw genitalia</label>
<description>Carriers of this gene have screw genitalia.</description>
<iconPath>Genes/Icons/Genitalia_screw_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>PigPenis</penis>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Tentacle_genitalia</defName>
<label>alien genitalia</label>
<description>Carriers of this gene have alien genitalia.</description>
<iconPath>Genes/Icons/Genitalia_alien_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>TentaclePenis</penis>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_ovipositor_genitalia</defName>
<label>insect genitalia</label>

View file

@ -16,10 +16,7 @@
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_lifeforce</defName>
<label>fertilin</label>
<description>Carriers of this gene have a reserve of biological strength powered by a
resource called fertilin. The resource can be gained and spent in various ways, some of
which are unlocked by other genes.\n\nCarriers lose 5 fertilin per day from biological
entropy. \n\nGene is inactive until carrier is able to have sex.</description>
<description>Carriers of this gene have a reserve of biological strength powered by a resource called fertilin. The resource can be gained and spent in various ways, some of which are unlocked by other genes.\n\nCarriers lose 5 fertilin per day from biological entropy. \n\nGene is inactive until carrier is able to have sex.</description>
<geneClass>RJW_Genes.Gene_LifeForce</geneClass>
<resourceGizmoType>RJW_Genes.GeneGizmo_ResourceLifeForce</resourceGizmoType>
<resourceLabel>fertilin</resourceLabel>
@ -30,10 +27,7 @@
</resourceGizmoThresholds>
<showGizmoOnWorldView>true</showGizmoOnWorldView>
<showGizmoWhenDrafted>true</showGizmoWhenDrafted>
<resourceDescription>A reserve of biological strength which can be gained and spent in a
variety of ways. \n\nFertilin can be increased by absorbing cum, typically through oral
sex or stored cum. \n\nIf fertilin reaches zero, {PAWN_nameDef} will become very unhappy
and may try to obtain some forcefully.</resourceDescription>
<resourceDescription>A reserve of biological strength which can be gained and spent in a variety of ways. \n\nFertilin can be increased by absorbing cum, typically through oral sex or stored cum. \n\nIf fertilin reaches zero, {PAWN_nameDef} will become very unhappy and may try to obtain some forcefully.</resourceDescription>
<iconPath>Genes/Icons/FertilinAlt</iconPath>
<selectionWeight>0</selectionWeight>
<displayOrderInCategory>-2</displayOrderInCategory>
@ -104,8 +98,7 @@
<defName>rjw_genes_cockeater</defName>
<label>cockeater</label>
<labelShortAdj>cockeater</labelShortAdj>
<description>Carriers of this gene are able eat cocks to restore their fertilin supply.
Cocks are consumed during that process.</description>
<description>Carriers of this gene are able eat cocks to restore their fertilin supply. Cocks are consumed during this process.</description>
<iconPath>Genes/Icons/cockeater</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>11</displayOrderInCategory>
@ -192,8 +185,7 @@
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_naked_prowess</defName>
<label>naked prowess</label>
<description>Carriers of this gene are able to temporarily increase their strength and
resilience, while they are naked.</description>
<description>Carriers of this gene are able to temporarily increase their strength and resilience, while they are naked.</description>
<iconPath>Genes/Icons/rjw_naked_prowess</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>14</displayOrderInCategory>
@ -210,8 +202,7 @@
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_cum_eater</defName>
<label>cum eater</label>
<description>Carriers of this gene are able to absorb fertilin through eating cum. This
includes oral sex, eating cum for food or sucking out cumflated pawns. </description>
<description>Carriers of this gene are able to absorb fertilin through eating cum. This includes oral sex, eating cum for food or sucking out cumflated pawns. </description>
<iconPath>Genes/Icons/cumeater</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>1</displayOrderInCategory>
@ -221,8 +212,7 @@
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_fertilin_absorber</defName>
<label>fertilin absorber</label>
<description>Carriers of this gene are able to absorb the fertilin inside sperm through
their vagina and anus.</description>
<description>Carriers of this gene are able to absorb the fertilin inside sperm through their vagina and anus.</description>
<iconPath>Genes/Icons/Vaginal_cum_absorption</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>2</displayOrderInCategory>
@ -231,10 +221,9 @@
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_lifeforce_empath</defName>
<label>empathic lifeforce</label>
<label>empathic fertilin</label>
<geneClass>RJW_Genes.Gene_LifeForce_Empath</geneClass>
<description>Carriers of this gene generate lifeforce if nearby pawns are sexually
satisfied. Be careful: Sexually frustrated pawns will make your empath loose lifeforce!</description>
<description>Carriers of this gene generate fertilin if nearby pawns are sexually satisfied. Be careful: Sexually frustrated pawns will make your empath loose fertilin!</description>
<iconPath>Genes/Icons/Hypersexual</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>3</displayOrderInCategory>
@ -261,9 +250,7 @@
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_drainer</defName>
<label>vitality drainer</label>
<description>Carriers of this gene are able to absorb a great amount of fertilin by draining
the vitality of the partner. This is done passively through having sex with a
non-drained pawn that does not have this gene.</description>
<description>Carriers of this gene are able to absorb a great amount of fertilin by draining the vitality of the partner. This is done passively through having sex with a non-drained pawn that does not have this gene.</description>
<iconPath>Genes/Icons/Vitality_Drainer</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>4</displayOrderInCategory>

View file

@ -5,7 +5,7 @@
<defName>rjw_genes_hypersexual</defName>
<label>hypersexuality</label>
<displayCategory>Reproduction</displayCategory>
<description>Xenotypes with this Gene are Hypersexual (Nymphs).</description>
<description>Carriers of this Gene are Hypersexual (Nymphs).</description>
<iconPath>Genes/Icons/Hypersexual</iconPath>
<displayOrderInCategory>1</displayOrderInCategory>
<forcedTraits>
@ -32,7 +32,7 @@
<defName>rjw_genes_rapist</defName>
<label>rapist</label>
<displayCategory>Reproduction</displayCategory>
<description>Xenotypes with this Gene are Rapists.</description>
<description>Carriers of this gene are more inclined to force themselves on others sexually.</description>
<iconPath>Genes/Icons/Rape</iconPath>
<biostatMet>1</biostatMet>
<displayOrderInCategory>2</displayOrderInCategory>
@ -56,7 +56,7 @@
<defName>rjw_genes_masochist</defName>
<label>masochist</label>
<displayCategory>Reproduction</displayCategory>
<description>Xenotypes with this Gene are Masochists.</description>
<description>Carriers of this gene enjoy being the target of pain.</description>
<iconPath>Genes/Icons/Rape</iconPath>
<biostatMet>1</biostatMet>
<displayOrderInCategory>2</displayOrderInCategory>
@ -80,7 +80,7 @@
<defName>rjw_genes_homosexual</defName>
<label>homosexual</label>
<displayCategory>Reproduction</displayCategory>
<description>This Gene makes you gay.</description>
<description>Carriers of this gene are Homosexuals.</description>
<iconPath>Genes/Icons/RoundC</iconPath>
<biostatMet>0</biostatMet>
<displayOrderInCategory>3</displayOrderInCategory>
@ -136,15 +136,17 @@
<GeneDef>
<defName>rjw_genes_no_sex_need</defName>
<label>asexual</label>
<description>Carriers of this gene do not have a sex-need. They can still participate in
sex, </description>
<description>Carriers of this gene are not sexually interested in other pawns. They still can participate in sex, but their sex-need does not decline over time.</description>
<iconPath>Genes/Icons/Empty</iconPath>
<displayOrderInCategory>5</displayOrderInCategory>
<disablesNeeds>
<li>Sex</li>
</disablesNeeds>
<biostatMet>-1</biostatMet>
<biostatCpx>2</biostatCpx>
<geneClass>RJW_Genes.Gene_NoSexNeed</geneClass>
<forcedTraits>
<li>
<def>Asexual</def>
</li>
</forcedTraits>
<randomChosen>false</randomChosen>
<exclusionTags>
@ -161,11 +163,10 @@
</GeneDef>
<GeneDef>
<defName>LitteredBirths</defName>
<defName>rjw_genes_littered_births</defName>
<label>littered births</label>
<displayCategory>Reproduction</displayCategory>
<description>Female carriers of this gene birth litters instead of just one baby, with a
chance of having two to four babies per pregnancy.</description>
<description>Female carriers of this gene birth litters instead of just one baby, with a chance of having two to four babies per pregnancy.</description>
<iconPath>Genes/Icons/Gene_LitteredBirths</iconPath>
<displayOrderInCategory>110</displayOrderInCategory>
<marketValueFactor>1.10</marketValueFactor>

View file

@ -15,8 +15,7 @@
<GeneDef ParentName="SpecialBase">
<defName>rjw_genes_orgasm_rush</defName>
<label>orgasm rush</label>
<description>On orgasm, carriers of this gene get a boost in activity. (rest-need is
partially filled)</description>
<description>On orgasm, carriers of this gene get a boost in activity. (rest-need is partially filled)</description>
<biostatCpx>1</biostatCpx>
<biostatMet>-2</biostatMet>
<iconPath>Genes/Icons/FleshPurity</iconPath>
@ -26,8 +25,7 @@
<GeneDef ParentName="SpecialBase">
<defName>rjw_genes_youth_fountain</defName>
<label>youth fountain</label>
<description>Having sex with a carrier of this gene makes the partner slightly younger.
(Partner stays adult)</description>
<description>Carriers of this gene reverse the age of their sexual partners. (Partner stays adult)</description>
<biostatCpx>2</biostatCpx>
<biostatMet>-2</biostatMet>
<iconPath>Genes/Icons/FireLeaves</iconPath>
@ -44,8 +42,7 @@
<GeneDef ParentName="SpecialBase">
<defName>rjw_genes_sex_age_drain</defName>
<label>sexual age drain</label>
<description>Having sex transfers some of the partners life-time to themselves. (Pawn stays
adult)</description>
<description>Carriers of this gene drain the age from their sexual partners. (Pawn stays adult)</description>
<biostatCpx>2</biostatCpx>
<biostatMet>-1</biostatMet>
<iconPath>UI/Icons/ColonistBar/Idle</iconPath>
@ -63,7 +60,7 @@
<defName>rjw_genes_aphrodisiac_pheromones</defName>
<label>aphrodisiac pheromones</label>
<geneClass>RJW_Genes.Gene_Aphrodisiac_Pheromones</geneClass>
<description>Pheremones of this pawn induce an incressed sexdrive to others nearby.</description>
<description>Carriers of this gene produce and aphrodisiac pheremone making others nearby more sexually needy.</description>
<iconPath>Genes/Icons/Pheromones</iconPath>
<displayOrderInCategory>4</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
@ -84,10 +81,7 @@
<defName>rjw_genes_sexual_mytosis</defName>
<label>orgasmic mytosis</label>
<!-- <geneClass>RJW_Genes.Gene_Aphrodisiac_Pheromones</geneClass> -->
<description>Carriers have malfunctioning regenerative archites that grow more unstable with
ongoing multiple orgasms - climaxing in a process of mytosis. This will result in an
(biologically) identical pawn and both twins are set in a regenerative state. Also, the
pawn can have multiple orgasms: In a state of higher unstableness, they come quicker.</description>
<description>Carriers of this gene have malfunctioning regenerative archites that grow more unstable with ongoing multiple orgasms - climaxing in a process of mytosis. This will result in an (biologically) identical pawn and both twins are set in a regenerative state. Also, the pawn can have multiple orgasms: In a state of higher unstableness, they come quicker.</description>
<iconPath>UI/Icons/Genes/Gene_PsychicBonding</iconPath>
<displayOrderInCategory>5</displayOrderInCategory>
<biostatCpx>5</biostatCpx>
@ -98,8 +92,7 @@
<GeneDef ParentName="SpecialBase">
<defName>rjw_genes_hormonal_saliva</defName>
<label>hormonal saliva</label>
<description>The saliva of this xenotype stimulates growth in penises. Regular contact will
lead to noticable growth.</description>
<description>Carriers of this gene have saliva that stimulates growth in penises. Regular contact will lead to noticable growth.</description>
<biostatCpx>2</biostatCpx>
<biostatMet>-1</biostatMet>
<iconPath>Genes/Icons/Big_Male_Genitalia</iconPath>
@ -119,8 +112,7 @@
<defName>rjw_genes_cocoonweaver</defName>
<label>cocoon weaver</label>
<labelShortAdj>cocooner</labelShortAdj>
<description>Carriers of this gene can produce a cocoon to prepare helpless (or willing)
victims for breeding.</description>
<description>Carriers of this gene can produce a cocoon to prepare helpless (or willing) victims for breeding.</description>
<iconPath>Genes/Icons/Cocoon</iconPath>
<displayOrderInCategory>11</displayOrderInCategory>
<abilities>
@ -142,7 +134,7 @@
<defName>rjw_genes_sex_tamer</defName>
<label>sexual tamer</label>
<labelShortAdj>sextamer</labelShortAdj>
<description>Bestiality has a chance to tame animals or advance their training.</description>
<description>Carriers of this gene can bestow intelligence and docility to animals during sexual encounters, effectively increasing their training.</description>
<iconPath>Genes/Icons/RJW_Genes_SexualTamer</iconPath>
<displayOrderInCategory>14</displayOrderInCategory>
<biostatCpx>2</biostatCpx>
@ -152,7 +144,7 @@
<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>
<description>Carriers of 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>
@ -167,7 +159,7 @@
<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>
<description>Carriers of 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>
@ -183,7 +175,7 @@
<GeneDef ParentName="SpecialBase">
<defName>rjw_genes_feminizer</defName>
<label>feminizer</label>
<description>Carriers with this gene slowly turn male sexual partners into females.</description>
<description>Carriers of this gene slowly turn male sexual partners into females.</description>
<iconPath>Genes/Icons/feminizer</iconPath>
<displayOrderInCategory>31</displayOrderInCategory>
<biostatCpx>4</biostatCpx>
@ -224,7 +216,7 @@
<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>
<description>Carriers of this gene slowly turn male sexual partners into breedable cute twinks.</description>
<iconPath>Genes/Icons/twinkifier</iconPath>
<displayOrderInCategory>50</displayOrderInCategory>
<biostatCpx>4</biostatCpx>
@ -264,4 +256,26 @@
</modExtensions>
</GeneDef>
<GeneDef ParentName="SpecialBase">
<defName>rjw_genes_electric_satisfaction</defName>
<label>electric satisfaction</label>
<!-- DevNote: This does not need any class, all is handled in `RJW_Genes.Patch_ElectricSatisfaction` -->
<description>Carriers of this gene produce an electrical charge in nearby electronics during orgasm. This charge is substantial enough to charge batteries.</description>
<iconPath>Genes/Icons/RoundC</iconPath>
<displayOrderInCategory>20</displayOrderInCategory>
<biostatCpx>2</biostatCpx>
<biostatMet>2</biostatMet>
<modExtensions>
<li Class="RJW_Genes.DistanceExtension">
<!-- distance 25 means 25 tiles in every direction from the pheromone-pawn.-->
<distance>4</distance>
</li>
<li Class="RJW_Genes.BoundedExtension">
<minimum>75</minimum>
<maximum>150</maximum>
</li>
</modExtensions>
</GeneDef>
</Defs>

View file

@ -4,7 +4,7 @@
<defName>rjw_genes_female_only</defName>
<label>female</label>
<displayCategory>rjw_genes_gender</displayCategory>
<description>This Xenotype only has females.</description>
<description>Carriers of this gene are only female.</description>
<biostatCpx>0</biostatCpx>
<iconPath>Genes/Icons/Female_Only</iconPath>
<geneClass>RJW_Genes.Gene_FemaleOnly</geneClass>
@ -26,7 +26,7 @@
<defName>rjw_genes_male_only</defName>
<displayCategory>rjw_genes_gender</displayCategory>
<label>male</label>
<description>This Xenotype only has males.</description>
<description>Carriers of this gene are only male.</description>
<biostatCpx>0</biostatCpx>
<iconPath>Genes/Icons/Male_Only</iconPath>
<geneClass>RJW_Genes.Gene_MaleOnly</geneClass>
@ -48,7 +48,7 @@
<defName>rjw_genes_gender_fluid</defName>
<displayCategory>rjw_genes_gender</displayCategory>
<label>genderfluid</label>
<description>Everyday carriers of this gene might change their biological sex.</description>
<description>Carriers of this gene might change their biological sex daily.</description>
<biostatCpx>0</biostatCpx>
<iconPath>Genes/Icons/Futa</iconPath>
<geneClass>RJW_Genes.Gene_GenderFluid</geneClass>

View file

@ -4,10 +4,8 @@
<XenotypeDef>
<defName>rjw_genes_succubus</defName>
<label>succubus</label>
<description>Succubi are strongly enhanced xenohumans. These overnaturally beautiful creatures
strive parasitically on the Fertilin found in semen.</description>
<descriptionShort>Succubi are beautiful and extremely hungry Xenohumans. They strive on having
sex and extracting their victims life-force through this. </descriptionShort>
<description>Succubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen.</description>
<descriptionShort>Succubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this. </descriptionShort>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Succubus</iconPath>
<soundDefOnImplant>PawnBecameSanguophage</soundDefOnImplant>
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
@ -53,10 +51,8 @@
<XenotypeDef>
<defName>rjw_genes_incubus</defName>
<label>incubus</label>
<description>Incubi are strongly enhanced xenohumans. These overnaturally beautiful creatures
strive parasitically on the Fertilin found in semen.</description>
<descriptionShort>Incubi are beautiful and extremely hungry Xenohumans. They strive on having
sex and extracting their victims life-force through this. </descriptionShort>
<description>Incubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen.</description>
<descriptionShort>Incubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this. </descriptionShort>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Incubus</iconPath>
<soundDefOnImplant>PawnBecameSanguophage</soundDefOnImplant>
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
@ -101,14 +97,8 @@
<XenotypeDef>
<defName>rjw_genes_cumazone</defName>
<label>Cumazone</label>
<description>Cumazone are a female only xenotype that excel at meele combat. Originally created
as bodyguards for glitterworld amazon communities, they spred to other systems by mere
strength and providing for some fetishes. They can use Fertilin to enhance their skin to
overpower any combatant in meele. Their only source for Fertilin is biting of male genitalia -
so be sure to have a steady supply of victim males or prepare to raid unsuspecting men of the
rim.</description>
<descriptionShort>Female only, strong meele fighters, that use Fertilin from bitten-off cocks
for powerful buffs.</descriptionShort>
<description>Cumazone are a female only xenotype that excel at melee combat. Originally created as bodyguards for glitterworld amazon communities, they spred to other systems by mere strength and providing for some fetishes. They can use Fertilin to enhance their skin to overpower any combatant in melee. Their only source for Fertilin is biting off male genitalia - so be sure to have a steady supply of victim males or prepare to raid unsuspecting men of the rim.</description>
<descriptionShort>Female only, strong meele fighters, that use Fertilin from bitten-off cocks for powerful buffs.</descriptionShort>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Cumazon</iconPath>
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
<xenogermReplicatingDurationLeftDaysRange>0.1~140</xenogermReplicatingDurationLeftDaysRange>

View file

@ -68,4 +68,17 @@
<li>ExoticMisc</li>
</tradeTags>
</ThingDef>
<RecipeDef ParentName="SurgeryRemoveImplantBase">
<defName>RemoveBioscaffold</defName>
<label>remove Bioscaffold</label>
<description>Remove the bioscaffold.</description>
<descriptionHyperlinks>
<ThingDef>Bioscaffold</ThingDef>
<HediffDef>Bioscaffold</HediffDef>
</descriptionHyperlinks>
<jobString>Removing bioscaffold.</jobString>
<removesHediff>Bioscaffold</removesHediff>
</RecipeDef>
</Defs>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<HediffDef>
<defName>rjw_genes_disease_carrier_storage</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>stored genetic diseases</label>
<description>This pawn is capable of carrying genetic diseases without being infected.</description>
<defaultLabelColor>(240,200,110)</defaultLabelColor>
<scenarioCanAdd>false</scenarioCanAdd>
<isBad>false</isBad>
<tendable>false</tendable>
<!--<visible>false</visible -->
<comps>
<li Class="RJW_Genes.HediffCompProperties_DiseaseStorage">
<!-- 60k = 1 Day, so we store default 5 days-->
<ticksThatDiseasesAreStored>300000</ticksThatDiseasesAreStored>
</li>
</comps>
<stages>
<li>
<label>active</label>
<becomeVisible>false</becomeVisible>
</li>
</stages>
</HediffDef>
</Defs>

View file

@ -35,4 +35,17 @@
<researchPrerequisite>FertilityProcedures</researchPrerequisite>
</recipeMaker>
</ThingDef>
<RecipeDef ParentName="SurgeryRemoveImplantBase">
<defName>RemoveLimbicStimulator</defName>
<label>remove limbic stimulator</label>
<description>Remove the limbic stimulator.</description>
<descriptionHyperlinks>
<ThingDef>LimbicStimulator</ThingDef>
<HediffDef>LimbicStimulator</HediffDef>
</descriptionHyperlinks>
<jobString>Removing limbic stimulator.</jobString>
<removesHediff>LimbicStimulator</removesHediff>
</RecipeDef>
</Defs>

View file

@ -133,4 +133,17 @@
<researchPrerequisite>FertilityProcedures</researchPrerequisite>
</recipeMaker>
</ThingDef>
<RecipeDef ParentName="SurgeryRemoveImplantBase">
<defName>RemoveOvaryAgitator</defName>
<label>remove ovary agitator</label>
<description>Remove the ovary agitator.</description>
<descriptionHyperlinks>
<ThingDef>OvaryAgitator</ThingDef>
<HediffDef>OvaryAgitator</HediffDef>
</descriptionHyperlinks>
<jobString>Removing ovary agitator.</jobString>
<removesHediff>OvaryAgitator</removesHediff>
</RecipeDef>
</Defs>

View file

@ -146,11 +146,11 @@
<chance>0.1</chance>
</li>
<li>
<defName>rjw_genes_much_cum</defName>
<defName>rjw_genes_much_fluid</defName>
<chance>0.3</chance>
</li>
<li>
<defName>rjw_genes_very_much_cum</defName>
<defName>rjw_genes_very_much_fluid</defName>
<chance>0.05</chance>
</li>
<li>
@ -198,11 +198,11 @@
<chance>0.15</chance>
</li>
<li>
<defName>rjw_genes_much_cum</defName>
<defName>rjw_genes_much_fluid</defName>
<chance>0.3</chance>
</li>
<li>
<defName>rjw_genes_very_much_cum</defName>
<defName>rjw_genes_very_much_fluid</defName>
<chance>0.05</chance>
</li>
<li>

View file

@ -10,7 +10,7 @@
<stages>
<li>
<label>cock eaten</label>
<description>My cock was eaten directly of my body, I am devestated. This is not what good head feels like. </description>
<description>My cock was eaten directly off my body, I am devestated. This is not what good head feels like. </description>
<baseMoodEffect>-30</baseMoodEffect>
</li>
</stages>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>
<rjw_genes_twin_letter>Twins!</rjw_genes_twin_letter>
<rjw_genes_twin_letter_content>is still in labor and is having twins! Be sure to gather your doctor and additional friends and family to ensure the other baby is also born healthy!</rjw_genes_twin_letter_content>
<rjw_genes_another_baby_letter>Another baby!</rjw_genes_another_baby_letter>
<rjw_genes_another_baby_letter_content>is still in labor and is having twins! Be sure to gather your doctor and additional friends and family to ensure the other baby is also born healthy!</rjw_genes_another_baby_letter_content>
</LanguageData>

View file

@ -45,9 +45,12 @@
<iconPath>Genes/Icons/sex_disabled</iconPath>
<displayOrderInCategory>3</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<disablesNeeds>
<li>Sex</li>
</disablesNeeds>
<geneClass>RJW_Genes.Gene_NoSexNeed</geneClass>
<forcedTraits>
<li>
<def>Asexual</def>
</li>
</forcedTraits>
<removeWhenAwakened>true</removeWhenAwakened>
</VREAndroids.AndroidGeneDef>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef>
<defName>rjw_genes_inflatable</defName>
<label>inflatable</label>
<displayCategory>rjw_genes_fluids</displayCategory>
<description>This Xenotype loves being stuffed with fluids and does not suffer physical impediments from being inflated.</description>
<iconPath>Genes/Icons/Cumflation</iconPath>
<displayOrderInCategory>536</displayOrderInCategory>
<biostatMet>-1</biostatMet>
<biostatCpx>2</biostatCpx>
<forcedTraits>
<li>
<def>Cumpilation_LikesCumflation</def>
</li>
</forcedTraits>
<exclusionTags>
<li>Cumpilation_NotCumflatable</li>
</exclusionTags>
<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>
<defName>rjw_genes_un_inflatable</defName>
<label>inflation resistance</label>
<displayCategory>rjw_genes_fluids</displayCategory>
<description>This Xenotype cannot get inflated by fluids, neither vaginal, oral or anal.</description>
<iconPath>Genes/Icons/Cumflation_Immunity</iconPath>
<displayOrderInCategory>537</displayOrderInCategory>
<exclusionTags>
<li>Cumpilation_NotCumflatable</li>
</exclusionTags>
<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>
<defName>rjw_genes_living_cumbucket</defName>
<label>living cumbucket</label>
<displayCategory>rjw_genes_fluids</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>

View file

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<HediffDef>
<defName>RJW_Genes_Cumpilation_Cumflation_Counter</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>cumflation counter</label>
<labelNoun>cumflation counter</labelNoun>
<description>Apparently you can deal with it quite well.</description>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>3.0</maxSeverity>
<isBad>false</isBad>
<tendable>false</tendable>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.85</severityPerDay>
</li>
<li Class="RJW_Genes.HediffCompProperties_MatchSeverityOfHediff">
<hediffToMatch>Cumpilation_Cumflation</hediffToMatch>
</li>
</comps>
<stages>
<li>
<label>counter a little</label>
<becomeVisible>false</becomeVisible>
</li>
<li>
<label>counter slight</label>
<minSeverity>0.2</minSeverity>
<becomeVisible>false</becomeVisible>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.1</offset>
</li>
</capMods>
</li>
<li>
<label>counter moderate</label>
<minSeverity>0.4</minSeverity>
<becomeVisible>false</becomeVisible>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.25</offset>
</li>
</capMods>
<painOffset>-0.1</painOffset>
</li>
<li>
<label>counter intense</label>
<minSeverity>0.65</minSeverity>
<becomeVisible>false</becomeVisible>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.55</offset>
</li>
</capMods>
<painOffset>-0.15</painOffset>
</li>
<li>
<label>counter extreme</label>
<minSeverity>0.9</minSeverity>
<becomeVisible>false</becomeVisible>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.85</offset>
</li>
</capMods>
<painOffset>-0.25</painOffset>
</li>
</stages>
</HediffDef>
</Defs>

View file

@ -5,6 +5,7 @@
<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>
<maxSeverity>75.0</maxSeverity>
<defaultLabelColor>(240,200,110)</defaultLabelColor>
<scenarioCanAdd>false</scenarioCanAdd>
<!-- <maxSeverity>1.0</maxSeverity> -->
@ -14,6 +15,7 @@
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.5</severityPerDay>
</li>
<li Class="Cumpilation.Cumflation.HediffCompProperties_SourceStorage"/>
<li Class="RJW_Genes.HediffsCompProperties_ProcessCumbucketMTB">
<mtbDaysPerStage>
<li>0</li>

View file

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<HediffDef Abstract="True" Name="RJW_Genes_Cumpilation_Counter_Stuffing">
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(240,200,110)</defaultLabelColor>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>1.0</maxSeverity>
<isBad>false</isBad>
<tendable>false</tendable>
</HediffDef>
<HediffDef ParentName="RJW_Genes_Cumpilation_Counter_Stuffing">
<defName>RJW_Genes_Cumpilation_Cumstuffed_Counter</defName>
<label>cumstuffed counter</label>
<labelNoun>cumstuffed countered</labelNoun>
<description>Apparently you can deal with it quite well.</description>
<comps>
<li Class="RJW_Genes.HediffCompProperties_MatchSeverityOfHediff">
<hediffToMatch>Cumpilation_Cumstuffed</hediffToMatch>
</li>
</comps>
<stages>
<li>
<label>counter slightly bloated</label>
<becomeVisible>false</becomeVisible>
</li>
<li>
<label>counter bloated</label>
<becomeVisible>false</becomeVisible>
<minSeverity>0.2</minSeverity>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.03</offset>
</li>
</capMods>
</li>
<li>
<label>counter full</label>
<becomeVisible>false</becomeVisible>
<minSeverity>0.4</minSeverity>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.1</offset>
</li>
</capMods>
</li>
<li>
<label>counter stuffed</label>
<becomeVisible>false</becomeVisible>
<minSeverity>0.6</minSeverity>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.2</offset>
</li>
</capMods>
<painOffset>-0.1</painOffset>
</li>
<li>
<label>counter overstuffed</label>
<minSeverity>0.8</minSeverity>
<becomeVisible>false</becomeVisible>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.3</offset>
</li>
</capMods>
<painOffset>-0.2</painOffset>
</li>
</stages>
</HediffDef>
<HediffDef ParentName="RJW_Genes_Cumpilation_Counter_Stuffing">
<defName>RJW_Genes_Cumpilation_InsectSpunkStuffed_Counter</defName>
<label>insect-spunk stuffed counter</label>
<labelNoun>insect-spunk stuffed counter</labelNoun>
<comps>
<li Class="RJW_Genes.HediffCompProperties_MatchSeverityOfHediff">
<hediffToMatch>Cumpilation_InsectSpunkStuffed</hediffToMatch>
</li>
</comps>
<description>Apparently you can deal with it quite well.</description>
<stages>
<li>
<label>counter slightly bloated</label>
<becomeVisible>false</becomeVisible>
</li>
<li>
<label>counter bloated</label>
<becomeVisible>false</becomeVisible>
<minSeverity>0.2</minSeverity>
<statOffsets>
<MoveSpeed>0.05</MoveSpeed>
<RestFallRateFactor>-0.1</RestFallRateFactor>
</statOffsets>
</li>
<li>
<label>counter full</label>
<becomeVisible>false</becomeVisible>
<minSeverity>0.4</minSeverity>
<statOffsets>
<RestFallRateFactor>0.25</RestFallRateFactor>
<ComfyTemperatureMax>5</ComfyTemperatureMax>
<ComfyTemperatureMin>5</ComfyTemperatureMin>
<GlobalLearningFactor>-0.1</GlobalLearningFactor>
<MentalBreakThreshold>-0.1</MentalBreakThreshold>
<WorkSpeedGlobal>+0.15</WorkSpeedGlobal>
</statOffsets>
<capMods>
<li>
<capacity>Talking</capacity>
<offset>-0.05</offset>
</li>
</capMods>
</li>
<li>
<label>counter over-stuffed</label>
<becomeVisible>false</becomeVisible>
<minSeverity>0.7</minSeverity>
<statOffsets>
<ComfyTemperatureMax>10</ComfyTemperatureMax>
<ComfyTemperatureMin>10</ComfyTemperatureMin>
<GlobalLearningFactor>-0.2</GlobalLearningFactor>
<MentalBreakThreshold>-0.2</MentalBreakThreshold>
<WorkSpeedGlobal>+0.25</WorkSpeedGlobal>
</statOffsets>
<capMods>
<li>
<capacity>Manipulation</capacity>
<offset>+0.05</offset>
</li>
<li>
<capacity>Talking</capacity>
<offset>+0.15</offset>
</li>
</capMods>
</li>
</stages>
</HediffDef>
</Defs>

View file

@ -4,7 +4,7 @@
<!--========= General ============-->
<JobDef>
<defName>ProcessCumbucket</defName>
<defName>RJW_Genes_ProcessCumbucket</defName>
<driverClass>RJW_Genes.JobDriver_ProcessingCumbucket</driverClass>
<playerInterruptible>false</playerInterruptible>
<casualInterruptible>false</casualInterruptible>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<Operation Class="PatchOperationConditional">
<xpath>Defs/ThingDef[defName="Cumpilation_Cum"]/ingestible/outcomeDoers</xpath>
<nomatch Class="PatchOperationAdd">
<xpath>/Defs/ThingDef[defName="Cumpilation_Cum"]/ingestible</xpath>
<value>
<outcomeDoers>
<li Class="RJW_Genes.IngestionOutcomeDoer_LifeForceOffset">
<FertilinPerUnit>2</FertilinPerUnit>
</li>
</outcomeDoers>
</value>
</nomatch>
<match Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName="Cumpilation_Cum"]/ingestible/outcomeDoers</xpath>
<value>
<li Class="RJW_Genes.IngestionOutcomeDoer_LifeForceOffset">
<FertilinPerUnit>2</FertilinPerUnit>
</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -23,7 +23,7 @@
<GeneDef>
<defName>rjw_genes_likes_cumflation</defName>
<label>likes cumflation</label>
<displayCategory>rjw_genes_cum</displayCategory>
<displayCategory>rjw_genes_fluids</displayCategory>
<description>This Xenotype loves being cumflated.</description>
<iconPath>Genes/Icons/Cumflation</iconPath>
<displayOrderInCategory>536</displayOrderInCategory>
@ -49,7 +49,7 @@
<GeneDef>
<defName>rjw_genes_cumflation_immunity</defName>
<label>cumflation immunity</label>
<displayCategory>rjw_genes_cum</displayCategory>
<displayCategory>rjw_genes_fluids</displayCategory>
<description>This Xenotype cannot get cumflated.</description>
<iconPath>Genes/Icons/Cumflation_Immunity</iconPath>
<displayOrderInCategory>537</displayOrderInCategory>
@ -65,22 +65,4 @@
</modExtensions>
</GeneDef>
<GeneDef>
<defName>rjw_genes_generous_donor</defName>
<label>generous donor</label>
<displayCategory>rjw_genes_cum</displayCategory>
<description>When this Xenotype transfers nutrition via cumshot, the giver will not get hungry. (Licentia Configuration for Transfer Nutrition must be enabled).</description>
<iconPath>Genes/Icons/Generous_Donor</iconPath>
<displayOrderInCategory>538</displayOrderInCategory>
<biostatCpx>2</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>

View file

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Necro_genitalia</defName>
<label>undead genitalia</label>
<description>Carriers of this gene have necrotic undead genitalia.</description>
<iconPath>Genes/Icons/Genitalia_necro_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>NecroPenis</penis>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Orc_genitalia</defName>
<label>orc genitalia</label>
<description>Carriers of this gene have orc genitalia.</description>
<iconPath>Genes/Icons/Genitalia_orc_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>OrcPenis</penis>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Pig_genitalia</defName>
<label>screw genitalia</label>
<description>Carriers of this gene have screw genitalia.</description>
<iconPath>Genes/Icons/Genitalia_screw_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>PigPenis</penis>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Tentacle_genitalia</defName>
<label>alien genitalia</label>
<description>Carriers of this gene have alien genitalia.</description>
<iconPath>Genes/Icons/Genitalia_alien_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>TentaclePenis</penis>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Golem_genitalia</defName>
<label>golem genitalia</label>
<description>Carriers of this gene have rocky golem genitalia.</description>
<iconPath>Genes/Icons/penis_rock_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>GolemPenis</penis>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Marine_genitalia</defName>
<label>marine genitalia</label>
<description>Carriers of this gene have marine mammal like genitalia.</description>
<iconPath>Genes/Icons/Genitalia_marine_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>MarinePenis</penis>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Ghost_genitalia</defName>
<label>ghost genitalia</label>
<description>Carriers of this gene have ghost genitalia.</description>
<iconPath>Genes/Icons/Genitalia_ghost_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>GhostPenis</penis>
<vagina>GhostVagina</vagina>
</li>
<li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
</Defs>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Pig_genitalia</defName>
<label>Pig genitalia</label>
<description>Carriers of this gene develop pig genitalia.</description>
<iconPath>Genes/Icons/Genitalia_screw_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>PigPenis</penis>
<vagina>PigVagina</vagina>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Orc_genitalia</defName>
<label>Orc genitalia</label>
<description>Carriers of this gene develop orc genitalia.</description>
<iconPath>Genes/Icons/Genitalia_orc_icon</iconPath>
<modExtensions>
<li Class="RJW_Genes.GenitaliaTypeExtension">
<penis>OrcPenis</penis>
<vagina>OrcVagina</vagina>
</li>
</modExtensions>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
</Defs>

View file

@ -1,21 +0,0 @@
<?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>

View file

@ -477,11 +477,11 @@
<chance>0.15</chance>
</li>
<li>
<defName>rjw_genes_much_cum</defName>
<defName>rjw_genes_much_fluid</defName>
<chance>0.3</chance>
</li>
<li>
<defName>rjw_genes_very_much_cum</defName>
<defName>rjw_genes_very_much_fluid</defName>
<chance>0.05</chance>
</li>
<li>
@ -521,7 +521,7 @@
<chance>0.5</chance>
</li>
<li>
<defName>rjw_genes_much_cum</defName>
<defName>rjw_genes_much_fluid</defName>
<chance>0.5</chance>
</li>
<li>

View file

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<!--
DevNote:
There used to be an issue with a Gene-Mod Called "Cum-Addiction Gene". That mod just overwrote the
complete UsedCondom.xml and Sexperience Cum.xml
This would lead to two types of failures:
A) If this mod was before the other mod, changes were just overwritten
B) If this mod was after, there was an issue in targetting the XML throwing a patch error
Please if you write mods, do not just purge out XMLs. Thanks.
This patch was kindly mirrored after Infis Patch of UsedCondoms.
-->
<Operation Class="PatchOperationFindMod">
<mods>
<li>RJW Sexperience</li>
</mods>
<match Class="PatchOperationConditional">
<xpath>Defs/ThingDef[defName="GatheredCum"]/ingestible/outcomeDoers</xpath>
<nomatch Class="PatchOperationAdd">
<xpath>/Defs/ThingDef[defName="GatheredCum"]/ingestible</xpath>
<value>
<outcomeDoers>
<li Class="RJW_Genes.IngestionOutcomeDoer_LifeForceOffset">
<FertilinPerUnit>1</FertilinPerUnit>
</li>
</outcomeDoers>
</value>
</nomatch>
<match Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName="GatheredCum"]/ingestible/outcomeDoers</xpath>
<value>
<li Class="RJW_Genes.IngestionOutcomeDoer_LifeForceOffset">
<FertilinPerUnit>1</FertilinPerUnit>
</li>
</value>
</match>
</match>
</Operation>
</Patch>

View file

@ -12,9 +12,9 @@
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Pigskin"]/genes</xpath>
<value>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li>rjw_genes_zoophile</li>
<li>rjw_genes_Pig_genitalia</li>
<!-- <li>rjw_genes_Pig_genitalia</li> -->
<li>rjw_genes_human_genitalia</li>
</value>
</Operation>

View file

@ -41,7 +41,7 @@
<xpath>Defs/XenotypeDef[defName="AG_Lapis"]/genes</xpath>
<value>
<li>rjw_genes_big_breasts</li>
<li>rjw_genes_no_cum</li>
<li>rjw_genes_no_fluid</li>
<li>rjw_genes_big_male_genitalia</li>
</value>
</li>

View file

@ -12,7 +12,7 @@
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_big_breasts</li>
<li>rjw_genes_no_sex_need</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_generous_donor</li>
<li>rjw_genes_generous_donor</li>
<li MayRequire="rjw.sexperience">AptitudePoor_Sex</li>
</value>
</li>
@ -20,7 +20,7 @@
<xpath>Defs/XenotypeDef[defName="BS_Malakim"]/genes</xpath>
<value>
<li>rjw_genes_small_breasts</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_generous_donor</li>
<li>rjw_genes_generous_donor</li>
<li MayRequire="rjw.sexperience">AptitudeTerrible_Sex</li>
</value>
</li>
@ -29,17 +29,13 @@
<value>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_big_breasts</li>
<li>rjw_genes_human_genitalia</li>
<li>rjw_genes_equine_genitalia</li>
<li>rjw_genes_reptilian_genitalia</li>
<li>rjw_genes_crocodilian_genitalia</li>
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="BS_Grigori"]/genes</xpath>
<value>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_generous_donor</li>
<li>rjw_genes_generous_donor</li>
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
</value>
</li>
@ -66,7 +62,7 @@
<li>rjw_genes_loose_anus</li>
<li>rjw_genes_extra_vagina</li>
<li>rjw_genes_extra_anus</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_cumflation_immunity</li>
<li MayRequire="vegapnk.cumpilation">rjw_genes_un_inflatable</li>
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
</value>
</li>
@ -79,8 +75,8 @@
<li>rjw_genes_tight_anus</li>
<li>rjw_genes_extra_vagina</li>
<li>rjw_genes_extra_anus</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_likes_cumflation</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elastic</li>
<li MayRequire="vegapnk.cumpilation">rjw_genes_inflatable</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
</value>
</li>

View file

@ -15,8 +15,6 @@
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="BS_Abomination"]/genes</xpath>
<value>
<li>rjw_genes_Tentacle_genitalia</li>
<li>rjw_genes_reptilian_genitalia</li>
<li>rjw_genes_human_genitalia</li>
</value>
</li>

View file

@ -9,15 +9,13 @@
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="BS_Ogre"]/genes</xpath>
<value>
<li>rjw_genes_Orc_genitalia</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="BS_GreatOgre"]/genes</xpath>
<value>
<li>rjw_genes_Orc_genitalia</li>
<li>rjw_genes_very_much_cum</li>
<li>rjw_genes_very_much_fluid</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_big_breasts</li>
<li>rjw_genes_loose_female_genitalia</li>
@ -27,7 +25,6 @@
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="BS_Troll"]/genes</xpath>
<value>
<li>rjw_genes_Orc_genitalia</li>
<li>rjw_genes_evergrowth</li>
</value>
</li>
@ -53,7 +50,6 @@
<xpath>Defs/XenotypeDef[defName="BS_Corrupterd_Titan"]/genes</xpath> <!-- sic -->
<value>
<li>rjw_genes_rapist</li>
<li>rjw_genes_Tentacle_genitalia</li>
</value>
</match>
</li>
@ -62,8 +58,8 @@
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li>rjw_genes_very_much_cum</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_likes_cumflation</li>
<li>rjw_genes_very_much_fluid</li>
<li MayRequire="vegapnk.cumpilation">rjw_genes_inflatable</li>
</value>
</li>
<li Class="PatchOperationAdd">
@ -75,10 +71,10 @@
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="BS_Redcap"]/genes</xpath>
<value>
<li>LitteredBirths</li>
<li>rjw_genes_littered_births</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li>rjw_genes_rapist</li>
</value>
</li>

View file

@ -31,7 +31,7 @@
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_equine_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li MayRequire="rjw.sexperience">AptitudeTerrible_Sex</li>
</value>
</li>
@ -39,7 +39,7 @@
<xpath>Defs/XenotypeDef[@Name="BS_Imp_A"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li>rjw_genes_small_male_genitalia</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_small_breasts</li>

View file

@ -18,7 +18,7 @@
]/genes</xpath>
<value>
<li>rjw_genes_slime_genitalia</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
</value>
</li>

View file

@ -10,7 +10,7 @@
<xpath>Defs/XenotypeDef[defName = "BS_Kitsune"]/genes</xpath>
<value>
<li>rjw_genes_canine_genitalia</li>
<li>LitteredBirths</li>
<li>rjw_genes_littered_births</li>
</value>
</li>
@ -21,7 +21,7 @@
<li>rjw_genes_extra_vagina</li>
<li>rjw_genes_extra_penis</li>
<li>rjw_genes_small_breasts</li>
<li>LitteredBirths</li>
<li>rjw_genes_littered_births</li>
</value>
</li>
@ -29,7 +29,7 @@
<xpath>Defs/XenotypeDef[defName = "BS_RedOni" or defName = "BS_BlueOni" or defName = "BS_LesserOni"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
</value>
</li>
@ -39,7 +39,7 @@
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_loose_female_genitalia</li>
<li>rjw_genes_very_much_cum</li>
<li>rjw_genes_very_much_fluid</li>
</value>
</li>
</operations>

View file

@ -35,7 +35,6 @@
<li>rjw_genes_small_male_genitalia</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li>rjw_genes_Needle_genitalia</li>
<li>rjw_genes_zoophile</li>
</value>
</match>
@ -51,7 +50,6 @@
<li>rjw_genes_small_male_genitalia</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li>rjw_genes_Needle_genitalia</li>
<li>rjw_genes_zoophile</li>
</value>
</match>
@ -81,8 +79,7 @@
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li>rjw_genes_Needle_genitalia</li>
<li>LitteredBirths</li>
<li>rjw_genes_littered_births</li>
<li>rjw_genes_zoophile</li>
</value>
</match>
@ -112,7 +109,6 @@
<xpath>Defs/XenotypeDef[defName="Cloudpuff"]/genes</xpath>
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_Needle_genitalia</li>
<li>rjw_genes_zoophile</li>
</value>
</match>
@ -125,7 +121,6 @@
<xpath>Defs/XenotypeDef[defName="Devilpuff"]/genes</xpath>
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_Needle_genitalia</li>
<li>rjw_genes_zoophile</li>
</value>
</match>

View file

@ -7,7 +7,7 @@
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Glintscale"]/genes</xpath>
<value>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li>rjw_genes_dragon_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
</value>
@ -20,8 +20,7 @@
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Ashfeather"]/genes</xpath>
<value>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_Needle_genitalia</li>
<li>rjw_genes_much_fluid</li>
</value>
</match>
</Operation>
@ -32,7 +31,7 @@
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Tailbinder"]/genes</xpath>
<value>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li>rjw_genes_canine_genitalia</li>
</value>
</match>

View file

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Obsidia Expansion - Arachnas Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="OE_WidowArachna" or defName="OE_WolfArachna" or defName="OE_GoliathArachna"]/genes</xpath>
<value>
<li>rjw_genes_ovipositor_genitalia</li>
<li>rjw_genes_insectbreeder</li>
<li>rjw_genes_fluid_insect_spunk</li>
<li>rjw_genes_cocoonweaver</li>
</value>
</match>
</Operation>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Obsidia Expansion - Axotl Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="OE_Axotl"]/genes</xpath>
<value>
<li>rjw_genes_small_male_genitalia</li>
<li MayRequire="vegapnk.cumpilation">rjw_genes_living_cumbucket</li>
</value>
</match>
</Operation>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Obsidia Expansion - Ceratons Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="OE_Protoceraton" or defName="OE_Styracodon" or defName="OE_Triceraton"]/genes</xpath>
<value>
<li>rjw_genes_crocodilian_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_loose_female_genitalia</li>
<li>rjw_genes_big_breasts</li>
</value>
</match>
</Operation>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Obsidia Expansion - Liches Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="OE_Lich" or defName="OE_Archlich"]/genes</xpath>
<value>
<li>rjw_genes_no_fluid</li>
<li>rjw_genes_featureless_chest</li>
<li>rjw_genes_no_sex_need</li>
<li>rjw_genes_no_penis</li>
<li>rjw_genes_no_vagina</li>
</value>
</match>
</Operation>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Obsidia Expansion - Mothoids Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="OE_Mothoid" or defName="OE_MothoidPrime" or defName="OE_MothoidAtlant"]/genes</xpath>
<value>
<li>rjw_genes_insectincubator</li>
<li>rjw_genes_fluid_insect_spunk</li>
</value>
</match>
</Operation>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Obsidia Expansion - Slimes Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="OE_Slime" or defName="OE_SlimeWaste" or defName="OE_SlimeBloody" or defName="OE_SlimePrime"]/genes</xpath>
<value>
<li>rjw_genes_slime_genitalia</li>
<li>rjw_genes_very_much_fluid</li>
<li>rjw_genes_loose_anus</li>
<li>rjw_genes_loose_female_genitalia</li>
<li MayRequire="vegapnk.cumpilation">rjw_genes_inflatable</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
</value>
</match>
</Operation>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Obsidia Expansion - Tortle Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="OE_Tortle"]/genes</xpath>
<value>
<li>rjw_genes_reptilian_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -7,9 +7,9 @@
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRE_Boarskin"]/genes</xpath>
<value>
<li>rjw_genes_Pig_genitalia</li>
<!-- <li>rjw_genes_Pig_genitalia</li> -->
<li>rjw_genes_human_genitalia</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
<li>rjw_genes_zoophile</li>
</value>
</match>

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Rimsenal Xenotype Pack - Askbarn</li>
</mods>
<match Class="PatchOperationSequence">
<operations>
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Askbarn"]/genes</xpath>
<value>
<li>rjw_genes_electric_satisfaction</li>
<li>rjw_genes_pheromone_spit</li>
<li>rjw_genes_loose_anus</li>
<li>rjw_genes_bisexual</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Uredd"]/genes</xpath>
<value>
<li>rjw_genes_electric_satisfaction</li>
<li>rjw_genes_dragon_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_big_breasts</li>
</value>
</li>
</operations>
</match>
</Operation>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Rimsenal Xenotype Pack - Harana</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Harana"]/genes</xpath>
<value>
<li>rjw_genes_small_male_genitalia</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_unbreakable</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -7,10 +7,10 @@
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="RBSF_Faun"]/genes</xpath>
<value>
<li>rjw_genes_equine_genitalia</li>
<li>rjw_genes_zoophile</li>
<li>rjw_genes_mating_call</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_small_male_genitalia</li>
<li>rjw_genes_small_breasts</li>
<li>rjw_genes_tight_anus</li>
</value>
</match>
</Operation>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Roo's Minotaur Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="RBM_Minotaur"]/genes</xpath>
<value>
<li>rjw_genes_equine_genitalia</li>
<li>rjw_genes_much_fluid</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_loose_female_genitalia</li>
<li>rjw_genes_big_breasts</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Roo's Minotaur Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="RBM_Minotaur"]/genes</xpath>
<value>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_cumflation_immunity</li>
<li>rjw_genes_loose_female_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_equine_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -8,7 +8,7 @@
<xpath>Defs/XenotypeDef[defName="RBSF_Satyr"]/genes</xpath>
<value>
<li>rjw_genes_aphrodisiac_pheromones</li>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_much_fluid</li>
</value>
</match>
</Operation>

View file

@ -30,7 +30,6 @@
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Ork"]/genes</xpath>
<value>
<li>rjw_genes_Orc_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_loose_female_genitalia</li>
</value>
@ -51,16 +50,9 @@
<li>rjw_genes_insectincubator</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Faun"]/genes</xpath>
<value>
<li>rjw_genes_Needle_genitalia</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Hydragon"]/genes</xpath>
<value>
<li>rjw_genes_Marine_genitalia</li>
<li>rjw_genes_dragon_genitalia</li>
<li>rjw_genes_basic_rut</li>
</value>

View file

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
public class BoundedExtension : DefModExtension
{
public float minimum = 0.0f;
public float maximum = 1.0f;
}
}

View file

@ -25,14 +25,6 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_crocodilian_genitalia;
public static readonly GeneDef rjw_genes_racoon_genitalia;
public static readonly GeneDef rjw_genes_reptilian_genitalia;
public static readonly GeneDef rjw_genes_Ghost_genitalia;
public static readonly GeneDef rjw_genes_Golem_genitalia;
public static readonly GeneDef rjw_genes_Marine_genitalia;
public static readonly GeneDef rjw_genes_Necro_genitalia;
public static readonly GeneDef rjw_genes_Needle_genitalia;
public static readonly GeneDef rjw_genes_Orc_genitalia;
public static readonly GeneDef rjw_genes_Pig_genitalia;
public static readonly GeneDef rjw_genes_Tentacle_genitalia;
public static readonly GeneDef rjw_genes_human_genitalia;
// Extra Genitalia
@ -77,13 +69,13 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_blocked_masturbation;
public static readonly GeneDef rjw_genes_basic_rut;
// Cum
public static readonly GeneDef rjw_genes_no_cum;
public static readonly GeneDef rjw_genes_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_cumflation_immunity;
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_generous_donor;
// Fluids
public static readonly GeneDef rjw_genes_no_fluid;
public static readonly GeneDef rjw_genes_much_fluid;
public static readonly GeneDef rjw_genes_very_much_fluid;
[MayRequire("vegapnk.cumpilation")] public static readonly GeneDef rjw_genes_un_inflatable;
[MayRequire("vegapnk.cumpilation")] public static readonly GeneDef rjw_genes_inflatable;
public static readonly GeneDef rjw_genes_generous_donor;
[MayRequire("rjw.sexperience")] public static readonly GeneDef rjw_genes_living_cumbucket;
@ -93,7 +85,7 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_homosexual;
public static readonly GeneDef rjw_genes_bisexual;
public static readonly GeneDef rjw_genes_no_sex_need;
public static readonly GeneDef LitteredBirths;
public static readonly GeneDef rjw_genes_littered_births;
// Damage & Side Effects
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_elasticity;
@ -113,6 +105,7 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_pregnancy_overwrite;
public static readonly GeneDef rjw_genes_feminizer;
public static readonly GeneDef rjw_genes_twinkifier;
public static readonly GeneDef rjw_genes_electric_satisfaction;
// Cosmetic
public static readonly GeneDef rjw_genes_succubus_tail;
@ -144,6 +137,7 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_stretcher;
public static readonly GeneDef rjw_genes_infectious_blocked_masturbation;
public static readonly GeneDef rjw_genes_infectious_rut;
public static readonly GeneDef rjw_genes_disease_carrier;
//Other Defs
public static readonly XenotypeDef rjw_genes_succubus;

View file

@ -25,9 +25,7 @@ namespace RJW_Genes
public static readonly HediffDef rjw_genes_genetic_rut;
// Note: Counter does meant it counters it, not it's counting
[MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumstuffed_counter;
[MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumflation_counter;
public static readonly HediffDef rjw_genes_disease_carrier_storage;
public static readonly HediffDef OvaryAgitator;
public static readonly HediffDef Bioscaffold;

View file

@ -27,11 +27,11 @@ namespace RJW_Genes
if (pawn == null) return;
Hediff_PartBaseNatural OvipositorF = (Hediff_PartBaseNatural)pawn.health.hediffSet.GetFirstHediffOfDef(rjw.Genital_Helper.ovipositorF);
Hediff_NaturalSexPart OvipositorF = (Hediff_NaturalSexPart)pawn.health.hediffSet.GetFirstHediffOfDef(rjw.Genital_Helper.ovipositorF);
if (OvipositorF == null) return;
OvipositorF.nextEggTick = Math.Max(OvipositorF.nextEggTick - MULTIPLIER, -1);
OvipositorF.AsHediff.TryGetComp<HediffComp_Ovipositor>().eggInterval.max = 10000 / MULTIPLIER;
// DevNote: I first had a for-loop calling OviPositorF.tick(), but I fear that would be a performance sink.
// Also, it would double other aspects as well, such as bleeding out through your insect-PP or dropping out the eggs.

View file

@ -1,14 +1,11 @@

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HarmonyLib;
using rjw;
using Verse;
namespace RJW_Genes
{
@ -23,42 +20,35 @@ namespace RJW_Genes
public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator il)
{
bool found_call = false;
bool found_skip = false;
bool finished = false;
Label skip_label = il.DefineLabel();
MethodInfo removeHediff = AccessTools.Method(typeof(Pawn_HealthTracker), nameof(Pawn_HealthTracker.RemoveHediff));
MethodInfo ismechbreeder = AccessTools.Method(typeof(GeneUtility), "IsMechbreeder");
foreach (CodeInstruction codeInstruction in instructions)
{
//Check if the first opcode after endfinally ldloc_0 is and in that case add the label to skip the code
if (found_skip && codeInstruction.opcode == OpCodes.Ldloc_0)
{
codeInstruction.labels.Add(skip_label);
}
found_skip = false;
if (codeInstruction.opcode == OpCodes.Endfinally)
{
found_skip = true;
}
yield return codeInstruction;
if (codeInstruction.opcode == OpCodes.Call)
if (finished)
{
if (codeInstruction.operand.ToString() == "Boolean TryMakeFilth(Verse.IntVec3, Verse.Map, Verse.ThingDef, System.String, Int32, RimWorld.FilthSourceFlags)")
{
found_call = true;
continue;
}
}
//Triggers after the pop opcode (after generating filth in c#).
else if (found_call)
if (!found_call && codeInstruction.Calls(removeHediff))
{
//Load pawn, call function to check if a mechbreeder, and skip past the part which does damage
yield return new CodeInstruction(OpCodes.Ldloc_0, null);
yield return new CodeInstruction(OpCodes.Ldloc_0);
yield return new CodeInstruction(OpCodes.Call, ismechbreeder);
yield return new CodeInstruction(OpCodes.Brtrue_S, skip_label);
found_call = false;
yield return new CodeInstruction(OpCodes.Brfalse_S, skip_label);
yield return new CodeInstruction(OpCodes.Ret);
found_call = true;
}
else if (found_call)
{
// next instruction after the insert
codeInstruction.labels.Add(skip_label);
finished = true;
}
}
}
yield break;
}
}
}

View file

@ -1,82 +0,0 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class CumUtility
{
public static void MultiplyFluidAmountBy(Pawn pawn, float multiplier)
{
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
var parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
if (!parts.NullOrEmpty())
{
CompHediffBodyPart CompHediff;
foreach (Hediff part in parts)
{
if (GenitaliaChanger.IsArtificial(part))
continue;
if (rjw.Genital_Helper.is_penis(part))
{
CompHediff = part.TryGetComp<rjw.CompHediffBodyPart>();
if (CompHediff != null)
{
CompHediff.FluidAmmount *= multiplier;
}
}
}
}
}
/// <summary>
/// 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 parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
float total_cum = 0;
if (!parts.NullOrEmpty())
{
CompHediffBodyPart CompHediff;
foreach (Hediff part in parts)
{
if (GenitaliaChanger.IsArtificial(part))
continue;
if (rjw.Genital_Helper.is_penis(part))
{
CompHediff = part.TryGetComp<rjw.CompHediffBodyPart>();
if (CompHediff != null)
{
total_cum += CompHediff.FluidAmmount * CompHediff.FluidModifier * multiplier;
}
}
}
}
return total_cum;
}
}
}

View file

@ -1,38 +0,0 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HarmonyLib;
using rjw;
using RimWorld;
using Verse;
namespace RJW_Genes
{
/// <summary>
/// Changes LicentiaLabs (if Present) to not cumflate pawns that are cumflation immune.
/// This code is exercised / loaded in the HarmonyInit.
/// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs
/// </summary>
///
class Patch_CumflationImmunity
{
// This patch does not need the normal Harmony Targetting,
// as it needs to be added only on demand (See HarmonyInit.cs)
public static bool Prefix(SexProps props)
{
// Harmony Logic skips the original Method after Prefix when "false" is returned
// See https://harmony.pardeike.net/articles/execution.html
// We skip the whole Cumflation Logic when the Partner is Cumflation Immune
if (props != null && props.partner != null && GeneUtility.IsCumflationImmune(props.partner))
{
return false;
}
return true;
}
}
}

View file

@ -1,79 +0,0 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HarmonyLib;
using rjw;
using RimWorld;
using Verse;
namespace RJW_Genes
{
/// <summary>
/// Changes LicentiaLabs (if Present) to add a cumflation-counter hediff, when the pawn is cumflated.
/// The counter hediff takes away the negative stats of the original hediff.
/// This code is exercised / loaded in the HarmonyInit.
/// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs
/// </summary>
///
class Patch_LikesCumflation
{
// This patch does not need the normal Harmony Targetting,
// as it needs to be added only on demand (See HarmonyInit.cs)
public static void PostFix(SexProps props)
{
if (props == null || props.pawn == null || props.partner == null) return;
// Minor Hardening to help with #105
if (!ModsConfig.IsActive("LustLicentia.RJWLabs")) return;
if (props.pawn.genes != null && props.pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_likes_cumflation) )
{
AddOrIncreaseCumflationCounterHediff(props.pawn);
}
if (props.partner.genes != null && props.partner.genes.HasActiveGene(GeneDefOf.rjw_genes_likes_cumflation))
{
AddOrIncreaseCumflationCounterHediff(props.partner);
}
}
public static void AddOrIncreaseCumflationCounterHediff(Pawn inflated)
{
Hediff cumstuffed_hediff = inflated.health.hediffSet.GetFirstHediffOfDef(LicentiaLabs.Licentia.HediffDefs.Cumstuffed);
//Hediff cumstuffed_hediff = LicentiaLabs.CumflationHelper.GetCumflationHediff(inflated, LicentiaLabs.Licentia.HediffDefs.Cumstuffed, "stomach");
if (cumstuffed_hediff != null && cumstuffed_hediff.Severity >= 0.01) {
ModLog.Debug($"{inflated} got cumstuffed and gets the counter-part");
var bodyPartRecord = inflated.RaceProps.body.AllParts.Find(bpr => bpr.def.defName.Contains("stomach") || bpr.def.defName.Contains("stomach".ToLower()));
var counter_hediff = CreateOrGetCumflationCounterHediff(inflated, HediffDefOf.rjw_genes_cumstuffed_counter, bodyPartRecord);
counter_hediff.Severity = cumstuffed_hediff.Severity;
}
Hediff cumflation_hediff = inflated.health.hediffSet.GetFirstHediffOfDef(LicentiaLabs.Licentia.HediffDefs.Cumflation);
if (cumflation_hediff != null && cumflation_hediff.Severity >= 0.01)
{
ModLog.Debug($"{inflated} got cumflated and gets the counter-part");
var bodyPartRecord = Genital_Helper.get_genitalsBPR(inflated);
var counter_hediff = CreateOrGetCumflationCounterHediff(inflated, HediffDefOf.rjw_genes_cumflation_counter, bodyPartRecord);
counter_hediff.Severity = cumflation_hediff.Severity;
}
}
public static Hediff CreateOrGetCumflationCounterHediff(Pawn inflated, HediffDef counterCumflationDef, BodyPartRecord bodyPartRecord)
{
Hediff cumflationHediff = inflated.health.hediffSet.GetFirstHediffOfDef(counterCumflationDef);
if (cumflationHediff == null)
{
cumflationHediff = HediffMaker.MakeHediff(counterCumflationDef, inflated, bodyPartRecord);
cumflationHediff.Severity = 0;
inflated.health.AddHediff(cumflationHediff, bodyPartRecord);
}
return cumflationHediff;
}
}
}

View file

@ -1,44 +0,0 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HarmonyLib;
using rjw;
using RimWorld;
using Verse;
using LicentiaLabs;
namespace RJW_Genes
{
/// <summary>
/// Changes LicentiaLabs (if Present) to alter the TransferNutrition for rjw_genes_generous_donor.
/// This code is exercised / loaded in the HarmonyInit.
/// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs
/// </summary>
///
class Patch_TransferNutrition
{
// This patch does not need the normal Harmony Targetting,
// as it needs to be added only on demand (See HarmonyInit.cs)
public static void Postfix(Pawn giver, Pawn receiver, float cumAmount)
{
// Design decision:
// I could have done some transpiler stuff, but that is scary and might need to be adjusted quite a lot
// Hence, I simply re-book the nutrition back to the giver in the Postfix. That should be robust and easy.
if (GeneUtility.IsGenerousDonor(giver))
{
float donatedNutrition = CumflationHelper.CalculateNutritionAmount(giver, cumAmount);
// TODO: In theory, there could be something weird happening if the donor has food less than X and the "IgnoreThermodynamics" is set on.
// Then it can happen that the donor ends up with more food than he had before cumshot, but I think that is somewhat funny given that you have ignore Thermodynamics on.
Need_Food inflatorFood = giver.needs.TryGetNeed<Need_Food>();
if (inflatorFood != null)
inflatorFood.CurLevel += donatedNutrition;
}
}
}
}

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
public class HediffCompProperties_DiseaseStorage : HediffCompProperties
{
// 300k = 5 days.
public int ticksThatDiseasesAreStored = 300000;
public HediffCompProperties_DiseaseStorage() => this.compClass = typeof(HediffComp_DiseaseStorage);
}
}

View file

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
public class HediffComp_DiseaseStorage : HediffComp
{
public HediffCompProperties_DiseaseStorage Props => (HediffCompProperties_DiseaseStorage)this.props;
List<int> remainingTicks = new List<int>();
List<GeneDef> storedDiseases = new List<GeneDef>();
public void StoreDisease(GeneDef disease)
{
if (storedDiseases.Contains(disease)) {
remainingTicks[storedDiseases.IndexOf(disease)] = Props.ticksThatDiseasesAreStored;
} else
{
storedDiseases.Add(disease);
remainingTicks.Add(Props.ticksThatDiseasesAreStored);
}
}
public List<GeneDef> GetStoredDiseases() { return storedDiseases.ToList(); }
public override void CompExposeData()
{
base.CompExposeData();
Scribe_Collections.Look<int>(ref remainingTicks, "remainingTicks");
Scribe_Collections.Look<GeneDef>(ref storedDiseases, "storedDiseases");
}
}
}

View file

@ -25,10 +25,14 @@ namespace RJW_Genes
// Case 1.B: Dead people can spread, but not receive, diseases.
if (pawn.Dead) return true;
// Case 2: The pawn has general genetic immunity to diseases
// Case 2A: The pawn has general genetic immunity to diseases
if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_genetic_disease_immunity))
return true;
// Case 2B: The pawn has the carrier gene
if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_disease_carrier))
return true;
// Case 3: The pawn already has the genetic disease
if (GeneUtility.HasGeneNullCheck(pawn, disease))
return true;
@ -53,14 +57,16 @@ namespace RJW_Genes
/// <summary>
/// Returns all active Genes with the `GeneticDiseaseExtension`.
/// Update v2.3.0: Returns also possible options if the Pawn is a Genetic Disease Carrier.
/// </summary>
/// <param name="pawn"></param>
/// <returns>List of all active Genes with the `GeneticDiseaseExtension` in pawn</returns>
public static List<GeneDef> GetGeneticDiseaseGenes(Pawn pawn)
{
var diseases = new List<GeneDef>() { };
if (pawn != null && pawn.genes != null)
{
return pawn.genes
diseases = pawn.genes
.GenesListForReading
.ConvertAll(gene => gene.def)
.Where(genedef => pawn.genes.HasActiveGene(genedef))
@ -68,7 +74,20 @@ namespace RJW_Genes
.ToList();
}
return new List<GeneDef>() { };
List<GeneDef> carrierResults = GetGeneticDiseasesGenesFromDiseaseCarrier(pawn);
diseases.AddRange(carrierResults);
return diseases;
}
public static List<GeneDef> GetGeneticDiseasesGenesFromDiseaseCarrier(Pawn pawn) {
if (pawn == null) return new List<GeneDef>() { };
Hediff storage = null;
pawn.health.hediffSet.TryGetHediff(HediffDefOf.rjw_genes_disease_carrier_storage, out storage);
if (storage == null) return new List<GeneDef>() { };
var comp = storage.TryGetComp<HediffComp_DiseaseStorage>();
if (comp == null) return new List<GeneDef>() { };
return comp.GetStoredDiseases();
}
public static List<GeneDef> GetGeneticInfectorGenes(Pawn pawn)
@ -129,6 +148,45 @@ namespace RJW_Genes
return infectorExt != null;
}
/// <summary>
/// Manages storing a genetic disease in a pawn.
/// If the pawn is not a carrier, nothing will happen.
/// </summary>
/// <param name="disease">Disease to store</param>
/// <param name="pawn">Pawn that might be a carrier.</param>
/// <returns>True if all goes well and disease is stored - false on unapplicable and errors.</returns>
public static bool TryStoreGeneticDiseaseInCarrier(GeneDef disease, Pawn pawn)
{
if (disease == null || pawn == null) return false;
if (!GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_disease_carrier))
return false;
var store = GetOrCreateDiseaseStorageHediff(pawn).TryGetComp<HediffComp_DiseaseStorage>();
if (store == null) return false;
store.StoreDisease(disease);
ModLog.Debug($"DiseaseCarrier: Stored {disease} in {pawn}");
return true;
}
/// <summary>
/// Gets (or creates) a Disease Storage Hediff for the `carrier`-pawn,
/// </summary>
/// <param name="inflated"></param>
/// <returns>A Cumflation Hediff of the inflated pawn.</returns>
public static Hediff GetOrCreateDiseaseStorageHediff(Pawn carrier)
{
Hediff diseaseCarrierHediff = carrier.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.rjw_genes_disease_carrier_storage);
if (diseaseCarrierHediff == null)
{
diseaseCarrierHediff = HediffMaker.MakeHediff(HediffDefOf.rjw_genes_disease_carrier_storage, carrier);
carrier.health.AddHediff(diseaseCarrierHediff);
}
diseaseCarrierHediff.Severity = 1;
return diseaseCarrierHediff;
}
public static float LookupDiseaseInfectionChance(GeneDef geneDef)
{
if (IsGeneticDiseaseGene(geneDef))

View file

@ -48,6 +48,7 @@ namespace RJW_Genes
foreach (GeneDef diseaseGeneDef in DiseaseHelper.LookupInfectionGeneDefs(diseaseExt))
{
DiseaseHelper.TryStoreGeneticDiseaseInCarrier(diseaseGeneDef, partner);
if (DiseaseHelper.IsImmuneAgainstGeneticDisease(partner, diseaseGeneDef))
continue;

View file

@ -41,10 +41,10 @@ namespace RJW_Genes
private static void TryTransferGeneticDiseases(Pawn infector, Pawn infected, SexProps props)
{
foreach (GeneDef disease in DiseaseHelper.GetGeneticDiseaseGenes(infector)) {
ModLog.Debug($"Found genetic disease {disease} in {infector}, trying to infect {infected}");
DiseaseHelper.TryStoreGeneticDiseaseInCarrier(disease, infected);
if (DiseaseHelper.IsImmuneAgainstGeneticDisease(infected,disease))
continue;
@ -56,5 +56,6 @@ namespace RJW_Genes
}
}
}
}

View file

@ -58,11 +58,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_anusBPR(pawn);
additional_anus = HediffMaker.MakeHediff(anusDef, pawn);
var CompHediff = additional_anus.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_anus.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_anus, partBPR);

View file

@ -60,11 +60,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_breastsBPR(pawn);
additional_breasts = HediffMaker.MakeHediff(breastDef, pawn);
var CompHediff = additional_breasts.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_breasts.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_breasts, partBPR);

View file

@ -60,11 +60,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_penis = HediffMaker.MakeHediff(penisDef, pawn);
var CompHediff = additional_penis.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_penis.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_penis, partBPR);

View file

@ -65,11 +65,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_vagina = HediffMaker.MakeHediff(vaginaDef, pawn);
var CompHediff = additional_vagina.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_vagina.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_vagina, partBPR);

View file

@ -48,11 +48,11 @@ namespace RJW_Genes
HediffDef penisForGene = GenitaliaUtility.GetPenisForGene(GenitaliaUtility.GetGenitaliaTypeGeneForPawn(this.pawn));
BodyPartRecord part = Genital_Helper.get_genitalsBPR(this.pawn);
this.additional_genital = HediffMaker.MakeHediff(penisForGene, this.pawn, null);
CompHediffBodyPart compHediffBodyPart = this.additional_genital.TryGetComp<CompHediffBodyPart>();
if (compHediffBodyPart != null)
HediffComp_SexPart hediffCompSexPart = this.additional_genital.TryGetComp<HediffComp_SexPart>();
if (hediffCompSexPart != null)
{
compHediffBodyPart.initComp(this.pawn, false);
compHediffBodyPart.updatesize(0f);
hediffCompSexPart.Init(this.pawn, false);
hediffCompSexPart.UpdateSeverity(0f);
}
this.pawn.health.AddHediff(this.additional_genital, part, null, null);
foreach (Gene g in pawn.genes.GenesListForReading)

View file

@ -64,11 +64,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_genital = HediffMaker.MakeHediff(penisDef, pawn);
var CompHediff = additional_genital.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_genital.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_genital, partBPR);
@ -81,11 +81,11 @@ namespace RJW_Genes
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
additional_genital = HediffMaker.MakeHediff(vaginaDef, pawn);
var CompHediff = additional_genital.TryGetComp<rjw.CompHediffBodyPart>();
var CompHediff = additional_genital.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
pawn.health.AddHediff(additional_genital, partBPR);

View file

@ -8,7 +8,6 @@ namespace RJW_Genes
{
internal Hediff removed_anus;
internal Hediff missing_bodypart_hediff;
public override void PostMake()
{
@ -33,13 +32,8 @@ namespace RJW_Genes
public override void PostRemove()
{
base.PostRemove();
if (missing_bodypart_hediff != null)
pawn.health.RemoveHediff(missing_bodypart_hediff);
if(removed_anus != null)
pawn.health.AddHediff(removed_anus);
}
internal void RemoveButStoreAnus()
@ -51,9 +45,6 @@ namespace RJW_Genes
{
removed_anus = anusToRemove;
pawn.health.RemoveHediff(anusToRemove);
if (missing_bodypart_hediff == null)
missing_bodypart_hediff = pawn.health.AddHediff(RimWorld.HediffDefOf.MissingBodyPart, partBPR);
}
}

View file

@ -34,7 +34,7 @@ namespace RJW_Genes
public override void PostRemove()
{
base.PostRemove();
// Re-Scale the old breasts
// Re-Add the old breasts
if (oldSize != null)
breastsToShrink.Severity = oldSize;
}
@ -47,6 +47,7 @@ namespace RJW_Genes
if(breastsToShrink != null)
{
oldSize = breastsToShrink.Severity;
//pawn.health.RemoveHediff(breastsToRemove);
breastsToShrink.Severity = 0f;
}
}

View file

@ -8,7 +8,6 @@ namespace RJW_Genes
{
internal Hediff removed_penis;
internal Hediff missing_bodypart_hediff;
public override void PostMake()
{
@ -35,10 +34,6 @@ namespace RJW_Genes
public override void PostRemove()
{
base.PostRemove();
if (missing_bodypart_hediff != null)
pawn.health.RemoveHediff(missing_bodypart_hediff);
if(removed_penis != null)
pawn.health.AddHediff(removed_penis);
}
@ -52,9 +47,6 @@ namespace RJW_Genes
{
removed_penis = penisToRemove;
pawn.health.RemoveHediff(penisToRemove);
if (missing_bodypart_hediff == null)
missing_bodypart_hediff = pawn.health.AddHediff(RimWorld.HediffDefOf.MissingBodyPart, partBPR);
}
}

View file

@ -8,7 +8,6 @@ namespace RJW_Genes
{
internal Hediff removed_vagina;
internal Hediff missing_bodypart_hediff;
public override void PostMake()
{
@ -35,13 +34,8 @@ namespace RJW_Genes
public override void PostRemove()
{
base.PostRemove();
if (missing_bodypart_hediff != null)
pawn.health.RemoveHediff(missing_bodypart_hediff);
if(removed_vagina != null)
pawn.health.AddHediff(removed_vagina);
}
internal void RemoveButStoreVagina()
@ -53,9 +47,6 @@ namespace RJW_Genes
{
removed_vagina = vaginaToRemove;
pawn.health.RemoveHediff(vaginaToRemove);
if (missing_bodypart_hediff == null)
missing_bodypart_hediff = pawn.health.AddHediff(RimWorld.HediffDefOf.MissingBodyPart, partBPR);
}
}

View file

@ -42,14 +42,14 @@ namespace RJW_Genes
internal void AddUdders()
{
CompHediffBodyPart CompHediff = null;
BodyPartRecord bpr = Genital_Helper.get_uddersBPR(pawn);
HediffComp_SexPart CompHediff = null;
BodyPartRecord bpr = Genital_Helper.get_breastsBPR(pawn);
added_udders = pawn.health.AddHediff(Genital_Helper.udder_breasts, bpr);
added_udders.TryGetComp<rjw.CompHediffBodyPart>();
added_udders.TryGetComp<rjw.HediffComp_SexPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
CompHediff.Init(pawn);
CompHediff.UpdateSeverity();
}
}

View file

@ -0,0 +1,19 @@
using rjw;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
public class GenitaliaFluidChangeExtension : DefModExtension
{
public SexFluidDef penisFluidReplacement; // Everything for which "isPenis" is true
public SexFluidDef vaginaFluidReplacement; // Everything for which "isVagina" is true
public SexFluidDef breastFluidReplacement; // Everything for which "isBreasts" is true
public SexFluidDef otherFluidReplacement; // Everything not the above.
}
}

View file

@ -0,0 +1,81 @@
using Verse;
using rjw;
using RimWorld;
namespace RJW_Genes
{
public class FluidUtility
{
public static void MultiplyFluidAmountBy(Pawn pawn, float multiplier)
{
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
var parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
foreach (Hediff part in parts)
{
// Right now: Ignore Breasts, only do
if (part is ISexPartHediff sexPart && (Genital_Helper.is_penis(part) || Genital_Helper.is_vagina(part)))
sexPart.GetPartComp().partFluidMultiplier *= multiplier;
}
}
/// <summary>
/// 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 LookupFluidMultiplier(Gene gene, float FALLBACK = 3.0f) => LookupFluidMultiplier(gene.def, FALLBACK);
public static float LookupFluidMultiplier(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 parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
float total_fluid = 0;
if (!parts.NullOrEmpty())
{
foreach (Hediff part in parts)
{
if (GenitaliaChanger.IsArtificial(part))
continue;
if (part is ISexPartHediff sexPart)
{
total_fluid += sexPart.GetPartComp().FluidAmount;
}
}
}
return total_fluid;
}
public static void ChangeFluids(Pawn pawn, SexFluidDef penisFluidDefs = null, SexFluidDef vaginaFluidDefs = null, SexFluidDef breastFluidDefs = null, SexFluidDef otherFluidDefs = null)
{
if (pawn == null) return;
var parts = Genital_Helper.get_AllPartsHediffList(pawn);
foreach (Hediff part in parts)
{
if (part is ISexPartHediff sexPart)
{
var comp = sexPart.GetPartComp();
if (penisFluidDefs != null && Genital_Helper.is_penis(part))
comp.Fluid = penisFluidDefs;
else if (vaginaFluidDefs != null && Genital_Helper.is_vagina(part))
comp.Fluid = vaginaFluidDefs;
else if (breastFluidDefs != null && GenitaliaUtility.IsBreasts(part))
comp.Fluid = breastFluidDefs;
else
comp.Fluid = otherFluidDefs;
}
}
}
}
}

View file

@ -1,6 +1,6 @@
namespace RJW_Genes
{
public class Gene_ChangeCumAmount : RJW_Gene
public class Gene_ChangeFluidAmount : RJW_Gene
{
bool has_been_fired = false;
@ -9,8 +9,8 @@
{
base.PostMake();
float multipier = CumUtility.LookupCumMultiplier(this);
CumUtility.MultiplyFluidAmountBy(pawn, multipier);
float multipier = FluidUtility.LookupFluidMultiplier(this);
FluidUtility.MultiplyFluidAmountBy(pawn, multipier);
has_been_fired = true;
}
@ -19,8 +19,8 @@
base.PostAdd();
if (!has_been_fired)
{
float multipier = CumUtility.LookupCumMultiplier(this);
CumUtility.MultiplyFluidAmountBy(pawn, multipier);
float multipier = FluidUtility.LookupFluidMultiplier(this);
FluidUtility.MultiplyFluidAmountBy(pawn, multipier);
has_been_fired = true;
}
}
@ -31,8 +31,8 @@
if (has_been_fired)
{
float multipier = CumUtility.LookupCumMultiplier(this);
CumUtility.MultiplyFluidAmountBy(pawn, 1/ multipier);
float multipier = FluidUtility.LookupFluidMultiplier(this);
FluidUtility.MultiplyFluidAmountBy(pawn, 1/ multipier);
has_been_fired = false;
}
}

View file

@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RJW_Genes
{
public class Gene_ChangeFluidType : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
}
public override void PostAdd()
{
base.PostAdd();
Apply();
}
public virtual void Apply()
{
if (this.Active)
{
GenitaliaFluidChangeExtension fluidReplacements = def.GetModExtension<GenitaliaFluidChangeExtension>();
if (fluidReplacements == null && RJW_Genes_Settings.rjw_genes_detailed_debug)
{
ModLog.Error($"Gene {def} failed to change genitals - Need a modExtension with Class=\"{typeof(GenitaliaFluidChangeExtension).FullName}\".");
return;
}
FluidUtility.ChangeFluids(pawn, fluidReplacements.penisFluidReplacement, fluidReplacements.vaginaFluidReplacement, fluidReplacements.breastFluidReplacement, fluidReplacements.otherFluidReplacement);
}
}
}
}

View file

@ -0,0 +1,17 @@
using Cumpilation.Oscillation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
public class HediffCompProperties_MatchSeverityOfHediff : HediffCompProperties
{
public HediffDef hediffToMatch;
public HediffCompProperties_MatchSeverityOfHediff() => this.compClass = typeof(HediffComp_MatchSeverityOfHediff);
}
}

View file

@ -0,0 +1,26 @@
using Verse;
namespace RJW_Genes
{
public class HediffComp_MatchSeverityOfHediff : HediffComp
{
public HediffCompProperties_MatchSeverityOfHediff Props => (HediffCompProperties_MatchSeverityOfHediff)this.props;
public override void CompPostTick(ref float severityAdjustment)
{
base.CompPostTick(ref severityAdjustment);
bool hasMatchingHediff = parent.pawn.health.hediffSet.HasHediff(Props.hediffToMatch);
if (!hasMatchingHediff) {
parent.Severity = 0.0f;
}
else
{
Hediff match = parent.pawn.health.hediffSet.GetFirstHediffOfDef(Props.hediffToMatch);
if (match == null) parent.Severity = 0.0f;
parent.Severity = match.Severity;
}
}
}
}

View file

@ -21,7 +21,7 @@ namespace RJW_Genes
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);
this.Pawn.jobs.StartJob(JobMaker.MakeJob(DefDatabase<JobDef>.GetNamed("RJW_Genes_ProcessCumbucket")), lastJobEndCondition: Verse.AI.JobCondition.InterruptForced, resumeCurJobAfterwards: true);
}
}
}

View file

@ -1,5 +1,4 @@
using LicentiaLabs;
using System.Collections.Generic;
using System.Collections.Generic;
using Verse;
using Verse.AI;
using UnityEngine;
@ -23,7 +22,7 @@ namespace RJW_Genes
protected override IEnumerable<Toil> MakeNewToils()
{
// DevNote: Right now, this needs RJW.sexperience to produce the Cum-Item.
if (!ModsConfig.IsActive("rjw.sexperience"))
if (!ModsConfig.IsActive("vegapnk.cumpilation"))
yield break;
Toil toil = new Toil();
@ -76,10 +75,6 @@ namespace RJW_Genes
if (this.ticksLeft <= 0)
{
base.ReadyForNextToil();
TaleRecorder.RecordTale(Licentia.TaleDefs.VomitedCum, new object[]
{
this.pawn
});
}
};
toil.defaultCompleteMode = ToilCompleteMode.Never;
@ -91,8 +86,6 @@ namespace RJW_Genes
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)
{
@ -100,6 +93,12 @@ namespace RJW_Genes
return;
}
var storage = hediff.TryGetComp<Cumpilation.Cumflation.HediffComp_SourceStorage>();
var random_entry = storage.sources.RandomElementByWeight(p => p.amount);
ThingDef ToSpawn = random_entry.fluid.consumable == null ? Cumpilation.DefOfs.Cumpilation_Cum : random_entry.fluid.consumable;
ThingDef cumDef = Cumpilation.DefOfs.Cumpilation_Cum;
// Case 1: "Normal Severity", just puke out a bit of cum here and there.
if (hediff.Severity <= 10)
{

View file

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
public class Patch_Cumpilation_BlockCumflation
{
public static bool Prepare() => ModsConfig.IsActive("vegapnk.cumpilation");
public static void PostFix(Pawn pawn,ref bool __result) {
if (pawn != null && pawn.genes != null && pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_un_inflatable))
__result = false;
}
}
}

Some files were not shown because too many files have changed in this diff Show more