diff --git a/1.4/Assemblies/RJW_Menstruation.dll b/1.4/Assemblies/RJW_Menstruation.dll index 97337d7..d4d7bb3 100644 Binary files a/1.4/Assemblies/RJW_Menstruation.dll and b/1.4/Assemblies/RJW_Menstruation.dll differ diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index d015752..e86422d 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -1037,7 +1037,7 @@ namespace RJW_Menstruation if (TotalCum > Props.maxCumCapacity * Pawn.BodySize) leakfactor = Math.Min(1 + (TotalCum - Props.maxCumCapacity * Pawn.BodySize) / 10, 2f); if (absorber != null && absorber.dirty && !absorber.LeakAfterDirty) leakfactor = 0f; if (Pawn.CurJobDef == xxx.knotted) leakfactor = 0f; - HashSet removecums = new HashSet(); + List removecums = new List(); foreach (Cum cum in cums) { cum.CumEffects(Pawn); @@ -1050,7 +1050,10 @@ namespace RJW_Menstruation } if (cums.Count > 1) MakeCumFilthMixture(totalleak, filthlabels); else if (cums.Count == 1) MakeCumFilth(cums.First(), totalleak); - cums.RemoveAll(cum => removecums.Contains(cum)); + foreach (Cum cum in removecums) + { + cums.Remove(cum); + } cumd = TotalCumPercent - cumd; if (totalleak >= 1.0f) AfterCumOut(); AfterFluidOut(cumd); @@ -1070,7 +1073,7 @@ namespace RJW_Menstruation List filthlabels = new List(); float outcum = 0; float cumd = TotalCumPercent; - HashSet removecums = new HashSet(); + List removecums = new List(); foreach (Cum cum in cums) { float vd = cum.DismishForce(portion); @@ -1083,7 +1086,10 @@ namespace RJW_Menstruation } if (cums.Count > 1) MakeCumFilthMixture(totalleak, filthlabels); else if (cums.Count == 1) MakeCumFilth(cums.First(), totalleak); - cums.RemoveAll(cum => removecums.Contains(cum)); + foreach (Cum cum in removecums) + { + cums.Remove(cum); + } cumd = TotalCumPercent - cumd; AfterFluidOut(cumd); return outcum; @@ -1101,7 +1107,7 @@ namespace RJW_Menstruation Color color = GetCumMixtureColor; float totalleak = 0; List cumlabels = new List(); - HashSet removecums = new HashSet(); + List removecums = new List(); bool pure = true; foreach (Cum cum in cums) { @@ -1112,7 +1118,10 @@ namespace RJW_Menstruation if (cum.ShouldRemove()) removecums.Add(cum); if (cum.notcum) pure = false; } - cums.RemoveAll(cum => removecums.Contains(cum)); + foreach (Cum cum in removecums) + { + cums.Remove(cum); + } return new CumMixture(Pawn, totalleak, cumlabels, color, mixtureDef, pure); } @@ -1355,7 +1364,7 @@ namespace RJW_Menstruation { if (eggs.NullOrEmpty()) return false; - HashSet deadeggs = new HashSet(); + List deadeggs = new List(); bool pregnant = false; foreach (Egg egg in eggs) { @@ -1448,7 +1457,9 @@ namespace RJW_Menstruation rjw_preg.p_start_tick -= egg.fertstage / Configurations.CycleAcceleration * GenDate.TicksPerHour; rjw_preg.p_end_tick -= egg.fertstage / Configurations.CycleAcceleration * GenDate.TicksPerHour; } + if (!(pregnancy is Hediff_MultiplePregnancy)) break; } + } else { @@ -1465,7 +1476,12 @@ namespace RJW_Menstruation return true; } else - eggs.RemoveAll(egg => deadeggs.Contains(egg)); + { + foreach (Egg egg in deadeggs) + { + eggs.Remove(egg); + } + } return pregnant; } @@ -1535,7 +1551,7 @@ namespace RJW_Menstruation protected void EggDecay() { - HashSet deadeggs = new HashSet(); + List deadeggs = new List(); foreach (Egg egg in eggs) { egg.position += Configurations.CycleAcceleration; @@ -1546,7 +1562,10 @@ namespace RJW_Menstruation if (egg.lifespanhrs < 0) deadeggs.Add(egg); } } - eggs.RemoveAll(egg => deadeggs.Contains(egg)); + foreach (Egg egg in deadeggs) + { + eggs.Remove(egg); + } } protected void AddCrampPain() @@ -1610,7 +1629,7 @@ namespace RJW_Menstruation eggs.Add(new Egg((int)(EggLifespanHours / CycleFactor))); ++ovulated; } - if(ovulated > ovarypower) ovulated = Math.Min(ovarypower, eggstack); + if(ovulated < ovarypower) ovulated = Math.Max(ovarypower, eggstack); ovarypower -= ovulated; eggstack = 0; diff --git a/About/Manifest.xml b/About/Manifest.xml index fc6edef..24b2e46 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW Menstruation - 1.0.8.9 + 1.0.8.8 diff --git a/changelogs.txt b/changelogs.txt index f68bbbe..4647b8e 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,6 +1,3 @@ -Version 1.0.8.9 - - Fix bug that sent pawns into menopause very early. Please use the recalculate ovary power dev action to restore lost eggs. - Version 1.0.8.8 - Fix pawns skipping straight to menopause instead of going through climacteric stages. - Fix father appearing as "Null" in womb dialog for some Biotech pregnancies.