Compare commits

...

7 Commits

Author SHA1 Message Date
amevarashi 37927f19b3
Merge pull request #12 from Angedore/virginityadditionalremovers
additional sex acts remove the virginity trait
2024-04-30 13:09:57 +05:00
Angedore 25a4e0786c - fisting removes the virginity of the receiving virgin female partner 2023-12-03 12:24:42 +01:00
Angedore b6d34be263 - configurable virginity removal for male/male for anal sex
- configurable virginity removal for female/female scissoring sex
- added double penetration to actions for virginity removal
2023-12-03 12:24:28 +01:00
amevarashi 190c6fc3d6 Fixed some labels in SexStatusWindow not respecting custom fonts 2023-10-28 12:58:02 +05:00
amevarashi 4265e3c3e1 1.4.1.3 2023-10-03 22:14:07 +05:00
amevarashi 9e21992d9b Prisoners use buckets to clean themselves 2023-10-03 21:52:39 +05:00
amevarashi cfee907258 Migrate SDK projects 2023-09-26 19:48:30 +05:00
16 changed files with 185 additions and 176 deletions

Binary file not shown.

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>RJWSexperience</identifier> <identifier>RJWSexperience</identifier>
<version>1.4.1.2</version> <version>1.4.1.3</version>
<dependencies> <dependencies>
<li>RimJobWorld >= 5.3.0</li> <li>RimJobWorld >= 5.3.0</li>
</dependencies> </dependencies>

View File

@ -1,3 +1,6 @@
### 1.4.1.3
* Prisoners use buckets to clean themselves
### 1.4.1.2 ### 1.4.1.2
* Fixed IsVirgin check for pawns with children * Fixed IsVirgin check for pawns with children

View File

@ -85,6 +85,10 @@
<RSOption_EnableSexHistory_Desc>* 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.</RSOption_EnableSexHistory_Desc> <RSOption_EnableSexHistory_Desc>* 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.</RSOption_EnableSexHistory_Desc>
<RSOption_HideGizmoWhenDrafted_Label>Hide Sex History button when drafted</RSOption_HideGizmoWhenDrafted_Label> <RSOption_HideGizmoWhenDrafted_Label>Hide Sex History button when drafted</RSOption_HideGizmoWhenDrafted_Label>
<RSOption_HideGizmoWhenDrafted_Desc>Hides Sex History Gizmo for currently drafted pawns</RSOption_HideGizmoWhenDrafted_Desc> <RSOption_HideGizmoWhenDrafted_Desc>Hides Sex History Gizmo for currently drafted pawns</RSOption_HideGizmoWhenDrafted_Desc>
<RSOption_VirginityCheck_M2M_Label>Remove virginity with anal sex (for male/male sex)</RSOption_VirginityCheck_M2M_Label>
<RSOption_VirginityCheck_M2M_Desc>Remove virginity with anal sex (for male/male sex)</RSOption_VirginityCheck_M2M_Desc>
<RSOption_VirginityCheck_F2F_Label>Remove virginity with scissoring sex (for female/female sex)</RSOption_VirginityCheck_F2F_Label>
<RSOption_VirginityCheck_F2F_Desc>Remove virginity with scissoring sex (for female/female sex)</RSOption_VirginityCheck_F2F_Desc>
<!-- Mod settings: Debug --> <!-- Mod settings: Debug -->
<RSOption_Debug_Label>Debug</RSOption_Debug_Label> <RSOption_Debug_Label>Debug</RSOption_Debug_Label>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThinkTreeDef>
<defName>CleanSelfWithBucket</defName>
<insertTag>Humanlike_PostDuty</insertTag>
<insertPriority>100</insertPriority>
<thinkRoot Class="ThinkNode_Priority">
<subNodes>
<li Class="ThinkNode_ConditionalPrisoner">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
<subNodes>
<li Class="RJWSexperienceCum.JobGiver_CleanSelfWithBucket"/>
</subNodes>
</li>
</subNodes>
</thinkRoot>
</ThinkTreeDef>
</Defs>

