mirror of
				https://github.com/vegapnk/RJW-Genes.git
				synced 2024-08-15 00:23:31 +00:00 
			
		
		
		
	genitalia addition
This commit is contained in:
		
							parent
							
								
									8159bb792b
								
							
						
					
					
						commit
						7dbef0d19a
					
				
					 18 changed files with 559 additions and 39 deletions
				
			
		| 
						 | 
				
			
			@ -25,6 +25,14 @@ namespace RJW_Genes
 | 
			
		|||
        public static readonly GeneDef rjw_genes_crocodilian_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_racoon_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_reptilian_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Ghost_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Golem_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Marine_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Necro_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Needle_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Orc_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Pig_genitalia;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_Tentacle_genitalia;
 | 
			
		||||
 | 
			
		||||
        // Extra Genitalia 
 | 
			
		||||
        public static readonly GeneDef rjw_genes_extra_penis;
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +45,8 @@ namespace RJW_Genes
 | 
			
		|||
		public static readonly GeneDef rjw_genes_no_anus;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_futa;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_femboy;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_featureless_chest;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_featureless_chest; 
 | 
			
		||||
		public static readonly GeneDef rjw_genes_udder;
 | 
			
		||||
 | 
			
		||||
        // Genitalia Sizes
 | 
			
		||||
        public static readonly GeneDef rjw_genes_big_male_genitalia;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,21 +14,12 @@ namespace RJW_Genes
 | 
			
		|||
    public class Gene_UdderBreasts : RJW_Gene
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        Hediff removed_breasts;
 | 
			
		||||
        Hediff added_udders;
 | 
			
		||||
 | 
			
		||||
        public override void PostMake()
 | 
			
		||||
        {
 | 
			
		||||
            base.PostMake();
 | 
			
		||||
 | 
			
		||||
            // Breasts are replaced for female,trap and futa pawns
 | 
			
		||||
            if ( removed_breasts == null 
 | 
			
		||||
                && (GenderUtility.IsFemale(pawn) || GenderHelper.GetSex(pawn) == GenderHelper.Sex.futa || GenderHelper.GetSex(pawn) == GenderHelper.Sex.trap)
 | 
			
		||||
                )
 | 
			
		||||
            {
 | 
			
		||||
                RemoveButStoreBreasts();
 | 
			
		||||
                AddUdders();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -36,42 +27,31 @@ namespace RJW_Genes
 | 
			
		|||
        {
 | 
			
		||||
            base.PostAdd();
 | 
			
		||||
 | 
			
		||||
            // Breasts are replaced for female,trap and futa pawns
 | 
			
		||||
            if (removed_breasts == null
 | 
			
		||||
                && (GenderUtility.IsFemale(pawn) || GenderHelper.GetSex(pawn) == GenderHelper.Sex.futa || GenderHelper.GetSex(pawn) == GenderHelper.Sex.trap)
 | 
			
		||||
                ) 
 | 
			
		||||
            { 
 | 
			
		||||
                RemoveButStoreBreasts();
 | 
			
		||||
                AddUdders();
 | 
			
		||||
            }
 | 
			
		||||
            AddUdders();
 | 
			
		||||
    
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override void PostRemove()
 | 
			
		||||
        {
 | 
			
		||||
            base.PostRemove();
 | 
			
		||||
            // Re-Add the old breasts
 | 
			
		||||
            if (removed_breasts != null)
 | 
			
		||||
                pawn.health.AddHediff(removed_breasts);
 | 
			
		||||
 | 
			
		||||
            if (added_udders != null)
 | 
			
		||||
                pawn.health.RemoveHediff(added_udders);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal void RemoveButStoreBreasts()
 | 
			
		||||
        {
 | 
			
		||||
            var partBPR = Genital_Helper.get_breastsBPR(pawn);
 | 
			
		||||
            Hediff breastsToRemove = Genital_Helper.get_AllPartsHediffList(pawn).FindLast(x => GenitaliaUtility.IsBreasts(x));
 | 
			
		||||
 | 
			
		||||
            if (breastsToRemove != null)
 | 
			
		||||
            {
 | 
			
		||||
                removed_breasts = breastsToRemove;
 | 
			
		||||
                pawn.health.RemoveHediff(breastsToRemove);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        internal void AddUdders()
 | 
			
		||||
        {
 | 
			
		||||
            CompHediffBodyPart CompHediff = null;
 | 
			
		||||
            BodyPartRecord bpr = Genital_Helper.get_uddersBPR(pawn);
 | 
			
		||||
            added_udders = pawn.health.AddHediff(Genital_Helper.udder_breasts, bpr);
 | 
			
		||||
            added_udders.TryGetComp<rjw.CompHediffBodyPart>();
 | 
			
		||||
            if (CompHediff != null)
 | 
			
		||||
            {
 | 
			
		||||
                CompHediff.initComp(pawn);
 | 
			
		||||
                CompHediff.updatesize();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										19
									
								
								Source/Genes/Genital_Helper_2.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Source/Genes/Genital_Helper_2.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
using rjw;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Genes
 | 
			
		||||
{
 | 
			
		||||
    public class Genital_Helper_2
 | 
			
		||||
    {
 | 
			
		||||
        public static HediffDef NeedlePenis = HediffDef.Named("NeedlePenis");
 | 
			
		||||
        public static HediffDef PigPenis = HediffDef.Named("PigPenis");
 | 
			
		||||
        public static HediffDef MarinePenis = HediffDef.Named("MarinePenis");
 | 
			
		||||
        public static HediffDef TentaclePenis = HediffDef.Named("TentaclePenis");
 | 
			
		||||
        public static HediffDef GolemPenis = HediffDef.Named("GolemPenis");
 | 
			
		||||
        public static HediffDef OrcPenis = HediffDef.Named("OrcPenis");
 | 
			
		||||
        public static HediffDef GhostPenis = HediffDef.Named("GhostPenis");
 | 
			
		||||
        public static HediffDef NecroPenis = HediffDef.Named("NecroPenis");
 | 
			
		||||
        public static HediffDef GhostVagina = HediffDef.Named("GhostVagina");
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_GhostGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_GhostGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_GolemGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_GolemGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_MarineGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_MarineGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_NecroGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_NecroGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_NeedleGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_NeedleGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_OrcGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_OrcGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_PigGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_PigGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								Source/Genes/Genitalia/Gene_TentacleGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Source/Genes/Genitalia/Gene_TentacleGenitalia.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -84,10 +84,18 @@
 | 
			
		|||
    <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" />
 | 
			
		||||
| 
						 | 
				
			
			@ -97,6 +105,7 @@
 | 
			
		|||
    <Compile Include="Genes\Genitalia\Gene_EquineGenitalia.cs" />
 | 
			
		||||
    <Compile Include="Genes\Genitalia\GenitaliaChanger.cs" />
 | 
			
		||||
    <Compile Include="Genes\Patch_AddNotifyOnGeneration.cs" />
 | 
			
		||||
    <Compile Include="Genes\Genital_Helper_2.cs" />
 | 
			
		||||
    <Compile Include="Genes\Special\Defs\AgeTransferExtension.cs" />
 | 
			
		||||
    <Compile Include="Genes\Special\Defs\HormonalSalivaExtension.cs" />
 | 
			
		||||
    <Compile Include="Genes\Special\Patches\Patch_AgeDrain.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue