mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Compare commits
No commits in common. "21fc56fe2bb1dbfcf87f6cd08e408b4059a34171" and "bf4303177ee9307547c2b2474edacb22ceae5b0b" have entirely different histories.
21fc56fe2b
...
bf4303177e
52 changed files with 189 additions and 582 deletions
|
@ -13,13 +13,13 @@
|
||||||
<displayName>RimJobWorld</displayName>
|
<displayName>RimJobWorld</displayName>
|
||||||
<downloadUrl>https://www.loverslab.com/files/file/7257-rimjobworld/</downloadUrl>
|
<downloadUrl>https://www.loverslab.com/files/file/7257-rimjobworld/</downloadUrl>
|
||||||
</li>
|
</li>
|
||||||
|
<!--
|
||||||
<li>
|
<li>
|
||||||
<packageId>brrainz.harmony</packageId>
|
<packageId>brrainz.harmony</packageId>
|
||||||
<displayName>Harmony</displayName>
|
<displayName>Harmony</displayName>
|
||||||
<steamWorkshopUrl>steam://url/CommunityFilePage/2009463077</steamWorkshopUrl>
|
<steamWorkshopUrl>steam://url/CommunityFilePage/2009463077</steamWorkshopUrl>
|
||||||
<downloadUrl>https://github.com/pardeike/HarmonyRimWorld/releases/latest</downloadUrl>
|
<downloadUrl>https://github.com/pardeike/HarmonyRimWorld/releases/latest</downloadUrl>
|
||||||
</li>
|
</li>
|
||||||
<!--
|
|
||||||
<li>
|
<li>
|
||||||
<packageId>UnlimitedHugs.HugsLib</packageId>
|
<packageId>UnlimitedHugs.HugsLib</packageId>
|
||||||
<displayName>HugsLib</displayName>
|
<displayName>HugsLib</displayName>
|
||||||
|
@ -30,8 +30,8 @@
|
||||||
</modDependencies>
|
</modDependencies>
|
||||||
<loadAfter>
|
<loadAfter>
|
||||||
<li>rim.job.world</li>
|
<li>rim.job.world</li>
|
||||||
<li>brrainz.harmony</li>
|
|
||||||
<!--
|
<!--
|
||||||
|
<li>brrainz.harmony</li>
|
||||||
<li>UnlimitedHugs.HugsLib</li>
|
<li>UnlimitedHugs.HugsLib</li>
|
||||||
-->
|
-->
|
||||||
</loadAfter>
|
</loadAfter>
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,32 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<Defs>
|
|
||||||
<!-- rjw_genes_mechbreeder,rjw_genes_insectincubator and rjw_genes_insectbreeder were kindly supplied by `Shabalox` https://github.com/Shabalox/RJW_Genes_Addons/ -->
|
|
||||||
|
|
||||||
<GeneDef>
|
|
||||||
<defName>rjw_genes_mechbreeder</defName>
|
|
||||||
<label>Mechbreeder</label>
|
|
||||||
<description>Pawns with this gene are able to birth mechanoids unharmed.</description>
|
|
||||||
<iconPath>World/WorldObjects/Expanding/Mechanoids</iconPath>
|
|
||||||
<displayOrderInCategory>51</displayOrderInCategory>
|
|
||||||
<displayCategory>rjw_genes_breeding</displayCategory>
|
|
||||||
</GeneDef>
|
|
||||||
|
|
||||||
<GeneDef>
|
|
||||||
<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>
|
|
||||||
<displayOrderInCategory>52</displayOrderInCategory>
|
|
||||||
<displayCategory>rjw_genes_breeding</displayCategory>
|
|
||||||
</GeneDef>
|
|
||||||
|
|
||||||
<GeneDef>
|
|
||||||
<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>
|
|
||||||
<displayOrderInCategory>53</displayOrderInCategory>
|
|
||||||
<displayCategory>rjw_genes_breeding</displayCategory>
|
|
||||||
</GeneDef>
|
|
||||||
|
|
||||||
</Defs>
|
|
|
@ -1,27 +1,10 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<Defs>
|
<Defs>
|
||||||
|
|
||||||
<!-- Note: It is very important that rjw_genes_gender has a higher priority than the other genes
|
|
||||||
That way they run in the correct order.
|
|
||||||
If the Gender Change happens after e.g. genitalia change, it will produce errors.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<GeneCategoryDef>
|
|
||||||
<defName>rjw_genes_gender</defName>
|
|
||||||
<label>Gender</label>
|
|
||||||
<displayPriorityInXenotype>20</displayPriorityInXenotype>
|
|
||||||
</GeneCategoryDef>
|
|
||||||
|
|
||||||
<GeneCategoryDef>
|
<GeneCategoryDef>
|
||||||
<defName>rjw_genes_genitalia</defName>
|
<defName>rjw_genes_genitalia</defName>
|
||||||
<label>Genitalia</label>
|
<label>Genitalia</label>
|
||||||
<displayPriorityInXenotype>16</displayPriorityInXenotype>
|
<displayPriorityInXenotype>541</displayPriorityInXenotype>
|
||||||
</GeneCategoryDef>
|
|
||||||
|
|
||||||
<GeneCategoryDef>
|
|
||||||
<defName>rjw_genes_breeding</defName>
|
|
||||||
<label>Breeding</label>
|
|
||||||
<displayPriorityInXenotype>15</displayPriorityInXenotype>
|
|
||||||
</GeneCategoryDef>
|
</GeneCategoryDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
|
@ -11,7 +11,7 @@
|
||||||
<description>Males of this species grow an additional penis .</description>
|
<description>Males of this species grow an additional penis .</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_ExtraPenis</geneClass>
|
<geneClass>RJW_Genes.Gene_ExtraPenis</geneClass>
|
||||||
<displayOrderInCategory>701</displayOrderInCategory>
|
<displayOrderInCategory>20</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>PenisAmount</li>
|
<li>PenisAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
<description>Males of this do not have a penis.</description>
|
<description>Males of this do not have a penis.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NoPenis</geneClass>
|
<geneClass>RJW_Genes.Gene_NoPenis</geneClass>
|
||||||
<displayOrderInCategory>702</displayOrderInCategory>
|
<displayOrderInCategory>21</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>PenisAmount</li>
|
<li>PenisAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
<description>Females of this species grow an additional vagina .</description>
|
<description>Females of this species grow an additional vagina .</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_ExtraVagina</geneClass>
|
<geneClass>RJW_Genes.Gene_ExtraVagina</geneClass>
|
||||||
<displayOrderInCategory>703</displayOrderInCategory>
|
<displayOrderInCategory>22</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>VaginaAmount</li>
|
<li>VaginaAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
<description>Females of this do not have a vagina.</description>
|
<description>Females of this do not have a vagina.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NoVagina</geneClass>
|
<geneClass>RJW_Genes.Gene_NoVagina</geneClass>
|
||||||
<displayOrderInCategory>704</displayOrderInCategory>
|
<displayOrderInCategory>23</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>VaginaAmount</li>
|
<li>VaginaAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
<description>Females of this species grow an additional pair of breasts .</description>
|
<description>Females of this species grow an additional pair of breasts .</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_ExtraBreasts</geneClass>
|
<geneClass>RJW_Genes.Gene_ExtraBreasts</geneClass>
|
||||||
<displayOrderInCategory>705</displayOrderInCategory>
|
<displayOrderInCategory>24</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>BreastAmount</li>
|
<li>BreastAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
<description>Females of this do not have a pair of breasts.</description>
|
<description>Females of this do not have a pair of breasts.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NoBreasts</geneClass>
|
<geneClass>RJW_Genes.Gene_NoBreasts</geneClass>
|
||||||
<displayOrderInCategory>706</displayOrderInCategory>
|
<displayOrderInCategory>25</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>BreastAmount</li>
|
<li>BreastAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
<description>This specias has an extra anus.</description>
|
<description>This specias has an extra anus.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_ExtraAnus</geneClass>
|
<geneClass>RJW_Genes.Gene_ExtraAnus</geneClass>
|
||||||
<displayOrderInCategory>707</displayOrderInCategory>
|
<displayOrderInCategory>26</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>AnusAmount</li>
|
<li>AnusAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
<description>This specias has no anus.</description>
|
<description>This specias has no anus.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NoAnus</geneClass>
|
<geneClass>RJW_Genes.Gene_NoAnus</geneClass>
|
||||||
<displayOrderInCategory>708</displayOrderInCategory>
|
<displayOrderInCategory>27</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>AnusAmount</li>
|
<li>AnusAmount</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
<description>Males of this xenotype grow additional female genitalia, Females grow additional male genitalia.</description>
|
<description>Males of this xenotype grow additional female genitalia, Females grow additional male genitalia.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_Futa</geneClass>
|
<geneClass>RJW_Genes.Gene_Futa</geneClass>
|
||||||
<displayOrderInCategory>709</displayOrderInCategory>
|
<displayOrderInCategory>29</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>PenisAmount</li>
|
<li>PenisAmount</li>
|
||||||
<li>VaginaAmount</li>
|
<li>VaginaAmount</li>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<description>Penises of this Xenotype are bigger.</description>
|
<description>Penises of this Xenotype are bigger.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_BigMaleGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_BigMaleGenitalia</geneClass>
|
||||||
<displayOrderInCategory>751</displayOrderInCategory>
|
<displayOrderInCategory>51</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>PenisSize</li>
|
<li>PenisSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
<description>Penises of this Xenotype can be any size.</description>
|
<description>Penises of this Xenotype can be any size.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NormalMaleGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_NormalMaleGenitalia</geneClass>
|
||||||
<displayOrderInCategory>752</displayOrderInCategory>
|
<displayOrderInCategory>52</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>PenisSize</li>
|
<li>PenisSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
<description>Penises of this Xenotype are smaller.</description>
|
<description>Penises of this Xenotype are smaller.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_SmallMaleGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_SmallMaleGenitalia</geneClass>
|
||||||
<displayOrderInCategory>753</displayOrderInCategory>
|
<displayOrderInCategory>53</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>PenisSize</li>
|
<li>PenisSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
<description>Vaginas of this Xenotype are quite spacy.</description>
|
<description>Vaginas of this Xenotype are quite spacy.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_LooseFemaleGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_LooseFemaleGenitalia</geneClass>
|
||||||
<displayOrderInCategory>754</displayOrderInCategory>
|
<displayOrderInCategory>54</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>VaginaSize</li>
|
<li>VaginaSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
<description>Vaginas of this Xenotype can be any size.</description>
|
<description>Vaginas of this Xenotype can be any size.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NormalFemaleGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_NormalFemaleGenitalia</geneClass>
|
||||||
<displayOrderInCategory>755</displayOrderInCategory>
|
<displayOrderInCategory>55</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>VaginaSize</li>
|
<li>VaginaSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
<description>Vaginas of this Xenotype are pretty tight.</description>
|
<description>Vaginas of this Xenotype are pretty tight.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_TightFemaleGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_TightFemaleGenitalia</geneClass>
|
||||||
<displayOrderInCategory>756</displayOrderInCategory>
|
<displayOrderInCategory>56</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>VaginaSize</li>
|
<li>VaginaSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
<description>Females of this Xenotype have big honkers.</description>
|
<description>Females of this Xenotype have big honkers.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_BigBreasts</geneClass>
|
<geneClass>RJW_Genes.Gene_BigBreasts</geneClass>
|
||||||
<displayOrderInCategory>757</displayOrderInCategory>
|
<displayOrderInCategory>57</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>BreastSize</li>
|
<li>BreastSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
<description>Females of this Xenotype have breasts of any size.</description>
|
<description>Females of this Xenotype have breasts of any size.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NormalBreasts</geneClass>
|
<geneClass>RJW_Genes.Gene_NormalBreasts</geneClass>
|
||||||
<displayOrderInCategory>758</displayOrderInCategory>
|
<displayOrderInCategory>58</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>BreastSize</li>
|
<li>BreastSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
<description>Females of this Xenotype have smaller breasts.</description>
|
<description>Females of this Xenotype have smaller breasts.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_SmallBreasts</geneClass>
|
<geneClass>RJW_Genes.Gene_SmallBreasts</geneClass>
|
||||||
<displayOrderInCategory>759</displayOrderInCategory>
|
<displayOrderInCategory>59</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>BreastSize</li>
|
<li>BreastSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
<description>The Anus of this Xenotype is roomy.</description>
|
<description>The Anus of this Xenotype is roomy.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_LooseAnus</geneClass>
|
<geneClass>RJW_Genes.Gene_LooseAnus</geneClass>
|
||||||
<displayOrderInCategory>760</displayOrderInCategory>
|
<displayOrderInCategory>60</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>AnusSize</li>
|
<li>AnusSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -135,7 +135,7 @@
|
||||||
<description>Anus of this Xenotype can be any size.</description>
|
<description>Anus of this Xenotype can be any size.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_NormalAnus</geneClass>
|
<geneClass>RJW_Genes.Gene_NormalAnus</geneClass>
|
||||||
<displayOrderInCategory>761</displayOrderInCategory>
|
<displayOrderInCategory>61</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>AnusSize</li>
|
<li>AnusSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
<description>The anus of this Xenotype is small.</description>
|
<description>The anus of this Xenotype is small.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_TightAnus</geneClass>
|
<geneClass>RJW_Genes.Gene_TightAnus</geneClass>
|
||||||
<displayOrderInCategory>762</displayOrderInCategory>
|
<displayOrderInCategory>62</displayOrderInCategory>
|
||||||
<exclusionTags>
|
<exclusionTags>
|
||||||
<li>AnusSize</li>
|
<li>AnusSize</li>
|
||||||
</exclusionTags>
|
</exclusionTags>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<description>Carriers of this carry genitalia similar to humans.</description>
|
<description>Carriers of this carry genitalia similar to humans.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_HumanGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_HumanGenitalia</geneClass>
|
||||||
<displayOrderInCategory>801</displayOrderInCategory>
|
<displayOrderInCategory>1</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
<description>Carriers of this gene develop equine genitalia.</description>
|
<description>Carriers of this gene develop equine genitalia.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_EquineGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_EquineGenitalia</geneClass>
|
||||||
<displayOrderInCategory>802</displayOrderInCategory>
|
<displayOrderInCategory>2</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
<description>Carriers of this gene develop canine genitalia.</description>
|
<description>Carriers of this gene develop canine genitalia.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_CanineGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_CanineGenitalia</geneClass>
|
||||||
<displayOrderInCategory>803</displayOrderInCategory>
|
<displayOrderInCategory>3</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<description>Carriers of this gene develop feline genitalia.</description>
|
<description>Carriers of this gene develop feline genitalia.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_FelineGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_FelineGenitalia</geneClass>
|
||||||
<displayOrderInCategory>804</displayOrderInCategory>
|
<displayOrderInCategory>4</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
<description>Carriers of this gene have demonic genitalia.</description>
|
<description>Carriers of this gene have demonic genitalia.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_DemonicGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_DemonicGenitalia</geneClass>
|
||||||
<displayOrderInCategory>805</displayOrderInCategory>
|
<displayOrderInCategory>5</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
<description>Carriers of this gene develop dragon genitalia.</description>
|
<description>Carriers of this gene develop dragon genitalia.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_DragonGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_DragonGenitalia</geneClass>
|
||||||
<displayOrderInCategory>806</displayOrderInCategory>
|
<displayOrderInCategory>6</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
<description>Carriers of this gene have slime genitalia.</description>
|
<description>Carriers of this gene have slime genitalia.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_SlimeGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_SlimeGenitalia</geneClass>
|
||||||
<displayOrderInCategory>807</displayOrderInCategory>
|
<displayOrderInCategory>7</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
<description>Carriers of this gene have ovipositors similar to insects.</description>
|
<description>Carriers of this gene have ovipositors similar to insects.</description>
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
<iconPath>Genes/Icons/Placeholder</iconPath>
|
||||||
<geneClass>RJW_Genes.Gene_OvipositorGenitalia</geneClass>
|
<geneClass>RJW_Genes.Gene_OvipositorGenitalia</geneClass>
|
||||||
<displayOrderInCategory>808</displayOrderInCategory>
|
<displayOrderInCategory>8</displayOrderInCategory>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<Defs>
|
|
||||||
<GeneDef>
|
|
||||||
<defName>rjw_genes_female_only</defName>
|
|
||||||
<label>Female</label>
|
|
||||||
<displayCategory>rjw_genes_gender</displayCategory>
|
|
||||||
<description>This Xenotype only has females.</description>
|
|
||||||
<biostatCpx>0</biostatCpx>
|
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
|
||||||
<geneClass>RJW_Genes.Gene_FemaleOnly</geneClass>
|
|
||||||
<displayOrderInCategory>1</displayOrderInCategory>
|
|
||||||
</GeneDef>
|
|
||||||
|
|
||||||
<GeneDef>
|
|
||||||
<defName>rjw_genes_male_only</defName>
|
|
||||||
<displayCategory>rjw_genes_gender</displayCategory>
|
|
||||||
<label>Male</label>
|
|
||||||
<description>This Xenotype only has males.</description>
|
|
||||||
<biostatCpx>0</biostatCpx>
|
|
||||||
<iconPath>Genes/Icons/Placeholder</iconPath>
|
|
||||||
<geneClass>RJW_Genes.Gene_MaleOnly</geneClass>
|
|
||||||
<displayOrderInCategory>2</displayOrderInCategory>
|
|
||||||
</GeneDef>
|
|
||||||
|
|
||||||
</Defs>
|
|
|
@ -7,7 +7,6 @@ namespace RJW_Genes
|
||||||
public static class GeneDefOf
|
public static class GeneDefOf
|
||||||
{
|
{
|
||||||
[MayRequireBiotech] public static readonly GeneCategoryDef rjw_genes_genitalia;
|
[MayRequireBiotech] public static readonly GeneCategoryDef rjw_genes_genitalia;
|
||||||
[MayRequireBiotech] public static readonly GeneCategoryDef rjw_genes_gender;
|
|
||||||
|
|
||||||
// Base Genitalia Types
|
// Base Genitalia Types
|
||||||
[MayRequireBiotech] public static readonly GeneDef rjw_genes_human_genitalia;
|
[MayRequireBiotech] public static readonly GeneDef rjw_genes_human_genitalia;
|
||||||
|
@ -44,13 +43,5 @@ namespace RJW_Genes
|
||||||
[MayRequireBiotech] public static readonly GeneDef rjw_genes_normal_anus;
|
[MayRequireBiotech] public static readonly GeneDef rjw_genes_normal_anus;
|
||||||
[MayRequireBiotech] public static readonly GeneDef rjw_genes_tight_anus;
|
[MayRequireBiotech] public static readonly GeneDef rjw_genes_tight_anus;
|
||||||
|
|
||||||
// Gender
|
|
||||||
[MayRequireBiotech] public static readonly GeneDef rjw_genes_female_only;
|
|
||||||
[MayRequireBiotech] public static readonly GeneDef rjw_genes_male_only;
|
|
||||||
|
|
||||||
// Breeding
|
|
||||||
public static readonly GeneDef rjw_genes_mechbreeder;
|
|
||||||
public static readonly GeneDef rjw_genes_insectincubator;
|
|
||||||
public static readonly GeneDef rjw_genes_insectbreeder;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace Genes.Breeding
|
|
||||||
{
|
|
||||||
internal class Gene_MechBreeder : Gene
|
|
||||||
{
|
|
||||||
// This one does not do anything, the patch is some where else checking for the pawn to have this Gene!
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,64 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Reflection.Emit;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using HarmonyLib;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// This Class patches the RJW-Mechbirth to not deal damage when the pawn has the MechBreeder Gene.
|
|
||||||
/// This harmony patch was kindly provided by 'shabalox' https://github.com/Shabalox/RJW_Genes_Addons/
|
|
||||||
/// </summary>
|
|
||||||
[HarmonyPatch(typeof(Hediff_MechanoidPregnancy), "GiveBirth")]
|
|
||||||
public static class PatchMechBirth
|
|
||||||
{
|
|
||||||
[HarmonyTranspiler]
|
|
||||||
public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator il)
|
|
||||||
{
|
|
||||||
bool found_call = false;
|
|
||||||
bool found_skip = false;
|
|
||||||
Label skip_label = il.DefineLabel();
|
|
||||||
MethodInfo ismechbreeder = AccessTools.Method(typeof(GeneUtility), "IsMechbreeder");
|
|
||||||
foreach (CodeInstruction codeInstruction in instructions)
|
|
||||||
{
|
|
||||||
//Check if the first opcode after endfinally ldloc_0 is and in that case add the label to skip the code
|
|
||||||
if (found_skip && codeInstruction.opcode == OpCodes.Ldloc_0)
|
|
||||||
{
|
|
||||||
codeInstruction.labels.Add(skip_label);
|
|
||||||
}
|
|
||||||
found_skip = false;
|
|
||||||
if (codeInstruction.opcode == OpCodes.Endfinally)
|
|
||||||
{
|
|
||||||
found_skip = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield return codeInstruction;
|
|
||||||
|
|
||||||
if (codeInstruction.opcode == OpCodes.Call)
|
|
||||||
{
|
|
||||||
if (codeInstruction.operand.ToString() == "Boolean TryMakeFilth(Verse.IntVec3, Verse.Map, Verse.ThingDef, System.String, Int32, RimWorld.FilthSourceFlags)")
|
|
||||||
{
|
|
||||||
found_call = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//Triggers after the pop opcode (after generating filth in c#).
|
|
||||||
else if (found_call)
|
|
||||||
{
|
|
||||||
//Load pawn, call function to check if a mechbreeder, and skip past the part which does damage
|
|
||||||
yield return new CodeInstruction(OpCodes.Ldloc_0, null);
|
|
||||||
yield return new CodeInstruction(OpCodes.Call, ismechbreeder);
|
|
||||||
yield return new CodeInstruction(OpCodes.Brtrue_S, skip_label);
|
|
||||||
found_call = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
using HarmonyLib;
|
|
||||||
using rjw;
|
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Kindly provided by 'shabalox' https://github.com/Shabalox/RJW_Genes_Addons/
|
|
||||||
/// </summary>
|
|
||||||
[HarmonyPatch(typeof(PawnExtensions), "RaceImplantEggs")]
|
|
||||||
public static class PatchPawnExtensions
|
|
||||||
{
|
|
||||||
[HarmonyPostfix]
|
|
||||||
public static void Postfix(Pawn pawn, ref bool __result)
|
|
||||||
{
|
|
||||||
if (!__result)
|
|
||||||
{
|
|
||||||
__result = GeneUtility.isInsectBreeder(pawn);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Reflection.Emit;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using HarmonyLib;
|
|
||||||
using Verse;
|
|
||||||
using RimWorld;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// This Class patches the RJW-DoEgg to allow up to MaxEggSizeMul times the original amount of eggs.
|
|
||||||
/// This harmony patch was kindly provided by 'shabalox' https://github.com/Shabalox/RJW_Genes_Addons/
|
|
||||||
/// </summary>
|
|
||||||
[HarmonyPatch(typeof(PregnancyHelper), "DoEgg")]
|
|
||||||
static class PatchPregnancyHelper
|
|
||||||
{
|
|
||||||
[HarmonyTranspiler]
|
|
||||||
public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator il)
|
|
||||||
{
|
|
||||||
//MethodInfo isinsectincubator = AccessTools.Method(typeof(GeneUtility), "IsInsectIncubator");
|
|
||||||
MethodInfo maxeggsizemul = AccessTools.Method(typeof(GeneUtility), "MaxEggSizeMul");
|
|
||||||
FieldInfo partner = AccessTools.Field(typeof(SexProps), "partner");
|
|
||||||
|
|
||||||
Label skiplabel = il.DefineLabel();
|
|
||||||
bool finished = false;
|
|
||||||
foreach (CodeInstruction codeInstruction in instructions)
|
|
||||||
{
|
|
||||||
if (!finished)
|
|
||||||
{
|
|
||||||
if (codeInstruction.opcode == OpCodes.Ldc_R4 && codeInstruction.operand.ToString() == "0")
|
|
||||||
{
|
|
||||||
yield return new CodeInstruction(OpCodes.Ldarg_0, null);
|
|
||||||
yield return new CodeInstruction(OpCodes.Ldfld, partner);
|
|
||||||
//yield return new CodeInstruction(OpCodes.Call, isinsectincubator);
|
|
||||||
yield return new CodeInstruction(OpCodes.Callvirt, maxeggsizemul);
|
|
||||||
//yield return new CodeInstruction(OpCodes.Brfalse_S, skiplabel);
|
|
||||||
yield return new CodeInstruction(OpCodes.Ldloc_0, null);
|
|
||||||
//yield return new CodeInstruction(OpCodes.Ldc_R4, 2f);
|
|
||||||
yield return new CodeInstruction(OpCodes.Mul, null);
|
|
||||||
yield return new CodeInstruction(OpCodes.Stloc_0, null);
|
|
||||||
//codeInstruction.labels.Add(skiplabel);
|
|
||||||
finished = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
yield return codeInstruction;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_ExtraAnus : RJW_Gene
|
public class Gene_ExtraAnus : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff additional_anus;
|
internal Hediff additional_anus;
|
||||||
|
@ -12,6 +12,8 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
if (additional_anus == null)
|
if (additional_anus == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_ExtraBreasts : RJW_Gene
|
public class Gene_ExtraBreasts : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff additional_breasts;
|
internal Hediff additional_breasts;
|
||||||
|
@ -12,11 +12,13 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
// Tits are only added for female pawns!
|
// Penis are only added for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
|
if (pawn.gender == Gender.Female && additional_breasts == null)
|
||||||
{
|
{
|
||||||
CreateAndAddBreasts();
|
createAndAddPenis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,10 +26,10 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
base.PostAdd();
|
base.PostAdd();
|
||||||
|
|
||||||
// Tits are only added for female pawns!
|
// Penis are only added for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
|
if (pawn.gender == Gender.Female && additional_breasts == null)
|
||||||
{
|
{
|
||||||
CreateAndAddBreasts();
|
createAndAddPenis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +40,7 @@ namespace RJW_Genes
|
||||||
pawn.health.RemoveHediff(additional_breasts);
|
pawn.health.RemoveHediff(additional_breasts);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void CreateAndAddBreasts()
|
internal void createAndAddPenis()
|
||||||
{
|
{
|
||||||
var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn);
|
var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn);
|
||||||
var breastDef = GenitaliaUtility.GetBreastsForGene(correctGene);
|
var breastDef = GenitaliaUtility.GetBreastsForGene(correctGene);
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_ExtraPenis : RJW_Gene
|
public class Gene_ExtraPenis : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff additional_penis;
|
internal Hediff additional_penis;
|
||||||
|
@ -12,11 +12,13 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
// Penis are only added for male pawns!
|
// Penis are only added for male pawns!
|
||||||
if (GenderUtility.IsMale(pawn) && additional_penis == null)
|
if (pawn.gender == Gender.Male && additional_penis == null)
|
||||||
{
|
{
|
||||||
CreateAndAddPenis();
|
createAndAddPenis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,9 +27,9 @@ namespace RJW_Genes
|
||||||
base.PostAdd();
|
base.PostAdd();
|
||||||
|
|
||||||
// Penis are only added for male pawns!
|
// Penis are only added for male pawns!
|
||||||
if (GenderUtility.IsMale(pawn) && additional_penis == null)
|
if (pawn.gender == Gender.Male && additional_penis == null)
|
||||||
{
|
{
|
||||||
CreateAndAddPenis();
|
createAndAddPenis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +40,7 @@ namespace RJW_Genes
|
||||||
pawn.health.RemoveHediff(additional_penis);
|
pawn.health.RemoveHediff(additional_penis);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void CreateAndAddPenis()
|
internal void createAndAddPenis()
|
||||||
{
|
{
|
||||||
var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn);
|
var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn);
|
||||||
HediffDef penisDef = GenitaliaUtility.GetPenisForGene(correctGene);
|
HediffDef penisDef = GenitaliaUtility.GetPenisForGene(correctGene);
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_ExtraVagina : RJW_Gene
|
public class Gene_ExtraVagina : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff additional_vagina;
|
internal Hediff additional_vagina;
|
||||||
|
@ -17,9 +17,11 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
// Vaginas are only added for female pawns!
|
// Vaginas are only added for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
|
if (pawn.gender == Gender.Female && additional_vagina == null)
|
||||||
{
|
{
|
||||||
CreateAndAddVagina();
|
CreateAndAddVagina();
|
||||||
}
|
}
|
||||||
|
@ -30,7 +32,7 @@ namespace RJW_Genes
|
||||||
base.PostAdd();
|
base.PostAdd();
|
||||||
|
|
||||||
// Vaginas are only added for female pawns!
|
// Vaginas are only added for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
|
if (pawn.gender == Gender.Female && additional_vagina == null)
|
||||||
{
|
{
|
||||||
CreateAndAddVagina();
|
CreateAndAddVagina();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_Futa : RJW_Gene
|
public class Gene_Futa : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff additional_genital;
|
internal Hediff additional_genital;
|
||||||
|
@ -12,12 +12,14 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
if (GenderUtility.IsFemale(pawn) && additional_genital == null)
|
if (pawn.gender == Gender.Female && additional_genital == null)
|
||||||
{
|
{
|
||||||
createAndAddPenis();
|
createAndAddPenis();
|
||||||
}
|
}
|
||||||
if (GenderUtility.IsMale(pawn) && additional_genital == null)
|
if (pawn.gender == Gender.Male && additional_genital == null)
|
||||||
{
|
{
|
||||||
CreateAndAddVagina();
|
CreateAndAddVagina();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_NoAnus : RJW_Gene
|
public class Gene_NoAnus : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff removed_anus;
|
internal Hediff removed_anus;
|
||||||
|
@ -15,6 +15,8 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
if (removed_anus == null)
|
if (removed_anus == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_NoBreasts : RJW_Gene
|
public class Gene_NoBreasts : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff removed_breasts;
|
internal Hediff removed_breasts;
|
||||||
|
@ -15,9 +15,11 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
// Breasts are removed for female pawns!
|
// Breasts are removed for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && removed_breasts == null)
|
if (pawn.gender == Gender.Female && removed_breasts == null)
|
||||||
{
|
{
|
||||||
RemoveButStoreBreasts();
|
RemoveButStoreBreasts();
|
||||||
}
|
}
|
||||||
|
@ -28,7 +30,7 @@ namespace RJW_Genes
|
||||||
base.PostAdd();
|
base.PostAdd();
|
||||||
|
|
||||||
// Breasts are removed for female pawns!
|
// Breasts are removed for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && removed_breasts == null)
|
if (pawn.gender == Gender.Female && removed_breasts == null)
|
||||||
{
|
{
|
||||||
RemoveButStoreBreasts();
|
RemoveButStoreBreasts();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_NoPenis : RJW_Gene
|
public class Gene_NoPenis : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff removed_penis;
|
internal Hediff removed_penis;
|
||||||
|
@ -15,9 +15,11 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
// Penis are only removed for male pawns!
|
// Penis are only added for male pawns!
|
||||||
if (GenderUtility.IsMale(pawn) && removed_penis == null)
|
if (pawn.gender == Gender.Male && removed_penis == null)
|
||||||
{
|
{
|
||||||
RemoveButStorePenis();
|
RemoveButStorePenis();
|
||||||
}
|
}
|
||||||
|
@ -27,8 +29,8 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
base.PostAdd();
|
base.PostAdd();
|
||||||
|
|
||||||
// Penis are only removed for male pawns!
|
// Penis are only added for male pawns!
|
||||||
if (GenderUtility.IsMale(pawn) && removed_penis == null)
|
if (pawn.gender == Gender.Male && removed_penis == null)
|
||||||
{
|
{
|
||||||
RemoveButStorePenis();
|
RemoveButStorePenis();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ using RimWorld;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_NoVagina : RJW_Gene
|
public class Gene_NoVagina : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
internal Hediff removed_vagina;
|
internal Hediff removed_vagina;
|
||||||
|
@ -15,9 +15,11 @@ namespace RJW_Genes
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
// Vaginas are only removed for female pawns!
|
// Vaginas are only removed for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
|
if (pawn.gender == Gender.Female && removed_vagina == null)
|
||||||
{
|
{
|
||||||
RemoveButStoreVagina();
|
RemoveButStoreVagina();
|
||||||
}
|
}
|
||||||
|
@ -28,7 +30,7 @@ namespace RJW_Genes
|
||||||
base.PostAdd();
|
base.PostAdd();
|
||||||
|
|
||||||
// Vaginas are only removed for female pawns!
|
// Vaginas are only removed for female pawns!
|
||||||
if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
|
if (pawn.gender == Gender.Female && removed_vagina == null)
|
||||||
{
|
{
|
||||||
RemoveButStoreVagina();
|
RemoveButStoreVagina();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
using Verse;
|
|
||||||
using rjw;
|
|
||||||
using RimWorld;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Linq;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
public class GenderUtility
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Returns if a Pawn is female (Gender==Female) or if it should be (Gene==FemaleOnly)
|
|
||||||
/// This is used as a small helper, as the genes might fire in different orders.
|
|
||||||
/// </summary>
|
|
||||||
public static bool IsFemale(Pawn pawn)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
pawn.gender == Gender.Female || pawn.genes.GenesListForReading.Any(gene => gene.def.defName.EqualsIgnoreCase(GeneDefOf.rjw_genes_female_only.defName));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns if a Pawn is male (Gender==Male) or if it should be (Gene==MaleOnly)
|
|
||||||
/// This is used as a small helper, as the genes might fire in different orders.
|
|
||||||
/// </summary>
|
|
||||||
public static bool IsMale(Pawn pawn)
|
|
||||||
{
|
|
||||||
return
|
|
||||||
pawn.gender == Gender.Male || pawn.genes.GenesListForReading.Any(gene => gene.def.defName.EqualsIgnoreCase(GeneDefOf.rjw_genes_male_only.defName));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adjusts the Body Type to match the given target gender
|
|
||||||
/// (for male and female only, baby,child and hulks don't change)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="pawn"></param>
|
|
||||||
/// <param name="targetGender"></param>
|
|
||||||
public static void AdjustBodyToTargetGender(Pawn pawn, Gender targetGender)
|
|
||||||
{
|
|
||||||
if (pawn == null)
|
|
||||||
return;
|
|
||||||
if (pawn.story.bodyType == BodyTypeDefOf.Baby || pawn.story.bodyType == BodyTypeDefOf.Hulk || pawn.story.bodyType == BodyTypeDefOf.Child)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (targetGender == Gender.Male)
|
|
||||||
{
|
|
||||||
pawn.story.bodyType = BodyTypeDefOf.Male;
|
|
||||||
}
|
|
||||||
else if (targetGender == Gender.Female)
|
|
||||||
{
|
|
||||||
pawn.story.bodyType = BodyTypeDefOf.Female;
|
|
||||||
pawn.style.beardDef = BeardDefOf.NoBeard;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Re-Choose heads if it is wrong gender
|
|
||||||
if (pawn.story.headType.gender == Gender.None || pawn.story.headType.gender == targetGender)
|
|
||||||
{
|
|
||||||
// Do nothing, Gender of Heat is Neutral or matches
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Below line tries to get (and set) an available head from the backstory, if it returns true everything worked if it returns false we log it
|
|
||||||
if(! pawn.story.TryGetRandomHeadFromSet(DefDatabase<HeadTypeDef>.AllDefs.Where((Func<HeadTypeDef, bool>)(x => x.randomChosen))))
|
|
||||||
{
|
|
||||||
Log.Message("Failed to retrieve a correct-gender head for the pawn " + pawn.Name);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Force Redraw at the spot
|
|
||||||
pawn.Drawer.renderer.graphics.SetAllGraphicsDirty();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
using Verse;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
public class Gene_FemaleOnly : Gene
|
|
||||||
{
|
|
||||||
public override void PostMake()
|
|
||||||
{
|
|
||||||
base.PostMake();
|
|
||||||
|
|
||||||
AdjustPawnToFemale();
|
|
||||||
// Here we call Sexualization after the Sex-Change
|
|
||||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
|
||||||
Sexualizer.sexualize_pawn(pawn);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void PostAdd()
|
|
||||||
{
|
|
||||||
base.PostMake();
|
|
||||||
AdjustPawnToFemale();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AdjustPawnToFemale()
|
|
||||||
{
|
|
||||||
// Here we really use the Gender.Female and not our helper IsFemale(pawn)
|
|
||||||
if (pawn.gender == Gender.Female)
|
|
||||||
return;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GenderHelper.ChangeSex(pawn, () => {
|
|
||||||
pawn.gender = Gender.Female;
|
|
||||||
GenitaliaChanger.RemoveAllGenitalia(pawn);
|
|
||||||
Sexualizer.sexualize_pawn(pawn);
|
|
||||||
});
|
|
||||||
GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Female);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
using Verse;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
public class Gene_MaleOnly : Gene
|
|
||||||
{
|
|
||||||
public override void PostMake()
|
|
||||||
{
|
|
||||||
base.PostMake();
|
|
||||||
|
|
||||||
AdjustPawnToMale();
|
|
||||||
// Here we call Sexualization after the Sex-Change
|
|
||||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
|
||||||
Sexualizer.sexualize_pawn(pawn);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void PostAdd()
|
|
||||||
{
|
|
||||||
base.PostMake();
|
|
||||||
AdjustPawnToMale();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AdjustPawnToMale()
|
|
||||||
{
|
|
||||||
if (pawn.gender == Gender.Male)
|
|
||||||
return;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GenderHelper.ChangeSex(pawn, () => {
|
|
||||||
|
|
||||||
pawn.gender = Gender.Male;
|
|
||||||
GenitaliaChanger.RemoveAllGenitalia(pawn);
|
|
||||||
Sexualizer.sexualize_pawn(pawn);
|
|
||||||
});
|
|
||||||
GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Male);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
public class GeneUtility
|
|
||||||
{
|
|
||||||
public static bool IsMechbreeder(Pawn pawn)
|
|
||||||
{
|
|
||||||
if (pawn.genes == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return pawn.genes.HasGene(GeneDefOf.rjw_genes_mechbreeder);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsInsectIncubator(Pawn pawn)
|
|
||||||
{
|
|
||||||
if (pawn.genes == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return pawn.genes.HasGene(GeneDefOf.rjw_genes_insectincubator);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool isInsectBreeder(Pawn pawn)
|
|
||||||
{
|
|
||||||
if (pawn.genes == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return pawn.genes.HasGene(GeneDefOf.rjw_genes_insectbreeder);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float MaxEggSizeMul(Pawn pawn)
|
|
||||||
{
|
|
||||||
float MaxEggSize = 1;
|
|
||||||
if (IsInsectIncubator(pawn))
|
|
||||||
{
|
|
||||||
MaxEggSize *= 2;
|
|
||||||
}
|
|
||||||
return MaxEggSize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -3,11 +3,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_CanineGenitalia : RJW_Gene
|
public class Gene_CanineGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.canine_penis,Genital_Helper.canine_vagina,Genital_Helper.generic_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.canine_penis,Genital_Helper.canine_vagina,Genital_Helper.generic_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,11 +4,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_DemonicGenitalia : RJW_Gene
|
public class Gene_DemonicGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.demon_penis,Genital_Helper.demon_vagina,Genital_Helper.demon_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.demon_penis,Genital_Helper.demon_vagina,Genital_Helper.demon_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_DragonGenitalia : RJW_Gene
|
public class Gene_DragonGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.dragon_penis,Genital_Helper.dragon_vagina,Genital_Helper.generic_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.dragon_penis,Genital_Helper.dragon_vagina,Genital_Helper.generic_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_EquineGenitalia : RJW_Gene
|
public class Gene_EquineGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.equine_penis,Genital_Helper.equine_vagina,Genital_Helper.generic_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.equine_penis,Genital_Helper.equine_vagina,Genital_Helper.generic_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_FelineGenitalia : RJW_Gene
|
public class Gene_FelineGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.feline_penis,Genital_Helper.feline_vagina,Genital_Helper.generic_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.feline_penis,Genital_Helper.feline_vagina,Genital_Helper.generic_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_HumanGenitalia : RJW_Gene
|
public class Gene_HumanGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.average_penis,Genital_Helper.average_vagina,Genital_Helper.average_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.average_penis,Genital_Helper.average_vagina,Genital_Helper.average_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_OvipositorGenitalia : RJW_Gene
|
public class Gene_OvipositorGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.ovipositorM,Genital_Helper.ovipositorF,Genital_Helper.insect_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.ovipositorM,Genital_Helper.ovipositorF,Genital_Helper.insect_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,13 @@ using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_SlimeGenitalia : RJW_Gene
|
public class Gene_SlimeGenitalia : Gene
|
||||||
{
|
{
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.slime_penis,Genital_Helper.slime_vagina,Genital_Helper.slime_anus);
|
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.slime_penis,Genital_Helper.slime_vagina,Genital_Helper.slime_anus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,14 +79,5 @@ namespace RJW_Genes
|
||||||
return candidate.def.defName.ToLower().Contains("bionic") || candidate.def.defName.ToLower().Contains("archo");
|
return candidate.def.defName.ToLower().Contains("bionic") || candidate.def.defName.ToLower().Contains("archo");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveAllGenitalia(Pawn pawn)
|
|
||||||
{
|
|
||||||
var parts = Genital_Helper.get_AllPartsHediffList(pawn);
|
|
||||||
foreach (var part in parts)
|
|
||||||
{
|
|
||||||
pawn.health.RemoveHediff(part);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,17 @@
|
||||||
using Verse;
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_BigBreasts : RJW_Gene
|
public class Gene_BigBreasts : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
if (pawn.gender == Gender.Female)
|
if (pawn.gender == Gender.Female)
|
||||||
SizeAdjuster.AdjustAllBreastSizes(pawn,0.5f,1.0f);
|
SizeAdjuster.AdjustAllBreastSizes(pawn,0.5f,1.0f);
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_BigMaleGenitalia : RJW_Gene
|
public class Gene_BigMaleGenitalia : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
SizeAdjuster.AdjustAllPenisSizes(pawn,0.5f,1.0f);
|
SizeAdjuster.AdjustAllPenisSizes(pawn,0.5f,1.0f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_LooseAnus : RJW_Gene
|
public class Gene_LooseAnus : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
SizeAdjuster.AdjustAllAnusSizes(pawn, 0.5f, 1.0f);
|
SizeAdjuster.AdjustAllAnusSizes(pawn, 0.5f, 1.0f);
|
||||||
}
|
}
|
||||||
|
@ -18,5 +24,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_LooseFemaleGenitalia : RJW_Gene
|
public class Gene_LooseFemaleGenitalia : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.5f, 1.0f);
|
SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.5f, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,14 @@ namespace RJW_Genes
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Gene_NormalAnus : RJW_Gene
|
public class Gene_NormalAnus : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
using rjw;
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Gene_NormalBreasts : RJW_Gene
|
public class Gene_NormalBreasts : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,14 @@ namespace RJW_Genes
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Gene_NormalFemaleGenitalia : RJW_Gene
|
public class Gene_NormalFemaleGenitalia : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Gene_NormalMaleGenitalia : RJW_Gene
|
public class Gene_NormalMaleGenitalia : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_SmallBreasts : RJW_Gene
|
public class Gene_SmallBreasts : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
SizeAdjuster.AdjustAllBreastSizes(pawn, 0.0f, 0.5f);
|
SizeAdjuster.AdjustAllBreastSizes(pawn, 0.0f, 0.5f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_SmallMaleGenitalia : RJW_Gene
|
public class Gene_SmallMaleGenitalia : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
SizeAdjuster.AdjustAllPenisSizes(pawn,0.0f,0.5f);
|
SizeAdjuster.AdjustAllPenisSizes(pawn,0.0f,0.5f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_TightAnus : RJW_Gene
|
public class Gene_TightAnus : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
SizeAdjuster.AdjustAllAnusSizes(pawn, 0.0f, 0.5f);
|
SizeAdjuster.AdjustAllAnusSizes(pawn, 0.0f, 0.5f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
namespace RJW_Genes
|
using Verse;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_TightFemaleGenitalia : RJW_Gene
|
public class Gene_TightFemaleGenitalia : Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
public override void PostMake()
|
public override void PostMake()
|
||||||
{
|
{
|
||||||
base.PostMake();
|
base.PostMake();
|
||||||
|
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||||
|
Sexualizer.sexualize_pawn(pawn);
|
||||||
|
|
||||||
SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.0f, 0.5f);
|
SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.0f, 0.5f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
using rjw;
|
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
public class RJW_Gene : Gene
|
|
||||||
{
|
|
||||||
|
|
||||||
public override void PostMake()
|
|
||||||
{
|
|
||||||
base.PostMake();
|
|
||||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
|
||||||
Sexualizer.sexualize_pawn(pawn);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
using Verse;
|
|
||||||
using HarmonyLib;
|
|
||||||
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
|
||||||
{
|
|
||||||
[StaticConstructorOnStartup]
|
|
||||||
internal static class HarmonyInit
|
|
||||||
{
|
|
||||||
static HarmonyInit()
|
|
||||||
{
|
|
||||||
Harmony harmony = new Harmony("rjw_genes");
|
|
||||||
harmony.PatchAll();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -22,9 +22,6 @@
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="0Harmony">
|
|
||||||
<HintPath>..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Assembly-CSharp">
|
<Reference Include="Assembly-CSharp">
|
||||||
<HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
|
<HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
|
||||||
<Private>False</Private>
|
<Private>False</Private>
|
||||||
|
@ -52,10 +49,6 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="GeneDefOf.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\PatchPregnancyHelper.cs" />
|
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraBreasts.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraBreasts.cs" />
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraAnus.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraAnus.cs" />
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_Futa.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_Futa.cs" />
|
||||||
|
@ -65,10 +58,6 @@
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_NoVagina.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_NoVagina.cs" />
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_NoPenis.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_NoPenis.cs" />
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraPenis.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraPenis.cs" />
|
||||||
<Compile Include="Genes\Gender\GenderUtility.cs" />
|
|
||||||
<Compile Include="Genes\Gender\Gene_FemaleOnly.cs" />
|
|
||||||
<Compile Include="Genes\Gender\Gene_MaleOnly.cs" />
|
|
||||||
<Compile Include="Genes\GeneUtility.cs" />
|
|
||||||
<Compile Include="Genes\GenitaliaSize\Gene_BigBreasts.cs" />
|
<Compile Include="Genes\GenitaliaSize\Gene_BigBreasts.cs" />
|
||||||
<Compile Include="Genes\GenitaliaSize\Gene_LooseAnus.cs" />
|
<Compile Include="Genes\GenitaliaSize\Gene_LooseAnus.cs" />
|
||||||
<Compile Include="Genes\GenitaliaSize\Gene_LooseFemaleGenitalia.cs" />
|
<Compile Include="Genes\GenitaliaSize\Gene_LooseFemaleGenitalia.cs" />
|
||||||
|
@ -91,9 +80,7 @@
|
||||||
<Compile Include="Genes\Genitalia\Gene_EquineGenitalia.cs" />
|
<Compile Include="Genes\Genitalia\Gene_EquineGenitalia.cs" />
|
||||||
<Compile Include="Genes\Genitalia\Gene_HumanGenitalia.cs" />
|
<Compile Include="Genes\Genitalia\Gene_HumanGenitalia.cs" />
|
||||||
<Compile Include="Genes\Genitalia\GenitaliaChanger.cs" />
|
<Compile Include="Genes\Genitalia\GenitaliaChanger.cs" />
|
||||||
<Compile Include="Genes\RJW_Gene.cs" />
|
<Compile Include="GenitaliaUtility.cs" />
|
||||||
<Compile Include="Genes\Genitalia\GenitaliaUtility.cs" />
|
|
||||||
<Compile Include="HarmonyInit.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="RJW_Genes.cs" />
|
<Compile Include="RJW_Genes.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue