Separate RJW Cum integration, add Vanilla Skills Expanded integration

This commit is contained in:
amevarashi 2022-09-08 19:42:19 +05:00
parent d69b01c150
commit 0a412a0060
16 changed files with 238 additions and 39 deletions

View file

@ -36,6 +36,7 @@ This is a submod for RJW that adds:
Credits:
moreorganstodump Original Author
c0ffee RJW 4.9.0 update
Vegapnk Cum-Per-Penis, Multifilling Cumbuckets, Sex fills Cumbucket]]>
Vegapnk Cum-Per-Penis, Multifilling Cumbuckets, Sex fills Cumbucket
Rain Vanilla Skils Expanded integration]]>
</description>
</ModMetaData>

View file

@ -2,6 +2,7 @@
<loadFolders>
<v1.3>
<li>/</li>
<li IfModActive="Ludeon.RimWorld.Ideology">RJWSexperience_Ideology</li>
<li IfModActive="vanillaexpanded.skills">Mod Compatibility/Vanilla Skills Expanded</li>
<li IfModActive="rjw.cum">Mod Compatibility/RJW Cum</li>
</v1.3>
</loadFolders>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<JobDef MayRequire="rjw.cum">
<JobDef>
<defName>CleanSelfwithBucket</defName>
<driverClass>RJWSexperience.JobDriver_CleanSelfWithBucket</driverClass>
<driverClass>RJWSexperienceCum.JobDriver_CleanSelfWithBucket</driverClass>
<reportString>collecting cum</reportString>
<casualInterruptible>true</casualInterruptible>
</JobDef>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<WorkGiverDef MayRequire="rjw.cum">
<WorkGiverDef>
<defName>CleanSelfwithBucket</defName>
<label>collect cum into a bucket</label>
<giverClass>RJWSexperience.Cum.WorkGiver_CleanSelfWithBucket</giverClass>
<giverClass>RJWSexperienceCum.WorkGiver_CleanSelfWithBucket</giverClass>
<workType>BasicWorker</workType>
<verb>collect cum into a</verb>
<gerund>collecting cum into a</gerund>

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<Defs>
<!-- Sex ExpertiseDefs by Rain -->
<VSE.Expertise.ExpertiseDef>
<defName>Sensualist</defName>
<label>Sensualising</label>
<skill>Sex</skill>
<description>An expert in sex and sensuous activities.</description>
<statOffsets>
<SexAbility>0.05</SexAbility>
</statOffsets>
</VSE.Expertise.ExpertiseDef>
<VSE.Expertise.ExpertiseDef>
<defName>Rapist</defName>
<label>Raping</label>
<skill>Sex</skill>
<description>An experienced rapist.</description>
<statOffsets>
<Vulnerability>-0.025</Vulnerability>
<!-- Pawn gets more out of sex but isn't necessarily good at sex -->
<SexSatisfaction>0.025</SexSatisfaction>
</statOffsets>
</VSE.Expertise.ExpertiseDef>
<VSE.Expertise.ExpertiseDef>
<defName>Victim</defName>
<label>Rapee</label>
<skill>Sex</skill>
<description>An expertise in getting raped.</description>
<statOffsets>
<Vulnerability>0.025</Vulnerability>
<SexSatisfaction>-0.025</SexSatisfaction>
</statOffsets>
</VSE.Expertise.ExpertiseDef>
<VSE.Expertise.ExpertiseDef>
<defName>Submissive</defName>
<label>Submitting</label>
<skill>Sex</skill>
<description>An expert in sexual submission.</description>
<statOffsets>
<Vulnerability>0.025</Vulnerability>
<SexSatisfaction>0.025</SexSatisfaction>
</statOffsets>
</VSE.Expertise.ExpertiseDef>
<VSE.Expertise.ExpertiseDef>
<defName>Dominant</defName>
<label>Dominating</label>
<skill>Sex</skill>
<description>An expert in sexual domination.</description>
<statOffsets>
<Vulnerability>-0.025</Vulnerability>
<SexSatisfaction>0.025</SexSatisfaction>
</statOffsets>
</VSE.Expertise.ExpertiseDef>
<VSE.Expertise.ExpertiseDef>
<defName>Hypersexuality</defName>
<label>Sexualizing</label>
<skill>Sex</skill>
<description>A sex craved individual.</description>
<statOffsets>
<SexFrequency>0.05</SexFrequency>
</statOffsets>
</VSE.Expertise.ExpertiseDef>
<VSE.Expertise.ExpertiseDef>
<defName>Prude</defName>
<label>Pruding</label>
<skill>Sex</skill>
<description>An experienced person in sex but decided they do not like it.</description>
<statOffsets>
<SexFrequency>-0.05</SexFrequency>
</statOffsets>
</VSE.Expertise.ExpertiseDef>
</Defs>

View file

@ -1,10 +1,12 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31424.327
# Visual Studio Version 17
VisualStudioVersion = 17.2.32630.192
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJWSexperience", "RJWSexperience\RJWSexperience.csproj", "{9C728E06-573B-4B04-A07F-ACBF60CB424D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJWSexperienceCum", "RJWSexperienceCum\RJWSexperienceCum.csproj", "{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -15,6 +17,10 @@ Global
{9C728E06-573B-4B04-A07F-ACBF60CB424D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C728E06-573B-4B04-A07F-ACBF60CB424D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C728E06-573B-4B04-A07F-ACBF60CB424D}.Release|Any CPU.Build.0 = Release|Any CPU
{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}.Release|Any CPU.ActiveCfg = Release|Any CPU
{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View file

@ -1,14 +0,0 @@
using System;
using Verse;
using Verse.AI;
namespace RJWSexperience.Cum
{
public class JobGiver_UseBucket : ThinkNode_JobGiver
{
protected override Job TryGiveJob(Pawn pawn)
{
throw new NotImplementedException();
}
}
}

View file

@ -45,8 +45,6 @@
<Compile Include="Cum\Building_Cumbucket.cs" />
<Compile Include="Configurations.cs" />
<Compile Include="Cum\CumUtility.cs" />
<Compile Include="Cum\JobGiver_UseBucket.cs" />
<Compile Include="Cum\WorkGiver_CleanSelfWithBucket.cs" />
<Compile Include="DebugAction.cs" />
<Compile Include="ExtensionMethods\PawnExtensions.cs" />
<Compile Include="ExtensionMethods\SexPropsExtensions.cs" />
@ -56,7 +54,6 @@
<Compile Include="Harmony.cs" />
<Compile Include="Cum\IngestionOutcomeDoer_RecordEatenCum.cs" />
<Compile Include="Cum\Interactions\CumAddictPartKindUsageRule.cs" />
<Compile Include="Cum\JobDriver_CleanSelfWithBucket.cs" />
<Compile Include="Logs\DebugLogProvider.cs" />
<Compile Include="Logs\LogManager.cs" />
<Compile Include="LustUtility.cs" />

View file

@ -28,14 +28,10 @@ namespace RJWSexperience
public static readonly ChemicalDef Cum;
public static readonly NeedDef Chemical_Cum;
public static readonly TraitDef Virgin;
public static readonly JobDef CleanSelfwithBucket;
public static readonly KeyBindingDef OpenSexStatistics;
public static readonly StatDef SexAbility;
public static readonly HediffDef CumAddiction;
public static readonly HediffDef CumTolerance;
[MayRequire("rjw.cum")] public static readonly HediffDef Hediff_CumController;
[MayRequire("rjw.cum")] public static readonly HediffDef Hediff_Cum; //for humans & animals
[MayRequire("rjw.cum")] public static readonly HediffDef Hediff_InsectSpunk;
}
}

View file

@ -0,0 +1,13 @@
using RimWorld;
using Verse;
namespace RJWSexperienceCum
{
[DefOf]
public static class HediffDefOf
{
public static readonly HediffDef Hediff_CumController;
public static readonly HediffDef Hediff_Cum;
public static readonly HediffDef Hediff_InsectSpunk;
}
}

View file

@ -0,0 +1,11 @@
using RimWorld;
using Verse;
namespace RJWSexperienceCum
{
[DefOf]
public static class JobDefOf
{
public static readonly JobDef CleanSelfwithBucket;
}
}

View file

@ -1,9 +1,9 @@
using RimWorld;
using RJWSexperience;
using System.Collections.Generic;
using Verse;
using Verse.AI;
namespace RJWSexperience // Used in Menstruation with this namespace
namespace RJWSexperienceCum
{
public class JobDriver_CleanSelfWithBucket : JobDriver
{
@ -31,7 +31,7 @@ namespace RJWSexperience // Used in Menstruation with this namespace
this.FailOn(delegate
{
List<Hediff> hediffs = pawn.health.hediffSet.hediffs;
return !hediffs.Exists(x => x.def == VariousDefOf.Hediff_CumController);
return !hediffs.Exists(x => x.def == HediffDefOf.Hediff_CumController);
});
yield return Toils_Goto.GotoThing(TargetIndex.B, PathEndMode.ClosestTouch);
Toil cleaning = new Toil
@ -48,7 +48,7 @@ namespace RJWSexperience // Used in Menstruation with this namespace
protected void CleaningInit()
{
hediffcache = pawn.health.hediffSet.hediffs.Find(x => x.def == VariousDefOf.Hediff_Cum || x.def == VariousDefOf.Hediff_InsectSpunk);
hediffcache = pawn.health.hediffSet.hediffs.Find(x => x.def == HediffDefOf.Hediff_Cum || x.def == HediffDefOf.Hediff_InsectSpunk);
if (hediffcache == null)
{
pawn.jobs.EndCurrentJob(JobCondition.Succeeded);
@ -84,7 +84,7 @@ namespace RJWSexperience // Used in Menstruation with this namespace
protected void Finish()
{
if (pawn.CurJobDef == JobDefOf.Wait_MaintainPosture)
if (pawn.CurJobDef == RimWorld.JobDefOf.Wait_MaintainPosture)
{
pawn.jobs.EndCurrentJob(JobCondition.InterruptForced);
}

View file

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("RJWSexperienceCum")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RJWSexperienceCum")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("73cb4597-22bd-4a3e-a3ce-6d65dd080f65")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -0,0 +1,61 @@
<?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')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{73CB4597-22BD-4A3E-A3CE-6D65DD080F65}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<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>
</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.3.3389</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\RJWSexperience\RJWSexperience.csproj">
<Project>{9c728e06-573b-4b04-a07f-acbf60cb424d}</Project>
<Name>RJWSexperience</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -0,0 +1,12 @@
using RimWorld;
using Verse;
namespace RJWSexperienceCum
{
[DefOf]
public static class ThingDefOf
{
public static readonly ThingDef GatheredCum;
public static readonly ThingDef CumBucket;
}
}

View file

@ -1,16 +1,17 @@
using RimWorld;
using RJWSexperience;
using Verse;
using Verse.AI;
namespace RJWSexperience.Cum
namespace RJWSexperienceCum
{
public class WorkGiver_CleanSelfWithBucket : WorkGiver_Scanner
{
public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForDef(VariousDefOf.CumBucket);
public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForDef(ThingDefOf.CumBucket);
public override PathEndMode PathEndMode => PathEndMode.ClosestTouch;
public override bool ShouldSkip(Pawn pawn, bool forced = false)
{
return VariousDefOf.Hediff_CumController == null || !pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_CumController);
return HediffDefOf.Hediff_CumController == null || !pawn.health.hediffSet.HasHediff(HediffDefOf.Hediff_CumController);
}
public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false)
@ -18,12 +19,12 @@ namespace RJWSexperience.Cum
if (!(t is Building_CumBucket bucket))
return false;
return bucket.StoredStackCount < VariousDefOf.GatheredCum.stackLimit;
return bucket.StoredStackCount < ThingDefOf.GatheredCum.stackLimit;
}
public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false)
{
return JobMaker.MakeJob(VariousDefOf.CleanSelfwithBucket, pawn, t);
return JobMaker.MakeJob(JobDefOf.CleanSelfwithBucket, pawn, t);
}
}
}