View File

@ -25,6 +25,9 @@ namespace RJWSexperience
public readonly SettingHandle<bool> EnableSexHistory = new SettingHandle<bool>("EnableSexHistory", true); public readonly SettingHandle<bool> EnableSexHistory = new SettingHandle<bool>("EnableSexHistory", true);
public readonly SettingHandle<bool> HideGizmoWhenDrafted = new SettingHandle<bool>("HideGizmoWhenDrafted", true); public readonly SettingHandle<bool> HideGizmoWhenDrafted = new SettingHandle<bool>("HideGizmoWhenDrafted", true);
public readonly SettingHandle<bool> VirginityCheck_M2M_Anal = new SettingHandle<bool>("VirginityCheck_M2M_Anal", true);
public readonly SettingHandle<bool> VirginityCheck_F2F_Scissoring = new SettingHandle<bool>("VirginityCheck_F2F_Scissoring", false);
public readonly SettingHandle<bool> DevMode = new SettingHandle<bool>("DevMode", false); public readonly SettingHandle<bool> DevMode = new SettingHandle<bool>("DevMode", false);
public readonly SettingHandle<bool> SelectionLocked = new SettingHandle<bool>("SelectionLocked", false); public readonly SettingHandle<bool> SelectionLocked = new SettingHandle<bool>("SelectionLocked", false);

View File

