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

View File

@ -1,3 +1,6 @@
### 1.4.1.3
* Prisoners use buckets to clean themselves
### 1.4.1.2
* 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_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_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 -->
<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> 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> 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_Desc = "RSOption_HideGizmoWithRJW_Desc".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)
{

View File

@ -94,10 +94,43 @@ namespace RJWSexperience
{
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);
__instance.Partner.TryRemoveVirginity(__instance.pawn, __instance.Sexprops);
// remove hetero virginity
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 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')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9C728E06-573B-4B04-A07F-ACBF60CB424D}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFramework>net472</TargetFramework>
<RootNamespace>RJWSexperience</RootNamespace>
<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>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<Company>amevarashi</Company>
<Optimize>True</Optimize>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
</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>
<Reference Include="RJW">
<HintPath>..\..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
<Private>False</Private>
</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>
<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>

View File

@ -31,7 +31,9 @@ namespace RJWSexperience.Settings
settings.VirginRatio,
settings.SlavesBeenRapedExp,
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.SlavesBeenRapedExp,
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_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))
{

View File

@ -15,6 +15,8 @@ namespace RJWSexperience.Settings
settings.LustLimit,
settings.MaxSingleLustChange,
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.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_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)
LustUtility.DrawGraph(listmain.GetRect(300f));

View File

@ -17,9 +17,6 @@ namespace RJWSexperience.SexHistory.UI
public const float BASESAT = UIUtility.BASESAT;
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 buttonStyle;
@ -32,17 +29,13 @@ namespace RJWSexperience.SexHistory.UI
private static void InitStyles()
{
if (fontStyleCenter != null)
if (boxStyle != null)
{
return;
}
GUIStyleState fontStyleState = new GUIStyleState() { textColor = Color.white };
GUIStyleState boxStyleState = GUI.skin.textArea.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 };
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);
}
else
@ -195,8 +190,11 @@ namespace RJWSexperience.SexHistory.UI
protected void DrawSexInfoCard(Rect rect, InfoCard context)
{
rect.SplitHorizontally(FONTHEIGHT, out Rect labelRect, out Rect infoRect);
GUI.Label(labelRect, context.Label, fontStyleLeft);
GUI.Label(labelRect, context.LastSexTime, fontStyleRight);
Text.Anchor = TextAnchor.MiddleLeft;
Widgets.Label(labelRect, context.Label);
Text.Anchor = TextAnchor.MiddleRight;
Widgets.Label(labelRect, context.LastSexTime);
GenUI.ResetLabelAlign();
DrawInfoWithPortrait(infoRect, context);
}
@ -211,7 +209,9 @@ namespace RJWSexperience.SexHistory.UI
{
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);
listmain.End();
}
@ -226,16 +226,21 @@ namespace RJWSexperience.SexHistory.UI
Rect infoRect3 = new Rect(infoRect.x, infoRect.y + (FONTHEIGHT * 2), infoRect.width - 2f, FONTHEIGHT);
Widgets.DrawTextureFitted(portraitRect, preferedRaceCard.PortraitGetter(portraitRect.size), 1.0f);
GUI.Label(infoRect1, preferedRaceCard.PreferRaceLabel, fontStyleLeft);
if (preferedRaceCard.PreferRaceTypeLabel != null)
{
GUI.Label(infoRect1, preferedRaceCard.PreferRaceTypeLabel + " ", fontStyleRight);
}
Text.Anchor = TextAnchor.MiddleLeft;
Widgets.Label(infoRect1, preferedRaceCard.PreferRaceLabel);
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)
@ -280,8 +285,10 @@ namespace RJWSexperience.SexHistory.UI
}
GUI.Box(nameRect, "", boxStyle);
GUI.Label(nameRect.TopHalf(), _context.Name, fontStyleCenter);
GUI.Label(nameRect.BottomHalf(), _context.AgeAndTitle, fontStyleCenter);
Text.Anchor = TextAnchor.MiddleCenter;
Widgets.Label(nameRect.TopHalf(), _context.Name);
Widgets.Label(nameRect.BottomHalf(), _context.AgeAndTitle);
GenUI.ResetLabelAlign();
Listing_Standard listmain = new Listing_Standard();
listmain.Begin(infoRect);
@ -292,7 +299,9 @@ namespace RJWSexperience.SexHistory.UI
GUI.color = Color.red;
GUI.Box(tmp, "", boxStyle);
GUI.color = Color.white;
GUI.Label(tmp, _context.VirginLabel, fontStyleCenter);
Text.Anchor = TextAnchor.MiddleCenter;
Widgets.Label(tmp, _context.VirginLabel);
GenUI.ResetLabelAlign();
listmain.Gap(1f);
}
else
@ -382,7 +391,9 @@ namespace RJWSexperience.SexHistory.UI
listmain.Begin(rect);
//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);
for (int i = 0; i < _context.SexTypes.Count; i++)
@ -396,7 +407,9 @@ namespace RJWSexperience.SexHistory.UI
//Partner list
Rect listLabelRect = listmain.GetRect(FONTHEIGHT);
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()))
{
SoundDefOf.Click.PlayOneShotOnCamera();
@ -432,7 +445,11 @@ namespace RJWSexperience.SexHistory.UI
DrawPartnerPortrait(pawnRect, partner);
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))
{
_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 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')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFramework>net472</TargetFramework>
<RootNamespace>RJWSexperienceCum</RootNamespace>
<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>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<Company>amevarashi</Company>
<Optimize>True</Optimize>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
</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>
<PackageReference Include="Krafs.Rimworld.Ref">
<Version>1.4.3704</Version>
<Version>1.4.*</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Reference Include="RJW">
<HintPath>..\..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\RJWSexperience\RJWSexperience.csproj">
<Project>{9c728e06-573b-4b04-a07f-acbf60cb424d}</Project>
@ -57,5 +31,4 @@
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>