mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Merge pull request #1 from flock-of-birds/generalised-genital-genes
Generalised genital genes
This commit is contained in:
commit
72b3c10c56
28 changed files with 177 additions and 524 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,7 +1,8 @@
|
|||
*.user
|
||||
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
|
@ -253,4 +254,4 @@ paket-files/
|
|||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.pyc
|
||||
|
|
Binary file not shown.
|
@ -3,6 +3,7 @@
|
|||
|
||||
<GeneDef Name="GeneGenitalTypeBase" Abstract="True">
|
||||
<displayCategory>rjw_genes_genitalia_type</displayCategory>
|
||||
<geneClass>RJW_Genes.Gene_GenitaliaType</geneClass>
|
||||
<exclusionTags>
|
||||
<li>GenitalType</li>
|
||||
</exclusionTags>
|
||||
|
@ -21,7 +22,13 @@
|
|||
<label>equine genitalia</label>
|
||||
<description>Carriers of this gene develop equine genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_Equine</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_EquineGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>HorsePenis</penis>
|
||||
<vagina>HorseVagina</vagina>
|
||||
<anus>GenericAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>802</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -30,7 +37,13 @@
|
|||
<label>canine genitalia</label>
|
||||
<description>Carriers of this gene develop canine genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_Canine</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_CanineGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>DogPenis</penis>
|
||||
<vagina>DogVagina</vagina>
|
||||
<anus>GenericAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>803</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -39,7 +52,13 @@
|
|||
<label>feline genitalia</label>
|
||||
<description>Carriers of this gene develop feline genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_Feline</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_FelineGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>CatPenis</penis>
|
||||
<vagina>CatVagina</vagina>
|
||||
<anus>GenericAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>804</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -48,7 +67,13 @@
|
|||
<label>demonic genitalia</label>
|
||||
<description>Carriers of this gene have demonic genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_Demon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_DemonicGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>DemonPenis</penis>
|
||||
<vagina>DemonVagina</vagina>
|
||||
<anus>DemonAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>805</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -57,7 +82,13 @@
|
|||
<label>dragon genitalia</label>
|
||||
<description>Carriers of this gene develop dragon genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_Draconic</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_DragonGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>DragonPenis</penis>
|
||||
<vagina>DragonVagina</vagina>
|
||||
<anus>GenericAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>806</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -66,7 +97,13 @@
|
|||
<label>slime genitalia</label>
|
||||
<description>Carriers of this gene have slime genitalia.</description>
|
||||
<iconPath>Genes/Icons/Slime_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_SlimeGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>SlimeTentacles</penis>
|
||||
<vagina>SlimeVagina</vagina>
|
||||
<anus>SlimeAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -75,7 +112,13 @@
|
|||
<label>demonic tentacle genitalia</label>
|
||||
<description>Carriers of this gene have demonic tentacle genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_tentacle_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_DemonicGenitaliaTentacle</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>DemonTentaclePenis</penis>
|
||||
<vagina>DemonVagina</vagina>
|
||||
<anus>DemonAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -84,7 +127,11 @@
|
|||
<label>crocodilian genitalia</label>
|
||||
<description>Carriers of this gene have crocodilian genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_croc_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_CrocodilianGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>CrocodilianPenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -93,7 +140,11 @@
|
|||
<label>racoon genitalia</label>
|
||||
<description>Carriers of this gene have racoon genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_racoon_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_RacoonGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>RaccoonPenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -102,7 +153,11 @@
|
|||
<label>reptilian genitalia</label>
|
||||
<description>Carriers of this gene have reptilian genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_hemi_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_ReptilianGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>HemiPenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -115,7 +170,12 @@
|
|||
<label>ghost genitalia</label>
|
||||
<description>Carriers of this gene have ghost genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_ghost_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_GhostGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>GhostPenis</penis>
|
||||
<vagina>GhostVagina</vagina>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -124,7 +184,11 @@
|
|||
<label>golem genitalia</label>
|
||||
<description>Carriers of this gene have rocky golem genitalia.</description>
|
||||
<iconPath>Genes/Icons/penis_rock_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_GolemGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>GolemPenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -133,7 +197,11 @@
|
|||
<label>marine genitalia</label>
|
||||
<description>Carriers of this gene have marine mammal like genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_marine_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_MarineGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>MarinePenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -142,16 +210,25 @@
|
|||
<label>undead genitalia</label>
|
||||
<description>Carriers of this gene have necrotic undead genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_necro_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NecroGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>NecroPenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||
<defName>rjw_genes_Needle_genitalia</defName>
|
||||
<label>needle genitalia</label>
|
||||
<description>Carriers of this gene have marine very thin genitalia.</description>
|
||||
<label>narrow genitalia</label>
|
||||
<description>Carriers of this gene have very thin genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_thin_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_NeedleGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>NeedlePenis</penis>
|
||||
<vagina>NarrowVagina</vagina>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -160,7 +237,11 @@
|
|||
<label>orc genitalia</label>
|
||||
<description>Carriers of this gene have orc genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_orc_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_OrcGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>OrcPenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -169,8 +250,11 @@
|
|||
<label>screw genitalia</label>
|
||||
<description>Carriers of this gene have screw genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_screw_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_PigGenitalia</geneClass>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>PigPenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</GeneDef>
|
||||
|
||||
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||
|
@ -178,7 +262,11 @@
|
|||
<label>alien genitalia</label>
|
||||
<description>Carriers of this gene have alien genitalia.</description>
|
||||
<iconPath>Genes/Icons/Genitalia_alien_icon</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_TentacleGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>TentaclePenis</penis>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>807</displayOrderInCategory>
|
||||
</GeneDef>
|
||||
|
||||
|
@ -192,7 +280,13 @@
|
|||
<label>insect genitalia</label>
|
||||
<description>Carriers of this gene have ovipositors similar to insects.</description>
|
||||
<iconPath>Genes/Icons/Ovipositor_Genitalia</iconPath>
|
||||
<geneClass>RJW_Genes.Gene_OvipositorGenitalia</geneClass>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||
<penis>OvipositorM</penis>
|
||||
<vagina>OvipositorF</vagina>
|
||||
<anus>InsectAnus</anus>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<displayOrderInCategory>808</displayOrderInCategory>
|
||||
|
||||
<exclusionTags>
|
||||
|
|
15
Source/Genes/Genitalia/Defs/GenitaliaTypeExtension.cs
Normal file
15
Source/Genes/Genitalia/Defs/GenitaliaTypeExtension.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class GenitaliaTypeExtension : DefModExtension
|
||||
{
|
||||
public HediffDef_PartBase penis;
|
||||
|
||||
public HediffDef_PartBase vagina;
|
||||
|
||||
public HediffDef_PartBase anus;
|
||||
}
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_CanineGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.canine_penis,Genital_Helper.canine_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.canine_penis, Genital_Helper.canine_vagina, Genital_Helper.generic_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_CrocodilianGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.crocodilian_penis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.crocodilian_penis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_DemonicGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.demon_penis,Genital_Helper.demon_vagina,Genital_Helper.demon_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.demon_penis, Genital_Helper.demon_vagina, Genital_Helper.demon_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_DemonicGenitaliaTentacle : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.demonT_penis,Genital_Helper.demon_vagina,Genital_Helper.demon_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.demonT_penis, Genital_Helper.demon_vagina, Genital_Helper.demon_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_DragonGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.dragon_penis,Genital_Helper.dragon_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.dragon_penis, Genital_Helper.dragon_vagina, Genital_Helper.generic_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_EquineGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.equine_penis,Genital_Helper.equine_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.equine_penis, Genital_Helper.equine_vagina, Genital_Helper.generic_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_FelineGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.feline_penis,Genital_Helper.feline_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.feline_penis, Genital_Helper.feline_vagina, Genital_Helper.generic_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
31
Source/Genes/Genitalia/Gene_GenitaliaType.cs
Normal file
31
Source/Genes/Genitalia/Gene_GenitaliaType.cs
Normal file
|
@ -0,0 +1,31 @@
|
|||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
// bleh plural attributive noun in keeping with naming convention
|
||||
public class Gene_GenitaliaType : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
Apply();
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
Apply();
|
||||
}
|
||||
|
||||
protected virtual void Apply()
|
||||
{
|
||||
GenitaliaTypeExtension genitals = def.GetModExtension<GenitaliaTypeExtension>();
|
||||
if (genitals == null && RJW_Genes_Settings.rjw_genes_detailed_debug)
|
||||
{
|
||||
ModLog.Error($"Gene {def} failed to change genitals - Need a modExtension with Class=\"{typeof(GenitaliaTypeExtension).FullName}\".");
|
||||
return;
|
||||
}
|
||||
GenitaliaChanger.ChangeGenitalia(pawn, genitals.penis, genitals.vagina, genitals.anus);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_GhostGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GhostPenis, Genital_Helper_2.GhostVagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GhostPenis, Genital_Helper_2.GhostVagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_GolemGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GolemPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GolemPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_MarineGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.MarinePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.MarinePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_NecroGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NecroPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NecroPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_NeedleGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NeedlePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NeedlePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_OrcGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.OrcPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.OrcPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_OvipositorGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.ovipositorM,Genital_Helper.ovipositorF,Genital_Helper.insect_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.ovipositorM, Genital_Helper.ovipositorF, Genital_Helper.insect_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_PigGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.PigPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.PigPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_RacoonGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.raccoon_penis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.raccoon_penis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_ReptilianGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.hemipenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.hemipenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_SlimeGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.slime_penis,Genital_Helper.slime_vagina,Genital_Helper.slime_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.slime_penis, Genital_Helper.slime_vagina, Genital_Helper.slime_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_TentacleGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.TentaclePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
|
||||
public override void PostAdd()
|
||||
{
|
||||
base.PostAdd();
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.TentaclePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -16,7 +16,7 @@ namespace RJW_Genes
|
|||
/// <param name="penisReplacement">the new type of penis</param>
|
||||
/// <param name="vaginaReplacement">the new type of vagina</param>
|
||||
/// <param name="anusReplacement">the new type of anus</param>
|
||||
public static void ChangeGenitalia(Pawn pawn, HediffDef penisReplacement, HediffDef vaginaReplacement, HediffDef anusReplacement)
|
||||
public static void ChangeGenitalia(Pawn pawn, HediffDef penisReplacement = null, HediffDef vaginaReplacement = null, HediffDef anusReplacement = null)
|
||||
{
|
||||
var oldParts = Genital_Helper.get_AllPartsHediffList(pawn);
|
||||
BodyPartRecord correctBPR;
|
||||
|
@ -34,13 +34,13 @@ namespace RJW_Genes
|
|||
|
||||
replacementGenital = null;
|
||||
CompHediff = null;
|
||||
if (Genital_Helper.is_penis(existingGenital))
|
||||
if (Genital_Helper.is_penis(existingGenital) && penisReplacement != null && existingGenital.def != penisReplacement)
|
||||
replacementGenital = HediffMaker.MakeHediff(penisReplacement, pawn, correctBPR);
|
||||
|
||||
if (Genital_Helper.is_vagina(existingGenital))
|
||||
if (Genital_Helper.is_vagina(existingGenital) && vaginaReplacement != null && existingGenital.def != vaginaReplacement)
|
||||
replacementGenital = HediffMaker.MakeHediff(vaginaReplacement, pawn, correctBPR);
|
||||
|
||||
if (IsAnus(existingGenital))
|
||||
if (IsAnus(existingGenital) && anusReplacement != null && existingGenital.def != anusReplacement)
|
||||
{
|
||||
correctBPR = Genital_Helper.get_anusBPR(pawn);
|
||||
replacementGenital = HediffMaker.MakeHediff(anusReplacement, pawn, correctBPR);
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace RJW_Genes
|
|||
|
||||
foreach (var gene in pawn.genes.GenesListForReading)
|
||||
{
|
||||
if (gene.def.defName.Contains("rjw_genes") && gene.def.defName.EndsWith("_genitalia"))
|
||||
if (gene is Gene_GenitaliaType)
|
||||
if (!gene.Overridden)
|
||||
return gene.def;
|
||||
}
|
||||
|
@ -29,60 +29,19 @@ namespace RJW_Genes
|
|||
|
||||
public static HediffDef GetPenisForGene(GeneDef gene)
|
||||
{
|
||||
if (gene == null)
|
||||
return Genital_Helper.average_penis;
|
||||
|
||||
switch (gene.defName)
|
||||
{
|
||||
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;
|
||||
case "rjw_genes_demonic_genitalia": return Genital_Helper.demon_penis;
|
||||
case "rjw_genes_dragon_genitalia": return Genital_Helper.dragon_penis;
|
||||
case "rjw_genes_slime_genitalia": return Genital_Helper.slime_penis;
|
||||
case "rjw_genes_ovipositor_genitalia": return Genital_Helper.ovipositorM;
|
||||
|
||||
default: return Genital_Helper.average_penis;
|
||||
}
|
||||
return gene?.GetModExtension<GenitaliaTypeExtension>()?.penis ?? Genital_Helper.average_penis;
|
||||
}
|
||||
|
||||
|
||||
public static HediffDef GetVaginaForGene(GeneDef gene)
|
||||
{
|
||||
if (gene == null)
|
||||
return Genital_Helper.average_vagina;
|
||||
|
||||
switch (gene.defName)
|
||||
{
|
||||
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;
|
||||
case "rjw_genes_demonic_genitalia": return Genital_Helper.demon_vagina;
|
||||
case "rjw_genes_dragon_genitalia": return Genital_Helper.dragon_vagina;
|
||||
case "rjw_genes_slime_genitalia": return Genital_Helper.slime_vagina;
|
||||
case "rjw_genes_ovipositor_genitalia": return Genital_Helper.ovipositorF;
|
||||
|
||||
default: return Genital_Helper.average_vagina;
|
||||
}
|
||||
return gene?.GetModExtension<GenitaliaTypeExtension>()?.vagina ?? Genital_Helper.average_vagina;
|
||||
}
|
||||
|
||||
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_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;
|
||||
case "rjw_genes_demonic_genitalia": return Genital_Helper.demon_anus;
|
||||
case "rjw_genes_dragon_genitalia": return Genital_Helper.average_anus;
|
||||
case "rjw_genes_slime_genitalia": return Genital_Helper.slime_anus;
|
||||
case "rjw_genes_ovipositor_genitalia": return Genital_Helper.insect_anus;
|
||||
|
||||
default: return Genital_Helper.generic_anus;
|
||||
}
|
||||
//TODO: Do I want the default to be generic or average for feline,equine and canine?
|
||||
return gene?.GetModExtension<GenitaliaTypeExtension>()?.anus ?? Genital_Helper.average_anus;
|
||||
}
|
||||
|
||||
public static HediffDef GetBreastsForGene(GeneDef gene)
|
||||
|
|
|
@ -86,25 +86,8 @@
|
|||
<Compile Include="Genes\GenitaliaSize\Gene_BigMaleGenitalia.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\Patch_ResizingOnAdulthood.cs" />
|
||||
<Compile Include="Genes\GenitaliaSize\SizeAdjuster.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_TentacleGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_GolemGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_OrcGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_GhostGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_NecroGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_MarineGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_PigGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_ReptilianGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_CrocodilianGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_RacoonGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_DemonicGenitaliaTentacle.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_NeedleGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_SlimeGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_DragonGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_FelineGenitalia.cs" />
|
||||
<Compile Include="Genes\Genitalia\Gene_CanineGenitalia.cs" />
|
||||
<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_GenitaliaType.cs" />
|
||||
<Compile Include="Genes\Genitalia\Defs\GenitaliaTypeExtension.cs" />
|
||||
<Compile Include="Genes\Genitalia\GenitaliaChanger.cs" />
|
||||
<Compile Include="Genes\Life_Force\Abilities\AbilityUtility.cs" />
|
||||
<Compile Include="Genes\Life_Force\Abilities\CompAbilityEffect_CasterIsNaked.cs" />
|
||||
|
@ -189,7 +172,7 @@
|
|||
</Reference>
|
||||
<Reference Include="RJW, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
|
||||
<HintPath>..\..\rjw\1.5\Assemblies\RJW.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJWSexperience">
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ReferencePath>
|
||||
</ReferencePath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
Loading…
Reference in a new issue