Compare commits

...

116 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
Vegapnk
2e7c53466b Named support for 1.4 in AboutXML 2024-08-23 10:35:53 +02:00
Vegapnk
9e55e8b976 Salvaged a 1.4 version from RJW-1.3.3 2024-08-23 10:27:51 +02:00
966 changed files with 36594 additions and 832 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

2
1.4/Assemblies/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
*dll
!RJW-Genes.dll

Binary file not shown.

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef ParentName="AbilityTouchBase">
<defName>rjw_genes_ability_cockeater</defName>
<label>Eat Cock</label>
<description>Eat the cock of another pawn, restoring fertilin based on the size of the cock.</description>
<iconPath>Genes/Icons/cockeater</iconPath>
<stunTargetWhileCasting>true</stunTargetWhileCasting>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<warmupMote>Mote_CoagulateStencil</warmupMote>
<warmupEffecter>Coagulate</warmupEffecter>
<warmupStartSound>Coagulate_Cast</warmupStartSound>
<jobDef>CastAbilityOnThingMelee</jobDef>
<displayOrder>402</displayOrder>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<drawAimPie>false</drawAimPie>
<range>-1</range>
<warmupTime>10</warmupTime>
<targetParams>
<canTargetAnimals>true</canTargetAnimals>
<canTargetSelf>false</canTargetSelf>
<canTargetBuildings>false</canTargetBuildings>
<canTargetMechs>false</canTargetMechs>
<canTargetBloodfeeders>true</canTargetBloodfeeders>
</targetParams>
</verbProperties>
<comps>
<li Class="RJW_Genes.CompProperties_AbilityCockEater"/> <!-- namespace needs to be changed when copied to another mod-->
</comps>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef ParentName="AbilityTouchBase">
<defName>rjw_genes_ability_cocoonweaver</defName>
<label>Cocoon</label>
<description>Weaves the victim into a (self-sustaining) cocoon. The victim cannot move, but can be bred.</description>
<iconPath>Genes/Icons/Cocoon</iconPath>
<stunTargetWhileCasting>true</stunTargetWhileCasting>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<warmupMote>Mote_CocoonStencil</warmupMote>
<warmupEffecter>CocoonWeave</warmupEffecter>
<jobDef>CastAbilityOnThingMelee</jobDef>
<displayOrder>404</displayOrder>
<!-- 30k Ticks = 12h -->
<cooldownTicksRange>30000</cooldownTicksRange>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<drawAimPie>false</drawAimPie>
<range>-1</range>
<warmupTime>15</warmupTime>
<targetParams>
<canTargetAnimals>true</canTargetAnimals>
<canTargetSelf>false</canTargetSelf>
<canTargetBuildings>false</canTargetBuildings>
<canTargetMechs>false</canTargetMechs>
<canTargetBloodfeeders>true</canTargetBloodfeeders>
</targetParams>
</verbProperties>
<comps>
<li Class="RJW_Genes.CompProperties_AbilityCocoonWeaver"/>
</comps>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef>
<defName>rjw_genes_ability_flight</defName>
<label>fly</label>
<description>Fly to a short location using your wings.</description>
<iconPath>Genes/Icons/Succubus_Wings</iconPath>
<cooldownTicksRange>1250</cooldownTicksRange>
<hostile>false</hostile>
<verbProperties>
<verbClass>Verb_CastAbilityJump</verbClass>
<label>fly</label>
<violent>false</violent>
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
<warmupTime>0.5</warmupTime>
<range>19.9</range>
<requireLineOfSight>true</requireLineOfSight>
<soundCast>Longjump_Jump</soundCast>
<soundLanding>Longjump_Land</soundLanding>
<targetParams>
<canTargetLocations>true</canTargetLocations>
<canTargetPawns>false</canTargetPawns>
<canTargetBuildings>false</canTargetBuildings>
</targetParams>
</verbProperties>
<jobDef>CastJump</jobDef>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef>
<defName>rjw_genes_ability_naked_prowess</defName>
<label>naked prowess</label>
<description>Enhance the strength and resilience of your naked body with fertilin.</description>
<iconPath>Genes/Icons/rjw_naked_prowess</iconPath>
<warmupMoteSocialSymbol>Things/Mote/Heart</warmupMoteSocialSymbol>
<jobDef>CastAbilityOnThing</jobDef>
<targetRequired>False</targetRequired>
<canUseAoeToGetTargets>False</canUseAoeToGetTargets>
<stunTargetWhileCasting>True</stunTargetWhileCasting>
<statBases>
<Ability_Duration>126</Ability_Duration>
<Ability_EffectRadius>0</Ability_EffectRadius>
</statBases>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>2</warmupTime>
<range>0</range>
<drawAimPie>False</drawAimPie>
<requireLineOfSight>False</requireLineOfSight>
<targetParams>
<canTargetSelf>true</canTargetSelf>
<canTargetPawns>false</canTargetPawns>
<canTargetBuildings>false</canTargetBuildings>
<canTargetAnimals>false</canTargetAnimals>
<canTargetHumans>false</canTargetHumans>
<canTargetMechs>false</canTargetMechs>
</targetParams>
</verbProperties>
<comps>
<li Class="CompProperties_AbilityGiveHediff">
<compClass>CompAbilityEffect_GiveHediff</compClass>
<hediffDef>rjw_genes_naked_prowess</hediffDef>
<onlyApplyToSelf>True</onlyApplyToSelf>
<replaceExisting>true</replaceExisting>
</li>
<li Class="RJW_Genes.CompProperties_CasterIsNaked"/>
<li Class="RJW_Genes.CompProperties_AbilityLifeForceCost">
<fertilinCost>0.15</fertilinCost>
</li>
</comps>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef ParentName="AbilityTouchBase">
<defName>rjw_genes_ability_paralysingkiss</defName>
<label>paralysing kiss</label>
<description>Paralyse someone briefly with a kiss.</description>
<iconPath>Genes/Icons/rjw_genes_lips</iconPath>
<stunTargetWhileCasting>true</stunTargetWhileCasting>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<statBases>
<Ability_Duration>5</Ability_Duration>
</statBases>
<warmupMote>Mote_CoagulateStencil</warmupMote>
<warmupEffecter>Coagulate</warmupEffecter>
<warmupStartSound>Coagulate_Cast</warmupStartSound>
<displayOrder>402</displayOrder>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<drawAimPie>false</drawAimPie>
<range>-1</range>
<warmupTime>1</warmupTime>
<targetParams>
<canTargetAnimals>true</canTargetAnimals>
<canTargetSelf>false</canTargetSelf>
<canTargetBuildings>false</canTargetBuildings>
<canTargetMechs>false</canTargetMechs>
<canTargetBloodfeeders>true</canTargetBloodfeeders>
</targetParams>
</verbProperties>
<comps>
<li Class = "CompProperties_AbilityEffectWithDuration">
<compClass>CompAbilityEffect_Stun</compClass>
<goodwillImpact>-15</goodwillImpact>
</li>
<li Class="CompProperties_AbilityFleckOnTarget">
<fleckDef>rjw_genes_lips</fleckDef> <!--Will change to kiss when I have a good icon/fleck for it-->
</li>
<li Class="RJW_Genes.CompProperties_AbilityLifeForceCost">
<fertilinCost>0.1</fertilinCost>
</li>
</comps>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef ParentName="AbilityTouchBase">
<defName>rjw_genes_ability_pussyheal</defName>
<label>SexHeal</label>
<description>Rape another pawn, so you can heal them with your vagina's special healing power.</description>
<iconPath>Things/Mote/Heart</iconPath>
<stunTargetWhileCasting>false</stunTargetWhileCasting>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<warmupMote>Mote_CoagulateStencil</warmupMote>
<warmupEffecter>Coagulate</warmupEffecter>
<warmupStartSound>Coagulate_Cast</warmupStartSound>
<jobDef>rjw_genes_lifeforce_healpussy</jobDef>
<displayOrder>401</displayOrder>
<verbProperties>
<verbClass>Verb_CastAbilityTouch</verbClass>
<drawAimPie>false</drawAimPie>
<range>-1</range>
<warmupTime>0</warmupTime>
<targetParams>
<canTargetAnimals>true</canTargetAnimals>
<canTargetSelf>false</canTargetSelf>
<canTargetBuildings>false</canTargetBuildings>
<canTargetMechs>false</canTargetMechs>
<canTargetBloodfeeders>true</canTargetBloodfeeders>
</targetParams>
</verbProperties>
<comps>
<li Class="RJW_Genes.CompProperties_AbilityLifeForceCost">
<fertilinCost>0.3</fertilinCost>
</li>
<li Class="RJW_Genes.CompProperties_AbilityPussyHeal">
<tendQualityRange>0.4~0.8</tendQualityRange>
</li>
<li Class="RJW_Genes.CompProperties_SexInteractionRequirements">
<tags>
<!-- <li>Consensual</li> -->
<li>Rape</li>
</tags>
<dominantRequirement>
<families>
<li>Vagina</li>
</families>
</dominantRequirement>
</li>
</comps>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef>
<defName>rjw_genes_ability_seduce</defName>
<label>seduce</label>
<description>Seduce the target to approach the caster.</description>
<iconPath>Genes/Icons/seduce</iconPath>
<writeCombatLog>True</writeCombatLog>
<stunTargetWhileCasting>true</stunTargetWhileCasting>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<statBases>
<Ability_Duration>10</Ability_Duration>
</statBases>
<warmupMote>Mote_CoagulateStencil</warmupMote>
<warmupEffecter>Coagulate</warmupEffecter>
<warmupStartSound>Coagulate_Cast</warmupStartSound>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<range>10</range>
<warmupTime>1</warmupTime>
<targetParams>
<canTargetAnimals>false</canTargetAnimals>
<canTargetSelf>false</canTargetSelf>
<canTargetBuildings>false</canTargetBuildings>
<canTargetMechs>false</canTargetMechs>
<canTargetBloodfeeders>true</canTargetBloodfeeders>
</targetParams>
</verbProperties>
<comps>
<li Class = "RJW_Genes.CompProperties_Seduce">
<compClass>RJW_Genes.CompAbilityEffect_Seduce</compClass>
<destination>Caster</destination>
</li>
<li Class="CompProperties_AbilityFleckOnTarget">
<fleckDef>Heart</fleckDef>
</li>
<li Class="RJW_Genes.CompProperties_AbilityLifeForceCost">
<fertilinCost>0.20</fertilinCost>
</li>
</comps>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<AbilityDef>
<defName>rjw_genes_ability_spawn_spelopede</defName>
<label>Insect Ally</label>
<description>Generates a tame spelopede, ready to serve their master.</description>
<iconPath>Genes/Icons/Spelopede_Dispenser</iconPath>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>3</warmupTime>
<drawAimPie>False</drawAimPie>
<requireLineOfSight>False</requireLineOfSight>
<range>2</range>
<targetParams>
<canTargetPawns>False</canTargetPawns>
<canTargetLocations>True</canTargetLocations>
</targetParams>
</verbProperties>
<canUseAoeToGetTargets>False</canUseAoeToGetTargets>
<cooldownTicksRange>1800000</cooldownTicksRange>
<comps>
<li Class = "RJW_Genes.CompProperties_AbilitySpawnSpelopede">
<compClass>RJW_Genes.CompAbilityEffect_SpawnSpelopede</compClass>
<pawnKindDef>Spelopede</pawnKindDef>
<tamed>true</tamed>
<sensitivityMultiplier>1.00</sensitivityMultiplier>
</li>
</comps>
</AbilityDef>
</Defs>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<DutyDef>
<defName>rjw_genes_flirt</defName>
<thinkNode Class="ThinkNode_Priority">
<subNodes>
<!-- first fulfill needs -->
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
<li Class="ThinkNode_PrioritySorter">
<subNodes>
<li Class="JobGiver_GetFood"/>
<li Class="JobGiver_GetRest"/>
<li Class="JobGiver_SatisfyChemicalNeed"/>
<li Class="JobGiver_SatifyChemicalDependency" MayRequire="Ludeon.RimWorld.Biotech" />
</subNodes>
</li>
</subNodes>
</li>
<!-- switch target randomly or when target is unreachable/sleeping (similar to insults) -->
<li Class="RJW_Genes.ThinkNode_ConditionalCannotInteract">
<subNodes>
<li Class="RJW_Genes.ThinkNode_NewFlirtTarget" />
</subNodes>
</li>
<li Class="ThinkNode_ConditionalRandom">
<chance>0.05</chance>
<subNodes>
<li Class="RJW_Genes.ThinkNode_NewFlirtTarget" />
</subNodes>
</li>
<!--Go to target pawn-->
<li Class="JobGiver_AIFollowEscortee" />
<li Class="rjw.ThinkNode_ConditionalSexChecks">
<subNodes>
<!--If sexneed is low do rape or masturbate (like a nymph)-->
<li Class="rjw.ThinkNode_ConditionalFrustrated">
<subNodes>
<li Class="rjw.JobGiver_RandomRape" />
<li Class="rjw.JobGiver_Masturbate"/> <!--Won't work if fap everywhere is disabled-->
</subNodes>
</li>
<!--Will sometimes try and hookup with target pawn-->
<li Class="ThinkNode_ConditionalRandom">
<chance>0.1</chance>
<subNodes>
<li Class="RJW_Genes.JobGiver_TryQuickieWith" />
</subNodes>
</li>
</subNodes>
</li>
<!--Flirt with target pawn, decreasing their sexneed. Flirt has no custom text yet-->
<li Class="RJW_Genes.JobGiver_Flirt" />
<!--Just wander around if you can't flirt with anyone-->
<li Class="JobGiver_WanderAnywhere"/>
</subNodes>
</thinkNode>
</DutyDef>
</Defs>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FleckDef ParentName="FleckBase_Thrown">
<defName>rjw_genes_lips</defName>
<graphicData>
<texPath>Genes/Icons/rjw_genes_lips</texPath>
</graphicData>
<altitudeLayer>MetaOverlays</altitudeLayer>
<fadeInTime>0.08</fadeInTime>
<solidTime>1.4</solidTime>
<fadeOutTime>1.5</fadeOutTime>
</FleckDef>
</Defs>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<EffecterDef>
<defName>CocoonWeave</defName>
<children>
<li>
<subEffecterClass>SubEffecter_SprayerChance</subEffecterClass>
<fleckDef>BloodSplash</fleckDef>
<chancePerTick>0.15</chancePerTick>
<burstCount>2~3</burstCount>
<scale>0.75~1.5</scale>
<color>(244, 244, 244)</color>
<spawnLocType>RandomDrawPosOnTarget</spawnLocType>
<attachToSpawnThing>true</attachToSpawnThing>
</li>
</children>
</EffecterDef>
<ThingDef ParentName="MoteBase">
<defName>Mote_CocoonStencil</defName>
<thingClass>MoteAttached</thingClass>
<altitudeLayer>Terrain</altitudeLayer>
<mote>
<fadeInTime>0.1</fadeInTime>
<fadeOutTime>0.4</fadeOutTime>
<solidTime>999999</solidTime>
<needsMaintenance>True</needsMaintenance>
</mote>
<graphicData>
<graphicClass>Graphic_PawnBodySilhouette</graphicClass>
<shaderType>PawnSilhouetteStencil</shaderType>
<texPath>Things/Mote/Transparent</texPath>
</graphicData>
</ThingDef>
</Defs>

View file

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- Note: It is very important that rjw_genes_gender has a higher priority than the other genes
That way they run in the correct order.
If the Gender Change happens after e.g. genitalia change, it will produce errors.
General Order:
1. Gender
2. Genitalia Types
3. Extra Genitalia
4. Genitalia Sizes
5. Others
-->
<GeneCategoryDef>
<defName>rjw_genes_gender</defName>
<label>Gender</label>
<displayPriorityInXenotype>21</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_genitalia_type</defName>
<label>Genitalia Types</label>
<displayPriorityInXenotype>19</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_genitalia_extras</defName>
<label>Genitalia Amounts</label>
<displayPriorityInXenotype>17</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_genitalia_size</defName>
<label>Genitalia Size / Attributes</label>
<displayPriorityInXenotype>15</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_fertilin</defName>
<label>Fertilin</label>
<displayPriorityInXenotype>14</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_breeding</defName>
<label>Breeding</label>
<displayPriorityInXenotype>13</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_cum</defName>
<label>Cum</label>
<displayPriorityInXenotype>12</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_damage</defName>
<label>Genital Related Damage</label>
<displayPriorityInXenotype>11</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_special</defName>
<label>Genital Based Special Abilities</label>
<displayPriorityInXenotype>8</displayPriorityInXenotype>
</GeneCategoryDef>
<GeneCategoryDef>
<defName>rjw_genes_hive</defName>
<label>Hive</label>
<displayPriorityInXenotype>7</displayPriorityInXenotype>
</GeneCategoryDef>
</Defs>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- rjw_genes_mechbreeder,rjw_genes_insectincubator and rjw_genes_insectbreeder were kindly supplied by `Shabalox` https://github.com/Shabalox/RJW_Genes_Addons/ -->
<GeneDef>
<defName>rjw_genes_mechbreeder</defName>
<label>Mechbreeder</label>
<description>Pawns with this gene are able to birth mechanoids unharmed.</description>
<iconPath>World/WorldObjects/Expanding/Mechanoids</iconPath>
<displayOrderInCategory>51</displayOrderInCategory>
<displayCategory>rjw_genes_breeding</displayCategory>
<biostatCpx>1</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>
<GeneDef>
<defName>rjw_genes_zoophile</defName>
<label>Zoophile</label>
<displayCategory>rjw_genes_breeding</displayCategory>
<description>Xenotypes with this Gene are Zoophile.</description>
<iconPath>Genes/Icons/Zoophile</iconPath>
<displayOrderInCategory>54</displayOrderInCategory>
<forcedTraits>
<li>
<def>Zoophile</def>
</li>
</forcedTraits>
<modExtensions>
<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core" Class="VanillaGenesExpanded.GeneExtension">
<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
</li>
</modExtensions>
</GeneDef>
</Defs>

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="rjw_genes_wings" Abstract="True">
<displayCategory>Miscellaneous</displayCategory>
<randomChosen>true</randomChosen>
<exclusionTags>
<li>Wing</li>
</exclusionTags>
<graphicData>
<drawLoc>Tailbone</drawLoc>
</graphicData>
</GeneDef>
<GeneDef ParentName="rjw_genes_wings">
<defName>rjw_genes_succubus_wings</defName>
<label>succubus wings</label>
<description>Carriers of this gene grow succubus wings.</description>
<iconPath>Genes/Icons/Succubus_Wings</iconPath>
<iconColor>(0.75, 0.75, 0.75)</iconColor>
<displayOrderInCategory>1000</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_flight</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_flight</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<graphicData>
<graphicPath>Things/Pawn/Humanlike/BodyAttachments/RJW_Genes_Succubus_Wings/RJW_Genes_Succubus_Wings</graphicPath>
<colorType>Skin</colorType>
<drawScale>2</drawScale>
<drawOffsetNorth>(0.0, 0.01, -0.1)</drawOffsetNorth>
<drawOffsetSouth>(0.0, 0.0, -0.1)</drawOffsetSouth>
<drawOffsetEast>(0.1, 0.0, 0.0)</drawOffsetEast>
</graphicData>
<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="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>
<iconPath>Genes/Icons/Succubus_Tail</iconPath>
<iconColor>(1, 0, 0)</iconColor>
<displayOrderInCategory>1000</displayOrderInCategory>
<capMods>
<li>
<capacity>Manipulation</capacity>
<offset>0.05</offset>
</li>
</capMods>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<graphicData>
<graphicPath>Things/Pawn/Humanlike/BodyAttachments/RJW_Genes_Succubus_Tail/RJW_Genes_Succubus_Tail</graphicPath>
<colorType>Skin</colorType>
<drawScale>2</drawScale>
<drawOffsetNorth>(0, 0.2, -0.1)</drawOffsetNorth>
<drawOffsetSouth>(0, -0.1, 0.1)</drawOffsetSouth>
<drawOffsetEast>(0.2, 0.2, 0.1)</drawOffsetEast>
</graphicData>
<randomChosen>true</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>
</Defs>