@ -98,6 +98,10 @@ namespace RJWSexperience
public static readonly string Option_HideGizmoWithRJW_Label = "RSOption_HideGizmoWithRJW_Label".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 Option_HideGizmoWithRJW_Desc = "RSOption_HideGizmoWithRJW_Desc".Translate();
public static readonly string Button_ResetToDefault = "Button_ResetToDefault".Translate(); public static readonly string Button_ResetToDefault = "Button_ResetToDefault".Translate();
public static readonly string Option_VirginityCheck_M2M_Label = "RSOption_VirginityCheck_M2M_Label".Translate();
public static readonly string Option_VirginityCheck_M2M_Desc = "RSOption_VirginityCheck_M2M_Desc".Translate();
public static readonly string Option_VirginityCheck_F2F_Label = "RSOption_VirginityCheck_F2F_Label".Translate();
public static readonly string Option_VirginityCheck_F2F_Desc = "RSOption_VirginityCheck_F2F_Desc".Translate();
public static string Translate(this PartnerOrderMode mode) public static string Translate(this PartnerOrderMode mode)
{ {

View File

@ -94,10 +94,43 @@ namespace RJWSexperience
{ {
public static void Postfix(JobDriver_SexBaseInitiator __instance) public static void Postfix(JobDriver_SexBaseInitiator __instance)
{ {
if (__instance.Sexprops.hasPartner() && __instance.Sexprops.sexType == xxx.rjwSextype.Vaginal) if (__instance.Sexprops.hasPartner())
{ {
__instance.pawn.TryRemoveVirginity(__instance.Partner, __instance.Sexprops); // remove hetero virginity
__instance.Partner.TryRemoveVirginity(__instance.pawn, __instance.Sexprops); if((__instance.Sexprops.sexType == xxx.rjwSextype.Vaginal || __instance.Sexprops.sexType == xxx.rjwSextype.DoublePenetration))
{
__instance.pawn.TryRemoveVirginity(__instance.Partner, __instance.Sexprops);
__instance.Partner.TryRemoveVirginity(__instance.pawn, __instance.Sexprops);
} else if(__instance.Sexprops.sexType == xxx.rjwSextype.Fisting)
{
//check if receiver is a virgin female..
Pawn receiver = __instance.Sexprops.IsInitiator() ? __instance.Partner : __instance.pawn;
if (receiver != null && receiver.gender == Gender.Female && receiver.IsVirgin())
{
Pawn initiator = __instance.Sexprops.IsInitiator() ? __instance.pawn : __instance.Partner;
receiver.TryRemoveVirginity(initiator, __instance.Sexprops);
}
}
else
{
// check if both pawn are male -> anal used as alternative virginity remover
if(SexperienceMod.Settings.VirginityCheck_M2M_Anal &&
__instance.Sexprops.sexType == xxx.rjwSextype.Anal
&& __instance.pawn.gender == Gender.Male && __instance.Partner.gender == Gender.Male)
{
__instance.pawn.TryRemoveVirginity(__instance.Partner, __instance.Sexprops);
__instance.Partner.TryRemoveVirginity(__instance.pawn, __instance.Sexprops);
}
// check if both pawn are female -> scissoring used as alternative virginity remover
if(SexperienceMod.Settings.VirginityCheck_F2F_Scissoring &&
__instance.Sexprops.sexType == xxx.rjwSextype.Scissoring
&& __instance.pawn.gender == Gender.Female && __instance.Partner.gender == Gender.Female)
{
__instance.pawn.TryRemoveVirginity(__instance.Partner, __instance.Sexprops);
__instance.Partner.TryRemoveVirginity(__instance.pawn, __instance.Sexprops);
}
}
} }
} }
} }

View File

@ -1,116 +1,31 @@
<?xml version="1.0" encoding="utf-8"?> <Project Sdk="Microsoft.NET.Sdk">
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9C728E06-573B-4B04-A07F-ACBF60CB424D}</ProjectGuid> <ProjectGuid>{9C728E06-573B-4B04-A07F-ACBF60CB424D}</ProjectGuid>
<OutputType>Library</OutputType> <TargetFramework>net472</TargetFramework>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RJWSexperience</RootNamespace> <RootNamespace>RJWSexperience</RootNamespace>
<AssemblyName>RJWSexperience</AssemblyName> <AssemblyName>RJWSexperience</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Assemblies\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\1.4\Assemblies\</OutputPath> <OutputPath>..\..\1.4\Assemblies\</OutputPath>
<DefineConstants>TRACE</DefineConstants> <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ErrorReport>prompt</ErrorReport> <Company>amevarashi</Company>
<WarningLevel>4</WarningLevel> <Optimize>True</Optimize>
</PropertyGroup> <GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Krafs.Rimworld.Ref">
<Version>1.4.*</Version>
</PackageReference>
<PackageReference Include="Lib.Harmony">
<Version>2.*</Version>
<ExcludeAssets>runtime</ExcludeAssets>
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="RJW"> <Reference Include="RJW">
<HintPath>..\..\..\rjw\1.4\Assemblies\RJW.dll</HintPath> <HintPath>..\..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Compile Include="Cum\Building_Cumbucket.cs" />
<Compile Include="Configurations.cs" />
<Compile Include="Cum\CumUtility.cs" />
<Compile Include="DebugAction.cs" />
<Compile Include="ExtensionMethods\PawnExtensions.cs" />
<Compile Include="ExtensionMethods\SexPropsExtensions.cs" />
<Compile Include="Cum\FilterWorkers\SpecialThingFilterWorker_CumBase.cs" />
<Compile Include="Cum\FilterWorkers\SpecialThingFilterWorker_NoCum.cs" />
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="Harmony.cs" />
<Compile Include="Cum\IngestionOutcomeDoer_RecordEatenCum.cs" />
<Compile Include="Cum\Interactions\CumAddictPartKindUsageRule.cs" />
<Compile Include="Logs\DebugLogProvider.cs" />
<Compile Include="Logs\LogManager.cs" />
<Compile Include="LustUtility.cs" />
<Compile Include="Patches\ConditionalDefLoad.cs" />
<Compile Include="Patches\DefInjection.cs" />
<Compile Include="Settings\ISettingHandle.cs" />
<Compile Include="Settings\SettingHandle.cs" />
<Compile Include="Settings\SettingsContainer.cs" />
<Compile Include="Settings\SettingsTab.cs" />
<Compile Include="Settings\SettingsTabMain.cs" />
<Compile Include="SexHistory\UI\BarInfo.cs" />
<Compile Include="SexHistory\UI\PartnerPortraitInfo.cs" />
<Compile Include="SexHistory\UI\PreferedRaceCard.cs" />
<Compile Include="SexHistory\UI\InfoCard.cs" />
<Compile Include="SexHistory\UI\PartnerOrderMode.cs" />
<Compile Include="SexHistory\UI\SexStatusViewModel.cs" />
<Compile Include="Virginity\Recipe_HymenSurgery.cs" />
<Compile Include="Settings\SettingsTabHistory.cs" />
<Compile Include="Settings\SettingsTabDebug.cs" />
<Compile Include="Settings\IResettable.cs" />
<Compile Include="Settings\ITab.cs" />
<Compile Include="Settings\SettingsWidgets.cs" />
<Compile Include="SexHistory\RecordRandomizer.cs" />
<Compile Include="RJWUtility.cs" />
<Compile Include="SexHistory\HistoryUtility.cs" />
<Compile Include="SexHistory\SexHistoryComp.cs" />
<Compile Include="SexHistory\SexPartnerHistoryRecord.cs" />
<Compile Include="PawnRelationWorker_Bastard.cs" />
<Compile Include="Keyed.cs" />
<Compile Include="Patches\Rimworld_Patch.cs" />
<Compile Include="Patches\RJW_Patch.cs" />
<Compile Include="SexperienceMod.cs" />
<Compile Include="Cum\FilterWorkers\SpecialThingFilterWorker_Cum.cs" />
<Compile Include="StatParts.cs" />
<Compile Include="Thoughts\ThoughtDefExtension_StageFromRecord.cs" />
<Compile Include="Cum\Thought_AteCum.cs" />
<Compile Include="Thoughts\Thought_Recordbased.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SexHistory\UI\UIUtility.cs" />
<Compile Include="SexHistory\UI\SexStatusWindow.cs" />
<Compile Include="Utility.cs" />
<Compile Include="RsDefOf.cs" />
<Compile Include="Virginity\TraitDegree.cs" />
<Compile Include="Virginity\TraitHandler.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Krafs.Rimworld.Ref">
<Version>1.4.3704</Version>
</PackageReference>
<PackageReference Include="Lib.Harmony">
<Version>2.2.2</Version>
<ExcludeAssets>runtime</ExcludeAssets>
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@ -31,7 +31,9 @@ namespace RJWSexperience.Settings
settings.VirginRatio, settings.VirginRatio,
settings.SlavesBeenRapedExp, settings.SlavesBeenRapedExp,
settings.EnableSexHistory, settings.EnableSexHistory,
settings.HideGizmoWhenDrafted settings.HideGizmoWhenDrafted,
settings.VirginityCheck_M2M_Anal,
settings.VirginityCheck_F2F_Scissoring
} }
); );
} }

