mirror of
https://gitgud.io/c0ffeeeeeeee/coffees-rjw-ideology-addons.git
synced 2024-08-14 23:57:38 +00:00
Compare commits
4 commits
1d6ecb3f95
...
711a61a31a
Author | SHA1 | Date | |
---|---|---|---|
|
711a61a31a | ||
|
6cdd801207 | ||
|
cd8fe17713 | ||
|
5b4b203d13 |
31 changed files with 313 additions and 94 deletions
BIN
1.4/Assemblies/C0ffee's RJW Ideology Addons.dll
Normal file
BIN
1.4/Assemblies/C0ffee's RJW Ideology Addons.dll
Normal file
Binary file not shown.
|
@ -6,6 +6,7 @@
|
|||
<url>https://gitgud.io/c0ffeeeeeeee/rimworld-animations</url>
|
||||
<supportedVersions>
|
||||
<li>1.3</li>
|
||||
<li>1.4</li>
|
||||
</supportedVersions>
|
||||
<packageId>c0ffee.rjw.IdeologyAddons</packageId>
|
||||
<modDependencies>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Manifest>
|
||||
<identifier>C0ffeeRIA</identifier>
|
||||
<version>0.0.5</version>
|
||||
<version>0.0.6</version>
|
||||
</Manifest>
|
||||
|
|
|
@ -9,15 +9,16 @@
|
|||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>C0ffee_s_RJW_Ideology_Addons</RootNamespace>
|
||||
<AssemblyName>C0ffee%27s RJW Ideology Addons</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>1.3\Assemblies\</OutputPath>
|
||||
<OutputPath>1.4\Assemblies\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
@ -33,7 +34,7 @@
|
|||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="0Harmony">
|
||||
<HintPath>..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
|
||||
<HintPath>..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Assembly-CSharp">
|
||||
|
@ -45,7 +46,7 @@
|
|||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJW">
|
||||
<HintPath>..\rjw\1.3\Assemblies\RJW.dll</HintPath>
|
||||
<HintPath>..\rjw\1.4\Assemblies\RJW.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
|
|
Binary file not shown.
BIN
CRIALactation/1.4/Assemblies/CRIALactation.dll
Normal file
BIN
CRIALactation/1.4/Assemblies/CRIALactation.dll
Normal file
Binary file not shown.
|
@ -9,15 +9,16 @@
|
|||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>CRIALactation</RootNamespace>
|
||||
<AssemblyName>CRIALactation</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>1.3\Assemblies\</OutputPath>
|
||||
<OutputPath>1.4\Assemblies\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
@ -32,7 +33,7 @@
|
|||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="0Harmony">
|
||||
<HintPath>..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
|
||||
<HintPath>..\..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Assembly-CSharp">
|
||||
|
@ -40,7 +41,7 @@
|
|||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="HugsLib">
|
||||
<HintPath>..\..\..\..\..\workshop\content\294100\818773962\v1.3\Assemblies\HugsLib.dll</HintPath>
|
||||
<HintPath>..\..\..\..\..\workshop\content\294100\818773962\v1.4\Assemblies\HugsLib.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Milk">
|
||||
|
@ -48,7 +49,7 @@
|
|||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJW">
|
||||
<HintPath>..\..\rjw\1.3\Assemblies\RJW.dll</HintPath>
|
||||
<HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
|
@ -70,17 +71,21 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Source\CompProperties\CompAbilityEffects\CompProperties_AbilityBeginInducingLactation.cs" />
|
||||
<Compile Include="Source\CompProperties\CompAbilityEffects\CompProperties_AbilityConvertHucow.cs" />
|
||||
<Compile Include="Source\CompProperties\CompProperties_InduceLactation.cs" />
|
||||
<Compile Include="Source\CompProperties\CompProperties_Lactation.cs" />
|
||||
<Compile Include="Source\Comps\CompAbilityEffects\CompAbilityEffect_BeginInducingLactation.cs" />
|
||||
<Compile Include="Source\Comps\CompAbilityEffects\CompAbilityEffect_ConvertHucow.cs" />
|
||||
<Compile Include="Source\Comps\CompInduceLactation.cs" />
|
||||
<Compile Include="Source\Comps\CompLactation.cs" />
|
||||
<Compile Include="Source\HarmonyPatches\HarmonyPatch_FoodUtility.cs" />
|
||||
<Compile Include="Source\HarmonyPatches\HarmonyPatch_Ideo.cs" />
|
||||
<Compile Include="Source\HarmonyPatches\HarmonyPatch_Thing.cs" />
|
||||
<Compile Include="Source\HarmonyPatches\Harmony_PatchAll.cs" />
|
||||
<Compile Include="Source\HarmonyPatches\RJW\HarmonyPatch_Milk_HumanCompHasGatherableBodyResource.cs" />
|
||||
<Compile Include="Source\HediffDefOf\HediffDefOf_Milk.cs" />
|
||||
<Compile Include="Source\Hediffs\HediffCompProperties_LactationInduction.cs" />
|
||||
<Compile Include="Source\Hediffs\HediffCompProperties_StopOnceNotLactating.cs" />
|
||||
<Compile Include="Source\Hediffs\HediffComp_LactationInduction.cs" />
|
||||
<Compile Include="Source\Hediffs\HediffComp_StopOnceNotLactating.cs" />
|
||||
<Compile Include="Source\HistoryEventDefOf\HistoryEventDefOf_Milk.cs" />
|
||||
<Compile Include="Source\JobDefOf\JobDefOf_CRIALactation.cs" />
|
||||
|
|
|
@ -43,4 +43,48 @@
|
|||
<li Class="CRIALactation.CompProperties_AbilityConvertHucow" />
|
||||
</comps>
|
||||
</AbilityDef>
|
||||
|
||||
<AbilityDef>
|
||||
<defName>BeginInducingLactation</defName>
|
||||
<label>begin inducing lactation</label>
|
||||
<description>Stimulate someone's milk ducts to begin the process of lactation without childbirth.</description>
|
||||
<jobDef>CastAbilityOnThingMelee</jobDef>
|
||||
<iconPath>UI/Abilities/WorkDrive</iconPath>
|
||||
<warmupMoteSocialSymbol>UI/Issues/Lactating</warmupMoteSocialSymbol>
|
||||
<stunTargetWhileCasting>True</stunTargetWhileCasting>
|
||||
<showPsycastEffects>False</showPsycastEffects>
|
||||
<displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
|
||||
<disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
|
||||
|
||||
<overrideGroupCooldown>True</overrideGroupCooldown>
|
||||
<cooldownTicksRange>3000</cooldownTicksRange>
|
||||
|
||||
<hotKey>Misc12</hotKey>
|
||||
<uiOrder>4</uiOrder>
|
||||
<warmupStartSound>WorkDrive_Warmup</warmupStartSound>
|
||||
<statBases>
|
||||
<Ability_Duration>3000</Ability_Duration>
|
||||
</statBases>
|
||||
<verbProperties>
|
||||
<verbClass>Verb_CastAbilityTouch</verbClass>
|
||||
<drawAimPie>False</drawAimPie>
|
||||
<range>-1</range>
|
||||
<warmupTime>3.0</warmupTime>
|
||||
<targetParams>
|
||||
<canTargetAnimals>false</canTargetAnimals>
|
||||
<canTargetSelf>false</canTargetSelf>
|
||||
<canTargetBuildings>false</canTargetBuildings>
|
||||
<canTargetMechs>false</canTargetMechs>
|
||||
<onlyTargetColonistsOrPrisonersOrSlaves>true</onlyTargetColonistsOrPrisonersOrSlaves>
|
||||
</targetParams>
|
||||
</verbProperties>
|
||||
<comps>
|
||||
<li Class="CompProperties_AbilityGiveHediff">
|
||||
<compClass>CompAbilityEffect_GiveHediff</compClass>
|
||||
<hediffDef>InducingLactation</hediffDef>
|
||||
<applicableToMechs>False</applicableToMechs>
|
||||
</li>
|
||||
<li Class="CRIALactation.CompProperties_AbilityBeginInducingLactation" />
|
||||
</comps>
|
||||
</AbilityDef>
|
||||
</Defs>
|
|
@ -21,4 +21,26 @@
|
|||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
|
||||
<HediffDef ParentName="RoleStatBuff">
|
||||
<defName>InducingLactation</defName>
|
||||
<label>inducing lactation</label>
|
||||
<description>This person's breasts are being encouraged to lactate. This is a long, arduous process of breast and nipple stimulation. It causes feelings of soreness and swelling that ends once milk begins expressing.</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_DisappearsOnDeath" />
|
||||
<li Class="CRIALactation.HediffCompProperties_LactationInduction" />
|
||||
</comps>
|
||||
<isBad>false</isBad>
|
||||
<stages>
|
||||
<li>
|
||||
<statFactors>
|
||||
<MilkProductionYield>2.75</MilkProductionYield>
|
||||
<MilkProductionSpeed>0.5</MilkProductionSpeed>
|
||||
<WorkSpeedGlobal>0.4</WorkSpeedGlobal>
|
||||
<MoveSpeed>0.65</MoveSpeed>
|
||||
</statFactors>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
</Defs>
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<!--
|
||||
<MemeGroupDef>
|
||||
<defName>Sexuality</defName>
|
||||
<drawOffset>(0.09, 0.33)</drawOffset>
|
||||
<maxRows>1</maxRows>
|
||||
</MemeGroupDef>-->
|
||||
</MemeGroupDef>
|
||||
|
||||
<MemeDef>
|
||||
<defName>Hucow</defName>
|
||||
<label>hucow</label>
|
||||
<description>Breast milk should be produced for and consumed by all.</description>
|
||||
<iconPath>UI/Memes/Hucow</iconPath>
|
||||
<groupDef>Misc</groupDef>
|
||||
<groupDef>Sexuality</groupDef>
|
||||
<exclusionTags>
|
||||
<li>Sexuality</li>
|
||||
</exclusionTags>
|
||||
<impact>3</impact>
|
||||
<renderOrder>50</renderOrder>
|
||||
<requireOne>
|
||||
|
@ -20,9 +22,6 @@
|
|||
<li>Lactating_Essential</li>
|
||||
<li>Lactating_MandatoryHucow</li>
|
||||
</li>
|
||||
<li>
|
||||
<li>IdeoRole_HucowHandler</li>
|
||||
</li>
|
||||
</requireOne>
|
||||
<generalRules>
|
||||
<rulesStrings>
|
||||
|
@ -64,21 +63,17 @@
|
|||
</descriptionMaker>
|
||||
<symbolPacks>
|
||||
<li>
|
||||
<ideoName>Lactatism</ideoName>
|
||||
<theme>lactation</theme>
|
||||
<adjective>lactatist</adjective>
|
||||
<member>lactatist</member>
|
||||
<ideoName>Bovinism</ideoName>
|
||||
<theme>bovines</theme>
|
||||
<adjective>Bovine</adjective>
|
||||
<member>Bovinist</member>
|
||||
</li>
|
||||
<li>
|
||||
<ideoName>Hucowism</ideoName>
|
||||
<theme>hucows</theme>
|
||||
<adjective>bovine</adjective>
|
||||
<adjective>hucow</adjective>
|
||||
<member>Hucowist</member>
|
||||
</li>
|
||||
</symbolPacks>
|
||||
<ritualsToMake>1</ritualsToMake>
|
||||
<replaceRitualsWithTags>
|
||||
<li>CelebratedDate</li>
|
||||
</replaceRitualsWithTags>
|
||||
</MemeDef>
|
||||
</Defs>
|
|
@ -30,20 +30,27 @@
|
|||
</roleTags>
|
||||
</PreceptDef>
|
||||
-->
|
||||
<PreceptDef ParentName="PreceptRoleSingleBase">
|
||||
|
||||
<IssueDef>
|
||||
<defName>HucowHandling</defName>
|
||||
<label>hucow handling</label>
|
||||
<iconPath>UI/Issues/Lactating</iconPath>
|
||||
</IssueDef>
|
||||
|
||||
<PreceptDef ParentName="PreceptRoleMultiBase">
|
||||
<defName>IdeoRole_HucowHandler</defName>
|
||||
<issue>HucowHandling</issue>
|
||||
<!--this is needed to override old issue in issuedef to have hucow handler role-->
|
||||
<label>hucow handler</label>
|
||||
<description>A special ideoligious status which can convert lactating pawns to hucows, increasing their lactation yield at the cost of their work and movement speed. \n\nThey also receive an increase in the speed at which they harvest milk, and the speed at which they induce lactation in other pawns.</description>
|
||||
<iconPath>UI/Roles/SpecialistMelee</iconPath>
|
||||
<nameMaker>NamerRoleMoralist</nameMaker>
|
||||
<displayOrderInImpact>100</displayOrderInImpact>
|
||||
<roleTags>
|
||||
<li>HucowHandler</li>
|
||||
</roleTags>
|
||||
|
||||
<roleRequirements>
|
||||
<li Class="RoleRequirement_SameIdeo">
|
||||
<labelKey>RoleRequirementLabelSameIdeo</labelKey>
|
||||
</li>
|
||||
<li Class="RoleRequirement_MinSkillAny">
|
||||
<skills>
|
||||
<Animals>6</Animals>
|
||||
|
@ -51,7 +58,9 @@
|
|||
</li>
|
||||
|
||||
</roleRequirements>
|
||||
|
||||
<roleRequiredWorkTags>
|
||||
<li>Animals</li>
|
||||
</roleRequiredWorkTags>
|
||||
<roleEffects>
|
||||
<li Class="RoleEffect_PawnStatOffset">
|
||||
<statDef>AnimalGatherSpeed</statDef>
|
||||
|
@ -138,8 +147,8 @@
|
|||
</requiredMemes>
|
||||
<grantedAbilities>
|
||||
<li>ConvertToHucow</li>
|
||||
<li>BeginInducingLactation</li>
|
||||
</grantedAbilities>
|
||||
<displayOrderInImpact>2</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
|
||||
</Defs>
|
||||
|
|
|
@ -17,9 +17,7 @@
|
|||
<li Class="PatchOperationAdd">
|
||||
<xpath>/Defs/ThingDef[@Name="BasePawn"]/comps</xpath>
|
||||
<value>
|
||||
<li Class="CRIALactation.CompProperties_InduceLactation">
|
||||
<DaysToLactating>15</DaysToLactating>
|
||||
<TimesMassagedADay>2.5</TimesMassagedADay>
|
||||
<li Class="CRIALactation.CompProperties_Lactation">
|
||||
</li>
|
||||
</value>
|
||||
</li>
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using Milk;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace CRIALactation
|
||||
{
|
||||
public class CompProperties_AbilityBeginInducingLactation : CompProperties_AbilityEffect
|
||||
{
|
||||
|
||||
public CompProperties_AbilityBeginInducingLactation()
|
||||
{
|
||||
this.compClass = typeof(CompAbilityEffect_BeginInducingLactation);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using Milk;
|
||||
using UnityEngine;
|
||||
|
||||
namespace CRIALactation
|
||||
{
|
||||
public class CompProperties_InduceLactation : CompProperties
|
||||
{
|
||||
public CompProperties_InduceLactation()
|
||||
{
|
||||
this.compClass = typeof(CompInduceLactation);
|
||||
}
|
||||
|
||||
public float DaysToLactating = 15;
|
||||
public float TimesMassagedADay = 2.5f;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using Milk;
|
||||
using UnityEngine;
|
||||
|
||||
namespace CRIALactation
|
||||
{
|
||||
public class CompProperties_Lactation : CompProperties
|
||||
{
|
||||
public CompProperties_Lactation()
|
||||
{
|
||||
this.compClass = typeof(CompLactation);
|
||||
}
|
||||
|
||||
//public float DaysToLactating = 15;
|
||||
//public float TimesMassagedADay = 2.5f;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
using RimWorld;
|
||||
using RimWorld.Planet;
|
||||
using rjw;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
|
||||
namespace CRIALactation
|
||||
{
|
||||
public class CompAbilityEffect_BeginInducingLactation : CompAbilityEffect
|
||||
{
|
||||
|
||||
public override bool Valid(LocalTargetInfo target, bool throwMessages = false)
|
||||
{
|
||||
Pawn pawn = target.Pawn;
|
||||
|
||||
|
||||
if (pawn == null) return false;
|
||||
if (!(pawn.IsColonistPlayerControlled || pawn.IsSlaveOfColony || pawn.IsPrisonerOfColony)) return false;
|
||||
if (!Genital_Helper.has_breasts(pawn) || Genital_Helper.has_male_breasts(pawn)) return false;
|
||||
if (LactationUtility.IsLactating(pawn)) return false;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -16,9 +16,9 @@ namespace CRIALactation
|
|||
public override bool Valid(LocalTargetInfo target, bool throwMessages = false)
|
||||
{
|
||||
Pawn pawn = target.Pawn;
|
||||
return pawn != null && AbilityUtility.ValidateMustBeHuman(pawn, throwMessages) &&
|
||||
AbilityUtility.ValidateNoMentalState(pawn, throwMessages) &&
|
||||
AbilityUtility.ValidateSameIdeo(this.parent.pawn, pawn, throwMessages) &&
|
||||
return pawn != null && AbilityUtility.ValidateMustBeHuman(pawn, throwMessages, this.parent) &&
|
||||
AbilityUtility.ValidateNoMentalState(pawn, throwMessages, this.parent) &&
|
||||
AbilityUtility.ValidateSameIdeo(this.parent.pawn, pawn, throwMessages, this.parent) &&
|
||||
LactationUtility.IsLactating(pawn) &&
|
||||
!LactationUtility.IsHucow(pawn);
|
||||
|
||||
|
|
|
@ -10,7 +10,34 @@ using UnityEngine;
|
|||
|
||||
namespace CRIALactation
|
||||
{
|
||||
public class CompInduceLactation : ThingComp
|
||||
public class CompLactation : ThingComp
|
||||
{
|
||||
public int lastHumanLactationIngestedTick = 0;
|
||||
public override void PostExposeData()
|
||||
{
|
||||
base.PostExposeData();
|
||||
Scribe_Values.Look<int>(ref this.lastHumanLactationIngestedTick, "lastHumanLactationIngestedTick", 0);
|
||||
|
||||
}
|
||||
|
||||
public override string CompInspectStringExtra()
|
||||
{
|
||||
if((parent as Pawn).health?.hediffSet?.GetFirstHediffOfDef(HediffDefOf_Milk.InducingLactation) != null
|
||||
&& (parent as Pawn).health.hediffSet.GetFirstHediffOfDef(HediffDefOf_Milk.InducingLactation).TryGetComp<HediffComp_LactationInduction>().canMassage())
|
||||
{
|
||||
return "Ready to stimulate breasts for lactation.";
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public class CompLactation : ThingComp
|
||||
{
|
||||
private readonly int OneDayInTicks = 60000;
|
||||
private int TicksSinceLastMassage = -60000;
|
||||
|
@ -124,4 +151,6 @@ namespace CRIALactation
|
|||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
|
@ -17,8 +17,8 @@ namespace CRIALactation
|
|||
|
||||
if(__instance?.def == ThingDefOf_Milk.HumanMilk || __instance?.def == ThingDefOf_Milk.HumanoidMilk)
|
||||
{
|
||||
if (ingester.TryGetComp<CompInduceLactation>() == null) return;
|
||||
ingester.TryGetComp<CompInduceLactation>().lastHumanLactationIngestedTick = Find.TickManager.TicksGame;
|
||||
if (ingester.TryGetComp<CompLactation>() == null) return;
|
||||
ingester.TryGetComp<CompLactation>().lastHumanLactationIngestedTick = Find.TickManager.TicksGame;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,9 @@ namespace CRIALactation
|
|||
public static HediffDef Lactating_Permanent;
|
||||
public static HediffDef Heavy_Lactating_Permanent;
|
||||
public static HediffDef Lactating_Natural;
|
||||
|
||||
|
||||
public static HediffDef InducingLactation;
|
||||
public static HediffDef Hucow;
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
|
||||
namespace CRIALactation
|
||||
{
|
||||
public class HediffCompProperties_LactationInduction : HediffCompProperties
|
||||
{
|
||||
public HediffCompProperties_LactationInduction()
|
||||
{
|
||||
this.compClass = typeof(HediffComp_LactationInduction);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
|
||||
namespace CRIALactation
|
||||
{
|
||||
public class HediffComp_LactationInduction : HediffComp
|
||||
{
|
||||
private readonly int OneDayInTicks = 60000;
|
||||
private float TimesMassagedADay = 2.5f;
|
||||
private int tickLastMassaged = 0, DaysToLactating = 15;
|
||||
|
||||
|
||||
|
||||
public void massage(Pawn massager)
|
||||
{
|
||||
|
||||
this.parent.Severity += (float)1 / (DaysToLactating * (TimesMassagedADay + Rand.Value));
|
||||
}
|
||||
|
||||
public bool canMassage()
|
||||
{
|
||||
return tickLastMassaged + OneDayInTicks / TimesMassagedADay < GenTicks.TicksGame;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override void CompExposeData()
|
||||
{
|
||||
Scribe_Values.Look<int>(ref this.tickLastMassaged, "lastLactationInductionMassagedTick", 0);
|
||||
base.CompExposeData();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -28,6 +28,7 @@ namespace CRIALactation
|
|||
Toil massage = new Toil();
|
||||
massage.FailOnDespawnedOrNull(TargetIndex.A);
|
||||
massage.FailOnAggroMentalStateAndHostile(TargetIndex.A);
|
||||
float massageProgress = 0;
|
||||
massage.initAction = delegate
|
||||
{
|
||||
Pawn p = job.GetTarget(TargetIndex.A).Thing as Pawn;
|
||||
|
@ -46,14 +47,9 @@ namespace CRIALactation
|
|||
Pawn p = job.GetTarget(TargetIndex.A).Thing as Pawn;
|
||||
if (massageProgress >= WorkTotal)
|
||||
{
|
||||
p.TryGetComp<CompInduceLactation>().MassageBreasts();
|
||||
p.health.hediffSet.GetFirstHediffOfDef(HediffDefOf_Milk.InducingLactation).TryGetComp<HediffComp_LactationInduction>().massage(pawn);
|
||||
return JobCondition.Succeeded;
|
||||
}
|
||||
|
||||
if (!(p.TryGetComp<CompInduceLactation>().isActive && p.TryGetComp<CompInduceLactation>().CanMassage))
|
||||
{
|
||||
return JobCondition.Incompletable;
|
||||
}
|
||||
|
||||
return JobCondition.Ongoing;
|
||||
|
||||
|
@ -74,7 +70,5 @@ namespace CRIALactation
|
|||
yield break;
|
||||
|
||||
}
|
||||
|
||||
float massageProgress = 0f;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,13 +55,10 @@ namespace CRIALactation
|
|||
|
||||
public static bool isMassageable(Pawn p)
|
||||
{
|
||||
CompInduceLactation c = p.TryGetComp<CompInduceLactation>();
|
||||
if (c != null && c.isActive && c.CanMassage)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
Hediff lactationInductionHediff = p.health?.hediffSet?.GetFirstHediffOfDef(HediffDefOf_Milk.InducingLactation);
|
||||
if (lactationInductionHediff == null) return false;
|
||||
|
||||
return false;
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -13,9 +13,11 @@ namespace CRIALactation
|
|||
public class PreceptComp_Lactation : PreceptComp
|
||||
{
|
||||
|
||||
public override void Notify_MemberGenerated(Pawn pawn, Precept precept)
|
||||
public override void Notify_MemberGenerated(Pawn pawn, Precept precept, bool newborn)
|
||||
{
|
||||
|
||||
if (newborn) return;
|
||||
|
||||
if((precept.def == PreceptDefOf_Lactation.Lactating_Essential
|
||||
|| precept.def == PreceptDefOf_Lactation.Lactating_MandatoryHucow)
|
||||
&& LactationUtility.HasMilkableBreasts(pawn))
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace CRIALactation
|
|||
|
||||
protected override ThoughtState ShouldHaveThought(Pawn p)
|
||||
{
|
||||
int num = Mathf.Max(0, p.TryGetComp<CompInduceLactation>().lastHumanLactationIngestedTick);
|
||||
int num = Mathf.Max(0, p.TryGetComp<CompLactation>().lastHumanLactationIngestedTick);
|
||||
return Find.TickManager.TicksGame - num > 480000 && !LactationUtility.IsHucow(p);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,13 +36,15 @@ namespace CRIALactation
|
|||
public override bool HasJobOnThing(Pawn p, Thing t, bool forced = false)
|
||||
{
|
||||
Pawn pawn2 = t as Pawn;
|
||||
if(pawn2?.TryGetComp<CompInduceLactation>() == null)
|
||||
if(pawn2?.health?.hediffSet.GetFirstHediffOfDef(HediffDefOf_Milk.InducingLactation) == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
CompInduceLactation c = pawn2.TryGetComp<CompInduceLactation>();
|
||||
Hediff lactationInductionHediff = pawn2?.health?.hediffSet?.GetFirstHediffOfDef(HediffDefOf_Milk.InducingLactation);
|
||||
if (lactationInductionHediff == null) return false;
|
||||
|
||||
return p != pawn2 && c.isActive && c.CanMassage && !pawn2.Downed && !pawn2.Drafted && !pawn2.InAggroMentalState && !pawn2.IsFormingCaravan() && pawn2.CanCasuallyInteractNow(false, true, false) && p.CanReserve(pawn2, 1, -1, null, forced);
|
||||
HediffComp_LactationInduction lactInductComp = lactationInductionHediff.TryGetComp<HediffComp_LactationInduction>();
|
||||
return p != pawn2 && lactInductComp.canMassage() && !pawn2.Downed && !pawn2.Drafted && !pawn2.InAggroMentalState && !pawn2.IsFormingCaravan() && pawn2.CanCasuallyInteractNow(false, true, false) && p.CanReserve(pawn2, 1, -1, null, forced);
|
||||
|
||||
}
|
||||
|
||||
|
|
BIN
CRIAOrgy/1.4/Assemblies/CRIAOrgy.dll
Normal file
BIN
CRIAOrgy/1.4/Assemblies/CRIAOrgy.dll
Normal file
Binary file not shown.
|
@ -9,15 +9,16 @@
|
|||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>CRIAOrgy</RootNamespace>
|
||||
<AssemblyName>CRIAOrgy</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>Assemblies\</OutputPath>
|
||||
<OutputPath>1.4\Assemblies\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
@ -33,19 +34,19 @@
|
|||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="0Harmony">
|
||||
<HintPath>..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
|
||||
<HintPath>..\..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Assembly-CSharp">
|
||||
<HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="HugsLib">
|
||||
<HintPath>..\..\..\..\..\workshop\content\294100\818773962\v1.3\Assemblies\HugsLib.dll</HintPath>
|
||||
<Reference Include="Milk">
|
||||
<HintPath>..\..\rjw-mc\1.3\Assemblies\Milk.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJW">
|
||||
<HintPath>..\..\rjw\1.3\Assemblies\RJW.dll</HintPath>
|
||||
<HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
|
@ -73,8 +74,6 @@
|
|||
<Content Include="Defs\PreceptDefs\Precepts_PublicSex.xml" />
|
||||
<Content Include="Defs\ThoughtDefs\Thoughts_Ritual_Orgy.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Assemblies\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
|
@ -9,4 +9,13 @@
|
|||
<li IfModActive="c0ffee.rjw.events">CRIAOrgy</li>
|
||||
<li IfModActive="c0ffee.rjw.events">CRIAOrgy/1.3</li>
|
||||
</v1.3>
|
||||
<v1.4>
|
||||
<li>/</li>
|
||||
<li>1.4</li>
|
||||
<li IfModActive="rjw.milk.humanoid">CRIALactation</li>
|
||||
<li IfModActive="rjw.milk.humanoid">CRIALactation/1.4</li>
|
||||
|
||||
<li IfModActive="c0ffee.rjw.events">CRIAOrgy</li>
|
||||
<li IfModActive="c0ffee.rjw.events">CRIAOrgy/1.4</li>
|
||||
</v1.4>
|
||||
</loadFolders>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue