Merge branch 'dev'

This commit is contained in:
lutepickle 2023-03-20 16:17:34 -07:00
commit 8de3864a8e
4 changed files with 15 additions and 31 deletions

Binary file not shown.

View file

@ -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 (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 (absorber != null && absorber.dirty && !absorber.LeakAfterDirty) leakfactor = 0f;
if (Pawn.CurJobDef == xxx.knotted) leakfactor = 0f; if (Pawn.CurJobDef == xxx.knotted) leakfactor = 0f;
List<Cum> removecums = new List<Cum>(); HashSet<Cum> removecums = new HashSet<Cum>();
foreach (Cum cum in cums) foreach (Cum cum in cums)
{ {
cum.CumEffects(Pawn); cum.CumEffects(Pawn);
@ -1050,10 +1050,7 @@ namespace RJW_Menstruation
} }
if (cums.Count > 1) MakeCumFilthMixture(totalleak, filthlabels); if (cums.Count > 1) MakeCumFilthMixture(totalleak, filthlabels);
else if (cums.Count == 1) MakeCumFilth(cums.First(), totalleak); else if (cums.Count == 1) MakeCumFilth(cums.First(), totalleak);
foreach (Cum cum in removecums) cums.RemoveAll(cum => removecums.Contains(cum));
{
cums.Remove(cum);
}
cumd = TotalCumPercent - cumd; cumd = TotalCumPercent - cumd;
if (totalleak >= 1.0f) AfterCumOut(); if (totalleak >= 1.0f) AfterCumOut();
AfterFluidOut(cumd); AfterFluidOut(cumd);
@ -1073,7 +1070,7 @@ namespace RJW_Menstruation
List<string> filthlabels = new List<string>(); List<string> filthlabels = new List<string>();
float outcum = 0; float outcum = 0;
float cumd = TotalCumPercent; float cumd = TotalCumPercent;
List<Cum> removecums = new List<Cum>(); HashSet<Cum> removecums = new HashSet<Cum>();
foreach (Cum cum in cums) foreach (Cum cum in cums)
{ {
float vd = cum.DismishForce(portion); float vd = cum.DismishForce(portion);
@ -1086,10 +1083,7 @@ namespace RJW_Menstruation
} }
if (cums.Count > 1) MakeCumFilthMixture(totalleak, filthlabels); if (cums.Count > 1) MakeCumFilthMixture(totalleak, filthlabels);
else if (cums.Count == 1) MakeCumFilth(cums.First(), totalleak); else if (cums.Count == 1) MakeCumFilth(cums.First(), totalleak);
foreach (Cum cum in removecums) cums.RemoveAll(cum => removecums.Contains(cum));
{
cums.Remove(cum);
}
cumd = TotalCumPercent - cumd; cumd = TotalCumPercent - cumd;
AfterFluidOut(cumd); AfterFluidOut(cumd);
return outcum; return outcum;
@ -1107,7 +1101,7 @@ namespace RJW_Menstruation
Color color = GetCumMixtureColor; Color color = GetCumMixtureColor;
float totalleak = 0; float totalleak = 0;
List<string> cumlabels = new List<string>(); List<string> cumlabels = new List<string>();
List<Cum> removecums = new List<Cum>(); HashSet<Cum> removecums = new HashSet<Cum>();
bool pure = true; bool pure = true;
foreach (Cum cum in cums) foreach (Cum cum in cums)
{ {
@ -1118,10 +1112,7 @@ namespace RJW_Menstruation
if (cum.ShouldRemove()) removecums.Add(cum); if (cum.ShouldRemove()) removecums.Add(cum);
if (cum.notcum) pure = false; if (cum.notcum) pure = false;
} }
foreach (Cum cum in removecums) cums.RemoveAll(cum => removecums.Contains(cum));
{
cums.Remove(cum);
}
return new CumMixture(Pawn, totalleak, cumlabels, color, mixtureDef, pure); return new CumMixture(Pawn, totalleak, cumlabels, color, mixtureDef, pure);
} }
@ -1364,7 +1355,7 @@ namespace RJW_Menstruation
{ {
if (eggs.NullOrEmpty()) return false; if (eggs.NullOrEmpty()) return false;
List<Egg> deadeggs = new List<Egg>(); HashSet<Egg> deadeggs = new HashSet<Egg>();
bool pregnant = false; bool pregnant = false;
foreach (Egg egg in eggs) foreach (Egg egg in eggs)
{ {
@ -1457,9 +1448,7 @@ namespace RJW_Menstruation
rjw_preg.p_start_tick -= egg.fertstage / Configurations.CycleAcceleration * GenDate.TicksPerHour; rjw_preg.p_start_tick -= egg.fertstage / Configurations.CycleAcceleration * GenDate.TicksPerHour;
rjw_preg.p_end_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 else
{ {
@ -1476,12 +1465,7 @@ namespace RJW_Menstruation
return true; return true;
} }
else else
{ eggs.RemoveAll(egg => deadeggs.Contains(egg));
foreach (Egg egg in deadeggs)
{
eggs.Remove(egg);
}
}
return pregnant; return pregnant;
} }
@ -1551,7 +1535,7 @@ namespace RJW_Menstruation
protected void EggDecay() protected void EggDecay()
{ {
List<Egg> deadeggs = new List<Egg>(); HashSet<Egg> deadeggs = new HashSet<Egg>();
foreach (Egg egg in eggs) foreach (Egg egg in eggs)
{ {
egg.position += Configurations.CycleAcceleration; egg.position += Configurations.CycleAcceleration;
@ -1562,10 +1546,7 @@ namespace RJW_Menstruation
if (egg.lifespanhrs < 0) deadeggs.Add(egg); if (egg.lifespanhrs < 0) deadeggs.Add(egg);
} }
} }
foreach (Egg egg in deadeggs) eggs.RemoveAll(egg => deadeggs.Contains(egg));
{
eggs.Remove(egg);
}
} }
protected void AddCrampPain() protected void AddCrampPain()
@ -1629,7 +1610,7 @@ namespace RJW_Menstruation
eggs.Add(new Egg((int)(EggLifespanHours / CycleFactor))); eggs.Add(new Egg((int)(EggLifespanHours / CycleFactor)));
++ovulated; ++ovulated;
} }
if(ovulated < ovarypower) ovulated = Math.Max(ovarypower, eggstack); if(ovulated > ovarypower) ovulated = Math.Min(ovarypower, eggstack);
ovarypower -= ovulated; ovarypower -= ovulated;
eggstack = 0; eggstack = 0;

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Manifest> <Manifest>
<identifier>RJW Menstruation</identifier> <identifier>RJW Menstruation</identifier>
<version>1.0.8.8</version> <version>1.0.8.9</version>
<dependencies> <dependencies>
</dependencies> </dependencies>
<incompatibleWith /> <incompatibleWith />

View file

@ -1,3 +1,6 @@
Version 1.0.8.9
- Fix bug that sent pawns into menopause very early.
Version 1.0.8.8 Version 1.0.8.8
- Fix pawns skipping straight to menopause instead of going through climacteric stages. - Fix pawns skipping straight to menopause instead of going through climacteric stages.
- Fix father appearing as "Null" in womb dialog for some Biotech pregnancies. - Fix father appearing as "Null" in womb dialog for some Biotech pregnancies.