2022-04-27 01:47:33 +00:00
|
|
|
|
using rjw;
|
|
|
|
|
using System;
|
2021-06-29 17:21:59 +00:00
|
|
|
|
using System.Collections.Generic;
|
2021-02-01 11:29:29 +00:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
using Verse;
|
|
|
|
|
|
|
|
|
|
namespace RJW_Menstruation
|
|
|
|
|
{
|
|
|
|
|
public class Configurations : ModSettings
|
|
|
|
|
{
|
2021-02-22 10:51:41 +00:00
|
|
|
|
public const float ImplantationChanceDefault = 0.65f;
|
|
|
|
|
public const int ImplantationChanceAdjustDefault = 65;
|
2022-07-07 19:37:12 +00:00
|
|
|
|
public const float FertilizeChanceDefault = 0.15f;
|
|
|
|
|
public const int FertilizeChanceAdjustDefault = 150;
|
|
|
|
|
public const float CumDecayRatioDefault = 0.15f;
|
|
|
|
|
public const int CumDecayRatioAdjustDefault = 150;
|
|
|
|
|
public const float CumFertilityDecayRatioDefault = 0.05f;
|
|
|
|
|
public const int CumFertilityDecayRatioAdjustDefault = 50;
|
2021-02-12 04:16:46 +00:00
|
|
|
|
public const int CycleAccelerationDefault = 6;
|
|
|
|
|
public const float EnzygoticTwinsChanceDefault = 0.002f;
|
|
|
|
|
public const int EnzygoticTwinsChanceAdjustDefault = 2;
|
|
|
|
|
public const int MaxEnzygoticTwinsDefault = 9;
|
2021-03-01 14:40:50 +00:00
|
|
|
|
public const int BleedingAmountDefault = 50;
|
2022-07-29 04:06:51 +00:00
|
|
|
|
public const float MaxBreastIncrementFactorDefault = 1.0f;
|
2022-07-29 14:30:15 +00:00
|
|
|
|
public const float MaxBreastIncrementFactorMax = 2.5f;
|
2022-07-29 04:06:51 +00:00
|
|
|
|
public const float MaxNippleIncrementFactorDefault = 1.0f;
|
2022-07-29 14:30:15 +00:00
|
|
|
|
public const float MaxNippleIncrementFactorMax = 2.5f;
|
2022-07-29 04:06:51 +00:00
|
|
|
|
public const float PermanentNippleChangeDefault = 0.1f;
|
2022-07-29 14:30:15 +00:00
|
|
|
|
public const float PermanentNippleChangeMax = 0.25f;
|
2021-08-06 17:26:13 +00:00
|
|
|
|
public const float EggLifespanMultiplierDefault = 1.0f;
|
|
|
|
|
public const float VaginaMorphPowerDefault = 0.2f;
|
2021-02-05 07:19:40 +00:00
|
|
|
|
|
2022-04-24 12:07:15 +00:00
|
|
|
|
public static DetailLevel infoDetail = DetailLevel.All;
|
|
|
|
|
|
2021-02-01 11:29:29 +00:00
|
|
|
|
public static float ImplantationChance = ImplantationChanceDefault;
|
|
|
|
|
public static int ImplantationChanceAdjust = ImplantationChanceAdjustDefault;
|
2021-03-06 13:32:33 +00:00
|
|
|
|
public static float FertilizeChance = FertilizeChanceDefault;
|
2021-02-01 11:29:29 +00:00
|
|
|
|
public static int FertilizeChanceAdjust = FertilizeChanceAdjustDefault;
|
|
|
|
|
public static float CumDecayRatio = CumDecayRatioDefault;
|
|
|
|
|
public static int CumDecayRatioAdjust = CumDecayRatioAdjustDefault;
|
|
|
|
|
public static float CumFertilityDecayRatio = CumFertilityDecayRatioDefault;
|
|
|
|
|
public static int CumFertilityDecayRatioAdjust = CumFertilityDecayRatioAdjustDefault;
|
|
|
|
|
public static int CycleAcceleration = CycleAccelerationDefault;
|
|
|
|
|
public static bool EnableWombIcon = true;
|
|
|
|
|
public static bool EnableAnimalCycle = false;
|
2021-02-02 09:28:47 +00:00
|
|
|
|
public static bool DrawWombStatus = true;
|
|
|
|
|
public static bool DrawVaginaStatus = true;
|
2021-02-22 10:51:41 +00:00
|
|
|
|
public static bool DrawEggOverlay = true;
|
2021-02-01 11:29:29 +00:00
|
|
|
|
public static bool Debug = false;
|
2021-02-07 07:53:46 +00:00
|
|
|
|
public static bool EnableMenopause = true;
|
2022-09-29 17:08:02 +00:00
|
|
|
|
public static DetailLevel InfoDetail => infoDetail;
|
2022-04-27 01:47:33 +00:00
|
|
|
|
public static bool EstrusOverridesHookupSettings = false;
|
|
|
|
|
public static float EstrusFuckabilityToHookup = RJWHookupSettings.MinimumFuckabilityToHookup;
|
|
|
|
|
public static float EstrusAttractivenessToHookup = RJWHookupSettings.MinimumAttractivenessToHookup;
|
|
|
|
|
public static float EstrusRelationshipToHookup = RJWHookupSettings.MinimumRelationshipToHookup;
|
2021-02-12 04:16:46 +00:00
|
|
|
|
public static bool UseMultiplePregnancy = true;
|
|
|
|
|
public static bool EnableHeteroOvularTwins = true;
|
|
|
|
|
public static bool EnableEnzygoticTwins = true;
|
|
|
|
|
public static float EnzygoticTwinsChance = EnzygoticTwinsChanceDefault;
|
|
|
|
|
public static int EnzygoticTwinsChanceAdjust = EnzygoticTwinsChanceAdjustDefault;
|
|
|
|
|
public static int MaxEnzygoticTwins = MaxEnzygoticTwinsDefault;
|
2021-03-01 14:40:50 +00:00
|
|
|
|
public static int BleedingAmount = BleedingAmountDefault;
|
|
|
|
|
public static bool EnableButtonInHT = false;
|
2022-04-26 05:37:52 +00:00
|
|
|
|
public static bool EnableGatherCumGizmo = true;
|
2021-03-01 14:40:50 +00:00
|
|
|
|
public static PawnFlags ShowFlag = PawnFlags.Colonist | PawnFlags.Prisoner;
|
2021-03-06 13:32:33 +00:00
|
|
|
|
public static bool UseHybridExtention = true;
|
|
|
|
|
public static bool MotherFirst = false;
|
2021-06-30 16:02:42 +00:00
|
|
|
|
public static bool AllowShrinkIcon = false;
|
2021-08-06 17:26:13 +00:00
|
|
|
|
public static float EggLifespanMultiplier = EggLifespanMultiplierDefault;
|
|
|
|
|
public static bool EnableBirthVaginaMorph = false;
|
|
|
|
|
public static float VaginaMorphPower = VaginaMorphPowerDefault;
|
2022-07-29 04:06:51 +00:00
|
|
|
|
public static float MaxBreastIncrementFactor = MaxBreastIncrementFactorDefault;
|
|
|
|
|
public static float MaxNippleIncrementFactor = MaxNippleIncrementFactorDefault;
|
|
|
|
|
public static float PermanentNippleChange = PermanentNippleChangeDefault;
|
2021-08-06 17:26:13 +00:00
|
|
|
|
public static void SettoDefault()
|
|
|
|
|
{
|
|
|
|
|
ImplantationChanceAdjust = ImplantationChanceAdjustDefault;
|
|
|
|
|
FertilizeChanceAdjust = FertilizeChanceAdjustDefault;
|
|
|
|
|
CumDecayRatioAdjust = CumDecayRatioAdjustDefault;
|
|
|
|
|
CumFertilityDecayRatioAdjust = CumFertilityDecayRatioAdjustDefault;
|
|
|
|
|
EnableWombIcon = true;
|
2022-04-26 05:37:52 +00:00
|
|
|
|
EnableGatherCumGizmo = true;
|
2021-08-06 17:26:13 +00:00
|
|
|
|
EnableAnimalCycle = false;
|
|
|
|
|
CycleAcceleration = CycleAccelerationDefault;
|
2022-04-27 01:47:33 +00:00
|
|
|
|
EstrusOverridesHookupSettings = false;
|
|
|
|
|
EstrusFuckabilityToHookup = RJWHookupSettings.MinimumFuckabilityToHookup;
|
|
|
|
|
EstrusAttractivenessToHookup = RJWHookupSettings.MinimumAttractivenessToHookup;
|
|
|
|
|
EstrusRelationshipToHookup = RJWHookupSettings.MinimumRelationshipToHookup;
|
2021-08-06 17:26:13 +00:00
|
|
|
|
EnzygoticTwinsChanceAdjust = EnzygoticTwinsChanceAdjustDefault;
|
|
|
|
|
EnableEnzygoticTwins = true;
|
|
|
|
|
EnableHeteroOvularTwins = true;
|
|
|
|
|
UseMultiplePregnancy = true;
|
|
|
|
|
MaxEnzygoticTwins = MaxEnzygoticTwinsDefault;
|
|
|
|
|
BleedingAmount = BleedingAmountDefault;
|
|
|
|
|
MotherFirst = false;
|
2022-07-29 04:06:51 +00:00
|
|
|
|
MaxBreastIncrementFactor = MaxBreastIncrementFactorDefault;
|
|
|
|
|
MaxNippleIncrementFactor= MaxNippleIncrementFactorDefault;
|
|
|
|
|
PermanentNippleChange = PermanentNippleChangeDefault;
|
2021-08-06 17:26:13 +00:00
|
|
|
|
EggLifespanMultiplier = EggLifespanMultiplierDefault;
|
|
|
|
|
VaginaMorphPower = VaginaMorphPowerDefault;
|
|
|
|
|
}
|
2021-06-30 16:02:42 +00:00
|
|
|
|
|
2021-06-10 12:06:05 +00:00
|
|
|
|
|
2021-06-29 17:21:59 +00:00
|
|
|
|
public static List<HybridInformations> HybridOverride = new List<HybridInformations>();
|
2021-06-10 12:06:05 +00:00
|
|
|
|
|
2021-02-15 10:33:06 +00:00
|
|
|
|
|
|
|
|
|
public static bool HARActivated = false;
|
2022-09-22 15:46:00 +00:00
|
|
|
|
public static bool AnimalGeneticsActivated = false;
|
2021-02-15 10:33:06 +00:00
|
|
|
|
|
2021-02-05 07:19:40 +00:00
|
|
|
|
public enum DetailLevel
|
|
|
|
|
{
|
|
|
|
|
All,
|
|
|
|
|
OnReveal,
|
|
|
|
|
HideFetusInfo,
|
|
|
|
|
Hide
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static string LevelString(DetailLevel level)
|
|
|
|
|
{
|
|
|
|
|
switch (level)
|
|
|
|
|
{
|
|
|
|
|
case DetailLevel.All:
|
|
|
|
|
return "All";
|
|
|
|
|
case DetailLevel.OnReveal:
|
|
|
|
|
return "On reveal";
|
|
|
|
|
case DetailLevel.HideFetusInfo:
|
|
|
|
|
return "Hide fetus info";
|
|
|
|
|
case DetailLevel.Hide:
|
|
|
|
|
return "Hide";
|
|
|
|
|
default:
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2021-03-06 13:32:33 +00:00
|
|
|
|
public static string HybridString(bool b)
|
|
|
|
|
{
|
|
|
|
|
if (b) return Translations.Option23_Label_1;
|
|
|
|
|
else return Translations.Option23_Label_2;
|
|
|
|
|
}
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
2021-06-29 17:21:59 +00:00
|
|
|
|
public static bool IsOverrideExist(ThingDef def)
|
|
|
|
|
{
|
|
|
|
|
List<HybridInformations> removeList = new List<HybridInformations>();
|
|
|
|
|
if (!HybridOverride.NullOrEmpty())
|
2022-07-12 22:49:55 +00:00
|
|
|
|
foreach (HybridInformations o in HybridOverride)
|
2021-06-29 17:21:59 +00:00
|
|
|
|
{
|
|
|
|
|
if (o.IsNull) removeList.Add(o);
|
2022-03-18 14:31:17 +00:00
|
|
|
|
if (o.DefName == def.defName) return true;
|
2021-06-29 17:21:59 +00:00
|
|
|
|
}
|
2022-08-28 05:01:39 +00:00
|
|
|
|
foreach (HybridInformations o in removeList)
|
2021-06-29 17:21:59 +00:00
|
|
|
|
{
|
2022-08-28 05:01:39 +00:00
|
|
|
|
HybridOverride.Remove(o);
|
2021-06-29 17:21:59 +00:00
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
[Flags]
|
|
|
|
|
public enum PawnFlags
|
2021-03-01 14:40:50 +00:00
|
|
|
|
{
|
|
|
|
|
None = 0,
|
|
|
|
|
Colonist = 1,
|
|
|
|
|
Prisoner = 2,
|
|
|
|
|
Ally = 4,
|
|
|
|
|
Neutral = 8,
|
|
|
|
|
Hostile = 16
|
|
|
|
|
}
|
|
|
|
|
|
2021-02-01 11:29:29 +00:00
|
|
|
|
public override void ExposeData()
|
|
|
|
|
{
|
|
|
|
|
Scribe_Values.Look(ref ImplantationChanceAdjust, "ImplantationChanceAdjust", ImplantationChanceAdjust, true);
|
|
|
|
|
Scribe_Values.Look(ref ImplantationChance, "ImplantationChance", ImplantationChance, true);
|
|
|
|
|
Scribe_Values.Look(ref FertilizeChanceAdjust, "FertilizeChanceAdjust", FertilizeChanceAdjust, true);
|
|
|
|
|
Scribe_Values.Look(ref FertilizeChance, "FertilizeChance", FertilizeChance, true);
|
|
|
|
|
Scribe_Values.Look(ref CumDecayRatioAdjust, "CumDecayRatioAdjust", CumDecayRatioAdjust, true);
|
|
|
|
|
Scribe_Values.Look(ref CumDecayRatio, "CumDecayRatio", CumDecayRatio, true);
|
|
|
|
|
Scribe_Values.Look(ref CumFertilityDecayRatioAdjust, "CumFertilityDecayRatioAdjust", CumFertilityDecayRatioAdjust, true);
|
|
|
|
|
Scribe_Values.Look(ref CumFertilityDecayRatio, "CumFertilityDecayRatio", CumFertilityDecayRatio, true);
|
2021-02-12 04:16:46 +00:00
|
|
|
|
Scribe_Values.Look(ref CycleAcceleration, "CycleAcceleration", CycleAcceleration, true);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
Scribe_Values.Look(ref EnableWombIcon, "EnableWombIcon", EnableWombIcon, true);
|
|
|
|
|
Scribe_Values.Look(ref EnableAnimalCycle, "EnableAnimalCycle", EnableAnimalCycle, true);
|
2021-02-02 09:28:47 +00:00
|
|
|
|
Scribe_Values.Look(ref DrawWombStatus, "DrawWombStatus", DrawWombStatus, true);
|
|
|
|
|
Scribe_Values.Look(ref DrawVaginaStatus, "DrawVaginaStatus", DrawVaginaStatus, true);
|
2021-02-22 10:51:41 +00:00
|
|
|
|
Scribe_Values.Look(ref DrawEggOverlay, "DrawEggOvray", DrawEggOverlay, true);
|
2021-02-02 09:28:47 +00:00
|
|
|
|
Scribe_Values.Look(ref Debug, "Debug", Debug, true);
|
2022-04-24 12:07:15 +00:00
|
|
|
|
Scribe_Values.Look(ref infoDetail, "InfoDetail", infoDetail, true);
|
2021-02-17 14:20:49 +00:00
|
|
|
|
Scribe_Values.Look(ref EnableMenopause, "EnableMenopause", EnableMenopause, true);
|
2022-04-27 01:47:33 +00:00
|
|
|
|
Scribe_Values.Look(ref EstrusOverridesHookupSettings, "EstrusOverridesHookupSettings", EstrusOverridesHookupSettings, true);
|
|
|
|
|
Scribe_Values.Look(ref EstrusFuckabilityToHookup, "EstrusFuckabilityToHookup", EstrusFuckabilityToHookup, true);
|
|
|
|
|
Scribe_Values.Look(ref EstrusAttractivenessToHookup, "EstrusAttractivenessToHookup", EstrusAttractivenessToHookup, true);
|
|
|
|
|
Scribe_Values.Look(ref EstrusRelationshipToHookup, "EstrusRelationshipToHookup", EstrusRelationshipToHookup, true);
|
2021-02-12 04:16:46 +00:00
|
|
|
|
Scribe_Values.Look(ref UseMultiplePregnancy, "UseMultiplePregnancy", UseMultiplePregnancy, true);
|
|
|
|
|
Scribe_Values.Look(ref EnableHeteroOvularTwins, "EnableHeteroOvularTwins", EnableHeteroOvularTwins, true);
|
|
|
|
|
Scribe_Values.Look(ref EnableEnzygoticTwins, "EnableEnzygoticTwins", EnableEnzygoticTwins, true);
|
|
|
|
|
Scribe_Values.Look(ref EnzygoticTwinsChance, "EnzygoticTwinsChance", EnzygoticTwinsChance, true);
|
|
|
|
|
Scribe_Values.Look(ref EnzygoticTwinsChanceAdjust, "EnzygoticTwinsChanceAdjust", EnzygoticTwinsChanceAdjust, true);
|
|
|
|
|
Scribe_Values.Look(ref MaxEnzygoticTwins, "MaxEnzygoticTwins", MaxEnzygoticTwins, true);
|
2021-03-01 14:40:50 +00:00
|
|
|
|
Scribe_Values.Look(ref BleedingAmount, "BleedingAmount", BleedingAmount, true);
|
|
|
|
|
Scribe_Values.Look(ref EnableButtonInHT, "EnableButtonInHT", EnableButtonInHT, true);
|
2022-04-26 05:37:52 +00:00
|
|
|
|
Scribe_Values.Look(ref EnableGatherCumGizmo, "EnableGatherCumGizmo", true, true);
|
2021-03-01 14:40:50 +00:00
|
|
|
|
Scribe_Values.Look(ref ShowFlag, "ShowFlag", ShowFlag, true);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
Scribe_Values.Look(ref UseHybridExtention, "UseHybridExtention", UseHybridExtention, true);
|
|
|
|
|
Scribe_Values.Look(ref MotherFirst, "MotherFirst", MotherFirst, true);
|
2022-07-29 04:06:51 +00:00
|
|
|
|
Scribe_Values.Look(ref MaxBreastIncrementFactor, "MaxBreastIncrementFactor", MaxBreastIncrementFactor, true);
|
2022-07-29 04:57:38 +00:00
|
|
|
|
Scribe_Values.Look(ref MaxNippleIncrementFactor, "MaxNippleIncrementFactor", MaxNippleIncrementFactor, true);
|
2022-07-29 04:06:51 +00:00
|
|
|
|
Scribe_Values.Look(ref PermanentNippleChange, "PermanentNippleChange", PermanentNippleChange, true);
|
2021-06-30 16:02:42 +00:00
|
|
|
|
Scribe_Values.Look(ref AllowShrinkIcon, "AllowShrinkIcon", AllowShrinkIcon, true);
|
2021-08-06 17:26:13 +00:00
|
|
|
|
Scribe_Values.Look(ref EggLifespanMultiplier, "EggLifespanMultiplier", EggLifespanMultiplier, true);
|
|
|
|
|
Scribe_Values.Look(ref EnableBirthVaginaMorph, "EnableBirthVaginaMorph", EnableBirthVaginaMorph, true);
|
|
|
|
|
Scribe_Values.Look(ref VaginaMorphPower, "VaginaMorphPower", VaginaMorphPower, true);
|
2021-06-29 17:21:59 +00:00
|
|
|
|
Scribe_Collections.Look(ref HybridOverride, saveDestroyedThings: true, label: "HybridOverride", lookMode: LookMode.Deep, ctorArgs: new object[0]);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
base.ExposeData();
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-12 22:49:55 +00:00
|
|
|
|
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class RJW_Menstruation : Mod
|
|
|
|
|
{
|
|
|
|
|
|
2021-02-12 04:16:46 +00:00
|
|
|
|
private static Vector2 scroll;
|
|
|
|
|
|
2021-02-15 10:33:06 +00:00
|
|
|
|
|
2021-03-01 14:40:50 +00:00
|
|
|
|
|
|
|
|
|
public static float EstimatedBleedingAmount
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
2022-07-16 21:52:51 +00:00
|
|
|
|
int days = VariousDefOf.HumanVaginaCompProperties.bleedingIntervalDays;
|
2021-03-01 14:40:50 +00:00
|
|
|
|
return days * 0.03f * Configurations.BleedingAmount * 6;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static float EstimatedBleedingAmountPerHour
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return 0.03f * Configurations.BleedingAmount * Configurations.CycleAcceleration;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-02-01 11:29:29 +00:00
|
|
|
|
public RJW_Menstruation(ModContentPack content) : base(content)
|
|
|
|
|
{
|
2022-03-18 14:31:17 +00:00
|
|
|
|
GetSettings<Configurations>();
|
2022-08-12 01:43:12 +00:00
|
|
|
|
Configurations.HARActivated = ModLister.GetActiveModWithIdentifier("erdelf.HumanoidAlienRaces") != null;
|
2022-09-22 15:46:00 +00:00
|
|
|
|
Configurations.AnimalGeneticsActivated = ModLister.GetActiveModWithIdentifier("Mlie.AnimalGenetics") != null;
|
2021-02-01 11:29:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
|
2021-02-12 04:16:46 +00:00
|
|
|
|
|
2021-02-01 11:29:29 +00:00
|
|
|
|
public override string SettingsCategory()
|
|
|
|
|
{
|
|
|
|
|
return Translations.Mod_Title;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void DoSettingsWindowContents(Rect inRect)
|
|
|
|
|
{
|
2021-02-12 04:16:46 +00:00
|
|
|
|
Rect outRect = new Rect(0f, 30f, inRect.width, inRect.height - 30f);
|
2022-04-28 18:00:24 +00:00
|
|
|
|
float mainRectHeight = -3f +
|
|
|
|
|
(Configurations.EnableWombIcon || Configurations.EnableButtonInHT ? 400f : 0f) +
|
|
|
|
|
(Configurations.EstrusOverridesHookupSettings ? 144f : 0f) +
|
|
|
|
|
(Configurations.UseMultiplePregnancy ? (Configurations.EnableEnzygoticTwins ? 175f : 75f) : 0f) +
|
|
|
|
|
(Configurations.EnableBirthVaginaMorph ? 48f : 0f);
|
|
|
|
|
Rect mainRect = new Rect(0f, 0f, inRect.width - 30f, Math.Max(inRect.height + mainRectHeight, 1f));
|
2021-08-06 17:26:13 +00:00
|
|
|
|
int Adjust;
|
2022-03-18 14:31:17 +00:00
|
|
|
|
Listing_Standard listmain = new Listing_Standard
|
|
|
|
|
{
|
|
|
|
|
maxOneColumn = true
|
|
|
|
|
};
|
2021-07-21 05:10:06 +00:00
|
|
|
|
Widgets.BeginScrollView(outRect, ref scroll, mainRect);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
listmain.Begin(mainRect);
|
2021-02-12 04:16:46 +00:00
|
|
|
|
listmain.Gap(20f);
|
2022-04-26 05:37:52 +00:00
|
|
|
|
Rect firstLine = listmain.GetRect(30f);
|
|
|
|
|
firstLine.SplitVertically(firstLine.width / 3, out Rect leftCell, out Rect middleAndRightCells);
|
|
|
|
|
Widgets.CheckboxLabeled(leftCell, Translations.Option1_Label_1, ref Configurations.EnableWombIcon, false, null, null, true);
|
|
|
|
|
Widgets.CheckboxLabeled(middleAndRightCells.LeftHalf(), Translations.Option1_Label_2, ref Configurations.EnableButtonInHT, false, null, null, true);
|
|
|
|
|
Widgets.CheckboxLabeled(middleAndRightCells.RightHalf(), Translations.Option_EnableGatherCumGizmo_Label, ref Configurations.EnableGatherCumGizmo, false, null, null, true);
|
2021-03-01 14:40:50 +00:00
|
|
|
|
if (Configurations.EnableWombIcon || Configurations.EnableButtonInHT)
|
2021-02-02 09:28:47 +00:00
|
|
|
|
{
|
2022-07-29 04:57:38 +00:00
|
|
|
|
Listing_Standard wombsection = listmain.BeginSection(350);
|
2021-02-02 09:28:47 +00:00
|
|
|
|
wombsection.CheckboxLabeled(Translations.Option9_Label, ref Configurations.DrawWombStatus, Translations.Option9_Desc);
|
2021-02-22 10:51:41 +00:00
|
|
|
|
if (Configurations.DrawWombStatus)
|
|
|
|
|
{
|
|
|
|
|
wombsection.CheckboxLabeled(Translations.Option18_Label, ref Configurations.DrawEggOverlay, Translations.Option18_Desc);
|
|
|
|
|
}
|
2022-07-12 22:49:55 +00:00
|
|
|
|
|
2021-02-02 09:28:47 +00:00
|
|
|
|
wombsection.CheckboxLabeled(Translations.Option10_Label, ref Configurations.DrawVaginaStatus, Translations.Option10_Desc);
|
2021-06-30 16:02:42 +00:00
|
|
|
|
wombsection.CheckboxLabeled(Translations.Option29_Label, ref Configurations.AllowShrinkIcon, Translations.Option29_Desc);
|
2022-04-24 12:07:15 +00:00
|
|
|
|
if (wombsection.ButtonText(Translations.Option11_Label + ": " + Configurations.LevelString(Configurations.infoDetail)))
|
2021-02-05 07:19:40 +00:00
|
|
|
|
{
|
2022-04-24 12:07:15 +00:00
|
|
|
|
if (Configurations.infoDetail == Configurations.DetailLevel.Hide) Configurations.infoDetail = Configurations.DetailLevel.All;
|
|
|
|
|
else Configurations.infoDetail++;
|
2021-02-05 07:19:40 +00:00
|
|
|
|
}
|
2022-04-24 12:07:15 +00:00
|
|
|
|
switch (Configurations.infoDetail)
|
2021-02-05 07:19:40 +00:00
|
|
|
|
{
|
|
|
|
|
case Configurations.DetailLevel.All:
|
|
|
|
|
wombsection.Label(Translations.Option11_Desc_1);
|
|
|
|
|
break;
|
|
|
|
|
case Configurations.DetailLevel.OnReveal:
|
|
|
|
|
wombsection.Label(Translations.Option11_Desc_2);
|
|
|
|
|
break;
|
|
|
|
|
case Configurations.DetailLevel.HideFetusInfo:
|
|
|
|
|
wombsection.Label(Translations.Option11_Desc_3);
|
|
|
|
|
break;
|
|
|
|
|
case Configurations.DetailLevel.Hide:
|
|
|
|
|
wombsection.Label(Translations.Option11_Desc_4);
|
|
|
|
|
break;
|
|
|
|
|
}
|
2021-03-06 13:32:33 +00:00
|
|
|
|
wombsection.Label(Translations.Option21_Label + " " + Configurations.ShowFlag, -1, Translations.Option21_Desc);
|
2021-03-01 14:40:50 +00:00
|
|
|
|
Rect flagrect = wombsection.GetRect(30f);
|
|
|
|
|
Rect[] flagrects = new Rect[5];
|
|
|
|
|
for (int i = 0; i < 5; i++)
|
|
|
|
|
{
|
|
|
|
|
flagrects[i] = new Rect(flagrect.x + (flagrect.width / 5) * i, flagrect.y, flagrect.width / 5, flagrect.height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Widgets.ButtonText(flagrects[0], Translations.Option20_Label_1 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Colonist)))
|
|
|
|
|
{
|
|
|
|
|
Configurations.ShowFlag ^= Configurations.PawnFlags.Colonist;
|
|
|
|
|
}
|
|
|
|
|
if (Widgets.ButtonText(flagrects[1], Translations.Option20_Label_2 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Prisoner)))
|
|
|
|
|
{
|
|
|
|
|
Configurations.ShowFlag ^= Configurations.PawnFlags.Prisoner;
|
|
|
|
|
}
|
|
|
|
|
if (Widgets.ButtonText(flagrects[2], Translations.Option20_Label_3 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Ally)))
|
|
|
|
|
{
|
|
|
|
|
Configurations.ShowFlag ^= Configurations.PawnFlags.Ally;
|
|
|
|
|
}
|
|
|
|
|
if (Widgets.ButtonText(flagrects[3], Translations.Option20_Label_4 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Neutral)))
|
|
|
|
|
{
|
|
|
|
|
Configurations.ShowFlag ^= Configurations.PawnFlags.Neutral;
|
|
|
|
|
}
|
|
|
|
|
if (Widgets.ButtonText(flagrects[4], Translations.Option20_Label_5 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Hostile)))
|
|
|
|
|
{
|
|
|
|
|
Configurations.ShowFlag ^= Configurations.PawnFlags.Hostile;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-29 14:30:15 +00:00
|
|
|
|
Adjust = (int)(Configurations.MaxBreastIncrementFactor * 1000 / Configurations.MaxBreastIncrementFactorMax);
|
2022-07-29 04:06:51 +00:00
|
|
|
|
wombsection.Label(Translations.Option_MaxBreastIncrementFactor_Label + " " + Configurations.MaxBreastIncrementFactor * 100 + "%", -1, Translations.Option_MaxBreastIncrementFactor_Desc);
|
2021-06-10 12:06:05 +00:00
|
|
|
|
Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
|
2022-07-29 14:30:15 +00:00
|
|
|
|
Configurations.MaxBreastIncrementFactor = (float)Adjust / (1000 / Configurations.MaxBreastIncrementFactorMax);
|
2021-06-10 12:06:05 +00:00
|
|
|
|
|
2022-07-29 14:30:15 +00:00
|
|
|
|
Adjust = (int)(Configurations.MaxNippleIncrementFactor * 1000 / Configurations.MaxNippleIncrementFactorMax);
|
2022-07-29 04:06:51 +00:00
|
|
|
|
wombsection.Label(Translations.Option_MaxNippleIncrementFactor_Label + " " + Configurations.MaxNippleIncrementFactor * 100 + "%", -1, Translations.Option_MaxNippleIncrementFactor_Desc);
|
2021-06-10 12:06:05 +00:00
|
|
|
|
Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
|
2022-07-29 14:30:15 +00:00
|
|
|
|
Configurations.MaxNippleIncrementFactor = (float)Adjust / (1000 / Configurations.MaxNippleIncrementFactorMax);
|
2021-06-10 12:06:05 +00:00
|
|
|
|
|
2022-07-29 14:30:15 +00:00
|
|
|
|
Adjust = (int)(Configurations.PermanentNippleChange * 1000 / Configurations.PermanentNippleChangeMax);
|
2022-07-29 04:06:51 +00:00
|
|
|
|
wombsection.Label(Translations.Option_PermanentNippleChange_Label + " " + Configurations.PermanentNippleChange, -1, Translations.Option_PermanentNippleChange_Desc);
|
2021-06-10 12:06:05 +00:00
|
|
|
|
Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
|
2022-07-29 14:30:15 +00:00
|
|
|
|
Configurations.PermanentNippleChange = (float)Adjust / (1000 / Configurations.PermanentNippleChangeMax);
|
2021-03-01 14:40:50 +00:00
|
|
|
|
|
2021-02-02 09:28:47 +00:00
|
|
|
|
listmain.EndSection(wombsection);
|
|
|
|
|
}
|
2021-03-06 13:32:33 +00:00
|
|
|
|
|
2021-02-01 11:29:29 +00:00
|
|
|
|
listmain.CheckboxLabeled(Translations.Option2_Label, ref Configurations.EnableAnimalCycle, Translations.Option2_Desc);
|
2021-02-07 07:53:46 +00:00
|
|
|
|
|
|
|
|
|
listmain.CheckboxLabeled(Translations.Option12_Label, ref Configurations.EnableMenopause, Translations.Option12_Desc);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
|
|
|
|
|
listmain.Label(Translations.Option3_Label + " " + Configurations.ImplantationChance * 100 + "%", -1, Translations.Option3_Desc);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
Configurations.ImplantationChanceAdjust = (int)listmain.Slider(Configurations.ImplantationChanceAdjust, 0, 1000);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
Configurations.ImplantationChance = (float)Configurations.ImplantationChanceAdjust / 100;
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
2022-07-08 01:09:04 +00:00
|
|
|
|
string tenMl = String.Format("10 ml: {0:0}%", (1.0f - Mathf.Pow(1.0f - Configurations.FertilizeChance, 10)) * 100f);
|
|
|
|
|
listmain.LabelDouble(Translations.Option4_Label + " " + Configurations.FertilizeChance * 100 + "%", tenMl, Translations.Option4_Desc);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
Configurations.FertilizeChanceAdjust = (int)listmain.Slider(Configurations.FertilizeChanceAdjust, 0, 1000);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
Configurations.FertilizeChance = (float)Configurations.FertilizeChanceAdjust / 1000;
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
listmain.Label(Translations.Option5_Label + " " + Configurations.CumDecayRatio * 100 + "%", -1, Translations.Option5_Desc);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
Configurations.CumDecayRatioAdjust = (int)listmain.Slider(Configurations.CumDecayRatioAdjust, 0, 1000);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
Configurations.CumDecayRatio = (float)Configurations.CumDecayRatioAdjust / 1000;
|
|
|
|
|
|
2021-08-06 17:26:13 +00:00
|
|
|
|
|
|
|
|
|
Adjust = (int)(Configurations.EggLifespanMultiplier * 20);
|
|
|
|
|
float lifespan = (24f / Configurations.CycleAcceleration * Configurations.EggLifespanMultiplier);
|
2022-05-31 03:04:48 +00:00
|
|
|
|
listmain.LabelDouble(Translations.Option30_Label + " x" + Configurations.EggLifespanMultiplier, Translations.EstimatedEggLifespan + String.Format(": {0:0}h", (int)lifespan), Translations.Option30_Desc);
|
2021-08-06 17:26:13 +00:00
|
|
|
|
Adjust = (int)listmain.Slider(Adjust, 20, 1000);
|
|
|
|
|
Configurations.EggLifespanMultiplier = (float)Adjust / 20;
|
|
|
|
|
|
|
|
|
|
|
2022-07-08 01:09:04 +00:00
|
|
|
|
int semenlifespan = (int)(-5 / ((float)Math.Log10((1 - Configurations.CumFertilityDecayRatio) * (1 - Configurations.CumDecayRatio) * 10) - 1)) + 1;
|
2021-07-17 09:15:56 +00:00
|
|
|
|
string estimatedlifespan;
|
|
|
|
|
if (semenlifespan < 0)
|
|
|
|
|
{
|
|
|
|
|
estimatedlifespan = String.Format(": Infinite", semenlifespan);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
estimatedlifespan = String.Format(": {0:0}h", semenlifespan);
|
|
|
|
|
}
|
|
|
|
|
listmain.LabelDouble(Translations.Option6_Label + " " + Configurations.CumFertilityDecayRatio * 100 + "%", Translations.EstimatedCumLifespan + estimatedlifespan, Translations.Option6_Desc);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
Configurations.CumFertilityDecayRatioAdjust = (int)listmain.Slider(Configurations.CumFertilityDecayRatioAdjust, 0, 1000);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
Configurations.CumFertilityDecayRatio = (float)Configurations.CumFertilityDecayRatioAdjust / 1000;
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
|
|
|
|
listmain.Label(Translations.Option7_Label + " x" + Configurations.CycleAcceleration, -1, Translations.Option7_Desc);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
Configurations.CycleAcceleration = (int)listmain.Slider(Configurations.CycleAcceleration, 1, 50);
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
2021-03-01 14:40:50 +00:00
|
|
|
|
|
|
|
|
|
float var2 = EstimatedBleedingAmountPerHour;
|
2021-03-06 13:32:33 +00:00
|
|
|
|
float var1 = Math.Max(EstimatedBleedingAmount, var2);
|
2021-03-01 14:40:50 +00:00
|
|
|
|
listmain.LabelDouble(Translations.Option19_Label_1, Translations.Option19_Label_2 + ": " + var1 + "ml, " + var2 + "ml/h", Translations.Option19_Desc);
|
|
|
|
|
Configurations.BleedingAmount = (int)listmain.Slider(Configurations.BleedingAmount, 0, 200);
|
|
|
|
|
|
2022-04-27 01:47:33 +00:00
|
|
|
|
listmain.CheckboxLabeled(Translations.Option_EstrusOverride_Label, ref Configurations.EstrusOverridesHookupSettings, Translations.Option_EstrusOverride_Desc);
|
|
|
|
|
if (Configurations.EstrusOverridesHookupSettings)
|
|
|
|
|
{
|
|
|
|
|
listmain.Label(Translations.Option_EstrusFuckability_Label + ": " + (int)(Configurations.EstrusFuckabilityToHookup * 100) + "%");
|
|
|
|
|
Configurations.EstrusFuckabilityToHookup = listmain.Slider(Configurations.EstrusFuckabilityToHookup, 0.1f, 1.0f);
|
|
|
|
|
listmain.Label(Translations.Option_EstrusAttractability_Label + ": " + (int)(Configurations.EstrusAttractivenessToHookup * 100) + "%");
|
|
|
|
|
Configurations.EstrusAttractivenessToHookup = listmain.Slider(Configurations.EstrusAttractivenessToHookup, 0.0f, 1.0f);
|
|
|
|
|
listmain.Label(Translations.Option_EstrusRelationship_Label + ": " + Configurations.EstrusRelationshipToHookup);
|
|
|
|
|
Configurations.EstrusRelationshipToHookup = listmain.Slider((int)Configurations.EstrusRelationshipToHookup, -100f, 100f);
|
|
|
|
|
}
|
|
|
|
|
|
2021-02-12 04:16:46 +00:00
|
|
|
|
listmain.CheckboxLabeled(Translations.Option13_Label, ref Configurations.UseMultiplePregnancy, Translations.Option13_Desc);
|
|
|
|
|
if (Configurations.UseMultiplePregnancy)
|
|
|
|
|
{
|
2021-03-06 13:32:33 +00:00
|
|
|
|
float sectionheight = 75f;
|
2021-02-12 04:16:46 +00:00
|
|
|
|
if (Configurations.EnableEnzygoticTwins) sectionheight += 100;
|
2021-07-21 05:10:06 +00:00
|
|
|
|
Listing_Standard twinsection = listmain.BeginSection(sectionheight);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
Rect hybridrect = twinsection.GetRect(25);
|
|
|
|
|
Widgets.CheckboxLabeled(hybridrect.LeftHalf(), Translations.Option22_Label, ref Configurations.UseHybridExtention, false, null, null, true);
|
2021-06-29 17:21:59 +00:00
|
|
|
|
if (Widgets.ButtonText(hybridrect.RightHalf(), Translations.Option28_Label))
|
2021-03-06 13:32:33 +00:00
|
|
|
|
{
|
2021-06-29 17:21:59 +00:00
|
|
|
|
Dialog_HybridCustom.ToggleWindow();
|
|
|
|
|
//Configurations.MotherFirst = !Configurations.MotherFirst;
|
2021-03-06 13:32:33 +00:00
|
|
|
|
}
|
2021-06-30 16:02:42 +00:00
|
|
|
|
TooltipHandler.TipRegion(hybridrect, Translations.Option28_Tooltip);
|
2021-03-06 13:32:33 +00:00
|
|
|
|
|
2021-02-12 04:16:46 +00:00
|
|
|
|
twinsection.CheckboxLabeled(Translations.Option14_Label, ref Configurations.EnableHeteroOvularTwins, Translations.Option14_Desc);
|
|
|
|
|
twinsection.CheckboxLabeled(Translations.Option15_Label, ref Configurations.EnableEnzygoticTwins, Translations.Option15_Desc);
|
|
|
|
|
if (Configurations.EnableEnzygoticTwins)
|
|
|
|
|
{
|
2021-03-06 13:32:33 +00:00
|
|
|
|
twinsection.Label(Translations.Option16_Label + " " + Configurations.EnzygoticTwinsChance * 100 + "%", -1, Translations.Option16_Desc);
|
2021-02-12 04:16:46 +00:00
|
|
|
|
Configurations.EnzygoticTwinsChanceAdjust = (int)twinsection.Slider(Configurations.EnzygoticTwinsChanceAdjust, 0, 1000);
|
|
|
|
|
Configurations.EnzygoticTwinsChance = (float)Configurations.EnzygoticTwinsChanceAdjust / 1000;
|
|
|
|
|
|
|
|
|
|
twinsection.Label(Translations.Option17_Label + " " + Configurations.MaxEnzygoticTwins, -1, Translations.Option17_Desc);
|
|
|
|
|
Configurations.MaxEnzygoticTwins = (int)twinsection.Slider(Configurations.MaxEnzygoticTwins, 2, 100);
|
|
|
|
|
}
|
|
|
|
|
listmain.EndSection(twinsection);
|
|
|
|
|
}
|
2021-03-01 14:40:50 +00:00
|
|
|
|
|
2021-08-06 17:26:13 +00:00
|
|
|
|
listmain.CheckboxLabeled(Translations.Option31_Label, ref Configurations.EnableBirthVaginaMorph, Translations.Option31_Desc);
|
|
|
|
|
if (Configurations.EnableBirthVaginaMorph)
|
|
|
|
|
{
|
|
|
|
|
float sectionheight = 48f;
|
|
|
|
|
Listing_Standard vmsection = listmain.BeginSection(sectionheight);
|
|
|
|
|
|
|
|
|
|
LabelwithTextfield(vmsection.GetRect(24f), Translations.Option32_Label, Translations.Option32_Desc, ref Configurations.VaginaMorphPower, 0, 100f);
|
|
|
|
|
Adjust = (int)(Configurations.VaginaMorphPower * 1000);
|
|
|
|
|
Adjust = (int)vmsection.Slider(Adjust, 0, 1000);
|
|
|
|
|
Configurations.VaginaMorphPower = Adjust / 1000f;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
listmain.EndSection(vmsection);
|
|
|
|
|
}
|
|
|
|
|
|
2021-03-01 14:40:50 +00:00
|
|
|
|
|
2021-07-21 05:10:06 +00:00
|
|
|
|
Widgets.EndScrollView();
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
|
|
|
|
listmain.CheckboxLabeled(Translations.Option8_Label, ref Configurations.Debug, Translations.Option8_Desc);
|
2022-04-24 15:23:05 +00:00
|
|
|
|
if (listmain.ButtonText(Translations.Button_ResetToDefault))
|
2021-02-01 11:29:29 +00:00
|
|
|
|
{
|
2021-08-06 17:26:13 +00:00
|
|
|
|
Configurations.SettoDefault();
|
2021-06-10 12:06:05 +00:00
|
|
|
|
|
2021-06-29 17:21:59 +00:00
|
|
|
|
}
|
2021-02-01 11:29:29 +00:00
|
|
|
|
|
|
|
|
|
listmain.End();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-08-06 17:26:13 +00:00
|
|
|
|
public void LabelwithTextfield(Rect rect, string label, string tooltip, ref float value, float min, float max)
|
|
|
|
|
{
|
|
|
|
|
Rect textfieldRect = new Rect(rect.xMax - 100f, rect.y, 100f, rect.height);
|
|
|
|
|
string valuestr = value.ToString();
|
|
|
|
|
Widgets.Label(rect, label);
|
|
|
|
|
Widgets.TextFieldNumeric(textfieldRect, ref value, ref valuestr, min, max);
|
|
|
|
|
Widgets.DrawHighlightIfMouseover(rect);
|
|
|
|
|
TooltipHandler.TipRegion(rect, tooltip);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-02-01 11:29:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|