diff --git a/1.4/Assemblies/RJW_Menstruation.dll b/1.4/Assemblies/RJW_Menstruation.dll index 96f743b..4568f00 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/Configurations.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs index 07fd58f..41b3732 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs @@ -21,7 +21,6 @@ namespace RJW_Menstruation public const int ColonistTickIntervalDefault = 2500; // 1 hour public const int NonColonistTickIntervalDefault = 2500; public const int AnimalTickIntervalDefault = 2500; - public const int TickIntervalMinimum = 20; public const float EnzygoticTwinsChanceDefault = 0.002f; public const int EnzygoticTwinsChanceAdjustDefault = 2; public const int MaxEnzygoticTwinsDefault = 9; @@ -431,16 +430,19 @@ namespace RJW_Menstruation listmain.Label(Translations.Option7_Label + " x" + Configurations.CycleAcceleration, -1, Translations.Option7_Desc); Configurations.CycleAcceleration = (int)listmain.Slider(Configurations.CycleAcceleration, 1, 50); + Adjust = Configurations.ColonistTickInterval / 25; listmain.LabelDouble(Translations.Option_ColonistUpdateInterval_Label, GenDate.ToStringTicksToPeriod(Configurations.ColonistTickInterval), Translations.Option_ColonistUpdateInterval_Desc); - Configurations.ColonistTickInterval = (int)Mathf.Exp(listmain.Slider(Mathf.Log(Configurations.ColonistTickInterval), Mathf.Log(Configurations.TickIntervalMinimum), Mathf.Log(4 * GenDate.TicksPerHour))); + Configurations.ColonistTickInterval = (int)listmain.Slider(Adjust, 0, 400) * 25; + Adjust = Configurations.NonColonistTickInterval / 25; listmain.LabelDouble(Translations.Option_NonColonistUpdateInterval_Label, GenDate.ToStringTicksToPeriod(Configurations.NonColonistTickInterval), Translations.Option_NonColonistUpdateInterval_Desc); - Configurations.NonColonistTickInterval = (int)Mathf.Exp(listmain.Slider(Mathf.Log(Configurations.NonColonistTickInterval), Mathf.Log(Configurations.TickIntervalMinimum), Mathf.Log(4 * GenDate.TicksPerHour))); + Configurations.NonColonistTickInterval = (int)listmain.Slider(Adjust, 0, 400) * 25; if(Configurations.EnableAnimalCycle) { + Adjust = Configurations.AnimalTickInterval / 25; listmain.LabelDouble(Translations.Option_AnimalUpdateInterval_Label, GenDate.ToStringTicksToPeriod(Configurations.AnimalTickInterval), Translations.Option_AnimalUpdateInterval_Desc); - Configurations.AnimalTickInterval = (int)Mathf.Exp(listmain.Slider(Mathf.Log(Configurations.AnimalTickInterval), Mathf.Log(Configurations.TickIntervalMinimum), Mathf.Log(4 * GenDate.TicksPerHour))); + Configurations.AnimalTickInterval = (int)listmain.Slider(Adjust, 0, 400) * 25; } float var2 = EstimatedBleedingAmountPerHour; 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 1fd7560..db87975 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 @@ -66,7 +66,7 @@ namespace RJW_Menstruation const float minmakefilthvalue = 1.0f; const int maxImplantDelayHours = 30 * GenDate.HoursPerDay; const int minImplantAgeHours = 3 * GenDate.HoursPerDay; - const float fluidLeakThreshold = 2.5f; + const float fluidLeakThreshold = 5.0f; const float pulloutSuccessRate = 0.8f; const float fetishPulloutSuccessModifier = 0.25f; @@ -170,7 +170,6 @@ namespace RJW_Menstruation } return tickInterval; } - set => tickInterval = value; } public Hediff Pregnancy { @@ -717,7 +716,7 @@ namespace RJW_Menstruation Initialize(); } - if (Pawn.IsHashIntervalTick(recalculateTickInterval)) TickInterval = -1; // Every so often, force TickInterval to be recalculated in case the pawn's status changed. + if (Pawn.IsHashIntervalTick(recalculateTickInterval)) tickInterval = -1; // Every so often, force TickInterval to be recalculated in case the pawn's status changed. if (!Pawn.IsHashIntervalTick(TickInterval)) return; if (initError) Log.Warning($"Attempting to process {Pawn}'s womb uninitialized"); @@ -1332,9 +1331,8 @@ namespace RJW_Menstruation float totalFertPower = eligibleCum.Sum(cum => cum.FertVolume); - //float fertFailChancePerHour = Mathf.Pow(1.0f - Configurations.FertilizeChance, totalFertPower * Props.basefertilizationChanceFactor); - //float fertFailChancePerInterval = Mathf.Pow(fertFailChancePerHour, (float)TickInterval / GenDate.TicksPerHour); - float fertFailChancePerInterval = Mathf.Pow(1.0f - Configurations.FertilizeChance, totalFertPower * Props.basefertilizationChanceFactor * TickInterval / GenDate.TicksPerHour); + float fertFailChancePerHour = Mathf.Pow(1.0f - Configurations.FertilizeChance, totalFertPower * Props.basefertilizationChanceFactor); + float fertFailChancePerInterval = Mathf.Pow(fertFailChancePerHour, (float)TickInterval / GenDate.TicksPerHour); if (Rand.Chance(fertFailChancePerInterval)) return null;