From 6304ccf475d3d1a57d0cd565cbce7c62bc3e70e2 Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Sun, 18 Dec 2022 22:05:52 +0100 Subject: [PATCH] Changed Image for Insect Breeder Gene, new Approach for Insect Egg Fertilization --- Common/Assemblies/Rjw-Genes.dll | Bin 40448 -> 41472 bytes Common/Defs/Genes/GeneDefs_Breeding.xml | 4 +- .../Genes/Breeding/Patch_EggFertilization.cs | 99 ++++++++++++++++++ Source/Genes/Genitalia/GenitaliaUtility.cs | 18 ++-- Source/Rjw-Genes.csproj | 8 +- 5 files changed, 115 insertions(+), 14 deletions(-) create mode 100644 Source/Genes/Breeding/Patch_EggFertilization.cs diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 5e1c60b46aeea01f1513cbc5a751578a0e73b68b..bd8049f6229efde423e0f0fba0ce367e9a094fb4 100644 GIT binary patch literal 41472 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

Y)e*ZjOYGeVV$&S4 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 Pawns with this gene are able to hold more insect eggs. - World/WorldObjects/Expanding/Mechanoids + Genes/Icons/More_Egg_Space 52 rjw_genes_breeding @@ -24,7 +24,7 @@ rjw_genes_insectbreeder Pawns with this gene are able to fertilize eggs with any fertile penis. - Genes/Icons/More_Egg_Space + World/WorldObjects/Expanding/Insects 53 rjw_genes_breeding diff --git a/Source/Genes/Breeding/Patch_EggFertilization.cs b/Source/Genes/Breeding/Patch_EggFertilization.cs new file mode 100644 index 0000000..46ec598 --- /dev/null +++ b/Source/Genes/Breeding/Patch_EggFertilization.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using HarmonyLib; +using Verse; +using rjw; + +namespace RJW_Genes +{ + ///

+ /// This Class patches the AfterSexUtility to also fertilize eggs if Pawn A has "InsectBreeder" and Pawn B has Insect Eggs. + /// Patched Class is https://gitgud.io/Ed86/rjw/-/blob/master/1.4/Source/Common/Helpers/SexUtility.cs + /// + /// Normal Egg-Pregnancy logic is in https://gitgud.io/Ed86/rjw/-/blob/master/1.4/Source/Modules/Pregnancy/Pregnancy_Helper.cs + /// + [HarmonyPatch(typeof(SexUtility), "Aftersex")] + static class PatchEggFertilizationHelper + { + [HarmonyTranspiler] + public static void Postfix(SexProps props) + { + // Only Fertilize on vaginal / anal sex + if (!(props.sexType == xxx.rjwSextype.Vaginal || props.sexType == xxx.rjwSextype.Anal)) + { + return; + } + + + if (canDoEggFertilization(props.pawn, props.partner)) + { + // Pawn has gene and Partner has eggs + if (props.pawn.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(props.partner).NullOrEmpty()) + { + Pawn eggHolder = props.partner; + Pawn impregnator = props.pawn; + + foreach (Hediff_InsectEgg egg in getEggsforPawn(eggHolder)) + { + if (!egg.fertilized) + egg.Fertilize(impregnator); + } + } + + // Partner has gene and Pawn has eggs + if (props.partner.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(props.pawn).NullOrEmpty()) + { + Pawn eggHolder = props.pawn; + Pawn impregnator = props.partner; + + foreach (Hediff_InsectEgg egg in getEggsforPawn(eggHolder)) + { + if (!egg.fertilized) + egg.Fertilize(impregnator); + } + } + + + } + } + + + private static Boolean canDoEggFertilization(Pawn a, Pawn b) + { + + // No Partner / Other Errors + if (a != null || b != null) + return false; + // None of the pawns has the relevant gene + if (!a.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !b.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder)) + return false; + // None of the pawns has eggs + if (getEggsforPawn(a).NullOrEmpty() && getEggsforPawn(b).NullOrEmpty()) + return false; + + // A has gene and B has eggs + if (a.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(b).NullOrEmpty()) + { + return true; + } + // B has gene and A has eggs + if (b.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(a).NullOrEmpty()) + { + return true; + } + // Any other case: Do nothing + return false; + } + + private static List getEggsforPawn(Pawn pawn) + { + List eggs = new List(); + pawn.health.hediffSet.GetHediffs(ref eggs); + foreach (var egg in eggs) + egg.Fertilize(pawn); + + return eggs; + } + } +} diff --git a/Source/Genes/Genitalia/GenitaliaUtility.cs b/Source/Genes/Genitalia/GenitaliaUtility.cs index e11f06f..4dc289a 100644 --- a/Source/Genes/Genitalia/GenitaliaUtility.cs +++ b/Source/Genes/Genitalia/GenitaliaUtility.cs @@ -23,16 +23,17 @@ namespace RJW_Genes if (!gene.Overridden) return gene.def; } - - return GeneDefOf.rjw_genes_human_genitalia; + return null; } public static HediffDef GetPenisForGene(GeneDef gene) { + if (gene == null) + return Genital_Helper.average_penis; + switch (gene.defName) { - case "rjw_genes_human_genitalia": return Genital_Helper.average_penis; 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; @@ -48,9 +49,11 @@ namespace RJW_Genes public static HediffDef GetVaginaForGene(GeneDef gene) { + if (gene == null) + return Genital_Helper.average_vagina; + switch (gene.defName) { - case "rjw_genes_human_genitalia": return Genital_Helper.average_vagina; 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; @@ -65,10 +68,11 @@ namespace RJW_Genes 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_human_genitalia": return Genital_Helper.average_anus; 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; @@ -83,10 +87,12 @@ namespace RJW_Genes public static HediffDef GetBreastsForGene(GeneDef gene) { + if (gene == null) + return Genital_Helper.average_breasts; + switch (gene.defName) { //TODO: Do I want the default to be generic or average? - case "rjw_genes_human_genitalia": return Genital_Helper.average_breasts; case "rjw_genes_equine_genitalia": return Genital_Helper.average_breasts; case "rjw_genes_canine_genitalia": return Genital_Helper.average_breasts; case "rjw_genes_feline_genitalia": return Genital_Helper.average_breasts; diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 4f0beb0..94d2403 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -70,11 +70,12 @@ - + + @@ -99,10 +100,6 @@ - - - - @@ -116,7 +113,6 @@ -