diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs index 0020d86..7da77a7 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs @@ -276,7 +276,10 @@ namespace RJW_Menstruation float res = 0; if (VariousDefOf.Hediff_Heavy_Lactating_Permanent != null) { - if (pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_Heavy_Lactating_Permanent)) milkcomp = pawn.AllComps.FirstOrDefault(x => x.GetType().ToString().ToLower().Contains("hypermilkable")); + if (pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_Heavy_Lactating_Permanent) + || pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_Lactating_Permanent) + || pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_Lactating_Natural) + || pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_Lactating_Drug)) milkcomp = pawn.AllComps.FirstOrDefault(x => x.GetType().ToString().ToLower().Contains("milkablehuman")); else milkcomp = pawn.AllComps.FirstOrDefault(x => x.GetType().ToString().ToLower().Contains("milkable")); } else diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs index 16903b2..a3fdf4c 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs @@ -158,7 +158,7 @@ namespace RJW_Menstruation public static readonly HediffDef Hediff_Lactating_Natural = DefDatabase.GetNamedSilentFail("Lactating_Natural"); public static readonly HediffDef Hediff_Lactating_Permanent = DefDatabase.GetNamedSilentFail("Lactating_Permanent"); public static readonly HediffDef Hediff_Heavy_Lactating_Permanent = DefDatabase.GetNamedSilentFail("Heavy_Lactating_Permanent"); - public static readonly JobDef Job_LactateSelf_MC = DefDatabase.GetNamedSilentFail("LactateSelf_MC"); + public static readonly JobDef Job_LactateSelf_MC = DefDatabase.GetNamedSilentFail("MilkSelf"); // Defs from Sexperience Ideology public static readonly PreceptDef Pregnancy_Elevated = DefDatabase.GetNamedSilentFail("Pregnancy_Elevated"); diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index cdf9afd..ffb4296 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -1013,7 +1013,7 @@ namespace RJW_Menstruation float leakfactor = 1.0f; float totalleak = 0f; float cumd = TotalCumPercent; - List filthlabels = new List(); + List filthlabels = new List(cums.Count); BeforeCumOut(out Absorber absorber); if (cums.NullOrEmpty()) return; if (TotalCum > Props.maxCumCapacity * Pawn.BodySize) leakfactor = Math.Min(1 + (TotalCum - Props.maxCumCapacity * Pawn.BodySize) / 10, 2f); @@ -1045,10 +1045,10 @@ namespace RJW_Menstruation { if (cums.NullOrEmpty()) return 0; float totalleak = 0; - List filthlabels = new List(); + List filthlabels = new List(cums.Count); float outcum = 0; float cumd = TotalCumPercent; - HashSet removecums = new HashSet(); + HashSet removecums = new HashSet(cums.Count); foreach (Cum cum in cums) { float vd = cum.DismishForce(portion); @@ -1079,8 +1079,8 @@ namespace RJW_Menstruation if (cums.NullOrEmpty()) return null; Color color = GetCumMixtureColor; float totalleak = 0; - List cumlabels = new List(); - HashSet removecums = new HashSet(); + List cumlabels = new List(cums.Count); + HashSet removecums = new HashSet(cums.Count); bool pure = true; foreach (Cum cum in cums) { @@ -1370,7 +1370,7 @@ namespace RJW_Menstruation { if (eggs.NullOrEmpty()) return false; - HashSet deadeggs = new HashSet(); + HashSet deadeggs = new HashSet(eggs.Count); bool pregnant = false; foreach (Egg egg in eggs) { @@ -1574,7 +1574,7 @@ namespace RJW_Menstruation protected void EggDecay() { - HashSet deadeggs = new HashSet(); + HashSet deadeggs = new HashSet(eggs.Count); foreach (Egg egg in eggs) { egg.ageTicks += TickInterval * Configurations.CycleAcceleration; diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs index 1a96da8..e58cfcf 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs @@ -87,14 +87,10 @@ namespace RJW_Menstruation PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother); Need_Sex sex_need = mother.needs?.TryGetNeed(); - if (mother.Faction != null && !(mother.Faction?.IsPlayer ?? false) && sex_need != null) - { - sex_need.CurLevel = 1.0f; - } if (mother.Faction != null) { - if (mother.Faction != baby.Faction) - baby.SetFaction(mother.Faction); + if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f; + if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction); } if (mother.IsSlaveOfColony) { @@ -149,14 +145,10 @@ namespace RJW_Menstruation PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother); Need_Sex sex_need = mother.needs?.TryGetNeed(); - if (mother.Faction != null && !(mother.Faction?.IsPlayer ?? false) && sex_need != null) - { - sex_need.CurLevel = 1.0f; - } if (mother.Faction != null) { - if (mother.Faction != baby.Faction) - baby.SetFaction(mother.Faction); + if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f; + if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction); } Train(baby, mother); diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs index 6221a81..893a9cc 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs @@ -217,7 +217,7 @@ namespace RJW_Menstruation if (info != null) { - res = info.GetHybridWith(opposite.def.defName) ?? null; + res = info.GetHybridWith(opposite.def.defName); } if (res != null) return res; @@ -226,14 +226,14 @@ namespace RJW_Menstruation dna = first.def.GetModExtension(); if (dna != null) { - res = dna.GetHybridWith(second.def.defName) ?? null; + res = dna.GetHybridWith(second.def.defName); } else { dna = second.def.GetModExtension(); if (dna != null) { - res = dna.GetHybridWith(first.def.defName) ?? null; + res = dna.GetHybridWith(first.def.defName); } } return res; diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs index 8b110d7..d266480 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs @@ -25,7 +25,7 @@ namespace RJW_Menstruation public PawnKindDef GetHybridWith(string race) { - return GetHybridExtension(race)?.ChooseOne() ?? null; + return GetHybridExtension(race)?.ChooseOne(); } } @@ -128,7 +128,7 @@ namespace RJW_Menstruation public PawnKindDef GetHybridWith(string race) { - return GetHybridExtension(race)?.ChooseOne() ?? null; + return GetHybridExtension(race)?.ChooseOne(); } public void ExposeData()