diff --git a/1.4/Assemblies/RJW_Menstruation.dll b/1.4/Assemblies/RJW_Menstruation.dll index 3d3fb88..748fca6 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/Cum.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/Cum.cs index a51bdc9..d7a424c 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Cum.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Cum.cs @@ -174,7 +174,7 @@ namespace RJW_Menstruation } - public void MakeThinner(int speed) + public void MakeThinner(float speed) { cumthickness = cumthickness.LerpMultiple(DecayResist, 0.3f, speed); } @@ -205,8 +205,8 @@ namespace RJW_Menstruation { // comp is used for Hydrogen's RJW Muscle Injury float totalleak = volume; - float decayPerInterval = 1 - Mathf.Pow(1 - Configurations.CumDecayRatio, comp.TickInterval / GenDate.TicksPerHour); - float fertilityDecayPerInterval = 1 - Mathf.Pow(Configurations.CumFertilityDecayRatio, comp.TickInterval / GenDate.TicksPerHour); + float decayPerInterval = 1 - Mathf.Pow(1 - Configurations.CumDecayRatio, (float)comp.TickInterval / GenDate.TicksPerHour); + float fertilityDecayPerInterval = 1 - Mathf.Pow(Configurations.CumFertilityDecayRatio, (float)comp.TickInterval / GenDate.TicksPerHour); volume *= Math.Max(0, 1 - decayPerInterval * (1 - DecayResist) * leakfactor); fertility *= Math.Max(0, 1 - (fertilityDecayPerInterval * (1 - DecayResist) + antisperm)); CutMinor(); 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 7024462..6580ce6 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 @@ -1025,15 +1025,16 @@ namespace RJW_Menstruation if (Pawn.CurJobDef == xxx.knotted) leakfactor = 0f; foreach (Cum cum in cums) { - cum.CumEffects(Pawn); + if (Rand.Chance((float)TickInterval / GenDate.TicksPerHour)) cum.CumEffects(Pawn); float vd = cum.DismishNatural(leakfactor, this, antisperm); - cum.MakeThinner(Configurations.CycleAcceleration); + cum.MakeThinner((float)Configurations.CycleAcceleration * TickInterval / GenDate.TicksPerHour); totalleak += AbsorbCum(vd, absorber); string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn?.LabelShort ?? "Unknown", 1.ToString()); filthlabels.Add(tmp.Replace(" x1", "")); } int postCumAmount = Mathf.CeilToInt(TotalCum); - for (int i = 0; i < postCumAmount - preCumAmount; i++) // Emit a filth every time the integer cum amount drops + int totalFilth = preCumAmount - postCumAmount; + for (int i = 0; i < totalFilth; i++) // Emit a filth every time the integer cum amount drops { if (cums.Count > 1) MakeCumFilthMixture(totalleak, filthlabels); else if (cums.Count == 1) MakeCumFilth(cums.First(), totalleak); diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs index 13aae6e..815d8ab 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Utility.cs @@ -433,7 +433,7 @@ namespace RJW_Menstruation } - public static float LerpMultiple(this float a, float b, float t, int num) + public static float LerpMultiple(this float a, float b, float t, float num) { float tmult = Mathf.Pow(1 - t, num); return tmult * a + (1 - tmult) * b;