View File

@ -21,7 +21,9 @@ namespace RJWSexperience.Settings
settings.VirginRatio, settings.VirginRatio,
settings.SlavesBeenRapedExp, settings.SlavesBeenRapedExp,
settings.EnableSexHistory, settings.EnableSexHistory,
settings.HideGizmoWhenDrafted settings.HideGizmoWhenDrafted,
settings.VirginityCheck_M2M_Anal,
settings.VirginityCheck_F2F_Scissoring
} }
) { } ) { }
@ -63,6 +65,9 @@ namespace RJWSexperience.Settings
{ {
listmain.CheckboxLabeled(Keyed.Option_HideGizmoWhenDrafted_Label, settings.HideGizmoWhenDrafted, Keyed.Option_HideGizmoWhenDrafted_Desc); listmain.CheckboxLabeled(Keyed.Option_HideGizmoWhenDrafted_Label, settings.HideGizmoWhenDrafted, Keyed.Option_HideGizmoWhenDrafted_Desc);
} }
listmain.CheckboxLabeled(Keyed.Option_VirginityCheck_M2M_Label, settings.VirginityCheck_M2M_Anal, Keyed.Option_VirginityCheck_M2M_Desc);
listmain.CheckboxLabeled(Keyed.Option_VirginityCheck_F2F_Label, settings.VirginityCheck_F2F_Scissoring, Keyed.Option_VirginityCheck_F2F_Label);
if (listmain.ButtonText(Keyed.Button_ResetToDefault)) if (listmain.ButtonText(Keyed.Button_ResetToDefault))
{ {

View File

@ -15,6 +15,8 @@ namespace RJWSexperience.Settings
settings.LustLimit, settings.LustLimit,
settings.MaxSingleLustChange, settings.MaxSingleLustChange,
settings.SexCanFillBuckets, settings.SexCanFillBuckets,
settings.VirginityCheck_M2M_Anal,
settings.VirginityCheck_F2F_Scissoring
} }
) { } ) { }
@ -27,6 +29,8 @@ namespace RJWSexperience.Settings
listmain.SliderOption(Keyed.Option_MaxSingleLustChange_Label + " {0}", Keyed.Option_MaxSingleLustChange_Desc, settings.MaxSingleLustChange, new FloatRange(0f, 10f), 0.05f); listmain.SliderOption(Keyed.Option_MaxSingleLustChange_Label + " {0}", Keyed.Option_MaxSingleLustChange_Desc, settings.MaxSingleLustChange, new FloatRange(0f, 10f), 0.05f);
listmain.CheckboxLabeled(Keyed.Option_EnableBastardRelation_Label, settings.EnableBastardRelation, Keyed.Option_EnableBastardRelation_Desc); listmain.CheckboxLabeled(Keyed.Option_EnableBastardRelation_Label, settings.EnableBastardRelation, Keyed.Option_EnableBastardRelation_Desc);
listmain.CheckboxLabeled(Keyed.Option_SexCanFillBuckets_Label, settings.SexCanFillBuckets, Keyed.Option_SexCanFillBuckets_Desc); listmain.CheckboxLabeled(Keyed.Option_SexCanFillBuckets_Label, settings.SexCanFillBuckets, Keyed.Option_SexCanFillBuckets_Desc);
listmain.CheckboxLabeled(Keyed.Option_VirginityCheck_M2M_Label, settings.VirginityCheck_M2M_Anal, Keyed.Option_VirginityCheck_M2M_Desc);
listmain.CheckboxLabeled(Keyed.Option_VirginityCheck_F2F_Label, settings.VirginityCheck_F2F_Scissoring, Keyed.Option_VirginityCheck_F2F_Desc);
if (settings.DevMode) if (settings.DevMode)
LustUtility.DrawGraph(listmain.GetRect(300f)); LustUtility.DrawGraph(listmain.GetRect(300f));