View file

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="GeneCumAmount" Abstract="True">
<displayCategory>rjw_genes_cum</displayCategory>
<exclusionTags>
<li>CumAmount</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>
<!-- 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_NoCum</geneClass>
<displayOrderInCategory>533</displayOrderInCategory>
<biostatCpx>0</biostatCpx>
<biostatMet>1</biostatMet>
</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_MuchCum</geneClass>
<displayOrderInCategory>534</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</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_VeryMuchCum</geneClass>
<displayOrderInCategory>535</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-2</biostatMet>
</GeneDef>
<GeneDef MayRequire="LustLicentia.RJWLabs">
<defName>rjw_genes_likes_cumflation</defName>
<label>Likes Cumflation</label>
<displayCategory>rjw_genes_cum</displayCategory>
<description>This Xenotype loves being cumflated.</description>
<iconPath>Genes/Icons/Cumflation</iconPath>
<displayOrderInCategory>536</displayOrderInCategory>
<forcedTraits>
<li>
<def>LikesCumflation</def>
</li>
</forcedTraits>
<exclusionTags>
<li>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 MayRequire="LustLicentia.RJWLabs">
<defName>rjw_genes_cumflation_immunity</defName>
<label>Cumflation Immunity</label>
<displayCategory>rjw_genes_cum</displayCategory>
<description>This Xenotype cannot get cumflated.</description>
<iconPath>Genes/Icons/Cumflation_Immunity</iconPath>
<displayOrderInCategory>537</displayOrderInCategory>
<exclusionTags>
<li>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 MayRequire="LustLicentia.RJWLabs">
<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>
<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,46 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef MayRequire="LustLicentia.RJWLabs">
<defName>rjw_genes_elasticity</defName>
<label>Elasticity</label>
<displayCategory>rjw_genes_damage</displayCategory>
<description>This Xenotype cannot get stretched by huge penetrators.</description>
<iconPath>Genes/Icons/Elasticity</iconPath>
<geneClass>RJW_Genes.Gene_Elasticity</geneClass>
<biostatMet>-1</biostatMet>
<biostatCpx>1</biostatCpx>
<displayOrderInCategory>1</displayOrderInCategory>
<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_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>
<iconPath>UI/Icons/Rituals/TrialDefend</iconPath>
<displayOrderInCategory>2</displayOrderInCategory>
<biostatMet>-1</biostatMet>
<biostatCpx>1</biostatCpx>
<!-- Note: This Gene is mostly handled by patching XMLs -->
<geneClass>RJW_Genes.Gene_Unbreakable</geneClass>
<hediffGiversCannotGive>
<li>FeelingBroken</li>
</hediffGiversCannotGive>
<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,151 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="GeneExtraGenitaliaBase" Abstract="True">
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
<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="GeneExtraGenitaliaBase">
<defName>rjw_genes_extra_penis</defName>
<label>extra penis</label>
<description>Males of this species grow an additional penis .</description>
<iconPath>Genes/Icons/extra_male</iconPath>
<geneClass>RJW_Genes.Gene_ExtraPenis</geneClass>
<displayOrderInCategory>701</displayOrderInCategory>
<exclusionTags>
<li>PenisAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_no_penis</defName>
<label>no penis</label>
<description>Males of this do not have a penis.</description>
<iconPath>Genes/Icons/No_Male_Genitalia</iconPath>
<geneClass>RJW_Genes.Gene_NoPenis</geneClass>
<displayOrderInCategory>702</displayOrderInCategory>
<exclusionTags>
<li>PenisAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_extra_vagina</defName>
<label>extra vagina</label>
<description>Females of this species grow an additional vagina .</description>
<iconPath>Genes/Icons/Extra_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_ExtraVagina</geneClass>
<displayOrderInCategory>703</displayOrderInCategory>
<exclusionTags>
<li>VaginaAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_no_vagina</defName>
<label>no vagina</label>
<description>Females of this do not have a vagina.</description>
<iconPath>Genes/Icons/No_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_NoVagina</geneClass>
<displayOrderInCategory>704</displayOrderInCategory>
<exclusionTags>
<li>VaginaAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_extra_breasts</defName>
<label>extra breasts</label>
<description>Females of this species grow an additional pair of breasts .</description>
<iconPath>Genes/Icons/Extra_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_ExtraBreasts</geneClass>
<displayOrderInCategory>705</displayOrderInCategory>
<exclusionTags>
<li>BreastAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_no_breasts</defName>
<label>no breasts</label>
<description>Females of this 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>
<exclusionTags>
<li>BreastAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_extra_anus</defName>
<label>extra anus</label>
<description>This specias has an extra anus.</description>
<iconPath>Genes/Icons/Extra_Anus</iconPath>
<geneClass>RJW_Genes.Gene_ExtraAnus</geneClass>
<displayOrderInCategory>707</displayOrderInCategory>
<exclusionTags>
<li>AnusAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_no_anus</defName>
<label>no anus</label>
<description>This specias has no anus.</description>
<iconPath>Genes/Icons/No_Anus</iconPath>
<geneClass>RJW_Genes.Gene_NoAnus</geneClass>
<displayOrderInCategory>708</displayOrderInCategory>
<exclusionTags>
<li>AnusAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_futa</defName>
<label>futanari</label>
<description>Males with this gene grow additional female genitalia, females grow additional male genitalia.</description>
<iconPath>Genes/Icons/Futa</iconPath>
<geneClass>RJW_Genes.Gene_Futa</geneClass>
<displayOrderInCategory>709</displayOrderInCategory>
<exclusionTags>
<li>PenisAmount</li>
<li>VaginaAmount</li>
</exclusionTags>
</GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_featureless_chest</defName>
<label>Featureless Chest</label>
<description>Carriers of this gene do not have breasts or nipples.</description>
<iconPath>Genes/Icons/No_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_FeaturelessChest</geneClass>
<displayOrderInCategory>710</displayOrderInCategory>
<exclusionTags>
<li>BreastAmount</li>
</exclusionTags>
</GeneDef>
<!--
See Comment in `RJW_Genes.Gene_UdderBreasts` why this is currently commented out.
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_udder</defName>
<label>udder</label>
<description>Carriers of this gene have udders instead of breasts.</description>
<iconPath>Things/Mote/Heart</iconPath>
<geneClass>RJW_Genes.Gene_UdderBreasts</geneClass>
<displayOrderInCategory>711</displayOrderInCategory>
<exclusionTags>
<li>BreastAmount</li>
</exclusionTags>
</GeneDef>
-->
</Defs>

