diff --git a/Languages/English/Keyed/RJW_Sexperience.xml b/Languages/English/Keyed/RJW_Sexperience.xml index 13dbd14..705a45a 100644 --- a/Languages/English/Keyed/RJW_Sexperience.xml +++ b/Languages/English/Keyed/RJW_Sexperience.xml @@ -59,11 +59,19 @@ Sex records Debug - - Enable record randomizer - Randomize pawn's sex records. + Lust effect power Set how much lust affect to sex drive. + Lust Limit + Set limitation of lust.\nIf absolute value of lust close to or larger than this value, lust will be less likely to change. + Maximum lust change per sex + Set how much lust can change from a single sex act + Sex can fill buckets + If enabled boobjobs, footjobs and handjobs that happens near cum bucket will fill it + + + Enable record randomizer + Randomize pawn's sex records. Maximum lust deviation Set maximum deviation of lust. The lust value can be negative depending on its average. Average Lust @@ -74,24 +82,25 @@ Set average sex count. Enable slaves get raped experience Slaves will have experience of being raped - Lust Limit - Set limitation of lust. If absolute value of lust close to or larger than this value, lust will be less likely to change. Minimum age can have sex Set minimum sexable age. This value is not related to RJW's minimum sex age. Only used for generating records. Virgin ratio Set probability of virgin regardless of age. Minimum sexable age from life stages - Only used for generating records. Get minimum sexable age from the first reproductive life stage. Works better for races with a long lifespan - Maximum lust change per sex - Set how much lust can change from a single sex act + Only used for generating records. Get minimum sexable age from the first reproductive life stage. Works better for the races with a long lifespan Enable Bastard relation Child is marked as a bastard if they have only one parent or their parents are not (or was not) married - Sex can fill buckets - If enabled boobjobs, footjobs and handjobs that happens near cum bucket will fill it + [Caution] Enable Sex History* + * Needs a game restart\n\nEnables Sex History window, information collection for the said window and save/load of this information. Also enables sex partners count in the pawn's records.\n\n[Caution] Disabling this mid save will result in the loss of previously collected histories. + Hide Sex History button when drafted + Hides Sex History Gizmo for currently drafted pawns + Hide Sex History button with RJW designators + Hides Sex History Gizmo if RJW designators are hidden + + Debug Enable debug logs - [Caution] Enable Sex History* - * Needs a game restart\n\nEnables Sex History window, information collection for the said window and save/load of this information. Also enables sex partners count in pawn's records.\n\n[Caution] Disabling this mid save will result in the loss of previously collected histories. + Reset to default diff --git a/RJWSexperience/RJWSexperience/Keyed.cs b/RJWSexperience/RJWSexperience/Keyed.cs index f301488..90b7d9e 100644 --- a/RJWSexperience/RJWSexperience/Keyed.cs +++ b/RJWSexperience/RJWSexperience/Keyed.cs @@ -95,6 +95,10 @@ namespace RJWSexperience public static readonly string Option_Debug_Desc = "RSOption_Debug_Desc".Translate(); public static readonly string Option_EnableSexHistory_Label = "RSOption_EnableSexHistory_Label".Translate(); public static readonly string Option_EnableSexHistory_Desc = "RSOption_EnableSexHistory_Desc".Translate(); + public static readonly string Option_HideGizmoWhenDrafted_Label = "RSOption_HideGizmoWhenDrafted_Label".Translate(); + public static readonly string Option_HideGizmoWhenDrafted_Desc = "RSOption_HideGizmoWhenDrafted_Desc".Translate(); + public static readonly string Option_HideGizmoWithRJW_Label = "RSOption_HideGizmoWithRJW_Label".Translate(); + public static readonly string Option_HideGizmoWithRJW_Desc = "RSOption_HideGizmoWithRJW_Desc".Translate(); public static readonly string Button_ResetToDefault = "Button_ResetToDefault".Translate(); public static string Translate(this PartnerOrderMode mode) diff --git a/RJWSexperience/RJWSexperience/Patches/GetGizmos.cs b/RJWSexperience/RJWSexperience/Patches/GetGizmos.cs index 2c3b3e3..9e17a55 100644 --- a/RJWSexperience/RJWSexperience/Patches/GetGizmos.cs +++ b/RJWSexperience/RJWSexperience/Patches/GetGizmos.cs @@ -8,9 +8,11 @@ namespace RJWSexperience { public static class Pawn_GetGizmos { + private static Settings.SettingsTabHistory Settings => SexperienceMod.Settings.History; + public static void DoConditionalPatch(Harmony harmony) { - if (!SexperienceMod.Settings.History.EnableSexHistory) + if (!Settings.EnableSexHistory) return; MethodInfo original = typeof(Pawn).GetMethod(nameof(Pawn.GetGizmos)); @@ -22,22 +24,28 @@ namespace RJWSexperience public static void Postfix(ref IEnumerable __result, Pawn __instance) { + if (Settings.HideGizmoWhenDrafted && __instance.Drafted) + return; + if (Find.Selector.NumSelected > 1) return; + if (Settings.HideGizmoWithRJW && !rjw.RJWSettings.show_RJW_designation_box) + return; + SexHistoryComp history = __instance.TryGetComp(); if (history == null) return; - __result = AddHistoryGizmo(history, __result); + __result = AddHistoryGizmo(history.Gizmo, __result); } - private static IEnumerable AddHistoryGizmo(SexHistoryComp history, IEnumerable gizmos) + private static IEnumerable AddHistoryGizmo(Gizmo historyGizmo, IEnumerable gizmos) { foreach (Gizmo gizmo in gizmos) yield return gizmo; - yield return history.Gizmo; + yield return historyGizmo; } } } diff --git a/RJWSexperience/RJWSexperience/Settings/SettingsTabHistory.cs b/RJWSexperience/RJWSexperience/Settings/SettingsTabHistory.cs index d266a48..a0f1393 100644 --- a/RJWSexperience/RJWSexperience/Settings/SettingsTabHistory.cs +++ b/RJWSexperience/RJWSexperience/Settings/SettingsTabHistory.cs @@ -19,6 +19,8 @@ namespace RJWSexperience.Settings public const float VirginRatioDefault = 0.01f; public const bool SlavesBeenRapedExpDefault = true; public const bool EnableSexHistoryDefault = true; + public const bool HideGizmoWhenDraftedDefault = true; + public const bool HideGizmoWithRJWDefault = true; // Private attributes private bool enableRecordRandomizer = EnableStatRandomizerDefault; @@ -31,6 +33,8 @@ namespace RJWSexperience.Settings private float virginRatio = VirginRatioDefault; private bool slavesBeenRapedExp = SlavesBeenRapedExpDefault; private bool enableSexHistory = EnableSexHistoryDefault; + private bool hideGizmoWhenDrafted = HideGizmoWhenDraftedDefault; + private bool hideGizmoWithRJW = HideGizmoWithRJWDefault; //Public read-only properties public bool EnableRecordRandomizer => enableRecordRandomizer; @@ -43,6 +47,8 @@ namespace RJWSexperience.Settings public float VirginRatio => virginRatio; public bool SlavesBeenRapedExp => slavesBeenRapedExp; public bool EnableSexHistory => enableSexHistory; + public bool HideGizmoWhenDrafted => hideGizmoWhenDrafted; + public bool HideGizmoWithRJW => hideGizmoWithRJW; public static SettingsTabHistory CreateDefault() { @@ -63,6 +69,8 @@ namespace RJWSexperience.Settings virginRatio = VirginRatioDefault; slavesBeenRapedExp = SlavesBeenRapedExpDefault; enableSexHistory = EnableSexHistoryDefault; + hideGizmoWhenDrafted = HideGizmoWhenDraftedDefault; + hideGizmoWithRJW = HideGizmoWithRJWDefault; } public void ExposeData() @@ -77,6 +85,8 @@ namespace RJWSexperience.Settings Scribe_Values.Look(ref virginRatio, "VirginRatio", VirginRatioDefault); Scribe_Values.Look(ref slavesBeenRapedExp, "SlavesBeenRapedExp", SlavesBeenRapedExpDefault); Scribe_Values.Look(ref enableSexHistory, "EnableSexHistory", EnableSexHistoryDefault); + Scribe_Values.Look(ref hideGizmoWhenDrafted, "HideGizmoWhenDrafted", HideGizmoWhenDraftedDefault); + Scribe_Values.Look(ref hideGizmoWithRJW, "HideGizmoWithRJW", HideGizmoWithRJWDefault); } public void DoTabContents(Rect inRect) @@ -113,6 +123,12 @@ namespace RJWSexperience.Settings listmain.CheckboxLabeled(Keyed.Option_EnableSexHistory_Label, ref enableSexHistory, Keyed.Option_EnableSexHistory_Desc); + if (enableSexHistory) + { + listmain.CheckboxLabeled(Keyed.Option_HideGizmoWhenDrafted_Label, ref hideGizmoWhenDrafted, Keyed.Option_HideGizmoWhenDrafted_Desc); + listmain.CheckboxLabeled(Keyed.Option_HideGizmoWithRJW_Label, ref hideGizmoWithRJW, Keyed.Option_HideGizmoWithRJW_Desc); + } + if (listmain.ButtonText(Keyed.Button_ResetToDefault)) { Reset();