View File

@ -17,9 +17,6 @@ namespace RJWSexperience.SexHistory.UI
public const float BASESAT = UIUtility.BASESAT; public const float BASESAT = UIUtility.BASESAT;
public const float ICONSIZE = UIUtility.ICONSIZE; public const float ICONSIZE = UIUtility.ICONSIZE;
private static GUIStyle fontStyleCenter;
private static GUIStyle fontStyleRight;
private static GUIStyle fontStyleLeft;
private static GUIStyle boxStyle; private static GUIStyle boxStyle;
private static GUIStyle buttonStyle; private static GUIStyle buttonStyle;
@ -32,17 +29,13 @@ namespace RJWSexperience.SexHistory.UI
private static void InitStyles() private static void InitStyles()
{ {
if (fontStyleCenter != null) if (boxStyle != null)
{ {
return; return;
} }
GUIStyleState fontStyleState = new GUIStyleState() { textColor = Color.white };
GUIStyleState boxStyleState = GUI.skin.textArea.normal; GUIStyleState boxStyleState = GUI.skin.textArea.normal;
GUIStyleState buttonStyleState = GUI.skin.button.normal; GUIStyleState buttonStyleState = GUI.skin.button.normal;
fontStyleCenter = new GUIStyle() { alignment = TextAnchor.MiddleCenter, normal = fontStyleState };
fontStyleRight = new GUIStyle() { alignment = TextAnchor.MiddleRight, normal = fontStyleState };
fontStyleLeft = new GUIStyle() { alignment = TextAnchor.MiddleLeft, normal = fontStyleState };
boxStyle = new GUIStyle(GUI.skin.textArea) { hover = boxStyleState, onHover = boxStyleState, onNormal = boxStyleState }; boxStyle = new GUIStyle(GUI.skin.textArea) { hover = boxStyleState, onHover = boxStyleState, onNormal = boxStyleState };
buttonStyle = new GUIStyle(GUI.skin.button) { hover = buttonStyleState, onHover = buttonStyleState, onNormal = buttonStyleState }; buttonStyle = new GUIStyle(GUI.skin.button) { hover = buttonStyleState, onHover = buttonStyleState, onNormal = buttonStyleState };
} }
@ -179,7 +172,9 @@ namespace RJWSexperience.SexHistory.UI
} }
} }
GUI.Label(sexinfoRect2, context.Relations + " ", fontStyleRight); Text.Anchor = TextAnchor.MiddleRight;
Widgets.Label(sexinfoRect2, context.Relations + " ");
GenUI.ResetLabelAlign();
TooltipHandler.TipRegion(rect, context.Tooltip); TooltipHandler.TipRegion(rect, context.Tooltip);
} }
else else
@ -195,8 +190,11 @@ namespace RJWSexperience.SexHistory.UI
protected void DrawSexInfoCard(Rect rect, InfoCard context) protected void DrawSexInfoCard(Rect rect, InfoCard context)
{ {
rect.SplitHorizontally(FONTHEIGHT, out Rect labelRect, out Rect infoRect); rect.SplitHorizontally(FONTHEIGHT, out Rect labelRect, out Rect infoRect);
GUI.Label(labelRect, context.Label, fontStyleLeft); Text.Anchor = TextAnchor.MiddleLeft;
GUI.Label(labelRect, context.LastSexTime, fontStyleRight); Widgets.Label(labelRect, context.Label);
Text.Anchor = TextAnchor.MiddleRight;
Widgets.Label(labelRect, context.LastSexTime);
GenUI.ResetLabelAlign();
DrawInfoWithPortrait(infoRect, context); DrawInfoWithPortrait(infoRect, context);
} }
@ -211,7 +209,9 @@ namespace RJWSexperience.SexHistory.UI
{ {
DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), infoCard); DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), infoCard);
} }
GUI.Label(listmain.GetRect(FONTHEIGHT), Keyed.RS_PreferRace, fontStyleLeft); Text.Anchor = TextAnchor.MiddleLeft;
listmain.Label(Keyed.RS_PreferRace);
GenUI.ResetLabelAlign();
DrawPreferRace(listmain.GetRect(66f + 15f), _context.PreferedRaceCard); DrawPreferRace(listmain.GetRect(66f + 15f), _context.PreferedRaceCard);
listmain.End(); listmain.End();
} }
@ -226,16 +226,21 @@ namespace RJWSexperience.SexHistory.UI
Rect infoRect3 = new Rect(infoRect.x, infoRect.y + (FONTHEIGHT * 2), infoRect.width - 2f, FONTHEIGHT); Rect infoRect3 = new Rect(infoRect.x, infoRect.y + (FONTHEIGHT * 2), infoRect.width - 2f, FONTHEIGHT);
Widgets.DrawTextureFitted(portraitRect, preferedRaceCard.PortraitGetter(portraitRect.size), 1.0f); Widgets.DrawTextureFitted(portraitRect, preferedRaceCard.PortraitGetter(portraitRect.size), 1.0f);
GUI.Label(infoRect1, preferedRaceCard.PreferRaceLabel, fontStyleLeft);
if (preferedRaceCard.PreferRaceTypeLabel != null) Text.Anchor = TextAnchor.MiddleLeft;
{ Widgets.Label(infoRect1, preferedRaceCard.PreferRaceLabel);
GUI.Label(infoRect1, preferedRaceCard.PreferRaceTypeLabel + " ", fontStyleRight);
}
if (preferedRaceCard.SexCount != null) if (preferedRaceCard.SexCount != null)
{ {
GUI.Label(infoRect2, preferedRaceCard.SexCount, fontStyleLeft); Widgets.Label(infoRect2, preferedRaceCard.SexCount);
}
GenUI.ResetLabelAlign();
if (preferedRaceCard.PreferRaceTypeLabel != null)
{
Text.Anchor = TextAnchor.MiddleRight;
Widgets.Label(infoRect1, preferedRaceCard.PreferRaceTypeLabel + " ");
} }
if (preferedRaceCard.BarInfo.Label != null) if (preferedRaceCard.BarInfo.Label != null)
@ -280,8 +285,10 @@ namespace RJWSexperience.SexHistory.UI
} }
GUI.Box(nameRect, "", boxStyle); GUI.Box(nameRect, "", boxStyle);
GUI.Label(nameRect.TopHalf(), _context.Name, fontStyleCenter); Text.Anchor = TextAnchor.MiddleCenter;
GUI.Label(nameRect.BottomHalf(), _context.AgeAndTitle, fontStyleCenter); Widgets.Label(nameRect.TopHalf(), _context.Name);
Widgets.Label(nameRect.BottomHalf(), _context.AgeAndTitle);
GenUI.ResetLabelAlign();
Listing_Standard listmain = new Listing_Standard(); Listing_Standard listmain = new Listing_Standard();
listmain.Begin(infoRect); listmain.Begin(infoRect);
@ -292,7 +299,9 @@ namespace RJWSexperience.SexHistory.UI
GUI.color = Color.red; GUI.color = Color.red;
GUI.Box(tmp, "", boxStyle); GUI.Box(tmp, "", boxStyle);
GUI.color = Color.white; GUI.color = Color.white;
GUI.Label(tmp, _context.VirginLabel, fontStyleCenter); Text.Anchor = TextAnchor.MiddleCenter;
Widgets.Label(tmp, _context.VirginLabel);
GenUI.ResetLabelAlign();
listmain.Gap(1f); listmain.Gap(1f);
} }
else else
@ -382,7 +391,9 @@ namespace RJWSexperience.SexHistory.UI
listmain.Begin(rect); listmain.Begin(rect);
//Sex statistics //Sex statistics
GUI.Label(listmain.GetRect(FONTHEIGHT), " " + Keyed.RS_Statistics, fontStyleLeft); Text.Anchor = TextAnchor.MiddleLeft;
listmain.Label(" " + Keyed.RS_Statistics);
GenUI.ResetLabelAlign();
listmain.Gap(1f); listmain.Gap(1f);
for (int i = 0; i < _context.SexTypes.Count; i++) for (int i = 0; i < _context.SexTypes.Count; i++)
@ -396,7 +407,9 @@ namespace RJWSexperience.SexHistory.UI
//Partner list //Partner list
Rect listLabelRect = listmain.GetRect(FONTHEIGHT); Rect listLabelRect = listmain.GetRect(FONTHEIGHT);
Rect sortbtnRect = new Rect(listLabelRect.xMax - 80f, listLabelRect.y, 80f, listLabelRect.height); Rect sortbtnRect = new Rect(listLabelRect.xMax - 80f, listLabelRect.y, 80f, listLabelRect.height);
GUI.Label(listLabelRect, " " + Keyed.RS_PartnerList, fontStyleLeft); Text.Anchor = TextAnchor.MiddleLeft;
Widgets.Label(listLabelRect, " " + Keyed.RS_PartnerList);
GenUI.ResetLabelAlign();
if (Widgets.ButtonText(sortbtnRect, orderMode.Translate())) if (Widgets.ButtonText(sortbtnRect, orderMode.Translate()))
{ {
SoundDefOf.Click.PlayOneShotOnCamera(); SoundDefOf.Click.PlayOneShotOnCamera();
@ -432,7 +445,11 @@ namespace RJWSexperience.SexHistory.UI
DrawPartnerPortrait(pawnRect, partner); DrawPartnerPortrait(pawnRect, partner);
Widgets.DrawHighlightIfMouseover(pawnRect); Widgets.DrawHighlightIfMouseover(pawnRect);
GUI.Label(labelRect, partner.PartnerRecord.Label, fontStyleCenter);
Text.Anchor = TextAnchor.MiddleCenter;
Widgets.Label(labelRect, partner.PartnerRecord.Label);
GenUI.ResetLabelAlign();
if (Widgets.ButtonInvisible(pawnRect)) if (Widgets.ButtonInvisible(pawnRect))
{ {
_context.SetSelectedPartner(partner.PartnerRecord); _context.SetSelectedPartner(partner.PartnerRecord);

View File

@ -0,0 +1,27 @@
using RJWSexperience;
using Verse;
using Verse.AI;
namespace RJWSexperienceCum
{
public class JobGiver_CleanSelfWithBucket : ThinkNode_JobGiver
{
protected override Job TryGiveJob(Pawn pawn)
{
if (HediffDefOf.Hediff_CumController == null || !pawn.health.hediffSet.HasHediff(HediffDefOf.Hediff_CumController))
{
// Nothing to clean
return null;
}
Building_CumBucket bucket = pawn.FindClosestBucket();
if (bucket == null)
{
return null;
}
return JobMaker.MakeJob(JobDefOf.CleanSelfwithBucket, pawn, bucket);
}
}
}

View File

@ -1,55 +1,29 @@
<?xml version="1.0" encoding="utf-8"?> <Project Sdk="Microsoft.NET.Sdk">
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}</ProjectGuid> <ProjectGuid>{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}</ProjectGuid>
<OutputType>Library</OutputType> <TargetFramework>net472</TargetFramework>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RJWSexperienceCum</RootNamespace> <RootNamespace>RJWSexperienceCum</RootNamespace>
<AssemblyName>RJWSexperienceCum</AssemblyName> <AssemblyName>RJWSexperienceCum</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\Mod Compatibility\RJW Cum\Assemblies\</OutputPath> <OutputPath>..\..\Mod Compatibility\RJW Cum\Assemblies\</OutputPath>
<DefineConstants>TRACE</DefineConstants> <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ErrorReport>prompt</ErrorReport> <Company>amevarashi</Company>
<WarningLevel>4</WarningLevel> <Optimize>True</Optimize>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup>
<Compile Include="JobDefOf.cs" />
<Compile Include="ThingDefOf.cs" />
<Compile Include="JobDriver_CleanSelfWithBucket.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="HediffDefOf.cs" />
<Compile Include="WorkGiver_CleanSelfWithBucket.cs" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Krafs.Rimworld.Ref"> <PackageReference Include="Krafs.Rimworld.Ref">
<Version>1.4.3704</Version> <Version>1.4.*</Version>
</PackageReference> </PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="RJW">
<HintPath>..\..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\RJWSexperience\RJWSexperience.csproj"> <ProjectReference Include="..\RJWSexperience\RJWSexperience.csproj">
<Project>{9c728e06-573b-4b04-a07f-acbf60cb424d}</Project> <Project>{9c728e06-573b-4b04-a07f-acbf60cb424d}</Project>
@ -57,5 +31,4 @@
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>