diff --git a/About/About.xml b/About/About.xml index c0ac3e5..e7be372 100644 --- a/About/About.xml +++ b/About/About.xml @@ -1,7 +1,7 @@ RJW Genes - Vegapnk - Vegapnk.rjw.genes + jaaldabaoth + jaaldabaoth.rjw.genes
  • 1.5
  • diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 56a9d49..01ecf3c 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml b/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml index 3148cae..9cbbb50 100644 --- a/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml +++ b/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml @@ -146,13 +146,11 @@
  • BreastAmount
  • - + diff --git a/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml b/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml index 7ab3bd8..b1df8a3 100644 --- a/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml +++ b/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml @@ -105,6 +105,87 @@ RJW_Genes.Gene_ReptilianGenitalia 807 + + + + + + + rjw_genes_Ghost_genitalia + + Carriers of this gene have ghost genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_GhostGenitalia + 807 + + + + rjw_genes_Golem_genitalia + + Carriers of this gene have rocky golem genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_GolemGenitalia + 807 + + + + rjw_genes_Marine_genitalia + + Carriers of this gene have marine mammal like genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_MarineGenitalia + 807 + + + + rjw_genes_Necro_genitalia + + Carriers of this gene have necrotic undead genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_NecroGenitalia + 807 + + + + rjw_genes_Needle_genitalia + + Carriers of this gene have marine very thin genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_NeedleGenitalia + 807 + + + + rjw_genes_Orc_genitalia + + Carriers of this gene have orc genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_OrcGenitalia + 807 + + + + rjw_genes_Pig_genitalia + + Carriers of this gene have screw genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_PigGenitalia + 807 + + + + rjw_genes_Tentacle_genitalia + + Carriers of this gene have alien genitalia. + Genes/Icons/Placeholder + RJW_Genes.Gene_TentacleGenitalia + 807 + + + + + + rjw_genes_ovipositor_genitalia diff --git a/Common/Defs/HediffDefs/Hediffs_PrivateParts/Hediffs_PrivateParts_Added.xml b/Common/Defs/HediffDefs/Hediffs_PrivateParts/Hediffs_PrivateParts_Added.xml new file mode 100644 index 0000000..647b7a2 --- /dev/null +++ b/Common/Defs/HediffDefs/Hediffs_PrivateParts/Hediffs_PrivateParts_Added.xml @@ -0,0 +1,152 @@ + + + + NeedlePenis + + a needle penis + A long thin needle penis + NeedlePenis + NeedlePenis + +
  • + +
  • Thin
  • +
  • Long
  • + + +
    +
    + + PigPenis + + a screw penis + A large screw penis. + PigPenis + PigPenis + +
  • + +
  • Flared
  • +
  • Long
  • +
  • Girthy
  • + + +
    +
    + + MarinePenis + + a marine penis + A penis similar to those of marine mammals. + MarinePenis + MarinePenis + +
  • + +
  • Sheathed
  • +
  • Long
  • + + +
    +
    + + TentaclePenis + + an alien penis + A alien penis featuring multiples tentacles. + TentaclePenis + TentaclePenis + +
  • + +
  • Multiple
  • +
  • Sheathed
  • +
  • Long
  • + + +
    +
    + + GolemPenis + + an golem penis + A large rocky golem penis. + GolemPenis + GolemPenis + +
  • + +
  • Long
  • +
  • Girthy
  • +
  • Barbed
  • + + +
    +
    + + OrcPenis + + an orc penis + A large orc penis. + OrcPenis + OrcPenis + +
  • + +
  • Long
  • +
  • Girthy
  • + + +
    +
    + + GhostPenis + + an ghost penis + A evanescent ghost penis, you can barely feel it. + GhostPenis + GhostPenis + +
  • + +
  • Thin
  • +
  • Sheathed
  • + + +
    +
    + + NecroPenis + + an undead penis + A rotten, reanimated penis. + NecroPenis + NecroPenis + +
  • + +
  • Long
  • +
  • Girthy
  • + + +
    +
    + + GhostVagina + + a ghost vagina + A evanescent ghost vagina, you can barely feel it. + GhostVagina + GhostVagina + +
  • + +
  • Tight
  • +
  • Deep
  • + + +
    +
    + + +
    \ No newline at end of file diff --git a/Common/Defs/ThingDefs/Items_BodyParts/Items_BodyParts_Added.xml b/Common/Defs/ThingDefs/Items_BodyParts/Items_BodyParts_Added.xml new file mode 100644 index 0000000..9608642 --- /dev/null +++ b/Common/Defs/ThingDefs/Items_BodyParts/Items_BodyParts_Added.xml @@ -0,0 +1,96 @@ + + + + + NeedlePenis + + A long thin needle penis + + 250 + 0.40 + + + + + PigPenis + + A large screw penis. + + 250 + 0.40 + + + + + MarinePenis + + A penis similar to those of marine mammals. + + 250 + 0.40 + + + + + TentaclePenis + + A alien penis featuring multiples tentacles. + + 250 + 0.40 + + + + + GolemPenis + + A large rocky golem penis. + + 250 + 0.40 + + + + + OrcPenis + + A large orc penis. + + 250 + 0.40 + + + + + GhostPenis + + A evanescent ghost penis, you can barely feel it. + + 250 + 0.40 + + + + + NecroPenis + + A rotten, reanimated penis. + + 250 + 0.40 + + + + + GhostVagina + + GhostVagina + + 250 + 0.40 + + + + + + diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index faf3ab1..e742ec9 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -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; diff --git a/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs b/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs index e098a8c..87f2a20 100644 --- a/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs +++ b/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs @@ -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(); + if (CompHediff != null) + { + CompHediff.initComp(pawn); + CompHediff.updatesize(); + } + } } diff --git a/Source/Genes/Genital_Helper_2.cs b/Source/Genes/Genital_Helper_2.cs new file mode 100644 index 0000000..a82d93e --- /dev/null +++ b/Source/Genes/Genital_Helper_2.cs @@ -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"); + + } +} diff --git a/Source/Genes/Genitalia/Gene_GhostGenitalia.cs b/Source/Genes/Genitalia/Gene_GhostGenitalia.cs new file mode 100644 index 0000000..7fa7dc4 --- /dev/null +++ b/Source/Genes/Genitalia/Gene_GhostGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Genes/Genitalia/Gene_GolemGenitalia.cs b/Source/Genes/Genitalia/Gene_GolemGenitalia.cs new file mode 100644 index 0000000..3a19a88 --- /dev/null +++ b/Source/Genes/Genitalia/Gene_GolemGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Genes/Genitalia/Gene_MarineGenitalia.cs b/Source/Genes/Genitalia/Gene_MarineGenitalia.cs new file mode 100644 index 0000000..b273380 --- /dev/null +++ b/Source/Genes/Genitalia/Gene_MarineGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Genes/Genitalia/Gene_NecroGenitalia.cs b/Source/Genes/Genitalia/Gene_NecroGenitalia.cs new file mode 100644 index 0000000..2ad03b6 --- /dev/null +++ b/Source/Genes/Genitalia/Gene_NecroGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Genes/Genitalia/Gene_NeedleGenitalia.cs b/Source/Genes/Genitalia/Gene_NeedleGenitalia.cs new file mode 100644 index 0000000..4d0b166 --- /dev/null +++ b/Source/Genes/Genitalia/Gene_NeedleGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Genes/Genitalia/Gene_OrcGenitalia.cs b/Source/Genes/Genitalia/Gene_OrcGenitalia.cs new file mode 100644 index 0000000..cd3ef4c --- /dev/null +++ b/Source/Genes/Genitalia/Gene_OrcGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Genes/Genitalia/Gene_PigGenitalia.cs b/Source/Genes/Genitalia/Gene_PigGenitalia.cs new file mode 100644 index 0000000..c210226 --- /dev/null +++ b/Source/Genes/Genitalia/Gene_PigGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Genes/Genitalia/Gene_TentacleGenitalia.cs b/Source/Genes/Genitalia/Gene_TentacleGenitalia.cs new file mode 100644 index 0000000..834a32d --- /dev/null +++ b/Source/Genes/Genitalia/Gene_TentacleGenitalia.cs @@ -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); + } + } + +} diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 0f3986b..b0f6349 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -84,10 +84,18 @@ + + + + + + + + @@ -97,6 +105,7 @@ +