diff --git a/About/About.xml b/About/About.xml index 5d46796..a414d20 100644 --- a/About/About.xml +++ b/About/About.xml @@ -13,13 +13,13 @@ RimJobWorld https://www.loverslab.com/files/file/7257-rimjobworld/ + diff --git a/Common/Assemblies/0Harmony.dll b/Common/Assemblies/0Harmony.dll deleted file mode 100644 index 86fc5eb..0000000 Binary files a/Common/Assemblies/0Harmony.dll and /dev/null differ diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index db2c867..5b7deea 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/GeneDefs_Breeding.xml b/Common/Defs/GeneDefs_Breeding.xml deleted file mode 100644 index 9e9a4a2..0000000 --- a/Common/Defs/GeneDefs_Breeding.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - rjw_genes_mechbreeder - - Pawns with this gene are able to birth mechanoids unharmed. - World/WorldObjects/Expanding/Mechanoids - 51 - rjw_genes_breeding - - - - rjw_genes_insectincubator - - Pawns with this gene are able to hold more insect eggs. - World/WorldObjects/Expanding/Mechanoids - 52 - rjw_genes_breeding - - - - rjw_genes_insectbreeder - - Pawns with this gene are able to fertilize eggs with any fertile penis. - World/WorldObjects/Expanding/Mechanoids - 53 - rjw_genes_breeding - - - \ No newline at end of file diff --git a/Common/Defs/Genes/GeneCategories.xml b/Common/Defs/Genes/GeneCategories.xml index a5e53c1..e9b727b 100644 --- a/Common/Defs/Genes/GeneCategories.xml +++ b/Common/Defs/Genes/GeneCategories.xml @@ -1,27 +1,10 @@ - - - - rjw_genes_gender - - 20 - - rjw_genes_genitalia - 16 - - - - rjw_genes_breeding - - 15 + 541 \ No newline at end of file diff --git a/Common/Defs/Genes/GeneDefs_ExtraGenitaliaEndogenes.xml b/Common/Defs/Genes/GeneDefs_ExtraGenitaliaEndogenes.xml index 703d8db..3242cb6 100644 --- a/Common/Defs/Genes/GeneDefs_ExtraGenitaliaEndogenes.xml +++ b/Common/Defs/Genes/GeneDefs_ExtraGenitaliaEndogenes.xml @@ -11,7 +11,7 @@ Males of this species grow an additional penis . Genes/Icons/Placeholder RJW_Genes.Gene_ExtraPenis - 701 + 20
  • PenisAmount
  • @@ -23,7 +23,7 @@ Males of this do not have a penis. Genes/Icons/Placeholder RJW_Genes.Gene_NoPenis - 702 + 21
  • PenisAmount
  • @@ -36,7 +36,7 @@ Females of this species grow an additional vagina . Genes/Icons/Placeholder RJW_Genes.Gene_ExtraVagina - 703 + 22
  • VaginaAmount
  • @@ -48,7 +48,7 @@ Females of this do not have a vagina. Genes/Icons/Placeholder RJW_Genes.Gene_NoVagina - 704 + 23
  • VaginaAmount
  • @@ -61,7 +61,7 @@ Females of this species grow an additional pair of breasts . Genes/Icons/Placeholder RJW_Genes.Gene_ExtraBreasts - 705 + 24
  • BreastAmount
  • @@ -73,7 +73,7 @@ Females of this do not have a pair of breasts. Genes/Icons/Placeholder RJW_Genes.Gene_NoBreasts - 706 + 25
  • BreastAmount
  • @@ -85,7 +85,7 @@ This specias has an extra anus. Genes/Icons/Placeholder RJW_Genes.Gene_ExtraAnus - 707 + 26
  • AnusAmount
  • @@ -97,7 +97,7 @@ This specias has no anus. Genes/Icons/Placeholder RJW_Genes.Gene_NoAnus - 708 + 27
  • AnusAmount
  • @@ -109,7 +109,7 @@ Males of this xenotype grow additional female genitalia, Females grow additional male genitalia. Genes/Icons/Placeholder RJW_Genes.Gene_Futa - 709 + 29
  • PenisAmount
  • VaginaAmount
  • diff --git a/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml b/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml index 41dac59..8ecc4c7 100644 --- a/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml +++ b/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml @@ -12,7 +12,7 @@ Penises of this Xenotype are bigger. Genes/Icons/Placeholder RJW_Genes.Gene_BigMaleGenitalia - 751 + 51
  • PenisSize
  • @@ -24,7 +24,7 @@ Penises of this Xenotype can be any size. Genes/Icons/Placeholder RJW_Genes.Gene_NormalMaleGenitalia - 752 + 52
  • PenisSize
  • @@ -36,7 +36,7 @@ Penises of this Xenotype are smaller. Genes/Icons/Placeholder RJW_Genes.Gene_SmallMaleGenitalia - 753 + 53
  • PenisSize
  • @@ -49,7 +49,7 @@ Vaginas of this Xenotype are quite spacy. Genes/Icons/Placeholder RJW_Genes.Gene_LooseFemaleGenitalia - 754 + 54
  • VaginaSize
  • @@ -61,7 +61,7 @@ Vaginas of this Xenotype can be any size. Genes/Icons/Placeholder RJW_Genes.Gene_NormalFemaleGenitalia - 755 + 55
  • VaginaSize
  • @@ -73,7 +73,7 @@ Vaginas of this Xenotype are pretty tight. Genes/Icons/Placeholder RJW_Genes.Gene_TightFemaleGenitalia - 756 + 56
  • VaginaSize
  • @@ -86,7 +86,7 @@ Females of this Xenotype have big honkers. Genes/Icons/Placeholder RJW_Genes.Gene_BigBreasts - 757 + 57
  • BreastSize
  • @@ -98,7 +98,7 @@ Females of this Xenotype have breasts of any size. Genes/Icons/Placeholder RJW_Genes.Gene_NormalBreasts - 758 + 58
  • BreastSize
  • @@ -110,7 +110,7 @@ Females of this Xenotype have smaller breasts. Genes/Icons/Placeholder RJW_Genes.Gene_SmallBreasts - 759 + 59
  • BreastSize
  • @@ -123,7 +123,7 @@ The Anus of this Xenotype is roomy. Genes/Icons/Placeholder RJW_Genes.Gene_LooseAnus - 760 + 60
  • AnusSize
  • @@ -135,7 +135,7 @@ Anus of this Xenotype can be any size. Genes/Icons/Placeholder RJW_Genes.Gene_NormalAnus - 761 + 61
  • AnusSize
  • @@ -147,7 +147,7 @@ The anus of this Xenotype is small. Genes/Icons/Placeholder RJW_Genes.Gene_TightAnus - 762 + 62
  • AnusSize
  • diff --git a/Common/Defs/Genes/GeneDefs_GenitaliaTypeEndogenes.xml b/Common/Defs/Genes/GeneDefs_GenitaliaTypeEndogenes.xml index 39f7f64..ff90a9f 100644 --- a/Common/Defs/Genes/GeneDefs_GenitaliaTypeEndogenes.xml +++ b/Common/Defs/Genes/GeneDefs_GenitaliaTypeEndogenes.xml @@ -18,7 +18,7 @@ Carriers of this carry genitalia similar to humans. Genes/Icons/Placeholder RJW_Genes.Gene_HumanGenitalia - 801 + 1 @@ -27,7 +27,7 @@ Carriers of this gene develop equine genitalia. Genes/Icons/Placeholder RJW_Genes.Gene_EquineGenitalia - 802 + 2 @@ -36,7 +36,7 @@ Carriers of this gene develop canine genitalia. Genes/Icons/Placeholder RJW_Genes.Gene_CanineGenitalia - 803 + 3 @@ -45,7 +45,7 @@ Carriers of this gene develop feline genitalia. Genes/Icons/Placeholder RJW_Genes.Gene_FelineGenitalia - 804 + 4 @@ -54,7 +54,7 @@ Carriers of this gene have demonic genitalia. Genes/Icons/Placeholder RJW_Genes.Gene_DemonicGenitalia - 805 + 5 @@ -63,7 +63,7 @@ Carriers of this gene develop dragon genitalia. Genes/Icons/Placeholder RJW_Genes.Gene_DragonGenitalia - 806 + 6 @@ -72,7 +72,7 @@ Carriers of this gene have slime genitalia. Genes/Icons/Placeholder RJW_Genes.Gene_SlimeGenitalia - 807 + 7 @@ -81,7 +81,7 @@ Carriers of this gene have ovipositors similar to insects. Genes/Icons/Placeholder RJW_Genes.Gene_OvipositorGenitalia - 808 + 8 \ No newline at end of file diff --git a/Common/Defs/Genes/GeneDefs_SpecifiedGender.xml b/Common/Defs/Genes/GeneDefs_SpecifiedGender.xml deleted file mode 100644 index 521e878..0000000 --- a/Common/Defs/Genes/GeneDefs_SpecifiedGender.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - rjw_genes_female_only - - rjw_genes_gender - This Xenotype only has females. - 0 - Genes/Icons/Placeholder - RJW_Genes.Gene_FemaleOnly - 1 - - - - rjw_genes_male_only - rjw_genes_gender - - This Xenotype only has males. - 0 - Genes/Icons/Placeholder - RJW_Genes.Gene_MaleOnly - 2 - - - \ No newline at end of file diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index e9a7362..198a961 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -7,7 +7,6 @@ namespace RJW_Genes public static class GeneDefOf { [MayRequireBiotech] public static readonly GeneCategoryDef rjw_genes_genitalia; - [MayRequireBiotech] public static readonly GeneCategoryDef rjw_genes_gender; // Base Genitalia Types [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_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; } } diff --git a/Source/Genes/Breeding/Gene_MechBreeder.cs b/Source/Genes/Breeding/Gene_MechBreeder.cs deleted file mode 100644 index a0a8855..0000000 --- a/Source/Genes/Breeding/Gene_MechBreeder.cs +++ /dev/null @@ -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! - } -} diff --git a/Source/Genes/Breeding/PatchMechBirth.cs b/Source/Genes/Breeding/PatchMechBirth.cs deleted file mode 100644 index c92e0a9..0000000 --- a/Source/Genes/Breeding/PatchMechBirth.cs +++ /dev/null @@ -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 -{ - /// - /// 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/ - /// - [HarmonyPatch(typeof(Hediff_MechanoidPregnancy), "GiveBirth")] - public static class PatchMechBirth - { - [HarmonyTranspiler] - public static IEnumerable Transpiler(IEnumerable 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; - } - } -} \ No newline at end of file diff --git a/Source/Genes/Breeding/PatchPawnExtensions.cs b/Source/Genes/Breeding/PatchPawnExtensions.cs deleted file mode 100644 index 2c36716..0000000 --- a/Source/Genes/Breeding/PatchPawnExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using HarmonyLib; -using rjw; -using Verse; - -namespace RJW_Genes -{ - /// - /// Kindly provided by 'shabalox' https://github.com/Shabalox/RJW_Genes_Addons/ - /// - [HarmonyPatch(typeof(PawnExtensions), "RaceImplantEggs")] - public static class PatchPawnExtensions - { - [HarmonyPostfix] - public static void Postfix(Pawn pawn, ref bool __result) - { - if (!__result) - { - __result = GeneUtility.isInsectBreeder(pawn); - } - } - } -} \ No newline at end of file diff --git a/Source/Genes/Breeding/PatchPregnancyHelper.cs b/Source/Genes/Breeding/PatchPregnancyHelper.cs deleted file mode 100644 index 81a0ad4..0000000 --- a/Source/Genes/Breeding/PatchPregnancyHelper.cs +++ /dev/null @@ -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 -{ - /// - /// 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/ - /// - [HarmonyPatch(typeof(PregnancyHelper), "DoEgg")] - static class PatchPregnancyHelper - { - [HarmonyTranspiler] - public static IEnumerable Transpiler(IEnumerable 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; - } - } - } -} diff --git a/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs b/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs index cea77f2..7bb5953 100644 --- a/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs +++ b/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_ExtraAnus : RJW_Gene + public class Gene_ExtraAnus : Gene { internal Hediff additional_anus; @@ -12,6 +12,8 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); if (additional_anus == null) { diff --git a/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs b/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs index 8829854..e8e658f 100644 --- a/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs +++ b/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_ExtraBreasts : RJW_Gene + public class Gene_ExtraBreasts : Gene { internal Hediff additional_breasts; @@ -12,11 +12,13 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); - // Tits are only added for female pawns! - if (GenderUtility.IsFemale(pawn) && additional_breasts == null) + // Penis are only added for female pawns! + if (pawn.gender == Gender.Female && additional_breasts == null) { - CreateAndAddBreasts(); + createAndAddPenis(); } } @@ -24,10 +26,10 @@ namespace RJW_Genes { base.PostAdd(); - // Tits are only added for female pawns! - if (GenderUtility.IsFemale(pawn) && additional_breasts == null) + // Penis are only added for female pawns! + if (pawn.gender == Gender.Female && additional_breasts == null) { - CreateAndAddBreasts(); + createAndAddPenis(); } } @@ -38,7 +40,7 @@ namespace RJW_Genes pawn.health.RemoveHediff(additional_breasts); } - internal void CreateAndAddBreasts() + internal void createAndAddPenis() { var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn); var breastDef = GenitaliaUtility.GetBreastsForGene(correctGene); diff --git a/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs b/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs index aee18c7..10dfb57 100644 --- a/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs +++ b/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_ExtraPenis : RJW_Gene + public class Gene_ExtraPenis : Gene { internal Hediff additional_penis; @@ -12,11 +12,13 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); // 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(); // 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); } - internal void CreateAndAddPenis() + internal void createAndAddPenis() { var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn); HediffDef penisDef = GenitaliaUtility.GetPenisForGene(correctGene); diff --git a/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs b/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs index 9940de0..a6f6bff 100644 --- a/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs +++ b/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_ExtraVagina : RJW_Gene + public class Gene_ExtraVagina : Gene { internal Hediff additional_vagina; @@ -17,9 +17,11 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); // Vaginas are only added for female pawns! - if (GenderUtility.IsFemale(pawn) && additional_vagina == null) + if (pawn.gender == Gender.Female && additional_vagina == null) { CreateAndAddVagina(); } @@ -30,7 +32,7 @@ namespace RJW_Genes base.PostAdd(); // Vaginas are only added for female pawns! - if (GenderUtility.IsFemale(pawn) && additional_vagina == null) + if (pawn.gender == Gender.Female && additional_vagina == null) { CreateAndAddVagina(); } diff --git a/Source/Genes/ExtraGenitalia/Gene_Futa.cs b/Source/Genes/ExtraGenitalia/Gene_Futa.cs index 2d9f367..76749ff 100644 --- a/Source/Genes/ExtraGenitalia/Gene_Futa.cs +++ b/Source/Genes/ExtraGenitalia/Gene_Futa.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_Futa : RJW_Gene + public class Gene_Futa : Gene { internal Hediff additional_genital; @@ -12,12 +12,14 @@ namespace RJW_Genes public override void 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(); } - if (GenderUtility.IsMale(pawn) && additional_genital == null) + if (pawn.gender == Gender.Male && additional_genital == null) { CreateAndAddVagina(); } diff --git a/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs b/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs index d23b2df..28ea3ba 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_NoAnus : RJW_Gene + public class Gene_NoAnus : Gene { internal Hediff removed_anus; @@ -15,6 +15,8 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); if (removed_anus == null) { diff --git a/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs b/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs index ddc75a1..bf1cd40 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_NoBreasts : RJW_Gene + public class Gene_NoBreasts : Gene { internal Hediff removed_breasts; @@ -15,9 +15,11 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); // Breasts are removed for female pawns! - if (GenderUtility.IsFemale(pawn) && removed_breasts == null) + if (pawn.gender == Gender.Female && removed_breasts == null) { RemoveButStoreBreasts(); } @@ -28,7 +30,7 @@ namespace RJW_Genes base.PostAdd(); // Breasts are removed for female pawns! - if (GenderUtility.IsFemale(pawn) && removed_breasts == null) + if (pawn.gender == Gender.Female && removed_breasts == null) { RemoveButStoreBreasts(); } diff --git a/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs b/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs index be67ef4..cd7f01f 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_NoPenis : RJW_Gene + public class Gene_NoPenis : Gene { internal Hediff removed_penis; @@ -15,9 +15,11 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); - // Penis are only removed for male pawns! - if (GenderUtility.IsMale(pawn) && removed_penis == null) + // Penis are only added for male pawns! + if (pawn.gender == Gender.Male && removed_penis == null) { RemoveButStorePenis(); } @@ -27,8 +29,8 @@ namespace RJW_Genes { base.PostAdd(); - // Penis are only removed for male pawns! - if (GenderUtility.IsMale(pawn) && removed_penis == null) + // Penis are only added for male pawns! + if (pawn.gender == Gender.Male && removed_penis == null) { RemoveButStorePenis(); } diff --git a/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs b/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs index 8083f58..920c263 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs @@ -4,7 +4,7 @@ using RimWorld; namespace RJW_Genes { - public class Gene_NoVagina : RJW_Gene + public class Gene_NoVagina : Gene { internal Hediff removed_vagina; @@ -15,9 +15,11 @@ namespace RJW_Genes public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); // Vaginas are only removed for female pawns! - if (GenderUtility.IsFemale(pawn) && removed_vagina == null) + if (pawn.gender == Gender.Female && removed_vagina == null) { RemoveButStoreVagina(); } @@ -28,7 +30,7 @@ namespace RJW_Genes base.PostAdd(); // Vaginas are only removed for female pawns! - if (GenderUtility.IsFemale(pawn) && removed_vagina == null) + if (pawn.gender == Gender.Female && removed_vagina == null) { RemoveButStoreVagina(); } diff --git a/Source/Genes/Gender/GenderUtility.cs b/Source/Genes/Gender/GenderUtility.cs deleted file mode 100644 index ea0e1d6..0000000 --- a/Source/Genes/Gender/GenderUtility.cs +++ /dev/null @@ -1,73 +0,0 @@ -using Verse; -using rjw; -using RimWorld; -using System.Collections; -using System.Linq; -using System; - -namespace RJW_Genes -{ - public class GenderUtility - { - /// - /// 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. - /// - 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)); - } - - /// - /// 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. - /// - 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)); - } - - /// - /// Adjusts the Body Type to match the given target gender - /// (for male and female only, baby,child and hulks don't change) - /// - /// - /// - 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.AllDefs.Where((Func)(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(); - } - } -} diff --git a/Source/Genes/Gender/Gene_FemaleOnly.cs b/Source/Genes/Gender/Gene_FemaleOnly.cs deleted file mode 100644 index 0cfbe0d..0000000 --- a/Source/Genes/Gender/Gene_FemaleOnly.cs +++ /dev/null @@ -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); - } - } - - } -} diff --git a/Source/Genes/Gender/Gene_MaleOnly.cs b/Source/Genes/Gender/Gene_MaleOnly.cs deleted file mode 100644 index 51806cf..0000000 --- a/Source/Genes/Gender/Gene_MaleOnly.cs +++ /dev/null @@ -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); - } - } - - } -} diff --git a/Source/Genes/GeneUtility.cs b/Source/Genes/GeneUtility.cs deleted file mode 100644 index 5144aad..0000000 --- a/Source/Genes/GeneUtility.cs +++ /dev/null @@ -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; - } - } -} \ No newline at end of file diff --git a/Source/Genes/Genitalia/Gene_CanineGenitalia.cs b/Source/Genes/Genitalia/Gene_CanineGenitalia.cs index 0f31a11..1d37041 100644 --- a/Source/Genes/Genitalia/Gene_CanineGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_CanineGenitalia.cs @@ -3,11 +3,13 @@ using rjw; namespace RJW_Genes { - public class Gene_CanineGenitalia : RJW_Gene + public class Gene_CanineGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs b/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs index e4c5805..5d33f84 100644 --- a/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs @@ -4,11 +4,13 @@ using rjw; namespace RJW_Genes { - public class Gene_DemonicGenitalia : RJW_Gene + public class Gene_DemonicGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/Gene_DragonGenitalia.cs b/Source/Genes/Genitalia/Gene_DragonGenitalia.cs index abd930d..4e44954 100644 --- a/Source/Genes/Genitalia/Gene_DragonGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_DragonGenitalia.cs @@ -3,11 +3,13 @@ using rjw; namespace RJW_Genes { - public class Gene_DragonGenitalia : RJW_Gene + public class Gene_DragonGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/Gene_EquineGenitalia.cs b/Source/Genes/Genitalia/Gene_EquineGenitalia.cs index 4ec956b..47eb65a 100644 --- a/Source/Genes/Genitalia/Gene_EquineGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_EquineGenitalia.cs @@ -3,11 +3,13 @@ using rjw; namespace RJW_Genes { - public class Gene_EquineGenitalia : RJW_Gene + public class Gene_EquineGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/Gene_FelineGenitalia.cs b/Source/Genes/Genitalia/Gene_FelineGenitalia.cs index 6c1b987..506437c 100644 --- a/Source/Genes/Genitalia/Gene_FelineGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_FelineGenitalia.cs @@ -3,11 +3,13 @@ using rjw; namespace RJW_Genes { - public class Gene_FelineGenitalia : RJW_Gene + public class Gene_FelineGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/Gene_HumanGenitalia.cs b/Source/Genes/Genitalia/Gene_HumanGenitalia.cs index 077e0c4..cd9ee11 100644 --- a/Source/Genes/Genitalia/Gene_HumanGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_HumanGenitalia.cs @@ -3,11 +3,13 @@ using rjw; namespace RJW_Genes { - public class Gene_HumanGenitalia : RJW_Gene + public class Gene_HumanGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs b/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs index 2e91c2c..3cab5d9 100644 --- a/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs @@ -3,11 +3,13 @@ using rjw; namespace RJW_Genes { - public class Gene_OvipositorGenitalia : RJW_Gene + public class Gene_OvipositorGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs b/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs index efbdfcb..9837271 100644 --- a/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs +++ b/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs @@ -3,11 +3,13 @@ using rjw; namespace RJW_Genes { - public class Gene_SlimeGenitalia : RJW_Gene + public class Gene_SlimeGenitalia : Gene { public override void 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); } diff --git a/Source/Genes/Genitalia/GenitaliaChanger.cs b/Source/Genes/Genitalia/GenitaliaChanger.cs index 48ddc4d..84f4fab 100644 --- a/Source/Genes/Genitalia/GenitaliaChanger.cs +++ b/Source/Genes/Genitalia/GenitaliaChanger.cs @@ -79,14 +79,5 @@ namespace RJW_Genes 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); - } - } - } } diff --git a/Source/Genes/GenitaliaSize/Gene_BigBreasts.cs b/Source/Genes/GenitaliaSize/Gene_BigBreasts.cs index b0e61ad..d2a4d05 100644 --- a/Source/Genes/GenitaliaSize/Gene_BigBreasts.cs +++ b/Source/Genes/GenitaliaSize/Gene_BigBreasts.cs @@ -1,12 +1,17 @@ using Verse; +using rjw; +using System; + namespace RJW_Genes { - public class Gene_BigBreasts : RJW_Gene + public class Gene_BigBreasts : Gene { public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); if (pawn.gender == Gender.Female) SizeAdjuster.AdjustAllBreastSizes(pawn,0.5f,1.0f); diff --git a/Source/Genes/GenitaliaSize/Gene_BigMaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_BigMaleGenitalia.cs index b04df46..a745ce6 100644 --- a/Source/Genes/GenitaliaSize/Gene_BigMaleGenitalia.cs +++ b/Source/Genes/GenitaliaSize/Gene_BigMaleGenitalia.cs @@ -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() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); SizeAdjuster.AdjustAllPenisSizes(pawn,0.5f,1.0f); } diff --git a/Source/Genes/GenitaliaSize/Gene_LooseAnus.cs b/Source/Genes/GenitaliaSize/Gene_LooseAnus.cs index f5a5312..92a237d 100644 --- a/Source/Genes/GenitaliaSize/Gene_LooseAnus.cs +++ b/Source/Genes/GenitaliaSize/Gene_LooseAnus.cs @@ -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() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); SizeAdjuster.AdjustAllAnusSizes(pawn, 0.5f, 1.0f); } @@ -18,5 +24,6 @@ + } } diff --git a/Source/Genes/GenitaliaSize/Gene_LooseFemaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_LooseFemaleGenitalia.cs index 68578b6..c14d5fd 100644 --- a/Source/Genes/GenitaliaSize/Gene_LooseFemaleGenitalia.cs +++ b/Source/Genes/GenitaliaSize/Gene_LooseFemaleGenitalia.cs @@ -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() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.5f, 1.0f); } diff --git a/Source/Genes/GenitaliaSize/Gene_NormalAnus.cs b/Source/Genes/GenitaliaSize/Gene_NormalAnus.cs index 8ee0a45..85370db 100644 --- a/Source/Genes/GenitaliaSize/Gene_NormalAnus.cs +++ b/Source/Genes/GenitaliaSize/Gene_NormalAnus.cs @@ -6,12 +6,14 @@ namespace RJW_Genes /// /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept. /// - public class Gene_NormalAnus : RJW_Gene + public class Gene_NormalAnus : Gene { public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); } } diff --git a/Source/Genes/GenitaliaSize/Gene_NormalBreasts.cs b/Source/Genes/GenitaliaSize/Gene_NormalBreasts.cs index 2b8f193..ec71b51 100644 --- a/Source/Genes/GenitaliaSize/Gene_NormalBreasts.cs +++ b/Source/Genes/GenitaliaSize/Gene_NormalBreasts.cs @@ -1,16 +1,19 @@ -using rjw; +using Verse; +using rjw; namespace RJW_Genes { /// /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept. /// - public class Gene_NormalBreasts : RJW_Gene + public class Gene_NormalBreasts : Gene { public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); } } diff --git a/Source/Genes/GenitaliaSize/Gene_NormalFemaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_NormalFemaleGenitalia.cs index fce0c87..d00278f 100644 --- a/Source/Genes/GenitaliaSize/Gene_NormalFemaleGenitalia.cs +++ b/Source/Genes/GenitaliaSize/Gene_NormalFemaleGenitalia.cs @@ -6,12 +6,14 @@ namespace RJW_Genes /// /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept. /// - public class Gene_NormalFemaleGenitalia : RJW_Gene + public class Gene_NormalFemaleGenitalia : Gene { public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); } diff --git a/Source/Genes/GenitaliaSize/Gene_NormalMaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_NormalMaleGenitalia.cs index 2fa6247..0c3a89c 100644 --- a/Source/Genes/GenitaliaSize/Gene_NormalMaleGenitalia.cs +++ b/Source/Genes/GenitaliaSize/Gene_NormalMaleGenitalia.cs @@ -1,14 +1,19 @@ -namespace RJW_Genes +using Verse; +using rjw; + +namespace RJW_Genes { /// /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept. /// - public class Gene_NormalMaleGenitalia : RJW_Gene + public class Gene_NormalMaleGenitalia : Gene { public override void PostMake() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); } } diff --git a/Source/Genes/GenitaliaSize/Gene_SmallBreasts.cs b/Source/Genes/GenitaliaSize/Gene_SmallBreasts.cs index d5b4a4e..01c1b74 100644 --- a/Source/Genes/GenitaliaSize/Gene_SmallBreasts.cs +++ b/Source/Genes/GenitaliaSize/Gene_SmallBreasts.cs @@ -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() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); SizeAdjuster.AdjustAllBreastSizes(pawn, 0.0f, 0.5f); } diff --git a/Source/Genes/GenitaliaSize/Gene_SmallMaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_SmallMaleGenitalia.cs index 12ba154..d9faebb 100644 --- a/Source/Genes/GenitaliaSize/Gene_SmallMaleGenitalia.cs +++ b/Source/Genes/GenitaliaSize/Gene_SmallMaleGenitalia.cs @@ -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() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); SizeAdjuster.AdjustAllPenisSizes(pawn,0.0f,0.5f); } diff --git a/Source/Genes/GenitaliaSize/Gene_TightAnus.cs b/Source/Genes/GenitaliaSize/Gene_TightAnus.cs index 56f52cd..3a77026 100644 --- a/Source/Genes/GenitaliaSize/Gene_TightAnus.cs +++ b/Source/Genes/GenitaliaSize/Gene_TightAnus.cs @@ -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() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); SizeAdjuster.AdjustAllAnusSizes(pawn, 0.0f, 0.5f); } diff --git a/Source/Genes/GenitaliaSize/Gene_TightFemaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_TightFemaleGenitalia.cs index 53ec2a7..d7cc216 100644 --- a/Source/Genes/GenitaliaSize/Gene_TightFemaleGenitalia.cs +++ b/Source/Genes/GenitaliaSize/Gene_TightFemaleGenitalia.cs @@ -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() { base.PostMake(); + if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) + Sexualizer.sexualize_pawn(pawn); SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.0f, 0.5f); } diff --git a/Source/Genes/RJW_Gene.cs b/Source/Genes/RJW_Gene.cs deleted file mode 100644 index d03440c..0000000 --- a/Source/Genes/RJW_Gene.cs +++ /dev/null @@ -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); - } - } -} diff --git a/Source/Genes/Genitalia/GenitaliaUtility.cs b/Source/GenitaliaUtility.cs similarity index 100% rename from Source/Genes/Genitalia/GenitaliaUtility.cs rename to Source/GenitaliaUtility.cs diff --git a/Source/HarmonyInit.cs b/Source/HarmonyInit.cs deleted file mode 100644 index c2f288e..0000000 --- a/Source/HarmonyInit.cs +++ /dev/null @@ -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(); - } - } -} \ No newline at end of file diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 708cdb8..015652e 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -22,9 +22,6 @@ false - - ..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll - ..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll False @@ -52,10 +49,6 @@ - - - - @@ -65,10 +58,6 @@ - - - - @@ -91,9 +80,7 @@ - - - +