mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Merge dfd93c7185
into ed7473ddfd
This commit is contained in:
commit
fa4a07dd77
42 changed files with 704 additions and 59 deletions
Binary file not shown.
|
@ -48,6 +48,9 @@
|
|||
<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
|
||||
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -103,6 +106,9 @@
|
|||
<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
|
||||
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</GeneDef>
|
||||
</Defs>
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<GeneDef Name="GeneExtraGenitaliaBase" Abstract="True">
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
|
||||
<randomChosen>false</randomChosen>
|
||||
<modExtensions>
|
||||
|
@ -15,6 +14,8 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_extra_penis</defName>
|
||||
<label>extra penis</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
|
||||
<description>Males of this species grow an additional penis .</description>
|
||||
<iconPath>Genes/Icons/extra_male</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraPenis</geneClass>
|
||||
|
@ -27,6 +28,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_no_penis</defName>
|
||||
<label>no penis</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>Males of this do not have a penis.</description>
|
||||
<iconPath>Genes/Icons/No_Male_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoPenis</geneClass>
|
||||
|
@ -40,6 +42,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_extra_vagina</defName>
|
||||
<label>extra vagina</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>Females of this species grow an additional vagina .</description>
|
||||
<iconPath>Genes/Icons/Extra_Vagina</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraVagina</geneClass>
|
||||
|
@ -52,6 +55,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_no_vagina</defName>
|
||||
<label>no vagina</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>Females of this do not have a vagina.</description>
|
||||
<iconPath>Genes/Icons/No_Vagina</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoVagina</geneClass>
|
||||
|
@ -65,6 +69,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_extra_breasts</defName>
|
||||
<label>extra breasts</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>Females of this species grow an additional pair of breasts .</description>
|
||||
<iconPath>Genes/Icons/Extra_Breasts</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraBreasts</geneClass>
|
||||
|
@ -77,6 +82,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_no_breasts</defName>
|
||||
<label>no breasts</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>Females of this do not have a pair of breasts, but only nipples.</description>
|
||||
<iconPath>Genes/Icons/No_Breasts</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoBreasts</geneClass>
|
||||
|
@ -89,6 +95,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_extra_anus</defName>
|
||||
<label>extra anus</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>This specias has an extra anus.</description>
|
||||
<iconPath>Genes/Icons/Extra_Anus</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraAnus</geneClass>
|
||||
|
@ -101,6 +108,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_no_anus</defName>
|
||||
<label>no anus</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>This specias has no anus.</description>
|
||||
<iconPath>Genes/Icons/No_Anus</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoAnus</geneClass>
|
||||
|
@ -113,6 +121,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_futa</defName>
|
||||
<label>futanari</label>
|
||||
<displayCategory>rjw_genes_gender</displayCategory>
|
||||
<description>Males with this gene grow additional female genitalia, females grow additional male genitalia.</description>
|
||||
<iconPath>Genes/Icons/Futa</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_Futa</geneClass>
|
||||
|
@ -126,6 +135,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_femboy</defName>
|
||||
<label>femboy</label>
|
||||
<displayCategory>rjw_genes_gender</displayCategory>
|
||||
<description>Males with this gene are considered female despite having a penis</description>
|
||||
<iconPath>Genes/Icons/Futa</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_Femboy</geneClass>
|
||||
|
@ -139,6 +149,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_featureless_chest</defName>
|
||||
<label>Featureless Chest</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>Carriers of this gene do not have breasts or nipples.</description>
|
||||
<iconPath>Genes/Icons/No_Breasts</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_FeaturelessChest</geneClass>
|
||||
|
@ -151,6 +162,7 @@
|
|||
<GeneDef ParentName="GeneExtraGenitaliaBase">
|
||||
<defName>rjw_genes_udder</defName>
|
||||
<label>udder</label>
|
||||
<displayCategory>rjw_genes_genitalia_extras</displayCategory>
|
||||
<description>Carriers of this gene have udders and breasts.</description>
|
||||
<iconPath>Things/Mote/Heart</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_UdderBreasts</geneClass>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<exclusionTags>
|
||||
<li>GenitalType</li>
|
||||
</exclusionTags>
|
||||
<randomChosen>false</randomChosen>
|
||||
<randomChosen>true</randomChosen>
|
||||
<biostatCpx>0</biostatCpx>
|
||||
|
||||
<modExtensions>
|
||||
|
@ -43,6 +43,7 @@
|
|||
<penis>Penis</penis>
|
||||
<vagina>Vagina</vagina>
|
||||
<anus>Anus</anus>
|
||||
<breasts>Breasts</breasts>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>802</displayOrderInCategory>
|
||||
|
@ -89,6 +90,10 @@
|
|||
<vagina>DemonVagina</vagina>
|
||||
<anus>DemonAnus</anus>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>805</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -104,6 +109,9 @@
|
|||
<vagina>DragonVagina</vagina>
|
||||
<anus>GenericAnus</anus>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>806</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -118,7 +126,11 @@
|
|||
<penis>SlimeTentacles</penis>
|
||||
<vagina>SlimeVagina</vagina>
|
||||
<anus>SlimeAnus</anus>
|
||||
<breasts>SlimeBreasts</breasts>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>SlimeLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -134,6 +146,9 @@
|
|||
<vagina>DemonVagina</vagina>
|
||||
<anus>DemonAnus</anus>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -147,6 +162,9 @@
|
|||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>CrocodilianPenis</penis>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -160,6 +178,7 @@
|
|||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>RaccoonPenis</penis>
|
||||
</li>
|
||||
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -173,6 +192,9 @@
|
|||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>HemiPenis</penis>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -191,6 +213,9 @@
|
|||
<penis>GhostPenis</penis>
|
||||
<vagina>GhostVagina</vagina>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -204,6 +229,9 @@
|
|||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>GolemPenis</penis>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -230,6 +258,9 @@
|
|||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>NecroPenis</penis>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -282,15 +313,14 @@
|
|||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>TentaclePenis</penis>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||
<defName>rjw_genes_ovipositor_genitalia</defName>
|
||||
<label>insect genitalia</label>
|
||||
|
@ -302,6 +332,9 @@
|
|||
<vagina>OvipositorF</vagina>
|
||||
<anus>InsectAnus</anus>
|
||||
</li>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ChitinLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>808</displayOrderInCategory>
|
||||
|
||||
|
|
|
@ -181,6 +181,13 @@
|
|||
<marketValueFactor>1.10</marketValueFactor>
|
||||
<biostatMet>-2</biostatMet>
|
||||
<biostatCpx>1</biostatCpx>
|
||||
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ImpregnationFetishQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
|
||||
</GeneDef>
|
||||
|
||||
</Defs>
|
|
@ -82,11 +82,12 @@
|
|||
<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>
|
||||
<description>Carriers have malfunctioning regenerative archites that grow more unstable with ongoing multiple orgasms - climaxing in a process of mytosis. This will result in an (biologically) identical pawn and both twins are set in a regenerative state. Also, the pawn can have multiple orgasms: In a state of higher unstableness, they come quicker.</description>
|
||||
<iconPath>UI/Icons/Genes/Gene_PsychicBonding</iconPath>
|
||||
<displayOrderInCategory>5</displayOrderInCategory>
|
||||
<biostatCpx>5</biostatCpx>
|
||||
<biostatMet>-5</biostatMet>
|
||||
<biostatArc>1</biostatArc>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="SpecialBase">
|
||||
|
@ -124,6 +125,11 @@
|
|||
</descriptionHyperlinks>
|
||||
<biostatCpx>1</biostatCpx>
|
||||
<biostatMet>-1</biostatMet>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>BreederQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</GeneDef>
|
||||
|
||||
</Defs>
|
24
Common/Patches/Genes/Vanilla_Quirk_Patch.xml
Normal file
24
Common/Patches/Genes/Vanilla_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>/Defs/GeneDef[defName="Furskin"]</xpath>
|
||||
<value>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>FurLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>/Defs/GeneDef[defName="Head_Gaunt"]</xpath>
|
||||
<value>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
|
@ -14,6 +14,8 @@
|
|||
<value>
|
||||
<li>rjw_genes_much_cum</li>
|
||||
<li>rjw_genes_zoophile</li>
|
||||
<li>rjw_genes_Pig_genitalia</li>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
</value>
|
||||
</Operation>
|
||||
|
||||
|
|
17
Common/Patches/Xenotypes/PatchPigskins.xml
Normal file
17
Common/Patches/Xenotypes/PatchPigskins.xml
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationFindMod">
|
||||
<mods>
|
||||
<li>Vanilla Races Expanded - Pigskin</li>
|
||||
</mods>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="VRE_Boarskin"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_Pig_genitalia</li>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
<li>rjw_genes_much_cum</li>
|
||||
<li>rjw_genes_zoophile</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
</Patch>
|
28
Common/Patches/Xenotypes/PatchVRELycanthrope.xml
Normal file
28
Common/Patches/Xenotypes/PatchVRELycanthrope.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationFindMod">
|
||||
<mods>
|
||||
<li>Vanilla Races Expanded - Lycanthrope</li>
|
||||
</mods>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="VRE_Wolfman"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
<li>rjw_genes_zoophile</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationFindMod">
|
||||
<mods>
|
||||
<li>Vanilla Races Expanded - Lycanthrope</li>
|
||||
</mods>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="VRE_Lycan"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_canine_genitalia</li>
|
||||
<li>rjw_genes_zoophile</li>
|
||||
<li>rjw_genes_rapist</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
</Patch>
|
BIN
Common/Textures/Genes/Icons/sex_curiosity.png
Normal file
BIN
Common/Textures/Genes/Icons/sex_curiosity.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9 KiB |
BIN
Common/Textures/Genes/Icons/sex_disabled.png
Normal file
BIN
Common/Textures/Genes/Icons/sex_disabled.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
Common/Textures/Genes/Icons/sex_enabled.png
Normal file
BIN
Common/Textures/Genes/Icons/sex_enabled.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.5 KiB |
|
@ -5,5 +5,14 @@
|
|||
<li>Common</li>
|
||||
<!-- Mods -->
|
||||
<li IfModNotActive="asmr.rjw.racesupport">Mods/NotRaceSupport</li>
|
||||
<li IfModActive="vanillaracesexpanded.sanguophage">Mods/Sanguophage</li>
|
||||
<li IfModActive="vanillaracesexpanded.saurid">Mods/Saurid</li>
|
||||
<li IfModActive="vanillaracesexpanded.phytokin">Mods/Phytokin</li>
|
||||
<li IfModActive="vanillaracesexpanded.lycanthrope">Mods/Lycanthrope</li>
|
||||
<li IfModActive="vanillaracesexpanded.highmate">Mods/Highmate</li>
|
||||
<li IfModActive="vanillaracesexpanded.genie">Mods/Genie</li>
|
||||
<li IfModActive="vanillaracesexpanded.fungoid">Mods/Fungoid</li>
|
||||
<li IfModActive="vanillaracesexpanded.archon">Mods/Archon</li>
|
||||
<li IfModActive="vanillaracesexpanded.android">Mods/Android</li>
|
||||
</v1.5>
|
||||
</loadFolders>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Defs>
|
||||
<VREAndroids.AndroidConvertableGenesDef>
|
||||
<defName>rjw_genes_AndroidConvertableGenesDefs</defName>
|
||||
<geneCategories>
|
||||
<li>rjw_genes_gender</li>
|
||||
</geneCategories>
|
||||
|
||||
|
||||
</VREAndroids.AndroidConvertableGenesDef>
|
||||
</Defs>
|
54
Mods/Android/Defs/GeneDefs/GeneDefs_Androids.xml
Normal file
54
Mods/Android/Defs/GeneDefs/GeneDefs_Androids.xml
Normal file
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
<VREAndroids.AndroidGeneDef ParentName="VREA_SubroutineBase">
|
||||
<defName>rjw_genes_bionic_genitalia</defName>
|
||||
<label>bionic genitalia</label>
|
||||
<geneClass>RJW_Genes.Gene_GenitaliaType</geneClass>
|
||||
<description>This piece of hardware is a set of bionic genitals of high quality</description>
|
||||
<iconPath>Genes/Icons/Genitalia_human</iconPath>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>BionicPenis</penis>
|
||||
<vagina>BionicVagina</vagina>
|
||||
<anus>BionicAnus</anus>
|
||||
<breasts>BionicBreasts</breasts>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>802</displayOrderInCategory>
|
||||
<biostatMet>-2</biostatMet>
|
||||
</VREAndroids.AndroidGeneDef>
|
||||
|
||||
<VREAndroids.AndroidGeneDef ParentName="VREA_HardwareBase">
|
||||
<defName>rjw_genes_hydrolic_genitalia</defName>
|
||||
<label>hydrolic genitalia</label>
|
||||
<geneClass>RJW_Genes.Gene_GenitaliaType</geneClass>
|
||||
<description>This piece of hardware is a set of crude hydrolic genitals, at least it come with a suspension system</description>
|
||||
<iconPath>Genes/Icons/Genitalia_human</iconPath>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>HydraulicPenis</penis>
|
||||
<vagina>HydraulicVagina</vagina>
|
||||
<anus>HydraulicAnus</anus>
|
||||
<breasts>HydraulicBreasts</breasts>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>802</displayOrderInCategory>
|
||||
<statFactors>
|
||||
<MoveSpeed>1.12</MoveSpeed>
|
||||
</statFactors>
|
||||
</VREAndroids.AndroidGeneDef>
|
||||
|
||||
<VREAndroids.AndroidGeneDef ParentName="VREA_HardwareBase">
|
||||
<defName>rjw_genes_SexDisabled</defName>
|
||||
<label>sex disabled</label>
|
||||
<description>Androids do not feel satisfaction from sex, and have no need to feel it.</description>
|
||||
<iconPath>Genes/Icons/sex_disabled</iconPath>
|
||||
<displayOrderInCategory>3</displayOrderInCategory>
|
||||
<biostatCpx>1</biostatCpx>
|
||||
<disablesNeeds>
|
||||
<li>Sex</li>
|
||||
</disablesNeeds>
|
||||
<removeWhenAwakened>true</removeWhenAwakened>
|
||||
</VREAndroids.AndroidGeneDef>
|
||||
|
||||
</Defs>
|
26
Mods/Android/Patches/Android_Quirk_Patch.xml
Normal file
26
Mods/Android/Patches/Android_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/VREAndroids.AndroidGeneDef[defName="VREA_SyntheticBody"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>RobotLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/VREAndroids.AndroidGeneDef[defName="VREA_SyntheticSkin"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>RobotLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationReplace">
|
||||
<xpath>/Defs/GeneCategoryDef[defName="VREA_Subroutine"]/displayPriorityInXenotype</xpath>
|
||||
<value>
|
||||
<displayPriorityInXenotype>10</displayPriorityInXenotype>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
12
Mods/Archon/Patches/Archon_Quirk_Patch.xml
Normal file
12
Mods/Archon/Patches/Archon_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_Leatherskin"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>SkinLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
28
Mods/Fungoid/Patches/Fungoid_Quirk_Patch.xml
Normal file
28
Mods/Fungoid/Patches/Fungoid_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_FungalCrest"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>PlantLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_HairMushroom"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>PlantLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_FungalFlesh"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>PlantLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
30
Mods/Genie/Defs/GeneDefs/GeneDefs_Curiosity_sex.xml
Normal file
30
Mods/Genie/Defs/GeneDefs/GeneDefs_Curiosity_sex.xml
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<GeneDef Name="VRE_CuriosityBase" Abstract="True">
|
||||
<displayCategory>VRE_Curiosity</displayCategory>
|
||||
<exclusionTags>
|
||||
<li>VRE_Curiosity</li>
|
||||
<li>Curiosity</li>
|
||||
</exclusionTags>
|
||||
<biostatMet>-2</biostatMet>
|
||||
<biostatCpx>2</biostatCpx>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="VRE_CuriosityBase">
|
||||
<defName>VRE_Curiosity_Sex</defName>
|
||||
<label>sex curiosity</label>
|
||||
<displayOrderInCategory>0</displayOrderInCategory>
|
||||
<description>The carrier has a natural curiosity for sex which makes them gain recreation whenever they learn it. Furthermore, curiosity prevents skill loss in sex completely.
|
||||
</description>
|
||||
<iconPath>Genes/Icons/sex_curiosity</iconPath>
|
||||
<modExtensions>
|
||||
<li Class="VanillaGenesExpanded.GeneExtension">
|
||||
<noSkillLoss>Sex</noSkillLoss>
|
||||
<skillRecreation>Sex</skillRecreation>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</GeneDef>
|
||||
|
||||
|
||||
</Defs>
|
28
Mods/Highmate/Patches/Highmate_Quirk_Patch.xml
Normal file
28
Mods/Highmate/Patches/Highmate_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_FelineEars"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>FurLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_FelineTail"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>FurLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_PerfectBody"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>SkinLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
20
Mods/Lycanthrope/Patches/Lycanthrope_Quirk_Patch.xml
Normal file
20
Mods/Lycanthrope/Patches/Lycanthrope_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_ChestFur"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>FurLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_CanineTail"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>FurLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
28
Mods/Phytokin/Patches/Phytokin_Quirk_Patch.xml
Normal file
28
Mods/Phytokin/Patches/Phytokin_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_BarkSkin"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>PlantLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_FoliageHair"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>PlantLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_SapBlood"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>PlantLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
44
Mods/Sanguophage/Patches/Sanguophage_Quirk_Patch.xml
Normal file
44
Mods/Sanguophage/Patches/Sanguophage_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_SanguineHair"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_BatEars"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_UpperBatEars"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_Talons"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRE_BatNose"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>TeratophileQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
44
Mods/Saurid/Patches/Saurid_Quirk_Patch.xml
Normal file
44
Mods/Saurid/Patches/Saurid_Quirk_Patch.xml
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRESaurids_FrilledEars"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRESaurids_CenterFrill"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRESaurids_GeckoTail"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRESaurids_SauridClaws"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
<Operation Class="PatchOperationAddModExtension">
|
||||
<xpath>/Defs/GeneDef[defName="VRESaurids_ScaleSkin"]</xpath>
|
||||
<value>
|
||||
<li Class="RJW_Genes.QirkExtension">
|
||||
<Satisfiedquirk>ScaleLoverQuirk</Satisfiedquirk>
|
||||
</li>
|
||||
</value>
|
||||
</Operation>
|
||||
</Patch>
|
||||
|
|
@ -125,5 +125,43 @@ namespace RJW_Genes
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch("SetFather")]
|
||||
private static bool SetFatherPrefix(Pawn pawn, Pawn newFather)
|
||||
{
|
||||
Pawn father = pawn.GetFather();
|
||||
if (father != newFather)
|
||||
{
|
||||
if (father != null)
|
||||
{
|
||||
pawn.relations.RemoveDirectRelation(PawnRelationDefOf.Parent, father);
|
||||
}
|
||||
if (newFather != null)
|
||||
{
|
||||
pawn.relations.AddDirectRelation(PawnRelationDefOf.Parent, newFather);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch("SetMother")]
|
||||
private static bool SetMotherPrefix(Pawn pawn, Pawn newMother)
|
||||
{
|
||||
Pawn mother = pawn.GetMother();
|
||||
if (mother != newMother)
|
||||
{
|
||||
if (mother != null)
|
||||
{
|
||||
pawn.relations.RemoveDirectRelation(PawnRelationDefOf.Parent, mother);
|
||||
}
|
||||
if (newMother != null)
|
||||
{
|
||||
pawn.relations.AddDirectRelation(PawnRelationDefOf.Parent, newMother);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,11 @@ namespace RJW_Genes
|
|||
|
||||
Pawn giver = props.pawn; // orgasmer
|
||||
Pawn receiver = props.partner;
|
||||
|
||||
if (receiver.genes == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Hediff vasectomy;
|
||||
receiver.health.hediffSet.TryGetHediff(vasectomydef, out vasectomy);
|
||||
|
||||
|
@ -40,10 +45,7 @@ namespace RJW_Genes
|
|||
List<Hediff> pawnparts = giver.GetGenitalsList();
|
||||
List<Hediff> partnerparts = receiver.GetGenitalsList();
|
||||
var interaction = rjw.Modules.Interactions.Helpers.InteractionHelper.GetWithExtension(props.dictionaryKey);
|
||||
if (receiver.genes == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!(props.sexType == xxx.rjwSextype.Anal && receiver.genes.HasActiveGene(GeneDefOf.rjw_genes_fertile_anus)))
|
||||
return;
|
||||
|
|
|
@ -55,6 +55,18 @@ namespace RJW_Genes
|
|||
compHediffBodyPart.updatesize(0f);
|
||||
}
|
||||
this.pawn.health.AddHediff(this.additional_genital, part, null, null);
|
||||
foreach (Gene g in pawn.genes.GenesListForReading)
|
||||
{
|
||||
if (g.def.defName == "rjw_genes_hydrolic_genitalia")
|
||||
{
|
||||
g.PostAdd();
|
||||
}
|
||||
if (g.def.defName == "rjw_genes_bionic_genitalia")
|
||||
{
|
||||
g.PostAdd();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040001B0 RID: 432
|
||||
|
|
|
@ -36,6 +36,18 @@ namespace RJW_Genes
|
|||
});
|
||||
GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Female);
|
||||
}
|
||||
foreach(Gene g in pawn.genes.GenesListForReading)
|
||||
{
|
||||
if(g.def.defName== "rjw_genes_hydrolic_genitalia")
|
||||
{
|
||||
g.PostAdd();
|
||||
}
|
||||
if (g.def.defName == "rjw_genes_bionic_genitalia")
|
||||
{
|
||||
g.PostAdd();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Notify_OnPawnGeneration()
|
||||
|
|
|
@ -36,6 +36,18 @@ namespace RJW_Genes
|
|||
});
|
||||
GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Male);
|
||||
}
|
||||
foreach (Gene g in pawn.genes.GenesListForReading)
|
||||
{
|
||||
if (g.def.defName == "rjw_genes_hydrolic_genitalia")
|
||||
{
|
||||
g.PostAdd();
|
||||
}
|
||||
if (g.def.defName == "rjw_genes_bionic_genitalia")
|
||||
{
|
||||
g.PostAdd();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Notify_OnPawnGeneration()
|
||||
|
|
|
@ -11,5 +11,8 @@ namespace RJW_Genes
|
|||
public HediffDef_PartBase vagina;
|
||||
|
||||
public HediffDef_PartBase anus;
|
||||
|
||||
public HediffDef_PartBase breasts;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace RJW_Genes
|
|||
Apply();
|
||||
}
|
||||
|
||||
protected virtual void Apply()
|
||||
public virtual void Apply()
|
||||
{
|
||||
if (this.Active)
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ namespace RJW_Genes
|
|||
ModLog.Error($"Gene {def} failed to change genitals - Need a modExtension with Class=\"{typeof(GenitaliaTypeExtension).FullName}\".");
|
||||
return;
|
||||
}
|
||||
GenitaliaChanger.ChangeGenitalia(pawn, genitals.penis, genitals.vagina, genitals.anus);
|
||||
GenitaliaChanger.ChangeGenitalia(pawn, genitals.penis, genitals.vagina, genitals.anus, genitals.breasts);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
using RimWorld;
|
||||
using Verse;
|
||||
using System.Collections.Generic;
|
||||
using rjw.Modules.Interactions.DefModExtensions;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
|
@ -16,7 +17,7 @@ namespace RJW_Genes
|
|||
/// <param name="penisReplacement">the new type of penis</param>
|
||||
/// <param name="vaginaReplacement">the new type of vagina</param>
|
||||
/// <param name="anusReplacement">the new type of anus</param>
|
||||
public static void ChangeGenitalia(Pawn pawn, HediffDef penisReplacement = null, HediffDef vaginaReplacement = null, HediffDef anusReplacement = null)
|
||||
public static void ChangeGenitalia(Pawn pawn, HediffDef penisReplacement = null, HediffDef vaginaReplacement = null, HediffDef anusReplacement = null , HediffDef breastsReplacement = null)
|
||||
{
|
||||
var oldParts = Genital_Helper.get_AllPartsHediffList(pawn);
|
||||
BodyPartRecord correctBPR;
|
||||
|
@ -40,6 +41,12 @@ namespace RJW_Genes
|
|||
if (Genital_Helper.is_vagina(existingGenital) && vaginaReplacement != null && existingGenital.def != vaginaReplacement)
|
||||
replacementGenital = HediffMaker.MakeHediff(vaginaReplacement, pawn, correctBPR);
|
||||
|
||||
if (is_breast(existingGenital) && breastsReplacement != null && existingGenital.def != breastsReplacement)
|
||||
{
|
||||
correctBPR = Genital_Helper.get_breastsBPR(pawn);
|
||||
replacementGenital = HediffMaker.MakeHediff(breastsReplacement, pawn, correctBPR);
|
||||
}
|
||||
|
||||
if (IsAnus(existingGenital) && anusReplacement != null && existingGenital.def != anusReplacement)
|
||||
{
|
||||
correctBPR = Genital_Helper.get_anusBPR(pawn);
|
||||
|
@ -74,7 +81,18 @@ namespace RJW_Genes
|
|||
{
|
||||
return candidate.def.defName.ToLower().Contains("anus"); }
|
||||
|
||||
public static bool IsArtificial(Hediff candidate)
|
||||
|
||||
public static bool is_breast(Hediff hed)
|
||||
{
|
||||
if (!GenitalPartExtension.TryGet(hed, out var ext))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return ext.family == rjw.Modules.Interactions.Enums.GenitalFamily.Breasts;
|
||||
}
|
||||
|
||||
public static bool IsArtificial(Hediff candidate)
|
||||
{
|
||||
return candidate.def.defName.ToLower().Contains("bionic") || candidate.def.defName.ToLower().Contains("archo");
|
||||
}
|
||||
|
@ -88,5 +106,7 @@ namespace RJW_Genes
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,12 +16,11 @@ namespace RJW_Genes
|
|||
/// <returns>The first GeneDef of the pawn related to GenitaliaTypes</returns>
|
||||
public static GeneDef GetGenitaliaTypeGeneForPawn(Pawn pawn)
|
||||
{
|
||||
|
||||
foreach (var gene in pawn.genes.GenesListForReading)
|
||||
{
|
||||
foreach (var gene in pawn.genes.GenesListForReading)
|
||||
{
|
||||
if (gene is Gene_GenitaliaType)
|
||||
if (!gene.Overridden)
|
||||
return gene.def;
|
||||
return gene.def;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -46,23 +45,7 @@ namespace RJW_Genes
|
|||
|
||||
public static HediffDef GetBreastsForGene(GeneDef gene)
|
||||
{
|
||||
if (gene == null)
|
||||
return Genital_Helper.average_breasts;
|
||||
|
||||
switch (gene.defName)
|
||||
{
|
||||
//TODO: Do I want the default to be generic or average?
|
||||
case "rjw_genes_equine_genitalia": return Genital_Helper.average_breasts;
|
||||
case "rjw_genes_canine_genitalia": return Genital_Helper.average_breasts;
|
||||
case "rjw_genes_feline_genitalia": return Genital_Helper.average_breasts;
|
||||
case "rjw_genes_demonic_genitalia": return Genital_Helper.average_breasts;
|
||||
case "rjw_genes_dragon_genitalia": return Genital_Helper.average_breasts;
|
||||
case "rjw_genes_slime_genitalia": return Genital_Helper.slime_breasts;
|
||||
case "rjw_genes_udder_breasts": return Genital_Helper.udder_breasts;
|
||||
case "rjw_genes_ovipositor_genitalia": return Genital_Helper.average_breasts;
|
||||
|
||||
default: return Genital_Helper.average_breasts;
|
||||
}
|
||||
return gene?.GetModExtension<GenitaliaTypeExtension>()?.breasts ?? Genital_Helper.average_breasts;
|
||||
}
|
||||
|
||||
public static bool PawnStillNeedsGenitalia(Pawn pawn)
|
||||
|
|
13
Source/Genes/QuirkPatching/Defs/QirkExtension.cs
Normal file
13
Source/Genes/QuirkPatching/Defs/QirkExtension.cs
Normal file
|
@ -0,0 +1,13 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class QirkExtension : DefModExtension
|
||||
{
|
||||
public String Satisfiedquirk;
|
||||
|
||||
}
|
||||
}
|
60
Source/Genes/QuirkPatching/QuirkPatcher.cs
Normal file
60
Source/Genes/QuirkPatching/QuirkPatcher.cs
Normal file
|
@ -0,0 +1,60 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using System.Collections.Generic;
|
||||
using rjw.Modules.Quirks;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class QuirkPatcher
|
||||
{
|
||||
public static void CountSatisfiedPostfix(ref int __result, SexProps props)
|
||||
{
|
||||
Pawn pawn = props.pawn;
|
||||
Pawn partner = props.partner;
|
||||
if(pawn!=null && partner != null)
|
||||
{
|
||||
if(!pawn.IsHuman()||!partner.IsHuman())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
int count = -1;
|
||||
List<string> listquirk = new List<string>();
|
||||
string s;
|
||||
foreach (Gene g in partner.genes.GenesListForReading)
|
||||
{
|
||||
if (partner.genes.HasActiveGene(g.def))
|
||||
{
|
||||
s = null;
|
||||
s = g.def?.GetModExtension<QirkExtension>()?.Satisfiedquirk;
|
||||
if (!string.IsNullOrEmpty(s))
|
||||
{
|
||||
listquirk.Add(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Quirk q in Quirk.All)
|
||||
{
|
||||
if (pawn.Has(q))
|
||||
{
|
||||
|
||||
foreach (string s2 in listquirk)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(s2))
|
||||
if (q.LocaliztionKey==s2)
|
||||
{
|
||||
count++;
|
||||
Quirk.AddThought(pawn);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(count>0)__result = __result + count;
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
using HarmonyLib;
|
||||
using RimWorld;
|
||||
using RimWorld.BaseGen;
|
||||
using RimWorld.QuestGen;
|
||||
using rjw;
|
||||
using rjw.Modules.Shared.Extensions;
|
||||
|
@ -10,6 +11,7 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
|
||||
|
@ -24,13 +26,19 @@ namespace RJW_Genes
|
|||
|
||||
private const float SEVERITY_INCREASE_PER_ORGASM = 0.075f;
|
||||
|
||||
public static void Postfix(JobDriver_Sex __instance)
|
||||
public static void Postfix(JobDriver_Sex __instance)
|
||||
{
|
||||
Pawn orgasmingPawn = __instance.pawn;
|
||||
if (orgasmingPawn != null && GeneUtility.HasGeneNullCheck(orgasmingPawn, GeneDefOf.rjw_genes_sexual_mytosis) && ! orgasmingPawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_mytosis_shock_hediff))
|
||||
bool hasPollutedMytosis = false;
|
||||
|
||||
if (orgasmingPawn != null && (GeneUtility.HasGeneNullCheck(orgasmingPawn, GeneDefOf.rjw_genes_sexual_mytosis) || hasPollutedMytosis) && ! orgasmingPawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_mytosis_shock_hediff))
|
||||
{
|
||||
var mytosisHediff = GetOrgasmMytosisHediff(orgasmingPawn);
|
||||
mytosisHediff.Severity += SEVERITY_INCREASE_PER_ORGASM;
|
||||
if(hasPollutedMytosis && orgasmingPawn.Spawned && GridsUtility.IsPolluted(orgasmingPawn.Position, orgasmingPawn.Map))
|
||||
{
|
||||
mytosisHediff.Severity -= SEVERITY_INCREASE_PER_ORGASM;
|
||||
}
|
||||
|
||||
if (mytosisHediff.Severity >= 1.0)
|
||||
{
|
||||
|
@ -295,6 +303,8 @@ namespace RJW_Genes
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -4,12 +4,14 @@ using System;
|
|||
using rjw;
|
||||
using RJWLoveFeeding;
|
||||
using RimWorld;
|
||||
using System.Linq;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
[StaticConstructorOnStartup]
|
||||
internal static class HarmonyInit
|
||||
{
|
||||
public static Type Gene_Randomizer_Instance = null;
|
||||
static HarmonyInit()
|
||||
{
|
||||
Harmony harmony = new Harmony("rjw_genes");
|
||||
|
@ -22,32 +24,39 @@ namespace RJW_Genes
|
|||
{
|
||||
harmony.Patch(typeof(SexUtility).GetMethod("ProcessSex"), new HarmonyMethod(typeof(LustFeeding), "Postfix", null));
|
||||
}
|
||||
// Non-rapist would_rape bypass for limbic stimulator
|
||||
harmony.Patch(AccessTools.Method(typeof(SexAppraiser), nameof(SexAppraiser.would_rape)),
|
||||
postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.would_rape_PostFix)));
|
||||
|
||||
// Non-rapist is_rapist bypass for limbic stimulator
|
||||
harmony.Patch(AccessTools.Method(typeof(xxx), nameof(xxx.is_rapist)),
|
||||
postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.is_rapist_PostFix)));
|
||||
|
||||
// Non-Rapist trait rape thoughts
|
||||
harmony.Patch(AccessTools.Method(typeof(AfterSexUtility), nameof(AfterSexUtility.think_about_sex_Rapist)),
|
||||
postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.think_about_sex_Rapist_PostFix)));
|
||||
|
||||
// Bioscaffold double gestation speed tick
|
||||
harmony.Patch(AccessTools.Method(typeof(PawnUtility), nameof(PawnUtility.BodyResourceGrowthSpeed)),
|
||||
postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.MultiplyPregnancy)));
|
||||
|
||||
// Hediff_Labor state capture
|
||||
harmony.Patch(AccessTools.Method(typeof(Hediff_Labor), nameof(Hediff_Labor.PostRemoved)),
|
||||
postfix: new HarmonyMethod(typeof(PatchLitteredBirth), nameof(PatchLitteredBirth.Hediff_Labor_PostRemovedPostFix)));
|
||||
|
||||
// OvaryAgitator/Gene_LitteredBirths multibirth logic
|
||||
harmony.Patch(AccessTools.Method(typeof(Hediff_LaborPushing), nameof(Hediff_LaborPushing.PostRemoved)),
|
||||
postfix: new HarmonyMethod(typeof(PatchLitteredBirth), nameof(PatchLitteredBirth.Hediff_LaborPushing_PostRemovedPostFix)));
|
||||
// Patch Licentia, if Licentia exists
|
||||
// Logic & Explanation taken from https://rimworldwiki.com/wiki/Modding_Tutorials/Compatibility_with_DLLs
|
||||
// Adjusted to use ModsConfig (which makes it work, the example above does not run out of the box)
|
||||
|
||||
harmony.Patch(AccessTools.Method(typeof(Quirk), nameof(Quirk.CountSatisfiedQuirks)),
|
||||
postfix: new HarmonyMethod(typeof(QuirkPatcher), nameof(QuirkPatcher.CountSatisfiedPostfix)));
|
||||
|
||||
/*
|
||||
try
|
||||
{
|
||||
Gene_Randomizer_Instance = (from asm in AppDomain.CurrentDomain.GetAssemblies()
|
||||
from type in asm.GetTypes()
|
||||
where type.IsClass && type.Name == "Gene_Randomizer"
|
||||
select type).Single();
|
||||
}
|
||||
catch (Exception ex) { }
|
||||
Def mytosis_mutation = DefDatabase<GeneDef>.GetNamed("rjw_genes_mytosis_mutation", false);
|
||||
if (mytosis_mutation != null)
|
||||
{
|
||||
harmony.Patch(AccessTools.Method(Gene_Randomizer_Instance, "PostAdd"),
|
||||
prefix: new HarmonyMethod(typeof(Patch_Waster), nameof(Patch_Waster.Gene_Randomizer_Prefix)));
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace RJW_Genes
|
|||
public static readonly HediffDef OvaryAgitator;
|
||||
public static readonly HediffDef Bioscaffold;
|
||||
|
||||
public static HediffDef NeedlePenis = HediffDef.Named("NeedlePenis");
|
||||
/*public static HediffDef NeedlePenis = HediffDef.Named("NeedlePenis");
|
||||
public static HediffDef PigPenis = HediffDef.Named("PigPenis");
|
||||
public static HediffDef MarinePenis = HediffDef.Named("MarinePenis");
|
||||
public static HediffDef TentaclePenis = HediffDef.Named("TentaclePenis");
|
||||
|
@ -34,6 +34,6 @@ namespace RJW_Genes
|
|||
public static HediffDef GhostVagina = HediffDef.Named("GhostVagina");
|
||||
public static HediffDef Vagina = HediffDef.Named("Vagina");
|
||||
public static HediffDef Penis = HediffDef.Named("Penis");
|
||||
public static HediffDef Anus = HediffDef.Named("Anus");
|
||||
public static HediffDef Anus = HediffDef.Named("Anus");*/
|
||||
}
|
||||
}
|
||||
|
|
BIN
Source/RJW.dll
BIN
Source/RJW.dll
Binary file not shown.
Binary file not shown.
|
@ -161,6 +161,8 @@
|
|||
<Compile Include="Genes\Patches\LustFeeding.cs" />
|
||||
<Compile Include="Genes\Patches\MultiplePregnancies.cs" />
|
||||
<Compile Include="Genes\Patch_AddNotifyOnGeneration.cs" />
|
||||
<Compile Include="Genes\QuirkPatching\Defs\QirkExtension.cs" />
|
||||
<Compile Include="Genes\QuirkPatching\QuirkPatcher.cs" />
|
||||
<Compile Include="Genes\Special\Abilities\CompAbilityEffect_CocoonWeaver.cs" />
|
||||
<Compile Include="Genes\Special\Abilities\CompProperties_AbilityCocoonWeaver.cs" />
|
||||
<Compile Include="Genes\Special\Defs\AgeTransferExtension.cs" />
|
||||
|
@ -189,8 +191,6 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="GeneDefs_GenitaliaTypeEndogenes.xml" />
|
||||
<Content Include="RJW.dll" />
|
||||
<Content Include="RJWSexperience.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="0Harmony, Version=2.2.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
|
@ -203,13 +203,12 @@
|
|||
<HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJW, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<Reference Include="RJW">
|
||||
<HintPath>..\..\rjw\1.5\Assemblies\RJW.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJWSexperience">
|
||||
<HintPath>..\..\rjw-sexperience\1.5\Assemblies\RJWSexperience.dll</HintPath>
|
||||
<HintPath>..\..\rjw-sexperience-master\1.5\Assemblies\RJWSexperience.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
|
@ -231,5 +230,8 @@
|
|||
<ItemGroup>
|
||||
<Folder Include="Genes\Gender\Patches\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Connected Services\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
Loading…
Add table
Add a link
Reference in a new issue