Compare commits
9 commits
1ebc75dbfe
...
6604f1206b
Author | SHA1 | Date | |
---|---|---|---|
|
6604f1206b | ||
|
6304ccf475 | ||
|
12c3b20971 | ||
|
76d6a11bc3 | ||
|
f379299bc7 | ||
|
2280f559cd | ||
|
18f13876b6 | ||
|
a6b82080ec | ||
|
758a2d5e2e |
|
@ -9,10 +9,18 @@ As your help is highly appreciated, there are only three *hard constraints*:
|
|||
|
||||
But please consider also the following:
|
||||
|
||||
* Please try to make an issue with your idea first or ping me (Vegapunk)
|
||||
* Please try to make an issue with your idea first or ping me (Vegapnk)
|
||||
* Keep commit messages on the topic and meaningful
|
||||
* Give me some time to review things. I can either mod, play or have a life.
|
||||
|
||||
## Contributors
|
||||
|
||||
- Shabalox (MechBreeding, InsectBreeding)
|
||||
- Shabalox (MechBreeding, InsectBreeding, Animal Gene Inheritance)
|
||||
|
||||
## Other Credits
|
||||
|
||||
**Image Credits**
|
||||
|
||||
- Many of the Icons I made (e.g. Genitalia Types) include things from [OpenMoji](https://openmoji.org/) which is awesome
|
||||
- Placeholder, Rapist, Necrophile come from [RJW-Sexperience Ideology](https://gitgud.io/amevarashi/rjw-sexperience-ideology/)
|
||||
- Hypersexual & Zoophile comes from [RJW](https://gitgud.io/Ed86/rjw)
|
|
@ -15,7 +15,7 @@
|
|||
<defName>rjw_genes_insectincubator</defName>
|
||||
<label>InsectIncubator</label>
|
||||
<description>Pawns with this gene are able to hold more insect eggs.</description>
|
||||
<iconPath>World/WorldObjects/Expanding/Mechanoids</iconPath>
|
||||
<iconPath>Genes/Icons/More_Egg_Space</iconPath>
|
||||
<displayOrderInCategory>52</displayOrderInCategory>
|
||||
<displayCategory>rjw_genes_breeding</displayCategory>
|
||||
</GeneDef>
|
||||
|
@ -24,7 +24,7 @@
|
|||
<defName>rjw_genes_insectbreeder</defName>
|
||||
<label>InsectBreeder</label>
|
||||
<description>Pawns with this gene are able to fertilize eggs with any fertile penis.</description>
|
||||
<iconPath>World/WorldObjects/Expanding/Mechanoids</iconPath>
|
||||
<iconPath>World/WorldObjects/Expanding/Insects</iconPath>
|
||||
<displayOrderInCategory>53</displayOrderInCategory>
|
||||
<displayCategory>rjw_genes_breeding</displayCategory>
|
||||
</GeneDef>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<label>Zoophile</label>
|
||||
<displayCategory>rjw_genes_breeding</displayCategory>
|
||||
<description>Xenotypes with this Gene are Zoophile.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Zoophile_2</iconPath>
|
||||
<displayOrderInCategory>54</displayOrderInCategory>
|
||||
<forcedTraits>
|
||||
<li>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<defName>rjw_genes_no_cum</defName>
|
||||
<label>No Cum</label>
|
||||
<description>Males of these species have no fluid.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/No_Cum</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoCum</geneClass>
|
||||
<displayOrderInCategory>533</displayOrderInCategory>
|
||||
<biostatCpx>0</biostatCpx>
|
||||
|
@ -23,7 +23,7 @@
|
|||
<defName>rjw_genes_much_cum</defName>
|
||||
<label>Much Cum</label>
|
||||
<description>Males of this species produce a lot of fluid.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Bonus_Cum</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_MuchCum</geneClass>
|
||||
<displayOrderInCategory>534</displayOrderInCategory>
|
||||
<biostatCpx>1</biostatCpx>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<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/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Much_Bonus_Cum</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_VeryMuchCum</geneClass>
|
||||
<displayOrderInCategory>535</displayOrderInCategory>
|
||||
<biostatCpx>1</biostatCpx>
|
||||
|
@ -46,7 +46,7 @@
|
|||
<label>Likes Cumflation</label>
|
||||
<displayCategory>rjw_genes_cum</displayCategory>
|
||||
<description>This Xenotype loves being cumflated.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Cumflation</iconPath>
|
||||
<displayOrderInCategory>536</displayOrderInCategory>
|
||||
<forcedTraits>
|
||||
<li>
|
||||
|
@ -63,7 +63,7 @@
|
|||
<label>Cumflation Immunity</label>
|
||||
<displayCategory>rjw_genes_cum</displayCategory>
|
||||
<description>This Xenotype cannot get cumflated.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Cumflation_Immunity</iconPath>
|
||||
<displayOrderInCategory>537</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
<li>NotCumflatable</li>
|
||||
|
@ -76,7 +76,7 @@
|
|||
<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/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Generous_Donor</iconPath>
|
||||
<displayOrderInCategory>538</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<label>Elasticity</label>
|
||||
<displayCategory>rjw_damage</displayCategory>
|
||||
<description>This Xenotype cannot get stretched by huge penetrators.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Elasticity</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_Elasticity</geneClass>
|
||||
<displayOrderInCategory>1</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<defName>rjw_genes_extra_penis</defName>
|
||||
<label>extra penis</label>
|
||||
<description>Males of this species grow an additional penis .</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/extra_male</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraPenis</geneClass>
|
||||
<displayOrderInCategory>701</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -21,7 +21,7 @@
|
|||
<defName>rjw_genes_no_penis</defName>
|
||||
<label>no penis</label>
|
||||
<description>Males of this do not have a penis.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/No_Male_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoPenis</geneClass>
|
||||
<displayOrderInCategory>702</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<defName>rjw_genes_extra_vagina</defName>
|
||||
<label>extra vagina</label>
|
||||
<description>Females of this species grow an additional vagina .</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/extra_female</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraVagina</geneClass>
|
||||
<displayOrderInCategory>703</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -46,7 +46,7 @@
|
|||
<defName>rjw_genes_no_vagina</defName>
|
||||
<label>no vagina</label>
|
||||
<description>Females of this do not have a vagina.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/No_Female_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoVagina</geneClass>
|
||||
<displayOrderInCategory>704</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -59,7 +59,7 @@
|
|||
<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/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Extra_Breasts</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraBreasts</geneClass>
|
||||
<displayOrderInCategory>705</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -71,7 +71,7 @@
|
|||
<defName>rjw_genes_no_breasts</defName>
|
||||
<label>no breasts</label>
|
||||
<description>Females of this do not have a pair of breasts.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/No_Breasts</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoBreasts</geneClass>
|
||||
<displayOrderInCategory>706</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -83,7 +83,7 @@
|
|||
<defName>rjw_genes_extra_anus</defName>
|
||||
<label>extra anus</label>
|
||||
<description>This specias has an extra anus.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Extra_Anus</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ExtraAnus</geneClass>
|
||||
<displayOrderInCategory>707</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -95,7 +95,7 @@
|
|||
<defName>rjw_genes_no_anus</defName>
|
||||
<label>no anus</label>
|
||||
<description>This specias has no anus.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/No_Anus</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NoAnus</geneClass>
|
||||
<displayOrderInCategory>708</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -107,7 +107,7 @@
|
|||
<defName>rjw_genes_futa</defName>
|
||||
<label>futanari</label>
|
||||
<description>Males of this xenotype grow additional female genitalia, Females grow additional male genitalia.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Futa</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_Futa</geneClass>
|
||||
<displayOrderInCategory>709</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<defName>rjw_genes_big_male_genitalia</defName>
|
||||
<label>Big Male Genitaliasize</label>
|
||||
<description>Penises of this Xenotype are bigger.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Small_Male_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_BigMaleGenitalia</geneClass>
|
||||
<displayOrderInCategory>751</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -18,23 +18,11 @@
|
|||
</exclusionTags>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="GeneGenitaliaSizeBase">
|
||||
<defName>rjw_genes_normal_male_genitalia</defName>
|
||||
<label>Normal Male Genitaliasize</label>
|
||||
<description>Penises of this Xenotype can be any size.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NormalMaleGenitalia</geneClass>
|
||||
<displayOrderInCategory>752</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.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Big_Male_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_SmallMaleGenitalia</geneClass>
|
||||
<displayOrderInCategory>753</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -47,7 +35,7 @@
|
|||
<defName>rjw_genes_loose_female_genitalia</defName>
|
||||
<label>Loose Female Genitalia</label>
|
||||
<description>Vaginas of this Xenotype are quite spacy.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Loose_Female_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_LooseFemaleGenitalia</geneClass>
|
||||
<displayOrderInCategory>754</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -55,23 +43,11 @@
|
|||
</exclusionTags>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="GeneGenitaliaSizeBase">
|
||||
<defName>rjw_genes_normal_female_genitalia</defName>
|
||||
<label>Normal Female Genitaliasize</label>
|
||||
<description>Vaginas of this Xenotype can be any size.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NormalFemaleGenitalia</geneClass>
|
||||
<displayOrderInCategory>755</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.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Tight_Female_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_TightFemaleGenitalia</geneClass>
|
||||
<displayOrderInCategory>756</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -84,7 +60,7 @@
|
|||
<defName>rjw_genes_big_breasts</defName>
|
||||
<label>Big Breasts</label>
|
||||
<description>Females of this Xenotype have big honkers.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Big_Breasts</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_BigBreasts</geneClass>
|
||||
<displayOrderInCategory>757</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -92,23 +68,11 @@
|
|||
</exclusionTags>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="GeneGenitaliaSizeBase">
|
||||
<defName>rjw_genes_normal_breasts</defName>
|
||||
<label>Normal Breastssize</label>
|
||||
<description>Females of this Xenotype have breasts of any size.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NormalBreasts</geneClass>
|
||||
<displayOrderInCategory>758</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.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Small_Breasts</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_SmallBreasts</geneClass>
|
||||
<displayOrderInCategory>759</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -121,7 +85,7 @@
|
|||
<defName>rjw_genes_loose_anus</defName>
|
||||
<label>Loose Anus</label>
|
||||
<description>The Anus of this Xenotype is roomy.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Loose_Anus</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_LooseAnus</geneClass>
|
||||
<displayOrderInCategory>760</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
@ -129,23 +93,11 @@
|
|||
</exclusionTags>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="GeneGenitaliaSizeBase">
|
||||
<defName>rjw_genes_normal_anus</defName>
|
||||
<label>Normal Anussize</label>
|
||||
<description>Anus of this Xenotype can be any size.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NormalAnus</geneClass>
|
||||
<displayOrderInCategory>761</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.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Tight_Anus</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_TightAnus</geneClass>
|
||||
<displayOrderInCategory>762</displayOrderInCategory>
|
||||
<exclusionTags>
|
||||
|
|
|
@ -7,25 +7,13 @@
|
|||
<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>801</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>
|
||||
<iconPath>Genes/Icons/Genitalia_Equine</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_EquineGenitalia</geneClass>
|
||||
<displayOrderInCategory>802</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -34,7 +22,7 @@
|
|||
<defName>rjw_genes_canine_genitalia</defName>
|
||||
<label>canine genitalia</label>
|
||||
<description>Carriers of this gene develop canine genitalia.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Genitalia_Canine_2</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_CanineGenitalia</geneClass>
|
||||
<displayOrderInCategory>803</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -43,7 +31,7 @@
|
|||
<defName>rjw_genes_feline_genitalia</defName>
|
||||
<label>feline genitalia</label>
|
||||
<description>Carriers of this gene develop feline genitalia.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Genitalia_Feline</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_FelineGenitalia</geneClass>
|
||||
<displayOrderInCategory>804</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -52,7 +40,7 @@
|
|||
<defName>rjw_genes_demonic_genitalia</defName>
|
||||
<label>demonic genitalia</label>
|
||||
<description>Carriers of this gene have demonic genitalia.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Genitalia_Demon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_DemonicGenitalia</geneClass>
|
||||
<displayOrderInCategory>805</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -61,7 +49,7 @@
|
|||
<defName>rjw_genes_dragon_genitalia</defName>
|
||||
<label>dragon genitalia</label>
|
||||
<description>Carriers of this gene develop dragon genitalia.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Genitalia_Draconic</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_DragonGenitalia</geneClass>
|
||||
<displayOrderInCategory>806</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -70,7 +58,7 @@
|
|||
<defName>rjw_genes_slime_genitalia</defName>
|
||||
<label>slime genitalia</label>
|
||||
<description>Carriers of this gene have slime genitalia.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Genitalia_Slime</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_SlimeGenitalia</geneClass>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -79,7 +67,7 @@
|
|||
<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>
|
||||
<iconPath>Genes/Icons/Genitalia_Insect</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_OvipositorGenitalia</geneClass>
|
||||
<displayOrderInCategory>808</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<label>Hypersexuality</label>
|
||||
<displayCategory>Reproduction</displayCategory>
|
||||
<description>Xenotypes with this Gene are Hypersexual (Nymphs).</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Hypersexual</iconPath>
|
||||
<displayOrderInCategory>1</displayOrderInCategory>
|
||||
<forcedTraits>
|
||||
<li>
|
||||
|
@ -20,7 +20,7 @@
|
|||
<label>Rapist</label>
|
||||
<displayCategory>Reproduction</displayCategory>
|
||||
<description>Xenotypes with this Gene are Rapists.</description>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Rape</iconPath>
|
||||
<displayOrderInCategory>2</displayOrderInCategory>
|
||||
<forcedTraits>
|
||||
<li>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<displayCategory>rjw_genes_gender</displayCategory>
|
||||
<description>This Xenotype only has females.</description>
|
||||
<biostatCpx>0</biostatCpx>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Female_Only</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_FemaleOnly</geneClass>
|
||||
<displayOrderInCategory>1</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
@ -17,7 +17,7 @@
|
|||
<label>Male</label>
|
||||
<description>This Xenotype only has males.</description>
|
||||
<biostatCpx>0</biostatCpx>
|
||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||
<iconPath>Genes/Icons/Male_Only</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_MaleOnly</geneClass>
|
||||
<displayOrderInCategory>2</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
</genes>
|
||||
</value>
|
||||
</Operation>
|
||||
-->
|
||||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="Dirtmole"]/genes</xpath>
|
||||
<value>
|
||||
|
@ -39,12 +38,10 @@
|
|||
</value>
|
||||
</Operation>
|
||||
|
||||
-->
|
||||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="Neanderthal"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</li>
|
||||
<li>rjw_genes_normal_breasts</li>
|
||||
<li>rjw_genes_big_male_genitalia</li>
|
||||
<li>rjw_genes_loose_female_genitalia</li>
|
||||
</value>
|
||||
|
@ -53,31 +50,21 @@
|
|||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="Pigskin"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</li>
|
||||
<li>rjw_genes_normal_breasts</li>
|
||||
<li>rjw_genes_normal_male_genitalia</li>
|
||||
<li>rjw_genes_normal_female_genitalia</li>
|
||||
<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_human_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</li>
|
||||
<li>rjw_genes_normal_breasts</li>
|
||||
<li>rjw_genes_normal_male_genitalia</li>
|
||||
<li>rjw_genes_normal_female_genitalia</li>
|
||||
<li>rjw_genes_insectbreeder</li>
|
||||
</value>
|
||||
</Operation>
|
||||
|
||||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="Yttakin"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</li>
|
||||
<li>rjw_genes_normal_breasts</li>
|
||||
<li>rjw_genes_big_male_genitalia</li>
|
||||
<li>rjw_genes_loose_female_genitalia</li>
|
||||
</value>
|
||||
|
@ -86,22 +73,15 @@
|
|||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="Highmate"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</li>
|
||||
<li>rjw_genes_normal_breasts</li>
|
||||
<li>rjw_genes_normal_male_genitalia</li>
|
||||
<li>rjw_genes_normal_female_genitalia</li>
|
||||
<li>rjw_genes_hypersexual</li>
|
||||
<li>rjw_genes_likes_cumflation</li>
|
||||
</value>
|
||||
</Operation>
|
||||
|
||||
<Operation Class="PatchOperationAdd">
|
||||
<xpath>Defs/XenotypeDef[defName="Genie"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_human_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</li>
|
||||
<li>rjw_genes_normal_breasts</li>
|
||||
<li>rjw_genes_normal_male_genitalia</li>
|
||||
<li>rjw_genes_normal_female_genitalia</li>
|
||||
<li>rjw_genes_mechbreeder</li>
|
||||
</value>
|
||||
</Operation>
|
||||
|
||||
|
@ -109,10 +89,6 @@
|
|||
<xpath>Defs/XenotypeDef[defName="Sanguophage"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_demonic_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</li>
|
||||
<li>rjw_genes_normal_breasts</li>
|
||||
<li>rjw_genes_normal_male_genitalia</li>
|
||||
<li>rjw_genes_normal_female_genitalia</li>
|
||||
</value>
|
||||
</Operation>
|
||||
|
||||
|
@ -120,10 +96,10 @@
|
|||
<xpath>Defs/XenotypeDef[defName="Impid"]/genes</xpath>
|
||||
<value>
|
||||
<li>rjw_genes_demonic_genitalia</li>
|
||||
<li>rjw_genes_normal_anus</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>
|
||||
|
||||
|
|
BIN
Common/Textures/Genes/Icons/Big_Breasts.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
Common/Textures/Genes/Icons/Big_Male_Genitalia.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
Common/Textures/Genes/Icons/Bonus_Cum.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
Common/Textures/Genes/Icons/Cumflation.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
Common/Textures/Genes/Icons/Cumflation_Immunity.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Common/Textures/Genes/Icons/Elasticity.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
Common/Textures/Genes/Icons/Empty.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
Common/Textures/Genes/Icons/Extra_Anus.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
Common/Textures/Genes/Icons/Extra_Breasts.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
Common/Textures/Genes/Icons/Futa.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
Common/Textures/Genes/Icons/Generous_Donor.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Canine.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Canine_2.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Demon.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Draconic.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Equine.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Feline.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Insect.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Common/Textures/Genes/Icons/Genitalia_Slime.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Common/Textures/Genes/Icons/Hypersexual.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Common/Textures/Genes/Icons/Loose_Anus.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
Common/Textures/Genes/Icons/Loose_Female_Genitalia.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
Common/Textures/Genes/Icons/More_Egg_Space.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
Common/Textures/Genes/Icons/Much_Bonus_Cum.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
Common/Textures/Genes/Icons/Necrophile.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
Common/Textures/Genes/Icons/No_Anus.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Common/Textures/Genes/Icons/No_Breasts.png
Normal file
After Width: | Height: | Size: 978 B |
BIN
Common/Textures/Genes/Icons/No_Cum.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
Common/Textures/Genes/Icons/No_Female_Genitalia.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
Common/Textures/Genes/Icons/No_Male_Genitalia.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
Common/Textures/Genes/Icons/Rape.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
Common/Textures/Genes/Icons/Small_Breasts.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
Common/Textures/Genes/Icons/Small_Male_Genitalia.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
Common/Textures/Genes/Icons/Tight_Anus.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
Common/Textures/Genes/Icons/Tight_Female_Genitalia.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
Common/Textures/Genes/Icons/Zoophile.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
Common/Textures/Genes/Icons/Zoophile_2.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
Common/Textures/Genes/Icons/extra_female.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
Common/Textures/Genes/Icons/extra_male.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
Common/Textures/Genes/Icons/female_only.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Common/Textures/Genes/Icons/male_only.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
|
@ -56,4 +56,19 @@ Ignore this. The pawns seem to have the right sex and genitalia, I cannot "catch
|
|||
|
||||
Aimed Solution:
|
||||
|
||||
Patch ChangeSex to skip for pawns with the two genes producing this.
|
||||
Patch ChangeSex to skip for pawns with the two genes producing this.
|
||||
|
||||
## Insect Breeder does not fertilize
|
||||
|
||||
Error:
|
||||
|
||||
A pawn with insect breeder fucks a pawn with unfertilized insect eggs, but the eggs stay unfertilized.
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
So testing this is super hard.
|
||||
|
||||
One thing - you need to have anal or vaginal sex for this to work. Any other sex type is currently not supported.
|
||||
|
||||
For anything else, please help me gather information on this what you did and how things look. I reworked it once but I think it should work now.
|
13
README.md
|
@ -12,8 +12,11 @@ This is my first Mod I started from scratch so any feedback is very welcome.
|
|||
- Some Traits, Cumflation Immunity, Elasticity
|
||||
- Cum-Amount Changes, Transfer Nutrition
|
||||
- Mech Breeding / Insect Breeding Support
|
||||
- Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance)
|
||||
|
||||
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.
|
||||
|
||||
## Bugs?
|
||||
|
||||
|
@ -24,4 +27,12 @@ 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.
|
||||
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.
|
||||
|
||||
## Load Order / Deps
|
||||
|
||||
Please load this after any mod adding genes, and after the used RJW-Mods (Licentia, Sexperience).
|
||||
|
||||
Should not be used with the original RJW_Animal_Gene_Inheritance anymore.
|
||||
|
||||
There was an issue with other "Male-Only / Female-Only" Mods --- for which we provide our own Genes now.
|
|
@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace RJW_BGS
|
||||
{
|
||||
public class GeneChance
|
||||
public class BestialityGeneInheritanceDef
|
||||
{
|
||||
public string defName;
|
||||
public float chance = 1f;
|
|
@ -15,17 +15,24 @@ namespace RJW_BGS
|
|||
static First()
|
||||
{
|
||||
RJWcopy.Racegroupdictbuilder();
|
||||
//foreach (RaceGroupDef raceGroupDef2 in DefDatabase<RaceGroupDef>.AllDefs)
|
||||
//{
|
||||
//Log.Message("defName = " + raceGroupDef2.defName);
|
||||
// if (raceGroupDef2.raceNames != null)
|
||||
// {
|
||||
// foreach (string race in raceGroupDef2.raceNames)
|
||||
// {
|
||||
//Log.Message(race);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//Prints all found race dicts (debugging only)
|
||||
//logAllFoundRaceGroupGenes
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,40 +12,33 @@ namespace RJW_BGS
|
|||
{
|
||||
public static List<GeneDef> AnimalInheritedGenes(Pawn father, Pawn mother)
|
||||
{
|
||||
//One parent must be an animal and the other must be human, so only one needs to return
|
||||
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;
|
||||
|
||||
|
||||
//One parent must be an animal and the other must be human, so only one needs to return
|
||||
if (father != null && !father.RaceProps.Humanlike)
|
||||
{
|
||||
return SelectGenes(father);
|
||||
}
|
||||
|
||||
if (mother != null && !mother.RaceProps.Humanlike)
|
||||
{
|
||||
return SelectGenes(mother);
|
||||
//PawnKindDef pawnKindDef = mother.kindDef;
|
||||
//RaceGeneDef raceGeneDef = RJWcopy.GetRaceGenDefInternal(pawnKindDef);
|
||||
//if (raceGeneDef != null)
|
||||
//{
|
||||
// GeneDef gene = null;
|
||||
//In case you hit a modded gene not currently active try again.
|
||||
// for (int i = 0; i < 50 || gene == null; i++)
|
||||
// {
|
||||
// if (raceGeneDef.genes.Any())
|
||||
// {
|
||||
// gene = DefDatabase<GeneDef>.GetNamed(raceGeneDef.genes.RandomElement());
|
||||
// }
|
||||
// }
|
||||
// if (gene != null)
|
||||
// {
|
||||
// genelist.Add(gene);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
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>();
|
||||
|
@ -53,7 +46,7 @@ namespace RJW_BGS
|
|||
RaceGeneDef raceGeneDef = RJWcopy.GetRaceGenDefInternal(pawnKindDef);
|
||||
if (raceGeneDef != null)
|
||||
{
|
||||
foreach (GeneChance gene in raceGeneDef.genes)
|
||||
foreach (BestialityGeneInheritanceDef gene in raceGeneDef.genes)
|
||||
{
|
||||
if (gene.chance >= Rand.Range(0.01f,1f))
|
||||
{
|
||||
|
|
|
@ -41,33 +41,37 @@ namespace RJW_BGS
|
|||
string raceName = kindDef.race.defName;
|
||||
string pawnKindName = kindDef.defName;
|
||||
IEnumerable<RaceGroupDef> allDefs = DefDatabase<RaceGroupDef>.AllDefs;
|
||||
List<RaceGroupDef> list = allDefs.Where(delegate (RaceGroupDef group)
|
||||
List<RaceGroupDef> pawnKindDefs = allDefs.Where(delegate (RaceGroupDef group)
|
||||
{
|
||||
List<string> pawnKindNames = group.pawnKindNames;
|
||||
return pawnKindNames != null && pawnKindNames.Contains(pawnKindName);
|
||||
}).ToList<RaceGroupDef>();
|
||||
List<RaceGroupDef> list2 = allDefs.Where(delegate (RaceGroupDef group)
|
||||
List<RaceGroupDef> raceNameDefs = allDefs.Where(delegate (RaceGroupDef group)
|
||||
{
|
||||
List<string> raceNames = group.raceNames;
|
||||
return raceNames != null && raceNames.Contains(raceName);
|
||||
}).ToList<RaceGroupDef>();
|
||||
int num = list.Count<RaceGroupDef>() + list2.Count<RaceGroupDef>();
|
||||
if (num == 0)
|
||||
|
||||
int availableDefs = pawnKindDefs.Count<RaceGroupDef>() + raceNameDefs.Count<RaceGroupDef>();
|
||||
if (availableDefs == 0)
|
||||
{
|
||||
//Exit Early
|
||||
return null;
|
||||
}
|
||||
if (num == 1)
|
||||
if (availableDefs == 1)
|
||||
{
|
||||
return list.Concat(list2).Single<RaceGroupDef>();
|
||||
return pawnKindDefs.Concat(raceNameDefs).Single<RaceGroupDef>();
|
||||
}
|
||||
|
||||
RaceGroupDef result;
|
||||
if ((result = list.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
|
||||
if ((result = pawnKindDefs.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
|
||||
{
|
||||
if ((result = list2.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
|
||||
if ((result = raceNameDefs.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
|
||||
{
|
||||
result = (list.FirstOrDefault<RaceGroupDef>() ?? list2.FirstOrDefault<RaceGroupDef>());
|
||||
result = (pawnKindDefs.FirstOrDefault<RaceGroupDef>() ?? raceNameDefs.FirstOrDefault<RaceGroupDef>());
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -81,29 +85,31 @@ namespace RJW_BGS
|
|||
string raceName = kindDef.race.defName;
|
||||
string pawnKindName = kindDef.defName;
|
||||
RaceGroupDef raceGroupDef = GetRaceGroupDef(kindDef);
|
||||
//string raceGroupName = GetRaceGroupDef(kindDef).defName;
|
||||
IEnumerable<RaceGeneDef> allDefs = DefDatabase<RaceGeneDef>.AllDefs;
|
||||
Log.Message(allDefs.Count<RaceGeneDef>().ToString());
|
||||
List<RaceGeneDef> list = allDefs.Where(delegate (RaceGeneDef group)
|
||||
List<RaceGeneDef> pawnKindDefs = allDefs.Where(delegate (RaceGeneDef group)
|
||||
{
|
||||
List<string> pawnKindNames = group.pawnKindNames;
|
||||
return pawnKindNames != null && pawnKindNames.Contains(pawnKindName);
|
||||
}).ToList<RaceGeneDef>();
|
||||
List<RaceGeneDef> list2 = allDefs.Where(delegate (RaceGeneDef group)
|
||||
List<RaceGeneDef> raceKindDefs = allDefs.Where(delegate (RaceGeneDef group)
|
||||
{
|
||||
List<string> raceNames = group.raceNames;
|
||||
return raceNames != null && raceNames.Contains(raceName);
|
||||
}).ToList<RaceGeneDef>();
|
||||
List<RaceGeneDef> list3 = new List<RaceGeneDef>();
|
||||
List<RaceGeneDef> raceGroupDefs = new List<RaceGeneDef>();
|
||||
if (raceGroupDef != null)
|
||||
{
|
||||
/*
|
||||
// Log Messages for Debugging Only, prints the Genes found for this individual
|
||||
Log.Message("found a raceGroupDef");
|
||||
Log.Message(raceGroupDef.defName);
|
||||
foreach (RaceGeneDef rgd in allDefs)
|
||||
{
|
||||
Log.Message(rgd.defName);
|
||||
}
|
||||
list3 = allDefs.Where(delegate (RaceGeneDef group)
|
||||
*/
|
||||
raceGroupDefs = allDefs.Where(delegate (RaceGeneDef group)
|
||||
{
|
||||
String raceGroupDefName = group.raceGroup;
|
||||
return raceGroupDefName != null && raceGroupDefName == raceGroupDef.defName;
|
||||
|
@ -111,17 +117,17 @@ namespace RJW_BGS
|
|||
}
|
||||
RaceGeneDef result = null;
|
||||
//First check if there is a matching pawnkinddef then race, then racegroup
|
||||
if (list.Any())
|
||||
if (pawnKindDefs.Any())
|
||||
{
|
||||
result = list.RandomElement();
|
||||
result = pawnKindDefs.RandomElement();
|
||||
}
|
||||
else if (list2.Any() && result == null)
|
||||
else if (raceKindDefs.Any() && result == null)
|
||||
{
|
||||
result = list2.RandomElement();
|
||||
result = raceKindDefs.RandomElement();
|
||||
}
|
||||
else if (list3.Any() && result == null)
|
||||
else if (raceGroupDefs.Any() && result == null)
|
||||
{
|
||||
result = list3.RandomElement();
|
||||
result = raceGroupDefs.RandomElement();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace RJW_BGS
|
|||
public String raceGroup;
|
||||
public List<string> raceNames;
|
||||
public List<string> pawnKindNames;
|
||||
public List<GeneChance> genes;
|
||||
public List<BestialityGeneInheritanceDef> genes;
|
||||
//public List<float> genechances;
|
||||
public String hybridName;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ namespace RJW_Genes
|
|||
public static readonly GeneCategoryDef rjw_genes_breeding;
|
||||
|
||||
// Base Genitalia Types
|
||||
public static readonly GeneDef rjw_genes_human_genitalia;
|
||||
public static readonly GeneDef rjw_genes_equine_genitalia;
|
||||
public static readonly GeneDef rjw_genes_demonic_genitalia;
|
||||
public static readonly GeneDef rjw_genes_dragon_genitalia;
|
||||
|
@ -34,16 +33,12 @@ namespace RJW_Genes
|
|||
|
||||
// Genitalia Sizes
|
||||
public static readonly GeneDef rjw_genes_big_male_genitalia;
|
||||
public static readonly GeneDef rjw_genes_normal_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_normal_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_normal_breasts;
|
||||
public static readonly GeneDef rjw_genes_small_breasts;
|
||||
public static readonly GeneDef rjw_genes_loose_anus;
|
||||
public static readonly GeneDef rjw_genes_normal_anus;
|
||||
public static readonly GeneDef rjw_genes_tight_anus;
|
||||
|
||||
// Gender
|
||||
|
|
99
Source/Genes/Breeding/Patch_EggFertilization.cs
Normal file
|
@ -0,0 +1,99 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using HarmonyLib;
|
||||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// This Class patches the AfterSexUtility to also fertilize eggs if Pawn A has "InsectBreeder" and Pawn B has Insect Eggs.
|
||||
/// Patched Class is https://gitgud.io/Ed86/rjw/-/blob/master/1.4/Source/Common/Helpers/SexUtility.cs
|
||||
///
|
||||
/// Normal Egg-Pregnancy logic is in https://gitgud.io/Ed86/rjw/-/blob/master/1.4/Source/Modules/Pregnancy/Pregnancy_Helper.cs
|
||||
/// </summary>
|
||||
[HarmonyPatch(typeof(SexUtility), "Aftersex")]
|
||||
static class PatchEggFertilizationHelper
|
||||
{
|
||||
[HarmonyTranspiler]
|
||||
public static void Postfix(SexProps props)
|
||||
{
|
||||
// Only Fertilize on vaginal / anal sex
|
||||
if (!(props.sexType == xxx.rjwSextype.Vaginal || props.sexType == xxx.rjwSextype.Anal))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (canDoEggFertilization(props.pawn, props.partner))
|
||||
{
|
||||
// Pawn has gene and Partner has eggs
|
||||
if (props.pawn.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(props.partner).NullOrEmpty())
|
||||
{
|
||||
Pawn eggHolder = props.partner;
|
||||
Pawn impregnator = props.pawn;
|
||||
|
||||
foreach (Hediff_InsectEgg egg in getEggsforPawn(eggHolder))
|
||||
{
|
||||
if (!egg.fertilized)
|
||||
egg.Fertilize(impregnator);
|
||||
}
|
||||
}
|
||||
|
||||
// Partner has gene and Pawn has eggs
|
||||
if (props.partner.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(props.pawn).NullOrEmpty())
|
||||
{
|
||||
Pawn eggHolder = props.pawn;
|
||||
Pawn impregnator = props.partner;
|
||||
|
||||
foreach (Hediff_InsectEgg egg in getEggsforPawn(eggHolder))
|
||||
{
|
||||
if (!egg.fertilized)
|
||||
egg.Fertilize(impregnator);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static Boolean canDoEggFertilization(Pawn a, Pawn b)
|
||||
{
|
||||
|
||||
// No Partner / Other Errors
|
||||
if (a != null || b != null)
|
||||
return false;
|
||||
// None of the pawns has the relevant gene
|
||||
if (!a.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !b.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder))
|
||||
return false;
|
||||
// None of the pawns has eggs
|
||||
if (getEggsforPawn(a).NullOrEmpty() && getEggsforPawn(b).NullOrEmpty())
|
||||
return false;
|
||||
|
||||
// A has gene and B has eggs
|
||||
if (a.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(b).NullOrEmpty())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// B has gene and A has eggs
|
||||
if (b.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(a).NullOrEmpty())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// Any other case: Do nothing
|
||||
return false;
|
||||
}
|
||||
|
||||
private static List<Hediff_InsectEgg> getEggsforPawn(Pawn pawn)
|
||||
{
|
||||
List<Hediff_InsectEgg> eggs = new List<Hediff_InsectEgg>();
|
||||
pawn.health.hediffSet.GetHediffs(ref eggs);
|
||||
foreach (var egg in eggs)
|
||||
egg.Fertilize(pawn);
|
||||
|
||||
return eggs;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_HumanGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.average_penis,Genital_Helper.average_vagina,Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.average_penis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -23,16 +23,17 @@ namespace RJW_Genes
|
|||
if (!gene.Overridden)
|
||||
return gene.def;
|
||||
}
|
||||
|
||||
return GeneDefOf.rjw_genes_human_genitalia;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static HediffDef GetPenisForGene(GeneDef gene)
|
||||
{
|
||||
if (gene == null)
|
||||
return Genital_Helper.average_penis;
|
||||
|
||||
switch (gene.defName)
|
||||
{
|
||||
case "rjw_genes_human_genitalia": return Genital_Helper.average_penis;
|
||||
case "rjw_genes_equine_genitalia": return Genital_Helper.equine_penis;
|
||||
case "rjw_genes_canine_genitalia": return Genital_Helper.canine_penis;
|
||||
case "rjw_genes_feline_genitalia": return Genital_Helper.feline_penis;
|
||||
|
@ -48,9 +49,11 @@ namespace RJW_Genes
|
|||
|
||||
public static HediffDef GetVaginaForGene(GeneDef gene)
|
||||
{
|
||||
if (gene == null)
|
||||
return Genital_Helper.average_vagina;
|
||||
|
||||
switch (gene.defName)
|
||||
{
|
||||
case "rjw_genes_human_genitalia": return Genital_Helper.average_vagina;
|
||||
case "rjw_genes_equine_genitalia": return Genital_Helper.equine_vagina;
|
||||
case "rjw_genes_canine_genitalia": return Genital_Helper.canine_vagina;
|
||||
case "rjw_genes_feline_genitalia": return Genital_Helper.feline_vagina;
|
||||
|
@ -65,10 +68,11 @@ namespace RJW_Genes
|
|||
|
||||
public static HediffDef GetAnusForGene(GeneDef gene)
|
||||
{
|
||||
if (gene == null)
|
||||
return Genital_Helper.average_anus;
|
||||
switch (gene.defName)
|
||||
{
|
||||
//TODO: Do I want the default to be generic or average for feline,equine and canine?
|
||||
case "rjw_genes_human_genitalia": return Genital_Helper.average_anus;
|
||||
case "rjw_genes_equine_genitalia": return Genital_Helper.average_anus;
|
||||
case "rjw_genes_canine_genitalia": return Genital_Helper.average_anus;
|
||||
case "rjw_genes_feline_genitalia": return Genital_Helper.average_anus;
|
||||
|
@ -83,10 +87,12 @@ 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_human_genitalia": return Genital_Helper.average_breasts;
|
||||
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;
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalAnus : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalBreasts : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalFemaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalMaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -27,7 +27,7 @@
|
|||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Assembly-CSharp">
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
|
||||
<HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="LicentiaLabs">
|
||||
|
@ -35,7 +35,7 @@
|
|||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJW">
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\RJW\1.4\Assemblies\RJW.dll</HintPath>
|
||||
<HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
|
@ -51,7 +51,12 @@
|
|||
<None Include="..\Common\Languages\**" />
|
||||
<None Include="..\Common\Patches\**" />
|
||||
<Reference Include="UnityEngine.CoreModule">
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||
<HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.IMGUIModule">
|
||||
<HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -65,11 +70,12 @@
|
|||
<Compile Include="Animal_Inheritance\RJWcopies.cs" />
|
||||
<Compile Include="Animal_Inheritance\RJW_BGSSettings.cs" />
|
||||
<Compile Include="Animal_Inheritance\RJW_BGSSettingsController.cs" />
|
||||
<Compile Include="Animal_Inheritance\GeneChance.cs" />
|
||||
<Compile Include="Animal_Inheritance\BestialityGeneInheritanceDef.cs" />
|
||||
<Compile Include="GeneDefOf.cs" />
|
||||
<Compile Include="Genes\Breeding\Gene_MechBreeder.cs" />
|
||||
<Compile Include="Genes\Breeding\PatchMechBirth.cs" />
|
||||
<Compile Include="Genes\Breeding\PatchPawnExtensions.cs" />
|
||||
<Compile Include="Genes\Breeding\Patch_EggFertilization.cs" />
|
||||
<Compile Include="Genes\Breeding\PatchPregnancyHelper.cs" />
|
||||
<Compile Include="Genes\Cum\CumUtility.cs" />
|
||||
<Compile Include="Genes\Cum\Gene_VeryMuchCum.cs" />
|
||||
|
@ -94,10 +100,6 @@
|
|||
<Compile Include="Genes\GenitaliaSize\Gene_BigBreasts.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_LooseAnus.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_LooseFemaleGenitalia.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_NormalFemaleGenitalia.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_NormalAnus.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_NormalBreasts.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_NormalMaleGenitalia.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_TightAnus.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_SmallBreasts.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Gene_TightFemaleGenitalia.cs" />
|
||||
|
@ -111,7 +113,6 @@
|
|||
<Compile Include="Genes\Genitalia\Gene_OvipositorGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_DemonicGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_EquineGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_HumanGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\GenitaliaChanger.cs" />
|
||||
<Compile Include="Genes\RJW_Gene.cs" />
|
||||
<Compile Include="Genes\Genitalia\GenitaliaUtility.cs" />
|
||||
|
|
12
TODOS.md
|
@ -6,10 +6,16 @@ So any help is very appreciated, even if it is just pointing me to existing simi
|
|||
## Planned Genes
|
||||
|
||||
**Sanguophage like Cumwhores** adding Hemogen and refilling it by getting semen.
|
||||
Showstopper here is the amount of code required, and that I need to understand a bit better of harmony to run the AfterSexUtility and modulate SexChances.
|
||||
Showstopper here is the amount of code required, and that I need to understand a bit better of harmony to run the AfterSexUtility and modulate SexChances. My first attempt exploded on adding UI Elements.
|
||||
|
||||
**Adjustable Cock-Size** like e.g. artificial genitalia have
|
||||
|
||||
**Infectious Hypersexuality Gene** (Maybe?) add Hypersexuality Gene through sex with a certain chance.
|
||||
|
||||
**Stat Boost on Orgasm** restore stamina
|
||||
|
||||
**Cum Addiction** add Cum-Addiction from Sexpererience, slowly loose conciousness while addiction is not attended.
|
||||
|
||||
## Animal Gene Inheritance
|
||||
|
||||
It should be doable to have a per-category list of genes that a child can inherit on bestiality.
|
||||
|
@ -25,7 +31,7 @@ Issues:
|
|||
|
||||
There were some suggestions on the Discord I saved them somewhere else. I am far away from making that work, but to have them here:
|
||||
|
||||
- Genitalia deal damage as per size
|
||||
- Genitalia can cause Terror
|
||||
- Genitalia deal damage as per size (on normal sex-use)
|
||||
- Genitalia can cause Terror (as ability)
|
||||
- Cumshot Sniper Abilities
|
||||
- Healing Pussy
|