View file

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="GeneGenitaliaSizeBase" Abstract="True">
<displayCategory>rjw_genes_genitalia_size</displayCategory>
<!--These Genes need to be loaded quite late, otherwise e.g. genitalia types will re-roll and overrule genitalia size-->
<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="GeneGenitaliaSizeBase">
<defName>rjw_genes_big_male_genitalia</defName>
<label>Big Male Genitaliasize</label>
<description>Penises of this Xenotype are bigger.(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>
</GeneDef>
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_small_male_genitalia</defName>
<label>Small Male Genitaliasize</label>
<description>Penises of this Xenotype are smaller. (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>
</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>
<iconPath>Genes/Icons/Loose_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_LooseFemaleGenitalia</geneClass>
<displayOrderInCategory>754</displayOrderInCategory>
<exclusionTags>
<li>VaginaSize</li>
</exclusionTags>
</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>
<iconPath>Genes/Icons/Tight_Vagina</iconPath>
<geneClass>RJW_Genes.Gene_TightFemaleGenitalia</geneClass>
<displayOrderInCategory>756</displayOrderInCategory>
<exclusionTags>
<li>VaginaSize</li>
</exclusionTags>
</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>
<iconPath>Genes/Icons/Big_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_BigBreasts</geneClass>
<displayOrderInCategory>757</displayOrderInCategory>
<exclusionTags>
<li>BreastSize</li>
</exclusionTags>
</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>
<iconPath>Genes/Icons/Small_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_SmallBreasts</geneClass>
<displayOrderInCategory>759</displayOrderInCategory>
<exclusionTags>
<li>BreastSize</li>
</exclusionTags>
</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>
<iconPath>Genes/Icons/Loose_Anus</iconPath>
<geneClass>RJW_Genes.Gene_LooseAnus</geneClass>
<displayOrderInCategory>760</displayOrderInCategory>
<exclusionTags>
<li>AnusSize</li>
</exclusionTags>
</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>
<iconPath>Genes/Icons/Tight_Anus</iconPath>
<geneClass>RJW_Genes.Gene_TightAnus</geneClass>
<displayOrderInCategory>762</displayOrderInCategory>
<exclusionTags>
<li>AnusSize</li>
</exclusionTags>
</GeneDef>
<!-- Extra -->
<GeneDef ParentName="GeneGenitaliaSizeBase">
<defName>rjw_genes_evergrowth</defName>
<label>Evergrowth</label>
<description>One of the most regretted gene-modifications in the Glitterworlds: The (primary) genitalia will continue growing forever. This affects size and fluid output. Excessive growth can also effect mental stability! (Resizing takes place at 20th Birthday)</description>
<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-->
<tickInterval>60000</tickInterval>
</li>
</modExtensions>
</GeneDef>
</Defs>

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="GeneGenitalTypeBase" Abstract="True">
<displayCategory>rjw_genes_genitalia_type</displayCategory>
<exclusionTags>
<li>GenitalType</li>
</exclusionTags>
<biostatCpx>0</biostatCpx>
<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="GeneGenitalTypeBase">
<defName>rjw_genes_equine_genitalia</defName>
<label>equine genitalia</label>
<description>Carriers of this gene develop equine genitalia.</description>
<iconPath>Genes/Icons/Genitalia_Equine</iconPath>
<geneClass>RJW_Genes.Gene_EquineGenitalia</geneClass>
<displayOrderInCategory>802</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_canine_genitalia</defName>
<label>canine genitalia</label>
<description>Carriers of this gene develop canine genitalia.</description>
<iconPath>Genes/Icons/Genitalia_Canine</iconPath>
<geneClass>RJW_Genes.Gene_CanineGenitalia</geneClass>
<displayOrderInCategory>803</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_feline_genitalia</defName>
<label>feline genitalia</label>
<description>Carriers of this gene develop feline genitalia.</description>
<iconPath>Genes/Icons/Genitalia_Feline</iconPath>
<geneClass>RJW_Genes.Gene_FelineGenitalia</geneClass>
<displayOrderInCategory>804</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_demonic_genitalia</defName>
<label>demonic genitalia</label>
<description>Carriers of this gene have demonic genitalia.</description>
<iconPath>Genes/Icons/Genitalia_Demon</iconPath>
<geneClass>RJW_Genes.Gene_DemonicGenitalia</geneClass>
<displayOrderInCategory>805</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_dragon_genitalia</defName>
<label>dragon genitalia</label>
<description>Carriers of this gene develop dragon genitalia.</description>
<iconPath>Genes/Icons/Genitalia_Draconic</iconPath>
<geneClass>RJW_Genes.Gene_DragonGenitalia</geneClass>
<displayOrderInCategory>806</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_slime_genitalia</defName>
<label>slime genitalia</label>
<description>Carriers of this gene have slime genitalia.</description>
<iconPath>Genes/Icons/Slime_Genitalia</iconPath>
<geneClass>RJW_Genes.Gene_SlimeGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_ovipositor_genitalia</defName>
<label>insect genitalia</label>
<description>Carriers of this gene have ovipositors similar to insects.</description>
<iconPath>Genes/Icons/Ovipositor_Genitalia</iconPath>
<geneClass>RJW_Genes.Gene_OvipositorGenitalia</geneClass>
<displayOrderInCategory>808</displayOrderInCategory>
<exclusionTags>
<li>Egglaying</li>
<li>AG_Egglaying</li>
</exclusionTags>
</GeneDef>
</Defs>

View file

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="HiveBase" Abstract="True">
<displayCategory>rjw_genes_hive</displayCategory>
<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="HiveBase">
<defName>rjw_genes_queen</defName>
<label>Hive Queen</label>
<labelShortAdj>queen</labelShortAdj>
<description>This gene represents the royal caste amongst its xenotype. Children of a queen are usually born as sterile workers, unless the father was a drone. Having multiple (adult) queens leads to intense rivalry and can throw the whole colony into chaos!</description>
<iconPath>Genes/Icons/Queen</iconPath>
<displayOrderInCategory>1</displayOrderInCategory>
<statOffsets>
<PsychicSensitivity>0.5</PsychicSensitivity>
<MeditationFocusGain>0.25</MeditationFocusGain>
</statOffsets>
<conditionalStatAffecters>
<li Class="RJW_Genes.ConditionalStatAffecter_MultipleQueens">
<statFactors>
<MoveSpeed>0.7</MoveSpeed>
</statFactors>
<statOffsets>
<WorkSpeedGlobal>-0.5</WorkSpeedGlobal>
</statOffsets>
</li>
<li Class="RJW_Genes.ConditionalStatAffecter_QueenCloseBy">
<statFactors>
<MoveSpeed>0.4</MoveSpeed>
<WorkSpeedGlobal>0.2</WorkSpeedGlobal>
</statFactors>
</li>
</conditionalStatAffecters>
<exclusionTags>
<li>rjw_genes_hive_caste</li>
<li>rjw_genes_swearing_loyalty</li>
</exclusionTags>
<biostatCpx>7</biostatCpx>
<biostatMet>-3</biostatMet>
</GeneDef>
<GeneDef ParentName="HiveBase">
<defName>rjw_genes_drone</defName>
<label>Hive Drone</label>
<labelShortAdj>drone</labelShortAdj>
<description>This gene represents the drone caste amongst its xenotype. Drones are highly specialised experts that ensure the hives functioning. Other than that, drones are the only xenotypes capable of producing fertile offspring with a queen.</description>
<iconPath>Genes/Icons/Drone</iconPath>
<displayOrderInCategory>2</displayOrderInCategory>
<exclusionTags>
<li>rjw_genes_hive_caste</li>
</exclusionTags>
<conditionalStatAffecters>
<li Class="RJW_Genes.ConditionalStatAffecter_QueenAbsent">
<statFactors>
<MoveSpeed>0.9</MoveSpeed>
</statFactors>
<statOffsets>
<WorkSpeedGlobal>-0.1</WorkSpeedGlobal>
</statOffsets>
</li>
</conditionalStatAffecters>
<biostatCpx>4</biostatCpx>
<biostatMet>-2</biostatMet>
</GeneDef>
<GeneDef ParentName="HiveBase">
<defName>rjw_genes_worker</defName>
<label>Hive Worker</label>
<labelShortAdj>worker</labelShortAdj>
<description>This gene marks the lowest caste of a hive, the workers. Usually sterile, they are despised by higher castes and only live to serve with labour.</description>
<iconPath>Genes/Icons/Worker</iconPath>
<displayOrderInCategory>3</displayOrderInCategory>
<exclusionTags>
<li>rjw_genes_hive_caste</li>
</exclusionTags>
<conditionalStatAffecters>
<li Class="RJW_Genes.ConditionalStatAffecter_QueenAbsent">
<statFactors>
<MoveSpeed>0.7</MoveSpeed>
</statFactors>
<statOffsets>
<WorkSpeedGlobal>-0.5</WorkSpeedGlobal>
</statOffsets>
</li>
<li Class="RJW_Genes.ConditionalStatAffecter_MultipleQueens">
<statFactors>
<MoveSpeed>0.7</MoveSpeed>
</statFactors>
<statOffsets>
<WorkSpeedGlobal>-0.5</WorkSpeedGlobal>
</statOffsets>
</li>
<li Class="RJW_Genes.ConditionalStatAffecter_QueenCloseBy">
<statFactors>
<MoveSpeed>1.2</MoveSpeed>
<WorkSpeedGlobal>1.2</WorkSpeedGlobal>
</statFactors>
</li>
</conditionalStatAffecters>
<biostatCpx>1</biostatCpx>
<biostatMet>0</biostatMet>
</GeneDef>
<GeneDef ParentName="HiveBase">
<defName>rjw_genes_zealous_loyalty</defName>
<label>Zealous Loyalty</label>
<labelShortAdj>loyalty</labelShortAdj>
<description>Carriers of this gene are genetically wired to worship carriers of the 'Queen'-gene. They receive a massive relation-ship bonus towards the queen and a slight mood bonus. Having multiple queens in the colony causes severe distress.</description>
<iconPath>Genes/Icons/Loyalty</iconPath>
<displayOrderInCategory>10</displayOrderInCategory>
<exclusionTags>
<li>rjw_genes_swearing_loyalty</li>
</exclusionTags>
<biostatCpx>1</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>
<GeneDef ParentName="HiveBase">
<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>
<iconPath>Genes/Icons/Cocoon</iconPath>
<displayOrderInCategory>11</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_cocoonweaver</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_cocoonweaver</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</GeneDef>
<GeneDef ParentName="HiveBase">
<defName>rjw_genes_spawn_spelopede</defName>
<label>Spelopede Dispenser</label>
<labelShortAdj>spelopede</labelShortAdj>
<description>Carriers of this gene can generate tame spelopedes. Higher psychic-sensitivity will spawn more spelopedes.</description>
<iconPath>Genes/Icons/Spelopede_Dispenser</iconPath>
<displayOrderInCategory>12</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_spawn_spelopede</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_spawn_spelopede</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</GeneDef>
<GeneDef ParentName="HiveBase">
<defName>rjw_genes_insectincubator</defName>
<label>Insect Incubator</label>
<geneClass>RJW_Genes.Gene_InsectIncubator</geneClass>
<description>Pawns with this gene are able to hold more insect eggs.</description>
<iconPath>Genes/Icons/Egg</iconPath>
<displayOrderInCategory>52</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</GeneDef>
<GeneDef ParentName="HiveBase">
<defName>rjw_genes_insectbreeder</defName>
<label>Insect Breeder</label>
<description>Pawns with this gene are able to fertilize eggs with any fertile penis.</description>
<iconPath>Genes/Icons/Insect_Breeder</iconPath>
<displayOrderInCategory>53</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</GeneDef>
<GeneDef>
<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>
<iconPath>Genes/Icons/Fervent_Ovipositor</iconPath>
<displayOrderInCategory>55</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</GeneDef>
</Defs>

View file

@ -0,0 +1,237 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="LifeForceBase" Abstract="True">
<displayCategory>rjw_genes_fertilin</displayCategory>
<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="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>
<geneClass>RJW_Genes.Gene_LifeForce</geneClass>
<resourceGizmoType>RJW_Genes.GeneGizmo_ResourceLifeForce</resourceGizmoType>
<resourceLabel>fertilin</resourceLabel>
<resourceGizmoThresholds>
<li>0.25</li>
<li>0.5</li>
<li>0.75</li>
</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>
<iconPath>Genes/Icons/FertilinAlt</iconPath>
<selectionWeight>0</selectionWeight>
<displayOrderInCategory>-2</displayOrderInCategory>
<minAgeActive>18</minAgeActive>
<customEffectDescriptions>
<li>Gives fertilin supply.</li>
</customEffectDescriptions>
<symbolPack>
<prefixSymbols>
<li><symbol>fert</symbol></li>
</prefixSymbols>
</symbolPack>
<resourceLossPerDay>0.025</resourceLossPerDay>
<biostatCpx>1</biostatCpx>
<biostatMet>1</biostatMet>
</GeneDef>
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_lifeforce_drain</defName>
<label>fertilin drain</label>
<labelShortAdj>draining</labelShortAdj>
<description>Carriers lose an additional 7.5 fertilin per day from biological entropy.</description>
<resourceLabel>fertilin</resourceLabel>
<geneClass>RJW_Genes.Gene_LifeForceDrain</geneClass>
<iconPath>Genes/Icons/FertilinDrainAlt</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<resourceLossPerDay>0.075</resourceLossPerDay>
<minAgeActive>18</minAgeActive>
<displayOrderInCategory>-1</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>6</biostatMet>
</GeneDef>
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_pussyhealing</defName>
<label>Pussy Healer</label>
<labelShortAdj>pussyhealer</labelShortAdj>
<description>Carriers of this gene are able use vaginal sex to tend to other's wounds.</description>
<iconPath>Genes/Icons/Healpussy</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>9</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_pussyheal</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_pussyheal</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<symbolPack>
<suffixSymbols>
<li><symbol>life</symbol></li>
<li><symbol>pussy</symbol></li>
<li><symbol>heal</symbol></li>
</suffixSymbols>
</symbolPack>
</GeneDef>
<GeneDef ParentName="LifeForceBase">
<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>
<iconPath>Genes/Icons/cockeater</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>11</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_cockeater</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_cockeater</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<symbolPack>
<suffixSymbols>
<li><symbol>life</symbol></li>
<li><symbol>cock</symbol></li>
<li><symbol>eat</symbol></li>
</suffixSymbols>
</symbolPack>
</GeneDef>
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_paralysingkiss</defName>
<label>paralysing kiss</label>
<labelShortAdj>paralysing kiss</labelShortAdj>
<description>Carriers of this gene are able to briefly stun an enemy with a kiss.</description>
<iconPath>Genes/Icons/Paralysing_Kiss</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>12</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_paralysingkiss</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_paralysingkiss</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<symbolPack>
<suffixSymbols>
<li><symbol>stun</symbol></li>
<li><symbol>kiss</symbol></li>
</suffixSymbols>
</symbolPack>
</GeneDef>
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_seduce</defName>
<label>seduction</label>
<labelShortAdj>seduction</labelShortAdj>
<description>Carriers of this gene are able to seduce a pawn into having sex with them.</description>
<iconPath>Genes/Icons/seduce</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>13</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_seduce</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_seduce</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
<symbolPack>
<suffixSymbols>
<li><symbol>stun</symbol></li>
<li><symbol>kiss</symbol></li>
</suffixSymbols>
</symbolPack>
</GeneDef>
<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>
<iconPath>Genes/Icons/rjw_naked_prowess</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>14</displayOrderInCategory>
<abilities>
<li>rjw_genes_ability_naked_prowess</li>
</abilities>
<descriptionHyperlinks>
<AbilityDef>rjw_genes_ability_naked_prowess</AbilityDef>
</descriptionHyperlinks>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</GeneDef>
<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>
<iconPath>Genes/Icons/cumeater</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>1</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
</GeneDef>
<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>
<iconPath>Genes/Icons/Vaginal_cum_absorption</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>2</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
</GeneDef>
<GeneDef ParentName="LifeForceBase">
<defName>rjw_genes_lifeforce_empath</defName>
<label>empathic lifeforce</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>
<iconPath>Genes/Icons/Hypersexual</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>3</displayOrderInCategory>
<biostatCpx>3</biostatCpx>
<biostatMet>-2</biostatMet>
<modExtensions>
<li Class="RJW_Genes.LifeForceEmpathExtension">
<aheagoIncrement>0.02</aheagoIncrement>
<satisfactionIncrement>0.01</satisfactionIncrement>
<frustratedDecrement>-0.01</frustratedDecrement>
</li>
<li Class="RJW_Genes.TickIntervalExtension">
<!-- One day has 60k ticks, so we check every hour with 60000/24 = 2500-->
<tickInterval>2500</tickInterval>
</li>
<li Class="RJW_Genes.DistanceExtension">
<!-- distance 25 means 25 tiles in every direction from the empath.-->
<distance>25</distance>
</li>
</modExtensions>
</GeneDef>
<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>
<iconPath>Genes/Icons/Vitality_Drainer</iconPath>
<prerequisite>rjw_genes_lifeforce</prerequisite>
<displayOrderInCategory>4</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>-1</biostatMet>
</GeneDef>
</Defs>

View file

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef>
<defName>rjw_genes_hypersexual</defName>
<label>Hypersexuality</label>
<displayCategory>Reproduction</displayCategory>
<description>Xenotypes with this Gene are Hypersexual (Nymphs).</description>
<iconPath>Genes/Icons/Hypersexual</iconPath>
<displayOrderInCategory>1</displayOrderInCategory>
<forcedTraits>
<li>
<def>Nymphomaniac</def>
</li>
</forcedTraits>
<modExtensions>
<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core" Class="VanillaGenesExpanded.GeneExtension">
<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
</li>
</modExtensions>
</GeneDef>
<GeneDef>
<defName>rjw_genes_rapist</defName>
<label>Rapist</label>
<displayCategory>Reproduction</displayCategory>
<description>Xenotypes with this Gene are Rapists.</description>
<iconPath>Genes/Icons/Rape</iconPath>
<biostatMet>1</biostatMet>
<displayOrderInCategory>2</displayOrderInCategory>
<forcedTraits>
<li>
<def>Rapist</def>
</li>
</forcedTraits>
<modExtensions>
<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core" Class="VanillaGenesExpanded.GeneExtension">
<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
</li>
</modExtensions>
</GeneDef>
<GeneDef>
<defName>rjw_genes_homosexual</defName>
<label>Homosexual</label>
<displayCategory>Reproduction</displayCategory>
<description>This Gene makes you gay.</description>
<iconPath>UI\Ideoligions\Universal\RoundC</iconPath>
<biostatMet>0</biostatMet>
<displayOrderInCategory>3</displayOrderInCategory>
<forcedTraits>
<li>
<def>Gay</def>
</li>
</forcedTraits>
<exclusionTags>
<li>rjw_genes_sexual_orientation</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_bisexual</defName>
<label>Bisexual</label>
<displayCategory>Reproduction</displayCategory>
<description>Carriers of this Gene are Bisexual.</description>
<iconPath>UI\Ideoligions\Universal\RoundC</iconPath>
<biostatMet>0</biostatMet>
<displayOrderInCategory>4</displayOrderInCategory>
<forcedTraits>
<li>
<def>Bisexual</def>
</li>
</forcedTraits>
<exclusionTags>
<li>rjw_genes_sexual_orientation</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_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>
<iconPath>Genes/Icons/Empty</iconPath>
<displayOrderInCategory>5</displayOrderInCategory>
<disablesNeeds>
<li>Sex</li>
</disablesNeeds>
<biostatMet>-1</biostatMet>
<biostatCpx>2</biostatCpx>
<exclusionTags>
<li>rjw_genes_sexual_orientation</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>
</Defs>

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="SpecialBase" Abstract="True">
<displayCategory>rjw_genes_special</displayCategory>
<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="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>
<biostatCpx>1</biostatCpx>
<biostatMet>-2</biostatMet>
<iconPath>UI/Memes/FleshPurity</iconPath>
<displayOrderInCategory>1</displayOrderInCategory>
</GeneDef>
<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>
<biostatCpx>2</biostatCpx>
<biostatMet>-2</biostatMet>
<iconPath>UI/Ideoligions/FireLeaves</iconPath>
<displayOrderInCategory>2</displayOrderInCategory>
<modExtensions>
<li Class="RJW_Genes.AgeTransferExtension">
<!-- 60k = 1 day -->
<ageTickChange>60000</ageTickChange>
<minAgeInYears>18</minAgeInYears>
</li>
</modExtensions>
</GeneDef>
<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>
<biostatCpx>2</biostatCpx>
<biostatMet>-1</biostatMet>
<iconPath>UI/Icons/ColonistBar/Idle</iconPath>
<displayOrderInCategory>3</displayOrderInCategory>
<modExtensions>
<li Class="RJW_Genes.AgeTransferExtension">
<!-- 120k = 2 days -->
<ageTickChange>120000</ageTickChange>
<minAgeInYears>18</minAgeInYears>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="SpecialBase">
<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>
<iconPath>Genes/Icons/Pheromones</iconPath>
<displayOrderInCategory>4</displayOrderInCategory>
<biostatCpx>1</biostatCpx>
<biostatMet>1</biostatMet>
<modExtensions>
<li Class="RJW_Genes.TickIntervalExtension">
<!-- One day has 60k ticks, so we check every hour with 60000/48 = 1250-->
<tickInterval>1250</tickInterval>
</li>
<li Class="RJW_Genes.DistanceExtension">
<!-- distance 25 means 25 tiles in every direction from the pheromone-pawn.-->
<distance>25</distance>
</li>
</modExtensions>
</GeneDef>
<GeneDef ParentName="SpecialBase">
<defName>rjw_genes_sexual_mytosis</defName>
<label>Orgasmic Mytosis</label>
<!-- <geneClass>RJW_Genes.Gene_Aphrodisiac_Pheromones</geneClass> -->
<description>Carriers of this gene 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>
<biostatMet>-5</biostatMet>
</GeneDef>
<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>
<biostatCpx>2</biostatCpx>
<biostatMet>-1</biostatMet>
<iconPath>Genes/Icons/Big_Male_Genitalia</iconPath>
<displayOrderInCategory>6</displayOrderInCategory>
<modExtensions>
<li Class="RJW_Genes.HormonalSalivaExtension">
<!-- SizeIncrement is applied "flat" -->
<sizeIncrement>0.02</sizeIncrement>
<maxBodySize>2.5</maxBodySize>
<!-- CumMultiplier is applied "exponential" -->
<cumMultiplier>1.05</cumMultiplier>
</li>
</modExtensions>
</GeneDef>
</Defs>

View file

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef>
<defName>rjw_genes_female_only</defName>
<label>Female</label>
<displayCategory>rjw_genes_gender</displayCategory>
<description>This Xenotype only has females.</description>
<biostatCpx>0</biostatCpx>
<iconPath>Genes/Icons/Female_Only</iconPath>
<geneClass>RJW_Genes.Gene_FemaleOnly</geneClass>
<displayOrderInCategory>1</displayOrderInCategory>
<exclusionTags>
<li>AG_Gender</li>
<li>Gender</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_male_only</defName>
<displayCategory>rjw_genes_gender</displayCategory>
<label>Male</label>
<description>This Xenotype only has males.</description>
<biostatCpx>0</biostatCpx>
<iconPath>Genes/Icons/Male_Only</iconPath>
<geneClass>RJW_Genes.Gene_MaleOnly</geneClass>
<displayOrderInCategory>2</displayOrderInCategory>
<exclusionTags>
<li>AG_Gender</li>
<li>Gender</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_gender_fluid</defName>
<displayCategory>rjw_genes_gender</displayCategory>
<label>Gender Fluid</label>
<description>Everyday carriers of this gene might change their biological sex.</description>
<biostatCpx>0</biostatCpx>
<iconPath>Genes/Icons/Futa</iconPath>
<geneClass>RJW_Genes.Gene_GenderFluid</geneClass>
<displayOrderInCategory>2</displayOrderInCategory>
<!-- Design Decision: GenderFluids like GenderFluids (slightly) more. -->
<missingGeneRomanceChanceFactor>0.9</missingGeneRomanceChanceFactor>
<exclusionTags>
<li>AG_Gender</li>
<li>Gender</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>
<li Class="RJW_Genes.GenderFluidExtension">
<!-- 120k = 2 days -->
<changeInterval>120000</changeInterval>
<changeChance>0.25</changeChance>
</li>
</modExtensions>
</GeneDef>
</Defs>

View file

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- Alpha Genes ID: sarg.alphagenes -->
<XenotypeDef>
<defName>rjw_genes_halamyr_queen_xenotype</defName>
<label>Halamyr Queen</label>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Queen</iconPath>
<inheritable>false</inheritable>
<canGenerateAsCombatant>false</canGenerateAsCombatant>
<description>The Halamyr are a race of insect-xenotypes living in a caste-system. On top of the caste, the queens are the centerpiece of any hive. They are the only Halamyr that can produce drones, or mass-produce workers. A hive can virtually not live without a queen - without their royalty the drones and workers are irritated and receive sever penalties. Queens are very fragile and need to be kept safe and in best conditions.</description>
<descriptionShort>The fragile queens of the Halamyr are the center of the hives reproduction. Multiple queens, or and absence of a queen, can cause to fall the best hive into disarray real quick.</descriptionShort>
<genes>
<li MayRequire="sarg.alphagenes" >AG_LargerBodySize</li>
<li MayRequire="sarg.alphagenes" >AG_InsectBlood</li>
<li MayRequire="sarg.alphagenes" >AG_InsectJellyProduction</li>
<li MayRequire="sarg.alphagenes" >AG_SurvivalInstinct_Low</li>
<li>WoundHealing_Slow</li>
<li>PsychicAbility_Extreme</li>
<li>MoveSpeed_Slow</li>
<li>FireTerror</li>
<li>MeleeDamage_Weak</li>
<li>Sleepy</li>
<li>Delicate</li>
<li>rjw_genes_hypersexual</li>
<li>rjw_genes_bisexual</li>
<li>Libido_High</li>
<li>Beauty_Beautiful</li>
<li MayRequire="sarg.alphagenes" >AG_OutwardsAntennas</li>
<li>Skin_DeepRed</li>
<li>Learning_Fast</li>
<li>rjw_genes_fervent_ovipositor</li>
<li>AptitudeTerrible_Shooting</li>
<li>AptitudeTerrible_Melee</li>
<li>AptitudeRemarkable_Social</li>
<li MayRequire="rjw.sexperience">AptitudeRemarkable_Sex</li>
<li>rjw_genes_female_only</li>
<li>rjw_genes_ovipositor_genitalia</li>
<li>rjw_genes_aphrodisiac_pheromones</li>
<li>rjw_genes_queen</li>
<li>rjw_genes_cocoonweaver</li>
<li>rjw_genes_spawn_spelopede</li>
</genes>
</XenotypeDef>
<XenotypeDef>
<defName>rjw_genes_halamyr_hiveguard_xenotype</defName>
<label>Halamyr Hiveguard</label>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Guard</iconPath>
<combatPowerFactor>1.5</combatPowerFactor>
<inheritable>false</inheritable>
<description>The Halamyr hiveguards are the bastion to protect the hive. Next to the walls, these meele specialists form the ultimate guard for the queen, for which they'd give their lifes. Their tuned bodies come with a price, crippling them for social interactions and increased hunger.</description>
<descriptionShort>Frontline of the Halamyr, guards of the hive, specialised in meele combat. Heavily handicapped without a queen.</descriptionShort>
<genes>
<li MayRequire="sarg.alphagenes" >AG_InsectBlood</li>
<li MayRequire="sarg.alphagenes" >AG_EfficientMandibles</li>
<li>Immunity_Strong</li>
<li>WoundHealing_Fast</li>
<li>MoveSpeed_Quick</li>
<li>FireTerror</li>
<li>MeleeDamage_Strong</li>
<li>KillThirst</li>
<li>LowSleep</li>
<li MayRequire="sarg.alphagenes" >AG_WaspWings</li>
<li>Hair_ShortOnly</li>
<li MayRequire="sarg.alphagenes" >AG_DownwardsAntennas</li>
<li>Hair_DarkBlack</li>
<li>Skin_DeepRed</li>
<li MayRequire="sarg.alphagenes" >AG_FeraliskEyes</li>
<li>AptitudeTerrible_Shooting</li>
<li>AptitudeRemarkable_Melee</li>
<li>AptitudePoor_Construction</li>
<li>AptitudePoor_Cooking</li>
<li>AptitudePoor_Plants</li>
<li>AptitudePoor_Crafting</li>
<li>AptitudeTerrible_Artistic</li>
<li>AptitudeTerrible_Medicine</li>
<li>AptitudePoor_Social</li>
<li>rjw_genes_male_only</li>
<li>rjw_genes_ovipositor_genitalia</li>
<li>rjw_genes_drone</li>
<li>rjw_genes_zealous_loyalty</li>
</genes>
</XenotypeDef>
<XenotypeDef>
<defName>rjw_genes_halamyr_breeder_xenotype</defName>
<label>Halamyr Breeder</label>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Breeder</iconPath>
<inheritable>false</inheritable>
<canGenerateAsCombatant>false</canGenerateAsCombatant>
<combatPowerFactor>0.8</combatPowerFactor>
<description>The Halamyr breeders are the backbone of the hive. Their special genes allow them to carry more eggs and hatch them faster, enabling a steady output of hivelings. To support their position in the hive, breeders spend most of their life in the queens cocoon, a task which they gladly accept.</description>
<descriptionShort>Made for incubating Halamyr eggs, breeders spend most of their life in the queens cocoon.</descriptionShort>
<genes>
<li MayRequire="sarg.alphagenes" >AG_Spinnerets</li>
<li MayRequire="sarg.alphagenes" >AG_InsectBlood</li>
<li MayRequire="sarg.alphagenes" >AG_InsectJellyProduction</li>
<li MayRequire="sarg.alphagenes" >AG_FormicAntennas</li>
<li>Fertile</li>
<li MayRequire="sarg.alphagenes" >AG_FastGestation</li>
<li>FireTerror</li>
<li>VerySleepy</li>
<li>rjw_genes_bisexual</li>
<li>Skin_DeepRed</li>
<li>AptitudeStrong_Social</li>
<li>rjw_genes_drone</li>
<li>rjw_genes_female_only</li>
<li>rjw_genes_zealous_loyalty</li>
<li>rjw_genes_insectincubator</li>
<li>rjw_genes_zoophile</li>
<li>rjw_genes_no_vagina</li>
</genes>
</XenotypeDef>
</Defs>

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<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>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Succubus</iconPath>
<soundDefOnImplant>PawnBecameSanguophage</soundDefOnImplant>
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
<xenogermReplicatingDurationLeftDaysRange>0.1~140</xenogermReplicatingDurationLeftDaysRange>
<combatPowerFactor>1</combatPowerFactor>
<displayPriority>-1000</displayPriority>
<factionlessGenerationWeight>0.005</factionlessGenerationWeight>
<inheritable>false</inheritable>
<doubleXenotypeChances>
<Pigskin>0.02</Pigskin>
<Impid>0.02</Impid>
<Yttakin>0.02</Yttakin>
<Neanderthal>0.02</Neanderthal>
<Waster>0.02</Waster>
<Dirtmole>0.02</Dirtmole>
</doubleXenotypeChances>
<genes>
<li>rjw_genes_bisexual</li>
<li>rjw_genes_hypersexual</li>
<li>rjw_genes_female_only</li>
<li>rjw_genes_lifeforce</li>
<li>rjw_genes_lifeforce_drain</li>
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_cum_eater</li>
<li>rjw_genes_fertilin_absorber</li>
<li>rjw_genes_paralysingkiss</li>
<li>rjw_genes_seduce</li>
<li MayRequire="rjw.sexperience">AptitudeRemarkable_Sex</li>
<li MayRequire="Sl4vP0weR.DominantGene">DominantGene</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
<li>rjw_genes_succubus_wings</li>
<li>rjw_genes_succubus_tail</li>
<li>rjw_genes_aphrodisiac_pheromones</li>
<li>Beauty_Pretty</li>
<li>MoveSpeed_Quick</li>
<li>AptitudeStrong_Social</li>
<li>Ears_Pointed</li>
<li>Headbone_MiniHorns</li>
<li>Skin_Purple</li>
</genes>
</XenotypeDef>
<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>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Incubus</iconPath>
<soundDefOnImplant>PawnBecameSanguophage</soundDefOnImplant>
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
<xenogermReplicatingDurationLeftDaysRange>0.1~140</xenogermReplicatingDurationLeftDaysRange>
<combatPowerFactor>1</combatPowerFactor>
<displayPriority>-1000</displayPriority>
<factionlessGenerationWeight>0.005</factionlessGenerationWeight>
<inheritable>false</inheritable>
<doubleXenotypeChances>
<Pigskin>0.02</Pigskin>
<Impid>0.02</Impid>
<Yttakin>0.02</Yttakin>
<Neanderthal>0.02</Neanderthal>
<Waster>0.02</Waster>
<Dirtmole>0.02</Dirtmole>
</doubleXenotypeChances>
<genes>
<li>rjw_genes_hypersexual</li>
<li>rjw_genes_male_only</li>
<li>rjw_genes_lifeforce</li>
<li>rjw_genes_lifeforce_drain</li>
<li>rjw_genes_drainer</li>
<li>rjw_genes_demonic_genitalia</li>
<li MayRequire="rjw.sexperience">AptitudeRemarkable_Sex</li>
<li MayRequire="Sl4vP0weR.DominantGene">DominantGene</li>
<li>rjw_genes_seduce</li>
<li>rjw_genes_succubus_wings</li>
<li>rjw_genes_succubus_tail</li>
<li>rjw_genes_aphrodisiac_pheromones</li>
<li>Beauty_Pretty</li>
<li>MoveSpeed_Quick</li>
<li>Robust</li>
<li>UVSensitivity_Intense</li>
<li>AptitudeStrong_Intellectual</li>
<li>Ears_Pointed</li>
<li>Headbone_CenterHorn</li>
<li>Skin_InkBlack</li>
</genes>
</XenotypeDef>
<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>
<iconPath>Genes/Icons/Xenotypes/Xenotype-Cumazon</iconPath>
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
<xenogermReplicatingDurationLeftDaysRange>0.1~140</xenogermReplicatingDurationLeftDaysRange>
<combatPowerFactor>2.5</combatPowerFactor>
<displayPriority>-1000</displayPriority>
<factionlessGenerationWeight>0.01</factionlessGenerationWeight>
<inheritable>false</inheritable>
<genes>
<li>WoundHealing_Fast</li>
<li>NakedSpeed</li>
<li>Aggression_Aggressive</li>
<li>MeleeDamage_Strong</li>
<li>KillThirst</li>
<li>Robust</li>
<li>Pain_Reduced</li>
<li>Beauty_Ugly</li>
<li>Hair_BaldOnly</li>
<li>Hair_ShortOnly</li>
<li>Brow_Heavy</li>
<li>Body_Hulk</li>
<li>AptitudeStrong_Shooting</li>
<li>AptitudeRemarkable_Melee</li>
<li>AptitudePoor_Crafting</li>
<li>AptitudePoor_Artistic</li>
<li>Unstoppable</li>
<li>rjw_genes_rapist</li>
<li>rjw_genes_female_only</li>
<li>rjw_genes_lifeforce</li>
<li>rjw_genes_lifeforce_drain</li>
<li>rjw_genes_pussyhealing</li>
<li>rjw_genes_cockeater</li>
<li>rjw_genes_naked_prowess</li>
<li>rjw_genes_orgasm_rush</li>
</genes>
</XenotypeDef>
</Defs>

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- Actually, there are no pheromones for humans that we are aware of, did you know? There are smells we are conditioned to like, but actual pheromones are not known for humans. But, this is a game, so fuck it I guess? -->
<HediffDef>
<defName>rjw_genes_aphrodisiac_pheromone</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>induced libido</label>
<description>sex drive increasing due to smelling aphrodisiac pheromones.</description>
<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
<maxSeverity>1.0</maxSeverity>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-4.0</severityPerDay>
</li>
</comps>
<stages>
<li>
<label>wearing off</label>
<statFactors>
<SexFrequency>1.25</SexFrequency>
</statFactors>
</li>
<li>
<minSeverity>0.35</minSeverity>
<label>moderate</label>
<statFactors>
<SexFrequency>1.8</SexFrequency>
</statFactors>
</li>
<li>
<minSeverity>0.9</minSeverity>
<label>strong</label>
<statFactors>
<SexFrequency>2.5</SexFrequency>
</statFactors>
</li>
</stages>
</HediffDef>
</Defs>

View file

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<HediffDef>
<defName>rjw_genes_evergrowth_sideeffect</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>genital hybris</label>
<description>science has gone too far - a tool like this needs constant attention.</description>
<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
<maxSeverity>1.0</maxSeverity>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.025</severityPerDay>
</li>
</comps>
<stages>
<li>
<label>minor</label>
<statFactors>
<SexFrequency>3</SexFrequency>
</statFactors>
</li>
<li>
<minSeverity>0.5</minSeverity>
<label>moderate</label>
<statFactors>
<SexFrequency>5</SexFrequency>
</statFactors>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>-0.05</offset>
</li>
</capMods>
</li>
<li>
<minSeverity>0.9</minSeverity>
<label>strong</label>
<statFactors>
<SexFrequency>7</SexFrequency>
</statFactors>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>-0.1</offset>
</li>
</capMods>
</li>
</stages>
</HediffDef>
</Defs>

View file

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<HediffDef>
<defName>rjw_genes_fertilin_lost</defName>
<hediffClass>Hediff_HemogenCraving</hediffClass>
<label>lost fertilin</label>
<description>Percentage of fertilin lost.</description>
<defaultLabelColor>(1,1,1)</defaultLabelColor>
<maxSeverity>1</maxSeverity>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.5</severityPerDay>
</li>
</comps>
<stages>
<li>
<becomeVisible>true</becomeVisible>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>rjw_genes_succubus_drained</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>Drained</label>
<description>The vitality of this pawn has been drained. Cannot be drained again until fully recovered.</description>
<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
<maxSeverity>1.0</maxSeverity>
<initialSeverity>1.0</initialSeverity>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.25</severityPerDay>
</li>
</comps>
<stages>
<li>
<label>minor</label>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>-0.1</offset>
</li>
</capMods>
<restFallFactorOffset>0.1</restFallFactorOffset>
<statOffsets>
<WorkSpeedGlobal>-0.1</WorkSpeedGlobal>
</statOffsets>
</li>
<li>
<minSeverity>0.5</minSeverity>
<label>moderate</label>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>-0.2</offset>
</li>
</capMods>
<hungerRateFactorOffset>0.05</hungerRateFactorOffset>
<restFallFactorOffset>0.20</restFallFactorOffset>
<statOffsets>
<WorkSpeedGlobal>-0.1</WorkSpeedGlobal>
</statOffsets>
</li>
<li>
<minSeverity>0.8</minSeverity>
<label>severe</label>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>-0.3</offset>
</li>
</capMods>
<statOffsets>
<WorkSpeedGlobal>-0.2</WorkSpeedGlobal>
</statOffsets>
<vomitMtbDays>0.4</vomitMtbDays>
<hungerRateFactorOffset>0.1</hungerRateFactorOffset>
<restFallFactorOffset>0.35</restFallFactorOffset>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>rjw_genes_fertilin_craving</defName>
<label>fertilin craving</label>
<hediffClass>Hediff_HemogenCraving</hediffClass>
<description>weakened due to running out of fertilin.</description>
<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
<maxSeverity>1.0</maxSeverity>
<initialSeverity>0.01</initialSeverity>
<stages>
<li>
<label>minor</label>
<painOffset>0.05</painOffset>
<capMods>
<li>
<capacity>Consciousness</capacity>
<setMax>0.9</setMax>
</li>
</capMods>
</li>
<li>
<label>moderate</label>
<minSeverity>0.35</minSeverity>
<painOffset>0.1</painOffset>
<capMods>
<li>
<capacity>Consciousness</capacity>
<setMax>0.8</setMax>
</li>
</capMods>
</li>
<li>
<label>major</label>
<minSeverity>0.7</minSeverity>
<painOffset>0.15</painOffset>
<capMods>
<li>
<capacity>Consciousness</capacity>
<setMax>0.5</setMax>
</li>
</capMods>
</li>
</stages>
<comps>
<li Class="RJW_Genes.HediffCompProperties_SeverityFromFertilin">
<severityPerHourEmpty>0.05</severityPerHourEmpty>
<severityPerHourHemogen>-0.1</severityPerHourHemogen>
</li>
</comps>
</HediffDef>
<HediffDef ParentName="RoleStatBuff">
<defName>rjw_genes_naked_prowess</defName>
<label>naked prowss</label>
<description>Driven by fertilin, this person has greatly increased strength and resilience.</description>
<hediffClass>HediffWithComps</hediffClass>
<stages>
<li>
<!--Maybe a bit to much, but they are supposed to be strong-->
<statOffsets>
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
<ArmorRating_Heat>0.5</ArmorRating_Heat>
<!-- <Insulation_Cold>10</Insulation_Cold>
<Insulation_Heat>10</Insulation_Heat> -->
</statOffsets>
<statFactors>
<IncomingDamageFactor>0.5</IncomingDamageFactor>
<MeleeDamageFactor>1.5</MeleeDamageFactor>
</statFactors>
</li>
</stages>
<comps>
<li Class="HediffCompProperties_Disappears">
<showRemainingTime>True</showRemainingTime>
<disappearsAfterTicks>5000</disappearsAfterTicks> <!-- 2 hours -->
</li>
<li Class="HediffCompProperties_DisappearsOnDeath"/>
<!--TODO: Make hediff disappear if pawn is nolonger naked-->
</comps>
<isBad>false</isBad>
</HediffDef>
</Defs>

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<HediffDef>
<defName>rjw_genes_orgasm_rush_hediff</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>Orgasm Rush</label>
<description>Xenotypes with this Gene are pushed beyond normal limits when they have an orgasm.</description>
<defaultLabelColor>(240,200,110)</defaultLabelColor>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>1.0</maxSeverity>
<isBad>false</isBad>
<tendable>false</tendable>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.75</severityPerDay>
</li>
</comps>
<stages>
<li>
<label>pumped</label>
<statOffsets>
<MeleeDodgeChance>4</MeleeDodgeChance>
<ShootingAccuracyPawn>4</ShootingAccuracyPawn>
</statOffsets>
<capMods>
<li>
<capacity>Consciousness</capacity>
<offset>0.05</offset>
</li>
</capMods>
</li>
<li>
<label>charged</label>
<minSeverity>0.4</minSeverity>
<statOffsets>
<MeleeDodgeChance>8</MeleeDodgeChance>
<ShootingAccuracyPawn>8</ShootingAccuracyPawn>
</statOffsets>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.08</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>0.08</offset>
</li>
</capMods>
</li>
<li>
<label>super-charged</label>
<minSeverity>0.7</minSeverity>
<statOffsets>
<MeleeDodgeChance>10</MeleeDodgeChance>
<ShootingAccuracyPawn>10</ShootingAccuracyPawn>
</statOffsets>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.1</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>0.1</offset>
</li>
<li>
<capacity>BloodPumping</capacity>
<offset>0.1</offset>
</li>
</capMods>
</li>
</stages>
</HediffDef>
</Defs>

View file

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<HediffDef>
<defName>rjw_genes_orgasmic_mytosis_hediff</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>Orgasmic Instability</label>
<description>Xenotypes with this Gene grow more unstable on orgasm - upon reaching critical level they will initate a process of mytosis.</description>
<defaultLabelColor>(240,200,110)</defaultLabelColor>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>1.0</maxSeverity>
<isBad>false</isBad>
<tendable>false</tendable>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.9</severityPerDay>
</li>
</comps>
<stages>
<li>
<label>stable</label>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.05</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>0.08</offset>
</li>
</capMods>
</li>
<li>
<label>agitated</label>
<minSeverity>0.4</minSeverity>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>0.15</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>0.15</offset>
</li>
</capMods>
</li>
<li>
<label>unstable</label>
<minSeverity>0.7</minSeverity>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>-0.1</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>-0.1</offset>
</li>
<li>
<capacity>BloodPumping</capacity>
<offset>+0.2</offset>
</li>
</capMods>
</li>
<li>
<label>critical</label>
<minSeverity>0.9</minSeverity>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>-0.25</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>-0.25</offset>
</li>
<li>
<capacity>BloodPumping</capacity>
<offset>+0.5</offset>
</li>
</capMods>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>rjw_genes_mytosis_shock_hediff</defName>
<hediffClass>HediffWithComps</hediffClass>
<label>Mytosis Shock</label>
<description>Recently underwent (successful) mytosis. As this is a taxing process, some time for regeneration is required. While regenerating, no new mytosis can be started.</description>
<defaultLabelColor>(240,200,110)</defaultLabelColor>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>1.0</maxSeverity>
<isBad>true</isBad>
<tendable>false</tendable>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-0.20</severityPerDay>
</li>
</comps>
<stages>
<li>
<label>wearing off</label>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>-0.25</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>-0.25</offset>
</li>
</capMods>
</li>
<li>
<label>fresh</label>
<minSeverity>0.6</minSeverity>
<capMods>
<li>
<capacity>Moving</capacity>
<offset>-0.50</offset>
</li>
<li>
<capacity>Consciousness</capacity>
<offset>-0.7</offset>
</li>
</capMods>
</li>
</stages>
</HediffDef>
</Defs>

View file

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<!--
For writing your own:
1. specify your queenXenotype with an exactly matching name
2. defName is not important
3. queen + drone + worker == 1
Otherwise, it should default to the ones specified for rjw_genes_default_hive_offspring_chances
-->
<RJW_Genes.HiveOffspringChanceDef>
<!-- Important: this default defName cannot be renamed! It is a protected keyword.-->
<!-- Changing the queenXenotype-Name will also throw an error.-->
<!-- But you can change the workerGenes list.-->
<defName>rjw_genes_default_hive_offspring_chances</defName>
<queenXenotype>default</queenXenotype>
<queenChance>0.02</queenChance>
<droneChance>0.48</droneChance>
<workerChance>0.5</workerChance>
</RJW_Genes.HiveOffspringChanceDef>
<RJW_Genes.HiveOffspringChanceDef>
<defName>rjw_genes_test_queen_offspring_chances</defName>
<queenXenotype>rjw_genes_test_queen_xenotype</queenXenotype>
<queenChance>0.02</queenChance>
<droneChance>0.28</droneChance>
<workerChance>0.7</workerChance>
</RJW_Genes.HiveOffspringChanceDef>
</Defs>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<IncidentDef>
<defName>SuccubusDreamVisit</defName>
<label>dirty dreams</label>
<category>Misc</category>
<targetTags>
<li>Map_PlayerHome</li>
</targetTags>
<workerClass>RJW_Genes.IncidentWorker_SuccubusDreamVisit</workerClass>
<baseChance>1.0</baseChance>
<minRefireDays>10</minRefireDays>
<pointsScaleable>false</pointsScaleable>
</IncidentDef>
</Defs>

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!--Chitchat reduced copy-->
<InteractionDef>
<defName>rjw_genes_flirt</defName>
<label>flirt</label>
<symbol>Things/Mote/SpeechSymbols/Chitchat</symbol>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->[INITIATOR_nameDef] and [RECIPIENT_nameDef] [talkedabout] [TalkTopicLight].</li>
<li>r_logentry->[INITIATOR_nameDef] [talkedabout] [TalkTopicLight] with [RECIPIENT_nameDef].</li>
<li>r_logentry(p=0.8)->[INITIATOR_nameDef] [commentedabout] [TalkTopicLight] to [RECIPIENT_nameDef].</li>
<li>talkedabout(p=4)->chatted about</li>
<li>talkedabout->shared a word about</li>
<li>talkedabout->spoke about</li>
<li>talkedabout->gabbed about</li>
<li>talkedabout->talked about</li>
<li>talkedabout->joked about</li>
<li>talkedabout->quipped about</li>
<li>commentedabout->said something about</li>
<li>commentedabout->said a word about</li>
<li>commentedabout->made a comment about</li>
<li>commentedabout->commented about</li>
<li>commentedabout->told a joke about</li>
</rulesStrings>
</logRulesInitiator>
</InteractionDef>
</Defs>

View file

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Tailjob</defName>
<label>succubustail tailjob</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given tailjob by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave tailjob to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Tailjob</RMBLabel>
<rjwSextype>Handjob</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Tailjob_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Rape</li>
</tags>
<dominantRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Vaginal</defName>
<label>succubustail vaginal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave vaginal tailsex to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given vaginal tailsex by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Vaginal Tailsex</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Vaginal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Rape</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<families>
<li>Vagina</li>
</families>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Anal</defName>
<label>succubustail anal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave anal tailsex to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given anal tailsex by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Anal Tailsex</RMBLabel>
<rjwSextype>Anal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Anal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Rape</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<families>
<li>Anus</li>
</families>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<!--Top of tail opens up and evelops the penis-->
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Envelop</defName>
<label>succubustail envelop</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given special tailjob by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave special tailjob to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Envelop</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Envelop_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Rape</li>
</tags>
<dominantRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
</Defs>

View file

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Reverse_Tailjob</defName>
<label>succubustail tailjob</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave tailjob to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given tailjob by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Tailjob</RMBLabel>
<rjwSextype>Handjob</rjwSextype>
<rulepack_defs>
<li>SubSuccubusTail_Tailjob_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Rape</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Reverse_Vaginal</defName>
<label>succubustail vaginal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given vaginal tailsex by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave vaginal tailsex to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Vaginal Tailsex</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Vaginal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Rape</li>
</tags>
<dominantRequirement>
<families>
<li>Vagina</li>
</families>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Reverse_Anal</defName>
<label>succubustail anal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given anal tailsex by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave anal tailsex to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Anal Tailsex</RMBLabel>
<rjwSextype>Anal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Anal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Rape</li>
</tags>
<dominantRequirement>
<families>
<li>Anus</li>
</families>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<!--Top of tail opens up and evelops the penis-->
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
<defName>Rape_SuccubusTail_Reverse_Envelop</defName>
<label>succubustail envelop</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave special tailjob to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given special tailjob by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Envelop</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Envelop_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Rape</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
</Defs>

View file

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Reverse_Tailjob</defName>
<label>succubustail tailjob</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave tailjob to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given tailjob by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Tailjob</RMBLabel>
<rjwSextype>Handjob</rjwSextype>
<rulepack_defs>
<li>SubSuccubusTail_Tailjob_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Consensual</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Reverse_Vaginal</defName>
<label>succubustail vaginal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given vaginal tailsex by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave vaginal tailsex to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Vaginal Tailsex</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Vaginal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Consensual</li>
</tags>
<dominantRequirement>
<families>
<li>Vagina</li>
</families>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Reverse_Anal</defName>
<label>succubustail anal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given anal tailsex by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave anal tailsex to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Anal Tailsex</RMBLabel>
<rjwSextype>Anal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Anal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Consensual</li>
</tags>
<dominantRequirement>
<families>
<li>Anus</li>
</families>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<!--Top of tail opens up and evelops the penis-->
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Reverse_Envelop</defName>
<label>succubustail envelop</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave special tailjob to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given special tailjob by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Envelop</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Envelop_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Reverse</li>
<li>Consensual</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
</Defs>

View file

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Tailjob</defName>
<label>succubustail tailjob</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given tailjob by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave tailjob to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Tailjob</RMBLabel>
<rjwSextype>Handjob</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Tailjob_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Consensual</li>
</tags>
<dominantRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Vaginal</defName>
<label>succubustail vaginal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave vaginal tailsex to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given vaginal tailsex by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Vaginal Tailsex</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Vaginal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Consensual</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<families>
<li>Vagina</li>
</families>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Anal</defName>
<label>succubustail anal</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Gave anal tailsex to [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Was given anal tailsex by [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Anal Tailsex</RMBLabel>
<rjwSextype>Anal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Anal_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>DomSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Consensual</li>
</tags>
<dominantRequirement>
</dominantRequirement>
<submissiveRequirement>
<families>
<li>Anus</li>
</families>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
<!--Top of tail opens up and evelops the penis-->
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
<defName>Sex_SuccubusTail_Envelop</defName>
<label>succubustail envelop</label>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->Was given special tailjob by [RECIPIENT_nameDef].</li>
</rulesStrings>
</logRulesInitiator>
<logRulesRecipient>
<rulesStrings>
<li>r_logentry->Gave special tailjob to [INITIATOR_nameDef].</li>
</rulesStrings>
</logRulesRecipient>
<modExtensions>
<li Class="rjw.InteractionExtension">
<RMBLabel>Envelop</RMBLabel>
<rjwSextype>Vaginal</rjwSextype>
<rulepack_defs>
<li>DomSuccubusTail_Envelop_RP</li>
</rulepack_defs>
</li>
<li Class="rjw.Modules.Interactions.DefModExtensions.InteractionSelectorExtension">
<customRequirementHandler>SubSuccubusTailCustomRequirementHandler</customRequirementHandler>
<tags>
<li>Consensual</li>
</tags>
<dominantRequirement>
<tags>
<li>CanPenetrate</li>
</tags>
</dominantRequirement>
<submissiveRequirement>
</submissiveRequirement>
</li>
</modExtensions>
</InteractionDef>
</Defs>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<JobDef>
<defName>rjw_genes_lifeforce_randomrape</defName>
<driverClass>rjw.JobDriver_RandomRape</driverClass>
<reportString>Raping</reportString>
<casualInterruptible>false</casualInterruptible>
</JobDef>
<JobDef>
<defName>rjw_genes_lifeforce_healpussy</defName>
<driverClass>RJW_Genes.JobDriver_CastAbilityAfterSex</driverClass>
<reportString>Tending someones wounds with sex.</reportString>
<casualInterruptible>false</casualInterruptible>
</JobDef>
<JobDef>
<defName>rjw_genes_lifeforce_seduced</defName>
<driverClass>RJW_Genes.JobDriver_Seduced</driverClass>
<reportString>Seduced.</reportString>
<casualInterruptible>false</casualInterruptible>
<playerInterruptible>false</playerInterruptible>
</JobDef>
<JobDef>
<defName>rjw_genes_flirt</defName>
<driverClass>RJW_Genes.JobDriver_Flirt</driverClass>
<reportString>Seduced.</reportString>
<casualInterruptible>false</casualInterruptible>
</JobDef>
</Defs>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<JobDef>
<defName>sex_on_spot</defName>
<driverClass>RJW_Genes.JobDriver_SexOnSpot</driverClass>
<reportString>Making love on the spot.</reportString>
<casualInterruptible>false</casualInterruptible>
</JobDef>
<JobDef>
<defName>sex_on_spot_reciever</defName>
<driverClass>RJW_Genes.JobDriver_SexOnSpotReciever</driverClass>
<reportString>lovin'.</reportString>
<casualInterruptible>false</casualInterruptible>
</JobDef>
</Defs>

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<MentalBreakDef>
<defName>rjw_genes_lifeforce_randomrape</defName>
<mentalState>rjw_genes_lifeforce_randomrape</mentalState>
<baseCommonality>1.5</baseCommonality>
<intensity>Extreme</intensity>
<workerClass>RJW_Genes.LifeForceMentalBreakWorker</workerClass>
</MentalBreakDef>
<MentalStateDef ParentName="BaseMentalState">
<defName>rjw_genes_lifeforce_randomrape</defName>
<stateClass>RJW_Genes.LifeForceMentalState</stateClass>
<workerClass>RJW_Genes.LifeForceMentalStateWorker</workerClass>
<label>random rape</label>
<category>Malicious</category>
<prisonersCanDo>true</prisonersCanDo>
<colonistsOnly>false</colonistsOnly>
<minTicksBeforeRecovery>30000</minTicksBeforeRecovery>
<recoveryMtbDays>0.8</recoveryMtbDays>
<maxTicksBeforeRecovery>80000</maxTicksBeforeRecovery>
<nameColor>(0.5, 0.9, 0.5)</nameColor>
<beginLetterLabel>random rape</beginLetterLabel>
<beginLetter>{0} has run out of lifeforce and is looking to obtain some.</beginLetter>
<beginLetterDef>ThreatSmall</beginLetterDef>
<recoveryMessage>{0} is no longer raping randomly.</recoveryMessage>
<baseInspectLine>Mental state: Random Rape</baseInspectLine>
<recoverFromSleep>true</recoverFromSleep>
</MentalStateDef>
</Defs>

View file

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<PawnKindDef>
<defName>rjw_genes_succubus</defName>
<label>succubus</label>
<combatPower>50</combatPower>
<race>Human</race>
<xenotypeSet>
<xenotypeChances>
<rjw_genes_succubus>999</rjw_genes_succubus>
</xenotypeChances>
</xenotypeSet>
<acceptArrestChanceFactor>0.5</acceptArrestChanceFactor>
<useFactionXenotypes>false</useFactionXenotypes>
<minGenerationAge>18</minGenerationAge>
<maxGenerationAge>27</maxGenerationAge>
<itemQuality>Poor</itemQuality>
<backstoryCryptosleepCommonality>0.0</backstoryCryptosleepCommonality>
<isFighter>false</isFighter>
<gearHealthRange>
<min>0.3</min>
<max>0.9</max>
</gearHealthRange>
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
<apparelTags>
<li>Tribal</li>
</apparelTags>
<apparelMoney>
<min>0</min>
<max>0</max>
</apparelMoney>
<apparelAllowHeadgearChance>0</apparelAllowHeadgearChance>
<techHediffsMoney>
<min>0</min>
<max>0</max>
</techHediffsMoney>
<techHediffsTags>
<li>Poor</li>
</techHediffsTags>
<techHediffsChance>0.0</techHediffsChance>
<initialWillRange>2~4</initialWillRange>
<initialResistanceRange>28~44</initialResistanceRange>
</PawnKindDef>
<PawnKindDef>
<defName>rjw_genes_incubus</defName>
<label>succubus</label>
<combatPower>50</combatPower>
<race>Human</race>
<xenotypeSet>
<xenotypeChances>
<rjw_genes_incubus>999</rjw_genes_incubus>
</xenotypeChances>
</xenotypeSet>
<acceptArrestChanceFactor>0.5</acceptArrestChanceFactor>
<useFactionXenotypes>false</useFactionXenotypes>
<minGenerationAge>18</minGenerationAge>
<maxGenerationAge>27</maxGenerationAge>
<itemQuality>Poor</itemQuality>
<backstoryCryptosleepCommonality>0.0</backstoryCryptosleepCommonality>
<isFighter>false</isFighter>
<gearHealthRange>
<min>0.3</min>
<max>0.9</max>
</gearHealthRange>
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
<apparelTags>
<li>Tribal</li>
</apparelTags>
<apparelMoney>
<min>0</min>
<max>0</max>
</apparelMoney>
<apparelAllowHeadgearChance>0</apparelAllowHeadgearChance>
<techHediffsMoney>
<min>0</min>
<max>0</max>
</techHediffsMoney>
<techHediffsTags>
<li>Poor</li>
</techHediffsTags>
<techHediffsChance>0.0</techHediffsChance>
<initialWillRange>2~4</initialWillRange>
<initialResistanceRange>28~44</initialResistanceRange>
</PawnKindDef>
</Defs>

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<RJW_Genes.QueenWorkerMappingDef>
<!-- Important: this default defName cannot be renamed! It is a protected keyword.-->
<!-- Changing the queenXenotype-Name will also throw an error.-->
<!-- But you can change the workerGenes list.-->
<defName>rjw_genes_default_worker_genes</defName>
<queenXenotype>default</queenXenotype>
<workerGenes>
<li>StrongStomach</li>
<li MayRequire="sarg.alphagenes" >AG_FasterAging</li>
<li>PsychicAbility_Dull</li>
<li>FireTerror</li>
<li>Sterile</li>
<li>AptitudeTerrible_Intellectual</li>
<li>rjw_genes_featureless_chest</li>
<li>rjw_genes_worker</li>
<li>rjw_genes_zealous_loyalty</li>
</workerGenes>
</RJW_Genes.QueenWorkerMappingDef>
<RJW_Genes.QueenWorkerMappingDef>
<defName>rjw_genes_halamyr_queen_worker_mapping</defName>
<queenXenotype>rjw_genes_halamyr_queen_xenotype</queenXenotype>
<workerGenes>
<li MayRequire="sarg.alphagenes" >AG_SmallerBodySize</li>
<li>StrongStomach</li>
<li MayRequire="sarg.alphagenes" >AG_EfficientMandibles</li>
<li MayRequire="sarg.alphagenes" >AG_FasterAging</li>
<li>PsychicAbility_Dull</li>
<li>FireTerror</li>
<li>Sterile</li>
<li MayRequire="sarg.alphagenes" >AG_FormicAntennas</li>
<li>Skin_DeepRed</li>
<li>AptitudeTerrible_Intellectual</li>
<li>rjw_genes_featureless_chest</li>
<li>rjw_genes_worker</li>
<li>rjw_genes_zealous_loyalty</li>
</workerGenes>
</RJW_Genes.QueenWorkerMappingDef>
</Defs>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<RJW_BGS.RaceGeneDef Name="Insect_base" Abstract="True">
<defName>Insect_base</defName>
<genes>
<li>
<defName>AG_InsectBlood</defName>
<chance>0.5</chance>
</li>
<li>
<defName>rjw_genes_ovipositor_genitalia</defName>
<chance>0.5</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef Name="Slime_base" Abstract="True">
<defName>Slime_base</defName>
<genes>
<li>
<defName>AG_SlimeBlood</defName>
<chance>0.5</chance>
</li>
<li>
<defName>rjw_genes_slime_genitalia</defName>
<chance>0.5</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
</Defs>

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<RJW_BGS.RaceGeneDef Name = "Canine">
<defName>Canine</defName>
<raceGroups>
<li>Canine_Group</li>
<li>CanineAnimal</li>
<li>CanineSingleGenderAnimal</li>
<li>CanineSkinAnimal</li>
</raceGroups>
<genes>
<li>
<defName>Ears_Floppy</defName>
<chance>0.75</chance>
</li>
<li>
<defName>Tail_Furry</defName>
<chance>0.2</chance>
</li>
<li>
<defName>Furskin</defName>
<chance>0.5</chance>
</li>
<li>
<defName>rjw_genes_canine_genitalia</defName>
<chance>0.4</chance>
</li>
<li>
<defName>ViolenceDisabled</defName>
<chance>0.05</chance>
</li>
<li>
<defName>PsychicBonding</defName>
<chance>0.05</chance>
</li>
<li>
<defName>Mood_Sanguine</defName>
<chance>0.1</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef>
<defName>Insect</defName>
<raceGroups>
<li>Insect_Group</li>
<li>ArthropodOvipositorAnimal</li>
<li>ArthropodOvipositorHornyAnimal</li>
</raceGroups>
<genes>
<li>
<defName>Beauty_Ugly</defName>
<chance>0.5</chance>
</li>
<li>
<defName>Immunity_Strong</defName>
<chance>0.6</chance>
</li>
<li>
<defName>ToxicEnvironmentResistance_Partial</defName>
<chance>0.4</chance>
</li>
<li>
<defName>rjw_genes_ovipositor_genitalia</defName>
<chance>0.15</chance>
</li>
<li>
<defName>rjw_genes_insectincubator</defName>
<chance>0.1</chance>
</li>
<li>
<defName>rjw_genes_insectbreeder</defName>
<chance>0.1</chance>
</li>
<li>
<defName>Body_Thin</defName>
<chance>0.3</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef>
<defName>Feline</defName>
<raceGroups>
<li>Feline_Group</li>
<li>FelineAnimal</li>
<li>FelineHornyAnimal</li>
<li>FelineSingleGenderAnimal</li>
<li>AA_SandProwlerAnimal</li>
</raceGroups>
<genes>
<li>
<defName>Tail_Furry</defName>
<chance>0.2</chance>
</li>
<li>
<defName>Furskin</defName>
<chance>0.5</chance>
</li>
<li>
<defName>Ears_Cat</defName>
<chance>0.9</chance>
</li>
<li>
<defName>PsychicBonding</defName>
<chance>0.05</chance>
</li>
<li>
<defName>Sleepy</defName>
<chance>0.25</chance>
</li>
<li>
<defName>DarkVision</defName>
<chance>0.25</chance>
</li>
<li>
<defName>rjw_genes_feline_genitalia</defName>
<chance>0.25</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef>
<defName>Equine</defName>
<raceGroups>
<li>Equine_Group</li>
<li>HorseAnimal</li>
</raceGroups>
<genes>
<li>
<defName>Furskin</defName>
<chance>0.2</chance>
</li>
<li>
<defName>rjw_genes_equine_genitalia</defName>
<chance>0.25</chance>
</li>
<li>
<defName>MoveSpeed_Quick</defName>
<chance>0.4</chance>
</li>
<li>
<defName>MoveSpeed_VeryQuick</defName>
<chance>0.1</chance>
</li>
<li>
<defName>rjw_genes_much_cum</defName>
<chance>0.3</chance>
</li>
<li>
<defName>rjw_genes_very_much_cum</defName>
<chance>0.05</chance>
</li>
<li>
<defName>Body_Hulk</defName>
<chance>0.4</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef>
<defName>Dragon</defName>
<raceGroups>
<li>Dragon_Group</li>
<li>ThrumboAnimal</li>
<li>DragonAnimal</li>
<li>DragonSingleGenderAnimal</li>
</raceGroups>
<genes>
<li>
<defName>Unstoppable</defName>
<chance>0.25</chance>
</li>
<li>
<defName>Headbone_CenterHorn</defName>
<chance>0.9</chance>
</li>
<li>
<defName>VoiceRoar</defName>
<chance>0.6</chance>
</li>
<li>
<defName>MaxTemp_SmallIncrease</defName>
<chance>0.7</chance>
</li>
<li>
<defName>MaxTemp_LargeIncrease</defName>
<chance>0.1</chance>
</li>
<li>
<defName>rjw_genes_dragon_genitalia</defName>
<chance>0.6</chance>
</li>
<li>
<defName>FireResistant</defName>
<chance>0.15</chance>
</li>
<li>
<defName>rjw_genes_much_cum</defName>
<chance>0.3</chance>
</li>
<li>
<defName>rjw_genes_very_much_cum</defName>
<chance>0.05</chance>
</li>
<li>
<defName>Body_Hulk</defName>
<chance>0.7</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef>
<defName>Rodent</defName>
<raceGroups>
<li>Rodent_Group</li>
<li>RodentAnimal</li>
<li>RodentSingleGenderAnimal</li>
<li>DragonSingleGenderAnimal</li>
</raceGroups>
<genes>
<li>
<defName>Furskin</defName>
<chance>0.2</chance>
</li>
<li>
<defName>Fertile</defName>
<chance>0.25</chance>
</li>
<li>
<defName>FastRunner</defName>
<chance>0.6</chance>
</li>
<li>
<defName>rjw_genes_small_genitalia</defName>
<chance>0.6</chance>
</li>
<li>
<defName>Immunity_Strong</defName>
<chance>0.4</chance>
</li>
<li>
<defName>ToxicEnvironmentResistance_Partial</defName>
<chance>0.1</chance>
</li>
<li>
<defName>Body_Thin</defName>
<chance>0.45</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef>
<defName>Racoon</defName>
<raceGroups>
<li>Raccon_Group</li>
<li>RaccoonAnimal</li>
</raceGroups>
<genes>
<li>
<defName>Furskin</defName>
<chance>0.25</chance>
</li>
<li>
<defName>Tail_Furry</defName>
<chance>0.25</chance>
</li>
<li>
<defName>StrongStomach</defName>
<chance>0.5</chance>
</li>
<li>
<defName>Immunity_Strong</defName>
<chance>0.2</chance>
</li>
<li>
<defName>ToxicEnvironmentResistance_Partial</defName>
<chance>0.1</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
</Defs>

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<!-- this is to disable the xml, remove it for your own xml
<RJW_BGS.RaceGeneDef>
<defName>Canine</defName>
defName can be anything you want, as long as it is unique
<raceGroups>
<li>Canine_Group</li>
<li>CanineAnimal</li> from racesupport
<li>CanineSingleGenderAnimal</li> from racesupport
<li>CanineSkinAnimal</li> from racesupport
</raceGroups>
RJW.Racegroupdef, all animals in the added raceGroups will be part of this group, RJW race support uses other defnames and overwrite vanilla ones, so add them to if you use it.
<raceNames>
<li> </li>
</raceNames>
For more direct control you can use raceNames directly. Use the defName of the animal. Can also use modded animals.
<pawnKindNames>
<li> </li>
</pawnKindNames>
For even more direct control you can use pawnKindNames.
<priority>0</priority>
You can use priority incase you have multiple racegenedefs with the same animal under the same list (racegroup, racenames or pawnKindNames). If not assigned the value is 0. Higher priority is chosen.
The RaceGeneDef for an animal will first be decided by if it is in the pawnkindNames, after that racenames and lastly racegroup,
so if there is for a wolf a RaceGeneDef with the canine group and a second which has wolf under raceNames it will always use the second one to determine
which genes can be inherited
<genes>
<li>
<defName>Ears_Floppy</defName>
<chance>0.5</chance>
</li>
<li>
<defName>rjw_genes_slime_genitalia</defName> You can add modded genes which will be ignored if the mod is inactive.
<chance>0.5</chance>
</li>
</genes>
For each gene you need to find the defname and give it a chance to appear. Each gene is rolled independently.
</RJW_BGS.RaceGeneDef>
this is to disable the xml, remove it for your own xml -->
<!-- this is to disable the xml, remove it for your own xml
You can use parents to have animals get specific genes in addition to the group. So warg children will have a chance for Ears_Floppy, rjw_genes_slime_genitalia and StrongStomach
<RJW_BGS.RaceGeneDef ParentName = "Canine">
<defName>Warg</defName>
<raceNames>
<li>Warg</li>
</raceNames>
<genes>
<li>
<defName>StrongStomach</defName>
<chance>0.5</chance>
</li>
</genes>
</RJW_BGS.RaceGeneDef>
this is to disable the xml, remove it for your own xml -->
</Defs>

View file

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<RulePackDef>
<defName>DomSuccubusTail_Tailjob_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [INITIATOR_nameDef] gave [RECIPIENT_nameDef] a tailjob.</li>
</rulesStrings>
</rulePack>
</RulePackDef>
<RulePackDef>
<defName>DomSuccubusTail_Vaginal_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [INITIATOR_nameDef] [INITIATOR_possessive] tail was vaginally inserted into [RECIPIENT_nameDef].</li>
</rulesStrings>
</rulePack>
</RulePackDef>
<RulePackDef>
<defName>DomSuccubusTail_Anal_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [INITIATOR_nameDef] [INITIATOR_possessive] tail was anally inserted into [RECIPIENT_nameDef].</li>
</rulesStrings>
</rulePack>
</RulePackDef>
<!--Top of tail opens up and evelops the penis-->
<RulePackDef>
<defName>DomSuccubusTail_Envelop_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [RECIPIENT_nameDef] dick was enveloped by [INITIATOR_nameDef] [INITIATOR_possessive] tail.</li>
</rulesStrings>
</rulePack>
</RulePackDef>
<RulePackDef>
<defName>SubSuccubusTail_Tailjob_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [RECIPIENT_nameDef] gave [INITIATOR_nameDef] a tailjob.</li>
</rulesStrings>
</rulePack>
</RulePackDef>
<RulePackDef>
<defName>SubSuccubusTail_Vaginal_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [RECIPIENT_nameDef] [RECIPIENT_possessive] tail was vaginally inserted into [INITIATOR_nameDef].</li>
</rulesStrings>
</rulePack>
</RulePackDef>
<RulePackDef>
<defName>SubSuccubusTail_Anal_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [RECIPIENT_nameDef] [RECIPIENT_possessive] tail was anally inserted into [INITIATOR_nameDef].</li>
</rulesStrings>
</rulePack>
</RulePackDef>
<!--Top of tail opens up and evelops the penis-->
<RulePackDef>
<defName>SubSuccubusTail_Envelop_RP</defName>
<rulePack>
<rulesStrings>
<li>sent-> [INITIATOR_nameDef] dick was enveloped by [RECIPIENT_nameDef] [RECIPIENT_possessive] tail.</li>
</rulesStrings>
</rulePack>
</RulePackDef>
</Defs>

View file

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ScenarioDef>
<defName>rjw_genes_scenario_halamyr_hive</defName>
<label>Halamyr Hive</label>
<description>A young queen set out to build a new hive. After a long path, a suitable place is found to generate new offspring. DEVNOTE: Try to choose a high-food biome to keep up with the Hive!</description>
<scenario>
<summary>A Halamyr queen set out to build a new hive.</summary>
<playerFaction>
<def>PlayerFaction</def>
<factionDef>PlayerTribe</factionDef>
</playerFaction>
<parts>
<!-- Config pages -->
<li Class="ScenPart_ConfigPage_ConfigureStartingPawns_Xenotypes">
<def>ConfigurePawnsXenotypes</def>
<pawnChoiceCount>4</pawnChoiceCount>
<customSummary>Start with a set of Halamyr Xenotypes and one other colonist of any age.</customSummary>
<xenotypeCounts>
<li>
<xenotype>rjw_genes_halamyr_queen_xenotype</xenotype>
<count>1</count>
<description>non-baby halamyr queen</description>
<requiredAtStart>true</requiredAtStart>
<allowedDevelopmentalStages>Adult</allowedDevelopmentalStages>
</li>
<li>
<xenotype>rjw_genes_halamyr_hiveguard_xenotype</xenotype>
<count>1</count>
<description>non-baby halamyr hiveguard</description>
<requiredAtStart>true</requiredAtStart>
<allowedDevelopmentalStages>Adult</allowedDevelopmentalStages>
</li>
<li>
<xenotype>rjw_genes_halamyr_breeder_xenotype</xenotype>
<count>1</count>
<description>adulthalamyr breeder</description>
<requiredAtStart>true</requiredAtStart>
<allowedDevelopmentalStages>Adult</allowedDevelopmentalStages>
</li>
<li>
<xenotype>Baseliner</xenotype>
<count>2</count>
</li>
</xenotypeCounts>
</li>
<!-- Player starting stuff spawn method-->
<li Class="ScenPart_PlayerPawnsArriveMethod">
<def>PlayerPawnsArriveMethod</def>
<method>Standing</method>
</li>
<!-- Player pawns modifiers -->
<li Class="ScenPart_ForcedHediff">
<def>ForcedHediff</def>
<visible>false</visible>
<context>PlayerStarter</context>
<chance>0.5</chance>
<hediff>Malnutrition</hediff>
<severityRange>0.1~0.2</severityRange>
</li>
<li Class="ScenPart_SetNeedLevel">
<def>SetNeedLevel</def>
<visible>false</visible>
<context>PlayerStarter</context>
<chance>1.0</chance>
<need>Food</need>
<levelRange>0.3~0.8</levelRange>
</li>
<!-- Player starting things -->
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>Silver</thingDef>
<count>300</count>
</li>
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>Pemmican</thingDef>
<count>350</count>
</li>
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>InsectJelly</thingDef>
<count>300</count>
</li>
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>MedicineHerbal</thingDef>
<count>30</count>
</li>
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>MeleeWeapon_Club</thingDef>
<stuff>WoodLog</stuff>
</li>
<li Class="ScenPart_StartingAnimal">
<def>StartingAnimal</def>
<animalKind>Spelopede</animalKind>
<count>2</count>
</li>
<li Class="ScenPart_StartingAnimal">
<def>StartingAnimal</def>
<animalKind>Megascarab</animalKind>
<count>3</count>
<bondToRandomPlayerPawnChance>1.0</bondToRandomPlayerPawnChance>
</li>
<li Class="ScenPart_StartingAnimal">
<def>StartingAnimal</def>
<animalKind>Megaspider</animalKind>
<count>1</count>
</li>
<!-- Scatter some things near player start -->
<li Class="ScenPart_ScatterThingsNearPlayerStart">
<def>ScatterThingsNearPlayerStart</def>
<thingDef>WoodLog</thingDef>
<count>500</count>
</li>
<li Class="ScenPart_ScatterThingsNearPlayerStart">
<def>ScatterThingsNearPlayerStart</def>
<thingDef>Jade</thingDef>
<count>100</count>
</li>
<li Class="ScenPart_ScatterThingsNearPlayerStart">
<def>ScatterThingsNearPlayerStart</def>
<thingDef>Pemmican</thingDef>
<count>150</count>
</li>
<li Class="ScenPart_ScatterThingsNearPlayerStart">
<def>ScatterThingsNearPlayerStart</def>
<thingDef>Steel</thingDef>
<count>200</count>
</li>
<!-- Game start dialog -->
<li Class="ScenPart_GameStartDialog">
<def>GameStartDialog</def>
<text>After a long journey, this is it: \n\nThis is the right place to start the new hive. Spin in your breeders, build your defenses and start mating.\n\nMake this a place worthy for a queen.</text>
<closeSound>GameStartSting</closeSound>
</li>
</parts>
</scenario>
</ScenarioDef>
</Defs>

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!--If below low try get some, if critical also consider rape, also a chance to do bestiality
First try and obtain by normal sex, then try to eat gathercum (sexperience)
If these fail try rape and a small chance for bestiality
-->
<ThinkTreeDef>
<defName>SuccubusGetLifeForce</defName>
<insertTag>Humanlike_PostMain</insertTag>
<insertPriority>14</insertPriority>
<thinkRoot Class="ThinkNode_Priority">
<subNodes>
<li Class="RJW_Genes.ThinkNode_ConditionalLowLifeForce">
<subNodes>
<li Class="rjw.ThinkNode_ConditionalSexChecks">
<subNodes>
<li Class="JobGiver_DoLovin"/>
<li Class="rjw.JobGiver_JoininBed"/>
<li Class="rjw.JobGiver_ComfortPrisonerRape" />
<li Class="RJW_Genes.JobGiver_GetLifeForce"/>
<li Class="rjw.ThinkNode_ConditionalCanRapeCP">
<subNodes>
<li Class="RJW_Genes.ThinkNode_ConditionalCritcalLifeForce">
<subNodes>
<!--Maybe make a custom chance per hour to determine if pawn would consider rape-->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbHours>8</mtbHours>
<subNodes>
<li Class="rjw.JobGiver_RandomRape" />
</subNodes>
</li>
<li Class="rjw.ThinkNode_ConditionalBestiality">
<subNodes>
<li Class="rjw.ThinkNode_ChancePerHour_Bestiality">
<subNodes>
<li Class="rjw.JobGiver_Bestiality" />
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</thinkRoot>
</ThinkTreeDef>
</Defs>

View file

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThoughtDef>
<!-- For Challenged Queens -->
<defName>rjw_genes_rival_queen_mood</defName>
<workerClass>RJW_Genes.Thoughtworker_RivalQueen_Mood</workerClass>
<validWhileDespawned>false</validWhileDespawned>
<stages>
<li>
<label>Rivaled</label>
<description>There is another queen nearby!</description>
<baseMoodEffect>-70</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<!-- For Challenged Queens -->
<defName>rjw_genes_rival_queen_social</defName>
<thoughtClass>Thought_SituationalSocial</thoughtClass>
<workerClass>RJW_Genes.Thoughtworker_RivalQueen_Social</workerClass>
<stages>
<li>
<label>rivals me</label>
<description>{0} threatens my dominion. {0} must be perished.</description>
<baseOpinionOffset>-130</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<defName>rjw_genes_queen_despises_workers_social</defName>
<thoughtClass>Thought_SituationalSocial</thoughtClass>
<workerClass>RJW_Genes.ThoughtWorker_WorkerDespised_Social</workerClass>
<stages>
<li>
<label>underling</label>
<description>those workers are not even worth a glance.</description>
<baseOpinionOffset>-20</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<!-- For Loyal Pawns -->
<defName>rjw_genes_multiple_queens_mood</defName>
<workerClass>RJW_Genes.Thoughtworker_MultipleQueens_Mood</workerClass>
<validWhileDespawned>false</validWhileDespawned>
<stages>
<li>
<label>Confused Servitude</label>
<description>I have too many queens around me!</description>
<baseMoodEffect>-30</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<!-- For Loyal Pawns -->
<defName>rjw_genes_queen_loyalty_social</defName>
<thoughtClass>Thought_SituationalSocial</thoughtClass>
<workerClass>RJW_Genes.Thoughtworker_QueenPresent_Social</workerClass>
<stages>
<li>
<label>Worship</label>
<description>{0} is my queen. My one and only reason to live.</description>
<baseOpinionOffset>+80</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<!-- For Loyal Pawns -->
<defName>rjw_genes_no_queen_mood</defName>
<workerClass>RJW_Genes.Thoughtworker_QueenAbsent_Mood</workerClass>
<validWhileDespawned>false</validWhileDespawned>
<stages>
<li>
<label>Missing Queen</label>
<description>We do not have a queen! How are we suppossed to face the cruelties of the world without a shepherd?</description>
<baseMoodEffect>-20</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<!-- For Loyal Pawns -->
<defName>rjw_genes_queen_present_mood</defName>
<workerClass>RJW_Genes.Thoughtworker_QueenPresent_Mood</workerClass>
<validWhileDespawned>false</validWhileDespawned>
<stages>
<li>
<label>Queen Present</label>
<description>Our queen is so wonderful.</description>
<baseMoodEffect>+10</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
</Defs>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThoughtDef>
<defName>rjw_genes_cock_eaten</defName>
<thoughtClass>Thought_Memory</thoughtClass>
<durationDays>30.0</durationDays>
<stackLimit>100</stackLimit>
<stackedEffectMultiplier>0.4</stackedEffectMultiplier>
<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>
<baseMoodEffect>-30</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<defName>rjw_genes_seduced</defName>
<thoughtClass>Thought_Memory</thoughtClass>
<durationDays>10.0</durationDays>
<stackLimit>100</stackLimit>
<stackedEffectMultiplier>0.4</stackedEffectMultiplier>
<stages>
<li>
<label>seduced</label>
<description>I was seduced into having sex. I regret what happened.</description>
<baseMoodEffect>-10</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<defName>rjw_genes_critical_fertilin</defName>
<workerClass>ThoughtWorker_Hediff</workerClass>
<hediff>rjw_genes_fertilin_craving</hediff>
<stages>
<li>
<label>fertilin craving</label>
<description>My bones ache. I really need fertilin.</description>
<baseMoodEffect>-25</baseMoodEffect>
</li>
<li>
<label>fertilin craving</label>
<description>This hurts bad and I can't stop thinking about sex. I would do anything for some cum.</description>
<baseMoodEffect>-40</baseMoodEffect>
</li>
<li>
<label>fertilin craving</label>
<description>Can't think. Sex. Sex. Must. Have. Cum.</description>
<baseMoodEffect>-55</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
</Defs>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThoughtDef>
<defName>rjw_genes_pheromone_carrier_nearby</defName>
<thoughtClass>Thought_SituationalSocial</thoughtClass>
<workerClass>RJW_Genes.ThoughtWorker_Aphrodisiac_Pheromones_Social</workerClass>
<stages>
<li>
<label>Pheromones</label>
<description>{0} has a special vibe, we should hang out more often.</description>
<baseOpinionOffset>+3</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
</Defs>

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<TipSetDef>
<defName>RJWGenesTips</defName>
<tips>
<li TKey="SuccubusArrival">Succubi and Incubi can spawn at a rare event when a horny pawn is sleeping alone in the night.</li>
<li TKey="CumazoneCockbite">Cumazones need to regularly bite of cocks. This hunger can be stilled by animals - but they will need much more this way!</li>
<li TKey="SuccubusDrain">Succubi drain Fertilin through sex. The drained pawn will give less Fertilin in consequent acts until they are recovered.</li>
<li TKey="IncubusDrain">Incubi 'tap' pawns they have sex with to gain fertilin. Incubi cannot gain further Fertilin this way until the pawn is fully recovered.</li>
<li TKey="XenotypeMaintenance">The Xenotypes added by RJW_Genes require a lot of human resources - have yourself a big colony or lots of prisoners before you keep their company!</li>
<li TKey="SuccubusCost">Succubi receive their fertilin from cum. Make sure to have enough juice around to keep them happy.</li>
<li TKey="CumeaterCumflation">The gene 'cumeater' allows you to drain cumflation by cunnilingus. ... Cool, huh?</li>
<li TKey="BestialityGeneInheritance">Some animals carry rare genes - you can try to breed them and create your own super-hybrids! (No warranty provided for cat girls or genetic waste)</li>
<li TKey="BestialityGeneSettings">The Settings for Animal-Gene Inheritance are distributed between RJW-Pregnancy-Settings and their own Mod-Options.</li>
</tips>
</TipSetDef>
</Defs>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>
<StatsReport_QueenCloseBy>queen in proximity</StatsReport_QueenCloseBy>
<StatsReport_QueenAbsent>queen absent</StatsReport_QueenAbsent>
<StatsReport_MultipleQueens>multiple queens present</StatsReport_MultipleQueens>
</LanguageData>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>
<rjw_genes_queenbirth_letter_label>New Queen</rjw_genes_queenbirth_letter_label>
<rjw_genes_queenbirth_letter_description>A new Queen was born! Make sure to adress inheritance before the new queen reaches adolesence.</rjw_genes_queenbirth_letter_description>
</LanguageData>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>
<!-- Fertilin strings -->
<AbilityDisabledNoFertilinGene>Pawn doesn't have required fertilin gene.</AbilityDisabledNoFertilinGene>
<AbilityDisabledNoFertilin>Not enough fertilin to cast.</AbilityDisabledNoFertilin>
<MentalBreakNoFertilin>This happened because of low fertilin.</MentalBreakNoFertilin>
<AlertLowFertilin>Low fertilin</AlertLowFertilin>
<AlertLowFertilinDesc>A colonist has low fertilin. At this point they are becoming desperate enough to consider rape and bestiality to obtain fertilin (if they didn't already). At zero fertilin they will lose all sense and start raping randomly</AlertLowFertilinDesc>
<!--Succubus Events-->
<SuccubusLeaving>{0} has fed enough on your colonists and will now leave.</SuccubusLeaving>
<rjw_genes_sexdemon_visit_incident_label>Dirty dreams</rjw_genes_sexdemon_visit_incident_label>
<rjw_genes_sexdemon_visit_incident_description>The dirty dreams of your colonists have attracted succubi.\n\nThey will hang around for a couple of days trying to seduce your colonists. They may decide to join your colony, if they are impressed by your colonists's sexual prowess.</rjw_genes_sexdemon_visit_incident_description>
<rjw_genes_succubus_joins_letter_label>Guest Joins</rjw_genes_succubus_joins_letter_label>
<rjw_genes_succubus_joins_letter_description>{0} enjoys it here and has decided to stay.</rjw_genes_succubus_joins_letter_description>
</LanguageData>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThoughtDef[defName="FeelingBroken"]</xpath>
<value>
<nullifyingGenes>
<li>rjw_genes_unbreakable</li>
</nullifyingGenes>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThoughtDef[defName="GotRaped"]</xpath>
<value>
<nullifyingGenes>
<li>rjw_genes_unbreakable</li>
</nullifyingGenes>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThoughtDef[defName="GotAnalRaped"]</xpath>
<value>
<nullifyingGenes>
<li>rjw_genes_unbreakable</li>
</nullifyingGenes>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThoughtDef[defName="GotAnalRapedByFemale"]</xpath>
<value>
<nullifyingGenes>
<li>rjw_genes_unbreakable</li>
</nullifyingGenes>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThoughtDef[defName="GotRapedUnconscious"]</xpath>
<value>
<nullifyingGenes>
<li>rjw_genes_unbreakable</li>
</nullifyingGenes>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThoughtDef[defName="HateMyRapist"]</xpath>
<value>
<nullifyingGenes>
<li>rjw_genes_unbreakable</li>
</nullifyingGenes>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThoughtDef[defName="AllowedMeToGetRaped"]</xpath>
<value>
<nullifyingGenes>
<li>rjw_genes_unbreakable</li>
</nullifyingGenes>
</value>
</Operation>
</Patch>

View file

@ -0,0 +1,36 @@
<?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 provided by Infi over Discord.
-->
<Operation Class="PatchOperationConditional">
<xpath>Defs/ThingDef[defName="UsedCondom"]/ingestible/outcomeDoers</xpath>
<nomatch Class="PatchOperationAdd">
<xpath>/Defs/ThingDef[defName="UsedCondom"]/ingestible</xpath>
<value>
<outcomeDoers>
<li Class="RJW_Genes.IngestionOutcomeDoer_LifeForceOffset">
<FertilinPerUnit>1</FertilinPerUnit>
</li>
</outcomeDoers>
</value>
</nomatch>
<match Class="PatchOperationAdd">
<xpath>Defs/ThingDef[defName="UsedCondom"]/ingestible/outcomeDoers</xpath>
<value>
<li Class="RJW_Genes.IngestionOutcomeDoer_LifeForceOffset">
<FertilinPerUnit>1</FertilinPerUnit>
</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<!-- Copied from Vanilla BingingDrug. live selfish till rape someone. In the future add others ways to obtain lifeforce. -->
<Operation Class="PatchOperationAdd">
<xpath>Defs/ThinkTreeDef[defName="MentalStateCritical"]/thinkRoot[@Class="ThinkNode_Tagger"]/subNodes</xpath>
<value>
<li Class="ThinkNode_ConditionalMentalState">
<state>rjw_genes_lifeforce_randomrape</state>
<subNodes>
<li Class="ThinkNode_ConditionalNeedPercentageAbove">
<need>Rest</need>
<threshold>0.05</threshold>
<invert>true</invert>
<subNodes>
<li Class="JobGiver_GetRest"/>
</subNodes>
</li>
<li Class="ThinkNode_PrioritySorter">
<minPriority>0.5</minPriority>
<subNodes>
<li Class="JobGiver_GetFood"/>
<li Class="ThinkNode_Priority_GetJoy">
<subNodes>
<li Class="JobGiver_GetJoy"/>
</subNodes>
</li>
</subNodes>
</li>
<li Class="rjw.JobGiver_RandomRape"/>
<li Class="JobGiver_WanderColony" />
</subNodes>
</li>
</value>
</Operation>
</Patch>

View file

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Neanderthal"]/genes</xpath>
<value>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_loose_female_genitalia</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Pigskin"]/genes</xpath>
<value>
<li>rjw_genes_much_cum</li>
<li>rjw_genes_zoophile</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Waster"]/genes</xpath>
<value>
<li>rjw_genes_insectbreeder</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Yttakin"]/genes</xpath>
<value>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_loose_female_genitalia</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Highmate"]/genes</xpath>
<value>
<li>rjw_genes_hypersexual</li>
</value>
</Operation>
<!-- Conditional Patch, only add these Genes for players with Licentia
I tried "mayRequire" but that cannot be put so fine-grained into the <li> -->
<Operation Class="PatchOperationFindMod">
<mods>
<li>LustLicentia.RJWLabs</li>
</mods>
<match Class="PatchOperationAddModExtension">
<xpath>Defs/XenotypeDef[defName="Highmate"]/genes</xpath>
<value>
<li>rjw_genes_likes_cumflation</li>
</value>
</match>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Genie"]/genes</xpath>
<value>
<li>rjw_genes_mechbreeder</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Sanguophage"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
</value>
</Operation>
<Operation Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Impid"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_small_breasts</li>
<li>rjw_genes_small_male_genitalia</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
</value>
</Operation>
</Patch>

View file

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationSequence">
<operations>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Fleetkind"]/genes</xpath>
<value>
<li>rjw_genes_slime_genitalia</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Helixien"]/genes</xpath>
<value>
<li>rjw_genes_slime_genitalia</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Taukai"]/genes</xpath>
<value>
<li>rjw_genes_sexual_mytosis</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_MindDevourer"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_sex_age_drain</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Lapis"]/genes</xpath>
<value>
<li>rjw_genes_big_breasts</li>
<li>rjw_genes_no_cum</li>
<li>rjw_genes_big_male_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Efreet"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
<li>rjw_genes_small_breasts</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Drakonori"]/genes</xpath>
<value>
<li>rjw_genes_dragon_genitalia</li>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_aphrodisiac_pheromones</li>
<li>rjw_genes_big_breasts</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Animusen"]/genes</xpath>
<value>
<li>rjw_genes_canine_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Alpha Genes</li>
</mods>
<match Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Sanguophage</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="AG_Malachai"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
</value>
</match>
</match>
</li>
</operations>
</Operation>
</Patch>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Biotech Nyaron</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Nyaron"]/genes</xpath>
<value>
<li>rjw_genes_feline_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Erin's Auronya</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="ERN_Auronya"]/genes</xpath>
<value>
<li>rjw_genes_feline_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Erin's Shisune</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="ERN_Shisune"]/genes</xpath>
<value>
<li>rjw_genes_canine_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Kijin Race 3.0</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="KijinXenotype"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>NaraiXenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Narai"]/genes</xpath>
<value>
<li>rjw_genes_canine_genitalia</li>
<li>rjw_genes_zoophile</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Biotech Nyaron</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="Nyaron"]/genes</xpath>
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_feline_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Papou Race : emotional birds</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="papago"]/genes</xpath>
<value>
<li>rjw_genes_orgasm_rush</li>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Roo's Faun Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="RBSF_Faun"]/genes</xpath>
<value>
<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>
</Patch>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Roo's Satyr Xenotype</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="RBSF_Satyr"]/genes</xpath>
<value>
<li>rjw_genes_aphrodisiac_pheromones</li>
<li>rjw_genes_much_cum</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Saurid</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRESaurids_Saurid"]/genes</xpath>
<value>
<li>rjw_genes_dragon_genitalia</li>
</value>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationSequence">
<operations>
<li Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Phytokin</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRE_Poluxkin"]/genes</xpath>
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
<li>rjw_genes_bisexual</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Phytokin</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRE_Gauranlenkin"]/genes</xpath>
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
<li>rjw_genes_bisexual</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Phytokin</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRE_Animakin"]/genes</xpath>
<value>
<li>rjw_genes_tight_female_genitalia</li>
<li>rjw_genes_tight_anus</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
<li>rjw_genes_bisexual</li>
</value>
</match>
</li>
</operations>
</Operation>
</Patch>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationSequence">
<operations>
<li Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Sanguophage</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRE_Bruxa"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Sanguophage</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRE_Ekkimian"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Vanilla Races Expanded - Sanguophage</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="VRE_Strigoi"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
</value>
</match>
</li>
</operations>
</Operation>
</Patch>

View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationSequence">
<operations>
<li Class="PatchOperationFindMod">
<mods>
<li>[LTS]Xenotech</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Nyankind"]/genes</xpath>
<value>
<li>rjw_genes_feline_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>[LTS]Xenotech</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Growler"]/genes</xpath>
<value>
<li>rjw_genes_canine_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>[LTS]Xenotech</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Elfin"]/genes</xpath>
<value>
<li>rjw_genes_small_male_genitalia</li>
<li>rjw_genes_tight_female_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>[LTS]Xenotech</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Ork"]/genes</xpath>
<value>
<li>rjw_genes_big_male_genitalia</li>
<li>rjw_genes_loose_female_genitalia</li>
</value>
</match>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>[LTS]Xenotech</li>
</mods>
<match Class="PatchOperationAdd">
<xpath>Defs/XenotypeDef[defName="LTS_Lilime"]/genes</xpath>
<value>
<li>rjw_genes_demonic_genitalia</li>
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
<li MayRequire="rjw.sexperience">AptitudeRemarkable_Sex</li>
</value>
</match>
</li>
</operations>
</Operation>
</Patch>

47
1.4/README.md Normal file
View file

@ -0,0 +1,47 @@
# RJW-Genes [NSFW]
This mod adds genes related and based on RJW to Rimworld.
## Current Features
- Different Genitalia Types
- Genitalia Size Scaling
- Extra Genitalia (and a Futa Attempt)
- Most RJW Traits, Cumflation Immunity, Elasticity
- Cum-Amount Changes, Transfer Nutrition Boosts
- Mech Breeding / Insect Breeding Additions & Orgasmic Mytosis
- Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance)
- Succubi, Incubi & Cumazones that utilize Fertilin, similar to Hemogen
- Insect-Caste Mechanics, with Queens, Drones and Workers and a conditional reproduction
- Patches for some popular / common Xenotypes from other Mods.
See [planned things](TODOS.md) and feel free to contribute.
With the Human-Animal-Gene Inheritance we have a lot of XML that you can contribute!
We have a [template](./Common/Defs/RaceGeneDefs/RaceGeneDefs_template.xml) and you can add animals and/or genes from mods there (Racegroups are base-rjw).
If you want to make your own Hive-Xenotypes, please see the required XMLs at [Changelog - 1.2](./CHANGELOG.md).
## Bugs?
I never wrote a bug in my life but if you found one please open an issue or find me somewhere on the RJW Discord.
Please consider looking at [the known bugs](./KNOWN_BUGS.md)
## Genes vs. Races
I currently don't use Races after Biotech was introduced.
One of the main motivations was to have genes being added to the xenotypes that other mods and the base game add, e.g. adding demonic penis for impids.
Some HAR races change sex-ages and behave unfriendly with this mod.
You can make reports about that, but I might not fix it.
## Load Order, Dependencies and Conflicts
Please load this after any mod adding genes, and after the used RJW-Mods (Licentia, Sexperience).
**Conflicts:**
1. Should not be used with the original RJW_Animal_Gene_Inheritance anymore.
2. There was an issue with other "Male-Only / Female-Only" Mods --- for which we provide our own Genes now.
3. CAI5000 will not crash, but will make *Seduce*-Ability fail. I think same goes for Combat Extended.
4. Alpha Genes "Female / Male Only" Genes might overwrite later Genitalia-Changes and should be avoided in combination with RJW-Genes features.
5. rjw.sexperience.cumgenes removes fertilin-gain from Cum item - I hope I addressed this by adding a load order but keep me posted (Issue #41)
6. [Consistent Gene Inheritance](https://steamcommunity.com/sharedfiles/filedetails/?id=2881479142&searchtext=Consistent+Gene+Inheritance) alters inheritance - it messes a bit with the Insect-Caste Logic. Your game will not crash, but the insect xenotypes will be a bit messed up.

View file

@ -0,0 +1,8 @@
namespace RJW_BGS
{
public class BestialityGeneInheritanceDef
{
public string defName;
public float chance = 1f;
}
}

View file

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using rjw;
namespace RJW_BGS
{
public class RaceGeneDef : Def
{
public int priority;
public string raceGroup; //keeping this for backwards compatibility
public List<string> raceGroups; //racegroup, but in list form so multiple can be entered, preference to use this over racegroup
public List<string> raceNames;
public List<string> pawnKindNames;
public List<BestialityGeneInheritanceDef> genes;
public string hybridName;
}
}

View file

@ -0,0 +1,105 @@
using rjw;
using System;
using System.Collections.Generic;
using System.Linq;
using Verse;
namespace RJW_BGS
{
public class RaceGeneDef_Helper
{
//code based on racegroupdefinternal which has a similar function
public static RaceGeneDef GetRaceGeneDefInternal(Pawn pawn)
{
List<RaceGeneDef> Valids = ValidRaceGeneDefs(pawn);
if (Valids.Count > 0)
{
RaceGeneDef result = Valids.MaxBy(r => r.priority);
return result;
}
return null;
}
public static List<RaceGeneDef> ValidRaceGeneDefs(Pawn pawn)
{
PawnKindDef kindDef = pawn.kindDef;
if (kindDef == null)
{
ModLog.Warning($"Error looking up PawnKindDef for {pawn.Name} - Could not lookup Animal Inheritance Genes");
return null;
}
string raceName = kindDef.race.defName;
string pawnKindName = kindDef.defName;
//Wild animals have no name, so we will use pawnkindname instead
string pawnName = pawn.Name != null ? pawn.Name.ToStringFull : pawnKindName;
PawnData pawnData = SaveStorage.DataStore.GetPawnData(pawn);
RaceGroupDef raceGroupDef = pawnData.RaceSupportDef;
if (RJW_BGSSettings.rjw_bgs_detailed_debug)
ModLog.Message($"Looking up Animal-Inheritable Genes for {pawnName} with KindDef {kindDef.defName},RaceName {raceName}, PawnKind {pawnKindName} and RaceGroup {raceGroupDef.defName}");
IEnumerable<RaceGeneDef> allDefs = DefDatabase<RaceGeneDef>.AllDefs;
List<RaceGeneDef> pawnKindDefs = allDefs.Where(delegate (RaceGeneDef group)
{
List<string> pawnKindNames = group.pawnKindNames;
return pawnKindNames != null && pawnKindNames.Contains(pawnKindName);
}).ToList<RaceGeneDef>();
if (pawnKindDefs.Count() > 0)
{
DebugPrintRaceGeneDefs("PawnKindDefs", pawnName,pawnKindDefs);
return pawnKindDefs;
}
else if (RJW_BGSSettings.rjw_bgs_detailed_debug)
ModLog.Message($"Did not find PawnKindDefs for {pawnName}");
List<RaceGeneDef> raceKindDefs = allDefs.Where(delegate (RaceGeneDef group)
{
List<string> raceNames = group.raceNames;
return raceNames != null && raceNames.Contains(raceName);
}).ToList<RaceGeneDef>();
if (raceKindDefs.Count() > 0)
{
DebugPrintRaceGeneDefs("PawnKindDefs", pawnName, raceKindDefs);
return raceKindDefs;
}
else if (RJW_BGSSettings.rjw_bgs_detailed_debug)
ModLog.Message($"Did not find RaceKindDefs for {pawnName}");
List<RaceGeneDef> raceGroupDefs = new List<RaceGeneDef>();
if (raceGroupDef != null)
{
raceGroupDefs = allDefs.Where(delegate (RaceGeneDef group)
{
string raceGroupDefName = group.raceGroup;
List<string> list_raceGroupDefName = group.raceGroups;
return (raceGroupDefName != null && raceGroupDefName == raceGroupDef.defName)
|| (list_raceGroupDefName != null && list_raceGroupDefName.Contains(raceGroupDef.defName));
}).ToList<RaceGeneDef>();
}
if (raceGroupDefs.Count() > 0)
{
DebugPrintRaceGeneDefs("RaceKindDefs", pawnName, raceGroupDefs);
return raceGroupDefs;
}
else if (RJW_BGSSettings.rjw_bgs_detailed_debug)
ModLog.Message($"Did not find RaceGroupDefs for {pawnName}");
ModLog.Message($"Did not find any Genes inheritable for {pawnName}");
return new List<RaceGeneDef>();
}
private static void DebugPrintRaceGeneDefs(String header,String identifier,List<RaceGeneDef> defs)
{
if (RJW_BGSSettings.rjw_bgs_detailed_debug)
{
var defString = "[";
foreach (RaceGeneDef raceGeneDef in defs)
defString += $"({raceGeneDef.priority}:{raceGeneDef.defName} - {raceGeneDef.genes.Count} Genes)";
defString += "]";
ModLog.Message($"Found the following {header}-Genes for {identifier}: {defString}");
}
}
}
}

View file

@ -0,0 +1,160 @@
using System.Collections.Generic;
using Verse;
using RimWorld;
using rjw;
namespace RJW_BGS
{
public class InheritanceUtility
{
public static List<GeneDef> AnimalInheritedGenes(Pawn father, Pawn mother)
{
List<GeneDef> genelist = new List<GeneDef>();
//If Both are Humans, or Both are animals, do nothing & return empty GeneList
if (!mother.RaceProps.Humanlike && !father.RaceProps.Humanlike)
return genelist;
if (mother.RaceProps.Humanlike && father.RaceProps.Humanlike)
return genelist;
ModLog.Message($"Trigger an Animal-Gene-Inheritance for {father.Name} and {mother.Name}");
//One parent must be an animal and the other must be human, so only one needs to return
if (father != null && !father.RaceProps.Humanlike)
{
if (RJW_BGSSettings.rjw_bgs_detailed_debug)
ModLog.Message($"Father was found to be animal - looking up genes for {father.Name}");
return SelectGenes(father);
}
if (mother != null && !mother.RaceProps.Humanlike)
{
if (RJW_BGSSettings.rjw_bgs_detailed_debug)
ModLog.Message($"Mother was found to be animal - looking up genes for {mother.Name}");
return SelectGenes(mother);
}
return genelist;
}
/// <summary>
/// Looks up potential genes for an animal,
/// checks their chance and returns all 'triggered' genes.
/// </summary>
/// <param name="pawn">The animal for which to look up genes (Animals are Pawns in RW)</param>
/// <returns>The genes that will be inherited from this animal.</returns>
public static List<GeneDef> SelectGenes(Pawn pawn)
{
List<GeneDef> genelist = new List<GeneDef>();
RaceGeneDef raceGeneDef = RaceGeneDef_Helper.GetRaceGeneDefInternal(pawn);
if (raceGeneDef != null)
{
foreach (BestialityGeneInheritanceDef gene in raceGeneDef.genes)
{
if (gene.chance * RJW_BGSSettings.rjw_bgs_global_gene_chance >= Rand.Range(0.01f,1f))
{
genelist.Add(DefDatabase<GeneDef>.GetNamed(gene.defName));
}
}
}
if (RJW_BGSSettings.rjw_bgs_detailed_debug)
ModLog.Message($"From {raceGeneDef.genes.Count} possible genes in {raceGeneDef.defName}, {genelist.Count} were added by chance ({RJW_BGSSettings.rjw_bgs_global_gene_chance} chance multiplier from Settings).");
return genelist;
}
/// <summary>
/// Adds a list of Genes to the pawns existing GeneSet.
/// Whether it is added as a Xenogene or Endogene is configured in Mod-Settings.
/// </summary>
/// <param name="pawn">The pawn for which Genes will be added</param>
/// <param name="genes">The Genes to add (Endogene by default, Xenogene with Mod Settings)</param>
public static void AddGenes(Pawn pawn, List<GeneDef> genes)
{
foreach (GeneDef gene in genes)
{
pawn.genes.AddGene(gene, RJW_BGSSettings.rjw_bgs_animal_genes_as_xenogenes);
}
}
/// <summary>
/// Initiates a bestiality baby with genes if the baby does not exist earlier.
/// This is used to make rjw-egg-pregnancies work.
/// Related file: PatchRJWHediffInsect_Egg.cs
/// </summary>
/// <param name="mother">The mother of the baby.</param>
/// <param name="dad">The father of the baby.</param>
/// <param name="baby">The baby created in non-pregnancy-way (has 0 Genes yet)</param>
public static void NewGenes(Pawn mother, Pawn dad, Pawn baby)
{
if (!RJW_BGSSettings.rjw_bgs_enabled)
{
return;
}
ModLog.Message($"Triggering an New-Gene Animal-Gene-Inheritance for {baby.Name} ({dad.Name} + {mother.Name})");
if (baby.RaceProps.Humanlike)
{
if (baby.genes == null)
{
baby.genes = new Pawn_GeneTracker(baby);
}
//Remove the hair and skin genes pawns always start with, should get correct ones from human parent anyway.
for (int i = baby.genes.Endogenes.Count - 1; i >= 0; i--)
{
baby.genes.RemoveGene(baby.genes.Endogenes[i]);
}
List<GeneDef> genes = PregnancyUtility.GetInheritedGenes(dad, mother);
List<GeneDef> beastgenes = InheritanceUtility.AnimalInheritedGenes(dad, mother);
InheritanceUtility.AddGenes(baby, beastgenes);
InheritanceUtility.AddGenes(baby, genes);
if(baby.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin) == null)
{
AddSkinColor(mother, dad, baby);
}
}
}
public static void AddSkinColor(Pawn mother, Pawn father, Pawn baby)
{
if (mother != null && mother.genes != null)
{
GeneDef gene = mother.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin);
if (gene != null)
{
baby.genes.AddGene(gene, false);
}
}
else if (father != null && father.genes != null)
{
GeneDef gene = father.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin);
if (gene != null)
{
baby.genes.AddGene(gene, false);
}
}
else
{
Log.Message("Could not find skincolor of " + baby.Name + "'s parents, giving random skincolor.");
baby.genes.AddGene(PawnSkinColors.RandomSkinColorGene(baby), false);
}
}
/// <summary>
/// Used only for debugging, to see what you loaded and how it looks.
/// </summary>
private static void logAllFoundRaceGroupGenes()
{
foreach (RaceGroupDef def in DefDatabase<RaceGroupDef>.AllDefs)
{
Log.Message("defName = " + def.defName);
if (def.raceNames != null)
{
foreach (string race in def.raceNames)
{
Log.Message(race);
}
}
}
}
}
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HarmonyLib;
using RimWorld;
using Verse;
using rjw;
namespace RJW_BGS
{
[HarmonyPatch(typeof(Hediff_BasePregnancy), "Initialize")]
public static class Patch_RJW_BestialityPregnancyUtility
{
[HarmonyPostfix]
public static void AddGenes(Pawn mother, Pawn dad, ref Hediff_BasePregnancy __instance)
{
if (!RJW_BGSSettings.rjw_bgs_enabled)
{
return;
}
foreach (Pawn baby in __instance.babies)
{
if (baby.RaceProps.Humanlike)
{
if (baby.genes == null)
{
baby.genes = new Pawn_GeneTracker(baby);
}
//Remove the hair and skin genes pawns always start with, should get correct ones from human parent anyway.
for (int i = baby.genes.Endogenes.Count - 1; i >= 0; i--)
{
baby.genes.RemoveGene(baby.genes.Endogenes[i]);
}
List<GeneDef> humangenes = PregnancyUtility.GetInheritedGenes(dad, mother);
List<GeneDef> beastgenes = InheritanceUtility.AnimalInheritedGenes(dad, mother);
InheritanceUtility.AddGenes(baby, beastgenes);
InheritanceUtility.AddGenes(baby, humangenes);
// The mix-breed babies should be labelled hybrids
baby.genes.hybrid = true;
baby.genes.xenotypeName = "Hybrid";
}
}
}
}
}

View file

@ -0,0 +1,35 @@
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;
using HarmonyLib;
using rjw;
namespace RJW_BGS
{
[HarmonyPatch(typeof(Hediff_InsectEgg), "GiveBirth")]
public static class Patch_RJW_HediffInsect_Egg
{
[HarmonyTranspiler]
public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
{
MethodInfo newgenes = AccessTools.Method(typeof(InheritanceUtility), "NewGenes", null, null);
FieldInfo implanter = AccessTools.Field(typeof(Hediff_InsectEgg), "implanter");
FieldInfo father = AccessTools.Field(typeof(Hediff_InsectEgg), "father");
foreach (CodeInstruction instruction in instructions)
{
yield return instruction;
if (instruction.opcode == OpCodes.Call && instruction.operand.ToString() == "Void BabyPostBirth(Verse.Pawn, Verse.Pawn, Verse.Pawn)")
{
yield return new CodeInstruction(OpCodes.Ldloc_0, null);
yield return new CodeInstruction(OpCodes.Ldfld, implanter);
yield return new CodeInstruction(OpCodes.Ldarg_0, null);
yield return new CodeInstruction(OpCodes.Ldfld, father);
yield return new CodeInstruction(OpCodes.Ldloc_1, null);
yield return new CodeInstruction(OpCodes.Call, newgenes);
}
}
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using HarmonyLib;
using RimWorld;
using Verse;
namespace RJW_BGS
{
/// <summary>
/// This Patch is applied to change the normal pregnancy to add animal-inheritance.
/// If the settings allow animal gene inheritance,
/// the genes are determined and "simply added".
/// </summary>
[HarmonyPatch(typeof(PregnancyUtility), "GetInheritedGeneSet", new Type[]
{
typeof(Pawn),
typeof(Pawn),
//typeof(bool)
}
)]
public static class Patch_Vanilla_PregnancyUtility
{
[HarmonyPostfix]
public static void AnimalInheritedGenes(Pawn father, Pawn mother, ref GeneSet __result)
{
if (!RJW_BGSSettings.rjw_bgs_enabled)
{
return;
}
List<GeneDef> genes = InheritanceUtility.AnimalInheritedGenes(father, mother);
if (genes.Any())
{
foreach (GeneDef gene in genes)
{
__result.AddGene(gene);
}
}
}
}
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using UnityEngine;
namespace RJW_BGS
{
public class RJW_BGSSettings : ModSettings
{
public static void DoWindowContents(Rect inRect)
{
//Copied from RJW settings mostly
Rect outRect = new Rect(0f, 30f, inRect.width, inRect.height - 30f);
Rect rect = new Rect(0f, 0f, inRect.width - 16f, inRect.height + 300f);
//Widgets.BeginScrollView(outRect, ref RJWSettings.scrollPosition, rect, true);
Listing_Standard listing_Standard = new Listing_Standard();
listing_Standard.maxOneColumn = true;
listing_Standard.ColumnWidth = rect.width / 2.05f;
listing_Standard.Begin(rect);
listing_Standard.Gap(24f);
listing_Standard.CheckboxLabeled("enabled", ref rjw_bgs_enabled, "If toggled, Animal Pregnancies will try inherit genes.", 0f, 1f);
//listing_Standard.CheckboxLabeled("sexfrenzy", ref sexfrenzy, "disable the effects", 0f, 1f);
listing_Standard.Gap(5f);
listing_Standard.Label("gene inheritance chance"+ ": " +
Math.Round((double)(RJW_BGSSettings.rjw_bgs_global_gene_chance * 100f), 0).ToString() + "%", -1f, "modify chance for a gene to be inherited.");
RJW_BGSSettings.rjw_bgs_global_gene_chance = listing_Standard.Slider(RJW_BGSSettings.rjw_bgs_global_gene_chance, 0f, 5f);
listing_Standard.Gap(5f);
listing_Standard.CheckboxLabeled("genes as xenogenes", ref rjw_bgs_animal_genes_as_xenogenes, "If toggled, animal genes will be added as xenogenes.", 0f, 1f);
listing_Standard.Gap(5f);
listing_Standard.CheckboxLabeled("detailed-debug", ref rjw_bgs_detailed_debug, "Adds detailed information to the log about pregnancies and genes.", 0f, 1f);
listing_Standard.End();
}
public override void ExposeData()
{
base.ExposeData();
Scribe_Values.Look<bool>(ref RJW_BGSSettings.rjw_bgs_enabled, "rjw_bgs_enabled", RJW_BGSSettings.rjw_bgs_enabled, true);
Scribe_Values.Look<float>(ref RJW_BGSSettings.rjw_bgs_global_gene_chance, "rjw_bgs_global_gene_chance", RJW_BGSSettings.rjw_bgs_global_gene_chance, true);
Scribe_Values.Look<bool>(ref RJW_BGSSettings.rjw_bgs_animal_genes_as_xenogenes, "rjw_bgs_animal_genes_as_xenogenes", RJW_BGSSettings.rjw_bgs_animal_genes_as_xenogenes, true);
Scribe_Values.Look<bool>(ref RJW_BGSSettings.rjw_bgs_detailed_debug, "rjw_bgs_detailed_debug", RJW_BGSSettings.rjw_bgs_detailed_debug, true);
}
public static float rjw_bgs_global_gene_chance = 1f;
public static bool rjw_bgs_enabled = true;
public static bool rjw_bgs_animal_genes_as_xenogenes = false;
public static bool rjw_bgs_detailed_debug = false;
}
}

View file

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using UnityEngine;
namespace RJW_BGS
{
public class RJW_BGSSettingsController : Mod
{
public RJW_BGSSettingsController(ModContentPack content) : base(content)
{
base.GetSettings<RJW_BGSSettings>();
}
public override string SettingsCategory()
{
return "RJW Genes Animal Gene Inheritance";
}
public override void DoSettingsWindowContents(Rect inRect)
{
RJW_BGSSettings.DoWindowContents(inRect);
}
}
}

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
/// <summary>
/// Small Extension that covers distances for Genes.
/// This allows to set distance in the XMLs.
/// The distance is measured in tiles, so a distance of ~25 means 25 tiles away from the pawn in any direction.
/// </summary>
public class DistanceExtension : DefModExtension
{
public int distance;
}
}

View file

@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
internal class ModExtensionHelper
{
public static int GetDistanceFromModExtension(GeneDef defOf, int fallback)
{
DistanceExtension distanceExt = defOf.GetModExtension<DistanceExtension>();
int potentialDistance = distanceExt?.distance ?? fallback;
if (potentialDistance > 0)
{
return potentialDistance;
} else {
ModLog.Warning($"Retrieved a bad distance ({potentialDistance}) reading the RJW_Genes.DistanceExtension for {defOf.defName}");
return 1;
}
}
public static int GetTickIntervalFromModExtension(GeneDef defOf, int fallback)
{
TickIntervalExtension tickExt = defOf.GetModExtension<TickIntervalExtension>();
int potentialTickInterval = tickExt?.tickInterval ?? fallback;
if (potentialTickInterval > 0)
{
return potentialTickInterval;
}
else
{
ModLog.Warning($"Retrieved a bad distance ({potentialTickInterval}) reading the RJW_Genes.DistanceExtension for {defOf.defName}");
return 1;
}
}
}
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
/// <summary>
/// General DefModExtension to cover various genes that need to tick regularly.
/// Defining it like this allows to adjust things in XML.
/// </summary>
public class TickIntervalExtension : DefModExtension
{
public int tickInterval;
}
}

View file

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RJW_Genes
{
public class Either<TL, TR>
{
public readonly TL left;
public readonly TR right;
public readonly bool isLeft;
public Either(TL left)
{
this.left = left;
this.isLeft = true;
}
public Either(TR right)
{
this.right = right;
this.isLeft = false;
}
}
}

View file

@ -0,0 +1,34 @@
using Verse;
namespace RJW_Genes
{
internal class ModLog
{
public static string ModId => "RJW-Genes";
/// <summary>
/// Logs the given message with [SaveStorage.ModId] appended.
/// </summary>
public static void Error(string message)
{
Log.Error($"[{ModId}] {message}");
}
/// <summary>
/// Logs the given message with [SaveStorage.ModId] appended.
/// </summary>
public static void Message(string message)
{
Log.Message($"[{ModId}] {message}");
}
/// <summary>
/// Logs the given message with [SaveStorage.ModId] appended.
/// </summary>
public static void Warning(string message)
{
Log.Warning($"[{ModId}] {message}");
}
}
}

32
1.4/Source/First.cs Normal file
View file

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using rjw;
using Verse;
using RimWorld;
using rjw.Modules.Interactions.Rules.PartKindUsageRules;
using rjw.Modules.Interactions.Internals.Implementation;
namespace RJW_Genes
{
[StaticConstructorOnStartup]
internal static class First
{
static First()
{
AddtoIPartPreferenceRule();
}
//Modified code from https://gitgud.io/lutepickle/rjw_menstruation/-/tree/main/1.4/source/RJW_Menstruation/RJW_Menstruation
//Summary//
//Adds our own partpreferences to rjw's list. Our partpreferences are under Interactions.GenesPartKindUsageRule
//
private static void InjectIntoRjwInteractionServices()
{
List<IPartPreferenceRule> partPreferenceRules = Unprivater.GetProtectedValue<List<IPartPreferenceRule>>("_partKindUsageRules", typeof(PartPreferenceDetectorService));
partPreferenceRules.Add(new Interactions.GenesPartKindUsageRule());
}
}
}

118
1.4/Source/GeneDefOf.cs Normal file
View file

@ -0,0 +1,118 @@
using RimWorld;
using Verse;
using Verse.AI;
namespace RJW_Genes
{
[DefOf]
public static class GeneDefOf
{
public static readonly GeneCategoryDef rjw_genes_genitalia_type;
public static readonly GeneCategoryDef rjw_genes_genitalia_size;
public static readonly GeneCategoryDef rjw_genes_gender;
public static readonly GeneCategoryDef rjw_genes_breeding;
public static readonly GeneCategoryDef rjw_genes_damage;
public static readonly GeneCategoryDef rjw_genes_special;
// Base Genitalia Types
public static readonly GeneDef rjw_genes_equine_genitalia;
public static readonly GeneDef rjw_genes_demonic_genitalia;
public static readonly GeneDef rjw_genes_dragon_genitalia;
public static readonly GeneDef rjw_genes_slime_genitalia;
public static readonly GeneDef rjw_genes_ovipositor_genitalia;
public static readonly GeneDef rjw_genes_feline_genitalia;
public static readonly GeneDef rjw_genes_canine_genitalia;
// Extra Genitalia
public static readonly GeneDef rjw_genes_extra_penis;
public static readonly GeneDef rjw_genes_no_penis;
public static readonly GeneDef rjw_genes_extra_vagina;
public static readonly GeneDef rjw_genes_no_vagina;
public static readonly GeneDef rjw_genes_extra_breasts;
public static readonly GeneDef rjw_genes_no_breasts;
public static readonly GeneDef rjw_genes_extra_anus;
public static readonly GeneDef rjw_genes_no_anus;
public static readonly GeneDef rjw_genes_futa;
public static readonly GeneDef rjw_genes_featureless_chest;
// Genitalia Sizes
public static readonly GeneDef rjw_genes_big_male_genitalia;
public static readonly GeneDef rjw_genes_small_male_genitalia;
public static readonly GeneDef rjw_genes_loose_female_genitalia;
public static readonly GeneDef rjw_genes_tight_female_genitalia;
public static readonly GeneDef rjw_genes_big_breasts;
public static readonly GeneDef rjw_genes_small_breasts;
public static readonly GeneDef rjw_genes_loose_anus;
public static readonly GeneDef rjw_genes_tight_anus;
public static readonly GeneDef rjw_genes_evergrowth;
// Gender
public static readonly GeneDef rjw_genes_female_only;
public static readonly GeneDef rjw_genes_male_only;
public static readonly GeneDef rjw_genes_gender_fluid;
// Breeding
public static readonly GeneDef rjw_genes_mechbreeder;
public static readonly GeneDef rjw_genes_insectincubator;
public static readonly GeneDef rjw_genes_insectbreeder;
public static readonly GeneDef rjw_genes_zoophile;
// 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;
// Reproduction
public static readonly GeneDef rjw_genes_hypersexual;
public static readonly GeneDef rjw_genes_rapist;
public static readonly GeneDef rjw_genes_homosexual;
public static readonly GeneDef rjw_genes_bisexual;
public static readonly GeneDef rjw_genes_no_sex_need;
// Damage & Side Effects
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_elasticity;
public static readonly GeneDef rjw_genes_unbreakable;
// Special
public static readonly GeneDef rjw_genes_orgasm_rush;
public static readonly GeneDef rjw_genes_youth_fountain;
public static readonly GeneDef rjw_genes_sex_age_drain;
public static readonly GeneDef rjw_genes_aphrodisiac_pheromones;
public static readonly GeneDef rjw_genes_sexual_mytosis;
public static readonly GeneDef rjw_genes_hormonal_saliva;
// LifeForce
public static readonly GeneDef rjw_genes_lifeforce;
public static readonly GeneDef rjw_genes_pussyhealing;
public static readonly GeneDef rjw_genes_lifeforce_drain;
public static readonly GeneDef rjw_genes_cum_eater;
public static readonly GeneDef rjw_genes_fertilin_absorber;
public static readonly GeneDef rjw_genes_drainer;
public static readonly GeneDef rjw_genes_seduce;
public static readonly GeneDef rjw_genes_paralysingkiss;
public static readonly GeneDef rjw_genes_cockeater;
public static readonly GeneDef rjw_genes_lifeforce_empath;
// Cosmetic
public static readonly GeneDef rjw_genes_succubus_tail;
public static readonly GeneDef rjw_genes_succubus_wings;
// Hive
public static readonly GeneDef rjw_genes_queen;
public static readonly GeneDef rjw_genes_drone;
public static readonly GeneDef rjw_genes_worker;
public static readonly GeneDef rjw_genes_zealous_loyalty;
public static readonly GeneDef rjw_genes_cocoonweaver;
public static readonly GeneDef rjw_genes_spawn_spelopede;
//Other Defs
public static readonly XenotypeDef rjw_genes_succubus;
public static readonly DutyDef rjw_genes_flirt;
public static readonly MentalBreakDef rjw_genes_lifeforce_randomrape;
}
}

View file

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<GeneDef Name="GeneGenitalTypeBase" Abstract="True">
<displayCategory>rjw_genes_genitalia</displayCategory>
<exclusionTags>
<li>GenitalType</li>
</exclusionTags>
<biostatCpx>0</biostatCpx>
<!--
<biostatMet>0</biostatMet>
-->
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_human_genitalia</defName>
<label>human genitalia</label>
<description>Carriers of this carry genitalia similar to humans.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_HumanGenitalia</geneClass>
<displayOrderInCategory>1</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_equine_genitalia</defName>
<label>equine genitalia</label>
<description>Carriers of this gene develop equine genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_EquineGenitalia</geneClass>
<displayOrderInCategory>2</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_canine_genitalia</defName>
<label>canine genitalia</label>
<description>Carriers of this gene develop canine genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_CanineGenitalia</geneClass>
<displayOrderInCategory>3</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_feline_genitalia</defName>
<label>feline genitalia</label>
<description>Carriers of this gene develop feline genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_FelineGenitalia</geneClass>
<displayOrderInCategory>4</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_demonic_genitalia</defName>
<label>demonic genitalia</label>
<description>Carriers of this gene have demonic genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_DemonicGenitalia</geneClass>
<displayOrderInCategory>5</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_dragon_genitalia</defName>
<label>dragon genitalia</label>
<description>Carriers of this gene develop dragon genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_DragonGenitalia</geneClass>
<displayOrderInCategory>6</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_slime_genitalia</defName>
<label>slime genitalia</label>
<description>Carriers of this gene have slime genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_SlimeGenitalia</geneClass>
<displayOrderInCategory>7</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_ovipositor_genitalia</defName>
<label>insect genitalia</label>
<description>Carriers of this gene have ovipositors similar to insects.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_OvipositorGenitalia</geneClass>
<displayOrderInCategory>8</displayOrderInCategory>
</GeneDef>
</Defs>

View file

@ -0,0 +1,9 @@
using Verse;
namespace Genes.Breeding
{
public class Gene_MechBreeder : Gene
{
// This one does not do anything, the patch is some where else checking for the pawn to have this Gene!
}
}

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