mirror of
				https://gitgud.io/lutepickle/rjw_menstruation.git
				synced 2024-08-14 22:46:52 +00:00 
			
		
		
		
	1.0.5.4
This commit is contained in:
		
							parent
							
								
									1851627615
								
							
						
					
					
						commit
						c1ac806cb2
					
				
					 35 changed files with 778 additions and 45 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -136,5 +136,53 @@
 | 
			
		|||
		</comps>
 | 
			
		||||
	</ThingDef>
 | 
			
		||||
	
 | 
			
		||||
	<ThingDef ParentName="MakeableDrugPillBase">
 | 
			
		||||
		<defName>Cyclosporine</defName>
 | 
			
		||||
		<label>cyclosporine</label>
 | 
			
		||||
		<description>An immunosuppressant.
Can cure antisperm antibody.</description>
 | 
			
		||||
		<graphicData>
 | 
			
		||||
			<texPath>Things/Item/Cyclosporine</texPath>
 | 
			
		||||
			<graphicClass>Graphic_StackCount</graphicClass>
 | 
			
		||||
		</graphicData>
 | 
			
		||||
		<rotatable>false</rotatable>
 | 
			
		||||
		<statBases>
 | 
			
		||||
			<WorkToMake>1000</WorkToMake>
 | 
			
		||||
			<MarketValue>12</MarketValue>
 | 
			
		||||
			<Mass>0.01</Mass>
 | 
			
		||||
		</statBases>
 | 
			
		||||
		<techLevel>Industrial</techLevel>
 | 
			
		||||
		<ingestible>
 | 
			
		||||
			<drugCategory>Medical</drugCategory>
 | 
			
		||||
			<outcomeDoers>
 | 
			
		||||
				<li Class="IngestionOutcomeDoer_GiveHediff">
 | 
			
		||||
					<hediffDef>Hediff_Cyclosporine</hediffDef>
 | 
			
		||||
					<severity>1.0</severity>
 | 
			
		||||
				</li>
 | 
			
		||||
				<li Class="RJW_Menstruation.IngestionOutcomeDoer_AdjustSeverity">
 | 
			
		||||
					<hediffDef>Hediff_ASA</hediffDef>
 | 
			
		||||
					<severity>-0.20</severity>
 | 
			
		||||
				</li>
 | 
			
		||||
			</outcomeDoers>
 | 
			
		||||
		</ingestible>
 | 
			
		||||
		<recipeMaker>
 | 
			
		||||
			<researchPrerequisite>DrugProduction</researchPrerequisite>
 | 
			
		||||
			<recipeUsers>
 | 
			
		||||
				<li>DrugLab</li>
 | 
			
		||||
			</recipeUsers>
 | 
			
		||||
		</recipeMaker>
 | 
			
		||||
		<costList>
 | 
			
		||||
			<MedicineHerbal>1</MedicineHerbal>
 | 
			
		||||
		</costList>
 | 
			
		||||
		<comps>
 | 
			
		||||
			<li Class="CompProperties_Drug">
 | 
			
		||||
			<addictiveness>0</addictiveness>
 | 
			
		||||
			<listOrder>1000</listOrder>
 | 
			
		||||
				<overdoseSeverityOffset>
 | 
			
		||||
					<min>0.08</min>
 | 
			
		||||
					<max>0.14</max>
 | 
			
		||||
				</overdoseSeverityOffset>
 | 
			
		||||
			</li>
 | 
			
		||||
		</comps>
 | 
			
		||||
	</ThingDef>
 | 
			
		||||
	
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										111
									
								
								1.3/Defs/HediffDef/Hediffs_Cum.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								1.3/Defs/HediffDef/Hediffs_Cum.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,111 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<HediffDef>
 | 
			
		||||
		<hediffClass>HediffWithComps</hediffClass>	
 | 
			
		||||
		<defName>Hediff_ASA</defName>
 | 
			
		||||
		<label>Antisperm antibody</label>
 | 
			
		||||
		<labelNoun>antisperm antibody</labelNoun>
 | 
			
		||||
		<description>Antisperm antibody.
Increases death rate of sperm.</description>
 | 
			
		||||
		<labelNounPretty>{0} got antisperm antibody</labelNounPretty>
 | 
			
		||||
		<defaultLabelColor>(0.8,0.1,0.1)</defaultLabelColor>	
 | 
			
		||||
		<isBad>false</isBad>
 | 
			
		||||
		<tendable>false</tendable>
 | 
			
		||||
		<makesSickThought>false</makesSickThought>
 | 
			
		||||
		<makesAlert>true</makesAlert>	
 | 
			
		||||
		<maxSeverity>1</maxSeverity>
 | 
			
		||||
		<initialSeverity>0.1</initialSeverity>
 | 
			
		||||
		<injuryProps>
 | 
			
		||||
			<canMerge>true</canMerge>
 | 
			
		||||
		</injuryProps>	
 | 
			
		||||
		<stages>
 | 
			
		||||
			<li>
 | 
			
		||||
				<becomeVisible>false</becomeVisible>
 | 
			
		||||
			</li>
 | 
			
		||||
			<li>
 | 
			
		||||
				<minSeverity>0.40</minSeverity>
 | 
			
		||||
				<becomeVisible>true</becomeVisible>
 | 
			
		||||
			</li>
 | 
			
		||||
		</stages>	
 | 
			
		||||
		<comps>
 | 
			
		||||
		</comps>
 | 
			
		||||
	</HediffDef>
 | 
			
		||||
 | 
			
		||||
	<HediffDef>
 | 
			
		||||
		<hediffClass>HediffWithComps</hediffClass>	
 | 
			
		||||
		<defName>Hediff_ForceFertile</defName>
 | 
			
		||||
		<label>fertile</label>
 | 
			
		||||
		<labelNoun>fertile</labelNoun>
 | 
			
		||||
		<description>fertile</description>
 | 
			
		||||
		<labelNounPretty>{0} is fertile</labelNounPretty>
 | 
			
		||||
		<defaultLabelColor>(0.3,0.3,0.8)</defaultLabelColor>	
 | 
			
		||||
		<isBad>false</isBad>
 | 
			
		||||
		<tendable>false</tendable>
 | 
			
		||||
		<makesSickThought>false</makesSickThought>
 | 
			
		||||
		<makesAlert>true</makesAlert>	
 | 
			
		||||
		<maxSeverity>3</maxSeverity>
 | 
			
		||||
		<initialSeverity>0.1</initialSeverity>
 | 
			
		||||
		<injuryProps>
 | 
			
		||||
			<canMerge>true</canMerge>
 | 
			
		||||
		</injuryProps>	
 | 
			
		||||
		<stages>
 | 
			
		||||
			<li>
 | 
			
		||||
				<becomeVisible>false</becomeVisible>
 | 
			
		||||
				<capMods>
 | 
			
		||||
					<li>
 | 
			
		||||
						<capacity>RJW_Fertility</capacity>
 | 
			
		||||
						<offset>0.05</offset>
 | 
			
		||||
					</li>
 | 
			
		||||
				</capMods>
 | 
			
		||||
			</li>
 | 
			
		||||
			<li>
 | 
			
		||||
				<minSeverity>0.20</minSeverity>
 | 
			
		||||
				<becomeVisible>false</becomeVisible>
 | 
			
		||||
				<capMods>
 | 
			
		||||
					<li>
 | 
			
		||||
						<capacity>RJW_Fertility</capacity>
 | 
			
		||||
						<offset>0.25</offset>
 | 
			
		||||
					</li>
 | 
			
		||||
				</capMods>
 | 
			
		||||
			</li>
 | 
			
		||||
			<li>
 | 
			
		||||
				<minSeverity>0.40</minSeverity>
 | 
			
		||||
				<becomeVisible>true</becomeVisible>
 | 
			
		||||
				<capMods>
 | 
			
		||||
					<li>
 | 
			
		||||
						<capacity>RJW_Fertility</capacity>
 | 
			
		||||
						<offset>0.50</offset>
 | 
			
		||||
					</li>
 | 
			
		||||
				</capMods>
 | 
			
		||||
			</li>
 | 
			
		||||
			<li>
 | 
			
		||||
				<minSeverity>0.60</minSeverity>
 | 
			
		||||
				<becomeVisible>true</becomeVisible>
 | 
			
		||||
				<capMods>
 | 
			
		||||
					<li>
 | 
			
		||||
						<capacity>RJW_Fertility</capacity>
 | 
			
		||||
						<offset>0.75</offset>
 | 
			
		||||
					</li>
 | 
			
		||||
				</capMods>
 | 
			
		||||
			</li>
 | 
			
		||||
			<li>
 | 
			
		||||
				<minSeverity>0.80</minSeverity>
 | 
			
		||||
				<becomeVisible>true</becomeVisible>
 | 
			
		||||
				<capMods>
 | 
			
		||||
					<li>
 | 
			
		||||
						<capacity>RJW_Fertility</capacity>
 | 
			
		||||
						<offset>1.00</offset>
 | 
			
		||||
					</li>
 | 
			
		||||
				</capMods>
 | 
			
		||||
			</li>
 | 
			
		||||
		</stages>	
 | 
			
		||||
		<comps>
 | 
			
		||||
			<li Class="HediffCompProperties_SeverityPerDay">
 | 
			
		||||
				<severityPerDay>-1.0</severityPerDay>
 | 
			
		||||
				<showHoursToRecover>true</showHoursToRecover>
 | 
			
		||||
			</li>
 | 
			
		||||
		</comps>
 | 
			
		||||
	</HediffDef>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			@ -260,4 +260,30 @@
 | 
			
		|||
			</li>
 | 
			
		||||
		</comps>
 | 
			
		||||
	</HediffDef>
 | 
			
		||||
	
 | 
			
		||||
	<HediffDef>
 | 
			
		||||
		<hediffClass>HediffWithComps</hediffClass>
 | 
			
		||||
		<defName>Hediff_Cyclosporine</defName>
 | 
			
		||||
		<label>Cyclosporine</label>
 | 
			
		||||
		<description>Immunosuppressant.</description>
 | 
			
		||||
		<defaultLabelColor>(0.75,0.75,1.0)</defaultLabelColor>	
 | 
			
		||||
		<isBad>false</isBad>
 | 
			
		||||
		<tendable>false</tendable>
 | 
			
		||||
		<makesSickThought>false</makesSickThought>
 | 
			
		||||
		<makesAlert>false</makesAlert>	
 | 
			
		||||
		<maxSeverity>10</maxSeverity>
 | 
			
		||||
		<initialSeverity>1.0</initialSeverity>
 | 
			
		||||
		<stages>
 | 
			
		||||
			<li>
 | 
			
		||||
				<statOffsets>
 | 
			
		||||
					<ImmunityGainSpeed>-0.25</ImmunityGainSpeed>
 | 
			
		||||
				</statOffsets>
 | 
			
		||||
			</li>
 | 
			
		||||
		</stages>	
 | 
			
		||||
		<comps>
 | 
			
		||||
			<li Class="HediffCompProperties_SeverityPerDay">
 | 
			
		||||
				<severityPerDay>-1.0</severityPerDay>
 | 
			
		||||
			</li>
 | 
			
		||||
		</comps>
 | 
			
		||||
	</HediffDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!--
 | 
			
		||||
	<Operation Class="PatchOperationAddModExtension">
 | 
			
		||||
		<xpath>Defs/ThingDef[defName="Race's defName"]</xpath>
 | 
			
		||||
| 
						 | 
				
			
			@ -8,6 +9,12 @@
 | 
			
		|||
					<fetusTexPath>Fetus/Fetus_Default</fetusTexPath>
 | 
			
		||||
					<cumColor>(255,255,255,255)</cumColor>
 | 
			
		||||
					<cumThickness>0.2</cumThickness>
 | 
			
		||||
					<cumOutcomeDoers>
 | 
			
		||||
						<li Class="IngestionOutcomeDoers">
 | 
			
		||||
							<Some field>value</Some field>
 | 
			
		||||
							<Some field>value</Some field>
 | 
			
		||||
						</li>
 | 
			
		||||
					</cumOutcomeDoers>
 | 
			
		||||
					<hybridExtension>
 | 
			
		||||
						<Other Race's defName>
 | 
			
		||||
							<Race or PawnKind defName>1.0</Race or PawnKind defName>
 | 
			
		||||
| 
						 | 
				
			
			@ -33,6 +40,13 @@
 | 
			
		|||
					<fetusTexPath>Fetus/Fetus_Default</fetusTexPath>
 | 
			
		||||
					<cumColor>(255,255,255,255)</cumColor> 
 | 
			
		||||
					<cumThickness>0.2</cumThickness>
 | 
			
		||||
					<ingestionOutcomeDoers>
 | 
			
		||||
						<li Class="IngestionOutcomeDoer_GiveHediff">
 | 
			
		||||
							<chance>0.02</chance>
 | 
			
		||||
							<hediffDef>Hediff_ASA</hediffDef>
 | 
			
		||||
							<severity>0.02</severity>
 | 
			
		||||
						</li>
 | 
			
		||||
					</ingestionOutcomeDoers>
 | 
			
		||||
					<hybridExtension>
 | 
			
		||||
					</hybridExtension>
 | 
			
		||||
				</li>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								1.3/SexperienceModule/Assemblies/SexperienceModule.dll
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								1.3/SexperienceModule/Assemblies/SexperienceModule.dll
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										14
									
								
								1.3/SexperienceModule/Defs/Items_Resource_CumMixture.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								1.3/SexperienceModule/Defs/Items_Resource_CumMixture.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Defs>
 | 
			
		||||
  <ThingDef ParentName="GatheredCum">
 | 
			
		||||
    <defName>GatheredCumMixture</defName>
 | 
			
		||||
    <label>cum mixture</label>
 | 
			
		||||
    <description>Gathered mixture of cum.</description>
 | 
			
		||||
	<thingClass>RJW_Menstruation.Sexperience.GatheredCumMixture</thingClass>
 | 
			
		||||
    <graphicData>
 | 
			
		||||
      <texPath>Things/Item/GatheredCum</texPath>
 | 
			
		||||
      <drawSize>1</drawSize>
 | 
			
		||||
	  <graphicClass>Graphic_StackCount</graphicClass>
 | 
			
		||||
    </graphicData>
 | 
			
		||||
  </ThingDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										10
									
								
								1.3/SexperienceModule/Defs/JobDefs/Jobs_GatherCum.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								1.3/SexperienceModule/Defs/JobDefs/Jobs_GatherCum.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
 | 
			
		||||
<Defs>
 | 
			
		||||
	<JobDef>
 | 
			
		||||
		<defName>VaginaWashingwithBucket</defName>
 | 
			
		||||
		<driverClass>RJW_Menstruation.Sexperience.JobDriver_VaginaWashingWithBucket</driverClass>
 | 
			
		||||
		<reportString>washing vagina</reportString>
 | 
			
		||||
		<casualInterruptible>true</casualInterruptible>
 | 
			
		||||
	</JobDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								1.3/Textures/Things/Item/Cyclosporine/Cyclosporine_a.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								1.3/Textures/Things/Item/Cyclosporine/Cyclosporine_a.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								1.3/Textures/Things/Item/Cyclosporine/Cyclosporine_b.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								1.3/Textures/Things/Item/Cyclosporine/Cyclosporine_b.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 5.3 KiB  | 
| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
    <DebugSymbols>true</DebugSymbols>
 | 
			
		||||
    <DebugType>full</DebugType>
 | 
			
		||||
    <Optimize>false</Optimize>
 | 
			
		||||
    <OutputPath>bin\Debug\</OutputPath>
 | 
			
		||||
    <OutputPath>..\..\..\MilkModule\Assemblies\</OutputPath>
 | 
			
		||||
    <DefineConstants>DEBUG;TRACE</DefineConstants>
 | 
			
		||||
    <ErrorReport>prompt</ErrorReport>
 | 
			
		||||
    <WarningLevel>4</WarningLevel>
 | 
			
		||||
| 
						 | 
				
			
			@ -90,6 +90,7 @@
 | 
			
		|||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="JobDriver_MilkSelf.cs" />
 | 
			
		||||
    <Compile Include="Milk_Patch.cs" />
 | 
			
		||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										41
									
								
								1.3/source/RJW_Menstruation/MilkModule/Milk_Patch.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								1.3/source/RJW_Menstruation/MilkModule/Milk_Patch.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using Verse;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using Milk;
 | 
			
		||||
using RJW_Menstruation;
 | 
			
		||||
 | 
			
		||||
namespace MilkModule
 | 
			
		||||
{
 | 
			
		||||
    internal static class First
 | 
			
		||||
    {
 | 
			
		||||
        static First()
 | 
			
		||||
        {
 | 
			
		||||
            var har = new Harmony("RJW_Menstruation_MilkModule");
 | 
			
		||||
            har.PatchAll(Assembly.GetExecutingAssembly());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [HarmonyPatch(typeof(HumanCompHasGatherableBodyResource), "Gathered")]
 | 
			
		||||
    public static class Milk_Patch
 | 
			
		||||
    {
 | 
			
		||||
        public static void Postfix(Pawn doer, HumanCompHasGatherableBodyResource __instance)
 | 
			
		||||
        {
 | 
			
		||||
            Pawn pawn = __instance.parent as Pawn;
 | 
			
		||||
            HediffComp_Breast comp = null;
 | 
			
		||||
            if (pawn != null) comp = pawn.GetBreastComp();
 | 
			
		||||
            if (comp != null)
 | 
			
		||||
            {
 | 
			
		||||
                comp.AdjustAreolaSize(Rand.Range(0.0f, 0.01f * Configurations.NipplePermanentTransitionVariance));
 | 
			
		||||
                comp.AdjustNippleSize(Rand.Range(0.0f, 0.01f * Configurations.NipplePermanentTransitionVariance));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJW_Menstruation", "RJW_Men
 | 
			
		|||
EndProject
 | 
			
		||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MilkModule", "MilkModule\MilkModule.csproj", "{3591B3C1-EB57-44BF-AB69-A613E097A7F8}"
 | 
			
		||||
EndProject
 | 
			
		||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SexperienceModule", "SexperienceModule\SexperienceModule.csproj", "{7DB664D7-D4B4-4673-9FF1-62EC18305715}"
 | 
			
		||||
EndProject
 | 
			
		||||
Global
 | 
			
		||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
			
		||||
		Debug|Any CPU = Debug|Any CPU
 | 
			
		||||
| 
						 | 
				
			
			@ -21,6 +23,10 @@ Global
 | 
			
		|||
		{3591B3C1-EB57-44BF-AB69-A613E097A7F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
			
		||||
		{3591B3C1-EB57-44BF-AB69-A613E097A7F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
			
		||||
		{3591B3C1-EB57-44BF-AB69-A613E097A7F8}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
			
		||||
		{7DB664D7-D4B4-4673-9FF1-62EC18305715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
			
		||||
		{7DB664D7-D4B4-4673-9FF1-62EC18305715}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
			
		||||
		{7DB664D7-D4B4-4673-9FF1-62EC18305715}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
			
		||||
		{7DB664D7-D4B4-4673-9FF1-62EC18305715}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(SolutionProperties) = preSolution
 | 
			
		||||
		HideSolutionNode = FALSE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ namespace RJW_Menstruation
 | 
			
		|||
        protected bool useCustomColor = false;
 | 
			
		||||
        protected float notcumthickness = 0;
 | 
			
		||||
        protected float cumthickness = 1.0f;
 | 
			
		||||
        protected Thing internalThing;
 | 
			
		||||
 | 
			
		||||
        public float Volume
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -109,6 +110,19 @@ namespace RJW_Menstruation
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Thing CumThing
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (internalThing == null)
 | 
			
		||||
                {
 | 
			
		||||
                    internalThing = ThingMaker.MakeThing(VariousDefOf.CumFilth);
 | 
			
		||||
                    internalThing.stackCount = (int)volume;
 | 
			
		||||
                }
 | 
			
		||||
                internalThing.stackCount = (int)volume;
 | 
			
		||||
                return internalThing;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Cum() { }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -151,6 +165,7 @@ namespace RJW_Menstruation
 | 
			
		|||
        public virtual void ExposeData()
 | 
			
		||||
        {
 | 
			
		||||
            Scribe_References.Look(ref pawn, "pawn", true);
 | 
			
		||||
            Scribe_References.Look(ref internalThing, "internalThing", true);
 | 
			
		||||
            Scribe_Values.Look(ref volume, "volume", volume, true);
 | 
			
		||||
            Scribe_Values.Look(ref fertvolume, "fertvolume", fertvolume, true);
 | 
			
		||||
            Scribe_Values.Look(ref notcumthickness, "notcumthickness", notcumthickness, true);
 | 
			
		||||
| 
						 | 
				
			
			@ -208,14 +223,25 @@ namespace RJW_Menstruation
 | 
			
		|||
            CutMinor();
 | 
			
		||||
            totalleak -= volume;
 | 
			
		||||
            return totalleak;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void CumEffects(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
            if (!notcum && DNA != null && volume >= 1.0f)
 | 
			
		||||
            {
 | 
			
		||||
                List<IngestionOutcomeDoer> doers = DNA.ingestionOutcomeDoers;
 | 
			
		||||
                
 | 
			
		||||
                if (!doers.NullOrEmpty()) for (int i = 0; i < doers.Count; i++)
 | 
			
		||||
                    {
 | 
			
		||||
                        doers[i].DoIngestionOutcome(pawn, CumThing);
 | 
			
		||||
                    }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected void CutMinor()
 | 
			
		||||
        {
 | 
			
		||||
            if (volume < 0.01f) volume = 0f;
 | 
			
		||||
            if (fertvolume < 0.001f) fertvolume = 0f;
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -224,7 +250,8 @@ namespace RJW_Menstruation
 | 
			
		|||
    public class CumMixture : Cum, IDisposable
 | 
			
		||||
    {
 | 
			
		||||
        protected List<string> cums;
 | 
			
		||||
 | 
			
		||||
        public bool ispurecum = true;
 | 
			
		||||
        public List<string> Getingredients => cums;
 | 
			
		||||
 | 
			
		||||
        public CumMixture()
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -232,13 +259,14 @@ namespace RJW_Menstruation
 | 
			
		|||
            cums = new List<string>();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public CumMixture(Pawn pawn, float volume, List<string> cums, Color color,  ThingDef mixtureDef)
 | 
			
		||||
        public CumMixture(Pawn pawn, float volume, List<string> cums, Color color,  ThingDef mixtureDef, bool pure)
 | 
			
		||||
        {
 | 
			
		||||
            this.pawn = pawn;
 | 
			
		||||
            this.volume = volume;
 | 
			
		||||
            this.cums = cums;
 | 
			
		||||
            this.customColor = color;
 | 
			
		||||
            this.useCustomColor = true;
 | 
			
		||||
            ispurecum = pure;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void Dispose()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,36 @@ namespace RJW_Menstruation
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class InduceOvulationOutcomDoer : IngestionOutcomeDoer
 | 
			
		||||
    {
 | 
			
		||||
        protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested)
 | 
			
		||||
        {
 | 
			
		||||
            HediffComp_Menstruation comp = pawn.GetMenstruationComp();
 | 
			
		||||
            if (comp != null && (comp.curStage.Equals(HediffComp_Menstruation.Stage.Follicular)
 | 
			
		||||
                || comp.curStage.Equals(HediffComp_Menstruation.Stage.ClimactericFollicular)
 | 
			
		||||
                || comp.curStage.Equals(HediffComp_Menstruation.Stage.Anestrus)
 | 
			
		||||
                ))
 | 
			
		||||
            {
 | 
			
		||||
                comp.SetEstrus(comp.Props.eggLifespanDays);
 | 
			
		||||
                comp.curStage = HediffComp_Menstruation.Stage.Ovulatory;
 | 
			
		||||
                comp.eggstack += ingested.stackCount - 1;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class IngestionOutcomeDoer_AdjustSeverity : IngestionOutcomeDoer
 | 
			
		||||
    {
 | 
			
		||||
        public HediffDef hediffDef;
 | 
			
		||||
        public float severity;
 | 
			
		||||
 | 
			
		||||
        protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested)
 | 
			
		||||
        {
 | 
			
		||||
            Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(hediffDef);
 | 
			
		||||
            if (hediff != null) hediff.Severity += severity;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class OvaryPillOutcomDoer : IngestionOutcomeDoer
 | 
			
		||||
    {
 | 
			
		||||
        public float effectOffset;
 | 
			
		||||
| 
						 | 
				
			
			@ -37,8 +67,6 @@ namespace RJW_Menstruation
 | 
			
		|||
            {
 | 
			
		||||
                comp.RecoverOvary(1 + effectOffset);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,6 +83,10 @@ namespace RJW_Menstruation
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public float OriginAlpha => originalpha;
 | 
			
		||||
        public float OriginNipple => originnipple;
 | 
			
		||||
        public float OriginAreola => originareola;
 | 
			
		||||
        public Color OriginColor => Colors.CMYKLerp(parent?.pawn?.story?.SkinColor ?? Color.white, Props.BlackNippleColor, originalpha);
 | 
			
		||||
 | 
			
		||||
        public Color NippleColor
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,7 +111,7 @@ namespace RJW_Menstruation
 | 
			
		|||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (opcache < 0) opcache = (int)(72f * ThingDefOf.Human.race.lifeExpectancy / parent.pawn.def.race.lifeExpectancy);
 | 
			
		||||
                if (opcache < 0) opcache = (int)(72f * parent.pawn.def.race.lifeExpectancy / ThingDefOf.Human.race.lifeExpectancy);
 | 
			
		||||
                return opcache;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -610,9 +610,11 @@ namespace RJW_Menstruation
 | 
			
		|||
 | 
			
		||||
        protected void BeforeCumOut(out Absorber absorber)
 | 
			
		||||
        {
 | 
			
		||||
            Hediff asa = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_ASA);
 | 
			
		||||
            float asafactor = asa?.Severity ?? 0f;
 | 
			
		||||
 | 
			
		||||
            if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) antisperm = 0.70f;
 | 
			
		||||
            else antisperm = 0.0f;
 | 
			
		||||
            if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) antisperm = 0.70f + asafactor;
 | 
			
		||||
            else antisperm = 0.0f + asafactor;
 | 
			
		||||
 | 
			
		||||
            absorber = (Absorber)parent.pawn.apparel?.WornApparel?.Find(x => x is Absorber);
 | 
			
		||||
            if (absorber != null)
 | 
			
		||||
| 
						 | 
				
			
			@ -657,6 +659,7 @@ namespace RJW_Menstruation
 | 
			
		|||
            List<Cum> removecums = new List<Cum>();
 | 
			
		||||
            foreach (Cum cum in cums)
 | 
			
		||||
            {
 | 
			
		||||
                cum.CumEffects(parent.pawn);
 | 
			
		||||
                float vd = cum.DismishNatural(leakfactor, antisperm);
 | 
			
		||||
                cum.MakeThinner(Configurations.CycleAcceleration);
 | 
			
		||||
                totalleak += AbsorbCum(cum, vd, absorber);
 | 
			
		||||
| 
						 | 
				
			
			@ -719,7 +722,7 @@ namespace RJW_Menstruation
 | 
			
		|||
        /// <param name="mixtureDef"></param>
 | 
			
		||||
        /// <param name="portion"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        public Cum MixtureOut(ThingDef mixtureDef ,float portion = 0.1f)
 | 
			
		||||
        public CumMixture MixtureOut(ThingDef mixtureDef ,float portion = 0.1f)
 | 
			
		||||
        {
 | 
			
		||||
            if (cums.NullOrEmpty()) return null;
 | 
			
		||||
            Color color = GetCumMixtureColor;
 | 
			
		||||
| 
						 | 
				
			
			@ -727,6 +730,7 @@ namespace RJW_Menstruation
 | 
			
		|||
            List<string> cumlabels = new List<string>();
 | 
			
		||||
            float cumd = TotalCumPercent;
 | 
			
		||||
            List<Cum> removecums = new List<Cum>();
 | 
			
		||||
            bool pure = true;
 | 
			
		||||
            foreach (Cum cum in cums)
 | 
			
		||||
            {
 | 
			
		||||
                float vd = cum.DismishForce(portion);
 | 
			
		||||
| 
						 | 
				
			
			@ -734,13 +738,14 @@ namespace RJW_Menstruation
 | 
			
		|||
                cumlabels.Add(tmp.Replace(" x1", ""));
 | 
			
		||||
                totalleak += vd;
 | 
			
		||||
                if (cum.ShouldRemove()) removecums.Add(cum);
 | 
			
		||||
                if (cum.notcum) pure = false;
 | 
			
		||||
            }
 | 
			
		||||
            foreach (Cum cum in removecums)
 | 
			
		||||
            {
 | 
			
		||||
                cums.Remove(cum);
 | 
			
		||||
            }
 | 
			
		||||
            removecums.Clear();
 | 
			
		||||
            return new CumMixture(parent.pawn, totalleak, cumlabels, color, mixtureDef);
 | 
			
		||||
            return new CumMixture(parent.pawn, totalleak, cumlabels, color, mixtureDef, pure);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			@ -866,7 +871,7 @@ namespace RJW_Menstruation
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void RecoverOvary(float multiply = 0.2f)
 | 
			
		||||
        public void RecoverOvary(float multiply = 1.2f)
 | 
			
		||||
        {
 | 
			
		||||
            ovarypower = Math.Max(0, (int)(ovarypower * multiply));
 | 
			
		||||
            if (ovarypower >= ovarypowerthreshold)
 | 
			
		||||
| 
						 | 
				
			
			@ -1512,9 +1517,10 @@ namespace RJW_Menstruation
 | 
			
		|||
            action += delegate
 | 
			
		||||
            {
 | 
			
		||||
                if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) curStage = Stage.Young;
 | 
			
		||||
                CumOut();
 | 
			
		||||
                //CumOut();
 | 
			
		||||
                AfterSimulator();
 | 
			
		||||
            };
 | 
			
		||||
            action = CumOut + action;
 | 
			
		||||
 | 
			
		||||
            actionref = action;
 | 
			
		||||
            return actionref;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -207,7 +207,8 @@ namespace RJW_Menstruation
 | 
			
		|||
            {
 | 
			
		||||
                if (xxx.is_human(father))
 | 
			
		||||
                {
 | 
			
		||||
                    melanin = (mother.story?.melanin ?? 0f + father.story?.melanin ?? 0f) / 2;
 | 
			
		||||
                    melanin = ChildRelationUtility.GetRandomChildSkinColor(father.story?.melanin ?? 0f, mother.story?.melanin ?? 0f);
 | 
			
		||||
                    //melanin = (mother.story?.melanin ?? 0f + father.story?.melanin ?? 0f) / 2;
 | 
			
		||||
                    lastname = NameTriple.FromString(father.Name.ToStringFull).Last;
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
| 
						 | 
				
			
			@ -215,11 +216,8 @@ namespace RJW_Menstruation
 | 
			
		|||
                    melanin = mother.story?.melanin ?? 0f;
 | 
			
		||||
                    lastname = NameTriple.FromString(mother.Name.ToStringFull).Last;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                if (xxx.is_human(father))
 | 
			
		||||
            else if (xxx.is_human(father))
 | 
			
		||||
            {
 | 
			
		||||
                melanin = father.story?.melanin ?? 0f;
 | 
			
		||||
                lastname = NameTriple.FromString(father.Name.ToStringFull).Last;
 | 
			
		||||
| 
						 | 
				
			
			@ -227,11 +225,8 @@ namespace RJW_Menstruation
 | 
			
		|||
            else
 | 
			
		||||
            {
 | 
			
		||||
                melanin = Rand.Range(0, 1.0f);
 | 
			
		||||
                    lastname = NameTriple.FromString(mother.Name.ToStringFull).Last;
 | 
			
		||||
                lastname = "";
 | 
			
		||||
            }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
            PawnGenerationRequest request = new PawnGenerationRequest(
 | 
			
		||||
                newborn: true,
 | 
			
		||||
| 
						 | 
				
			
			@ -274,7 +269,8 @@ namespace RJW_Menstruation
 | 
			
		|||
                        firstheadpath = (string)baby.story.GetMemberValue("headGraphicPath");
 | 
			
		||||
                        if (firstheadpath == null)
 | 
			
		||||
                        {
 | 
			
		||||
                            baby.story.SetMemberValue("headGraphicPath", GraphicDatabaseHeadRecords.GetHeadRandom(baby.gender, baby.story.SkinColor, baby.story.crownType, true).GraphicPath);
 | 
			
		||||
                            Graphic_Multi head = GraphicDatabaseHeadRecords.GetHeadRandom(baby.gender, baby.story.SkinColor, baby.story.crownType, true);
 | 
			
		||||
                            if (head != null) baby.story.SetMemberValue("headGraphicPath", head.GraphicPath);
 | 
			
		||||
                            firstheadpath = (string)baby.story.GetMemberValue("headGraphicPath");
 | 
			
		||||
                        }
 | 
			
		||||
                        if (Configurations.HARActivated && baby.IsHAR())
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,7 +42,7 @@ namespace RJW_Menstruation
 | 
			
		|||
 | 
			
		||||
            foreach (LocalTargetInfo t in selftargets)
 | 
			
		||||
            {
 | 
			
		||||
                if (pawn.HasMenstruationComp()) opts.AddDistinct(MakeSelfMenu(pawn, t));
 | 
			
		||||
                if (t.Pawn == pawn && pawn.HasMenstruationComp()) opts.AddDistinct(MakeSelfMenu(pawn, t));
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -60,9 +60,6 @@ namespace RJW_Menstruation
 | 
			
		|||
 | 
			
		||||
            return option;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //[HarmonyPatch(typeof(HealthCardUtility), "DrawHediffListing")]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,6 +114,14 @@
 | 
			
		|||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.InputLegacyModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.InputLegacyModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.InputModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.InputModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.TextCoreModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextCoreModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@ namespace RJW_Menstruation
 | 
			
		|||
        public Color CumColor => cumColor.ToColor;
 | 
			
		||||
        public float cumThickness = 0f;
 | 
			
		||||
        public List<HybridExtension> hybridExtension;
 | 
			
		||||
        public List<IngestionOutcomeDoer> ingestionOutcomeDoers;
 | 
			
		||||
 | 
			
		||||
        public HybridExtension GetHybridExtension(string race)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -201,12 +201,11 @@ namespace RJW_Menstruation
 | 
			
		|||
            Rect pawnLabelRect = new Rect(0, pawnRectHeight, pawnRectWidth, fontheight - 10);
 | 
			
		||||
            Rect pawnLabel2Rect = new Rect(0, pawnRectHeight + fontheight - 10, pawnRectWidth, fontheight - 10);
 | 
			
		||||
            fontstylecenter.normal.textColor = pawn.DrawColor;
 | 
			
		||||
            GUI.Label(pawnLabelRect, pawn.Name.ToStringFull, fontstylecenter);
 | 
			
		||||
            if (pawn.story != null) GUI.Label(pawnLabel2Rect, pawn.story.Title, fontstylecenter);
 | 
			
		||||
            GUI.Label(pawnLabelRect, pawn.Name?.ToStringFull ?? pawn.Label, fontstylecenter);
 | 
			
		||||
            if (pawn.story != null) GUI.Label(pawnLabel2Rect, pawn.ageTracker.AgeBiologicalYears + ", " + pawn.story.Title, fontstylecenter);
 | 
			
		||||
            GUI.color = Color.white;
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            float wombrecth = 0;
 | 
			
		||||
            if (Configurations.DrawWombStatus)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -342,7 +341,9 @@ namespace RJW_Menstruation
 | 
			
		|||
            GUI.color = new Color(1.00f, 0.47f, 0.47f, 1);
 | 
			
		||||
            GUI.Box(rect, "", boxstyle);
 | 
			
		||||
 | 
			
		||||
            pawn.DrawBreastIcon(BreastIconRect);
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            pawn.DrawBreastIcon(BreastIconRect, Mouse.IsOver(BreastIconRect) && Input.GetMouseButton(0));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            GUI.color = Color.white;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -228,7 +228,7 @@ namespace RJW_Menstruation
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void DrawBreastIcon(this Pawn pawn, Rect rect)
 | 
			
		||||
        public static void DrawBreastIcon(this Pawn pawn, Rect rect , bool drawOrigin = false)
 | 
			
		||||
        {
 | 
			
		||||
            var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_breastsBPR(pawn)).FirstOrDefault((Hediff h) => h.def.defName.ToLower().Contains("breast"));
 | 
			
		||||
            Texture2D breast, nipple, areola;
 | 
			
		||||
| 
						 | 
				
			
			@ -259,9 +259,20 @@ namespace RJW_Menstruation
 | 
			
		|||
                else icon += "_Breast05";
 | 
			
		||||
 | 
			
		||||
                string nippleicon, areolaicon;
 | 
			
		||||
                float nipplesize, areolasize;
 | 
			
		||||
                if (drawOrigin)
 | 
			
		||||
                {
 | 
			
		||||
                    nipplesize = comp.OriginNipple;
 | 
			
		||||
                    areolasize = comp.OriginAreola;
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    nipplesize = comp.NippleSize;
 | 
			
		||||
                    areolasize = comp.AreolaSize;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                nippleicon = icon + "_Nipple0" + GetNippleIndex(comp.NippleSize);
 | 
			
		||||
                areolaicon = icon + "_Areola0" + GetAreolaIndex(comp.AreolaSize);
 | 
			
		||||
                nippleicon = icon + "_Nipple0" + GetNippleIndex(nipplesize);
 | 
			
		||||
                areolaicon = icon + "_Areola0" + GetAreolaIndex(areolasize);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                breast = ContentFinder<Texture2D>.Get(icon, false);
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +281,14 @@ namespace RJW_Menstruation
 | 
			
		|||
                GUI.color = pawn.story.SkinColor;
 | 
			
		||||
                GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit);
 | 
			
		||||
 | 
			
		||||
                if (drawOrigin)
 | 
			
		||||
                {
 | 
			
		||||
                    GUI.color = comp.OriginColor;
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    GUI.color = comp.NippleColor;
 | 
			
		||||
                }
 | 
			
		||||
                GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);
 | 
			
		||||
 | 
			
		||||
                GUI.DrawTexture(rect, nipple, ScaleMode.ScaleToFit);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,6 +20,7 @@ namespace RJW_Menstruation
 | 
			
		|||
        public static readonly HediffDef Hediff_Menopause = DefDatabase<HediffDef>.GetNamed("Hediff_Menopause");
 | 
			
		||||
        public static readonly HediffDef Hediff_Estrus = DefDatabase<HediffDef>.GetNamed("Hediff_Estrus");
 | 
			
		||||
        public static readonly HediffDef Hediff_Estrus_Consealed = DefDatabase<HediffDef>.GetNamed("Hediff_Estrus_Consealed");
 | 
			
		||||
        public static readonly HediffDef Hediff_ASA = DefDatabase<HediffDef>.GetNamed("Hediff_ASA");
 | 
			
		||||
        public static readonly StatDef MaxAbsorbable = DefDatabase<StatDef>.GetNamed("MaxAbsorbable");
 | 
			
		||||
        public static readonly PawnRelationDef Relation_birthgiver = DefDatabase<PawnRelationDef>.AllDefs.FirstOrDefault(d => d.defName == "RJW_Sire");
 | 
			
		||||
        public static readonly PawnRelationDef Relation_spawn = DefDatabase<PawnRelationDef>.AllDefs.FirstOrDefault(d => d.defName == "RJW_Pup");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,64 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using RJWSexperience;
 | 
			
		||||
using RJW_Menstruation;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Menstruation.Sexperience
 | 
			
		||||
{
 | 
			
		||||
    public class GatheredCumMixture : ThingWithComps
 | 
			
		||||
    {
 | 
			
		||||
        public Color cumColor;
 | 
			
		||||
        public List<string> ingredients = new List<string>();
 | 
			
		||||
 | 
			
		||||
        public override Color DrawColor => cumColor;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public override void ExposeData()
 | 
			
		||||
        {
 | 
			
		||||
            base.ExposeData();
 | 
			
		||||
            Scribe_Values.Look(ref cumColor, "cumColor", Color.white, true);
 | 
			
		||||
            Scribe_Collections.Look(ref ingredients, "ingredients");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override bool TryAbsorbStack(Thing other, bool respectStackLimit)
 | 
			
		||||
        {
 | 
			
		||||
            float amount = stackCount;
 | 
			
		||||
            float count = ThingUtility.TryAbsorbStackNumToTake(this, other, respectStackLimit);
 | 
			
		||||
            bool res = base.TryAbsorbStack(other, respectStackLimit);
 | 
			
		||||
            if (res && other is GatheredCumMixture)
 | 
			
		||||
            {
 | 
			
		||||
                GatheredCumMixture othercum = (GatheredCumMixture)other;
 | 
			
		||||
                cumColor = Colors.CMYKLerp(cumColor,othercum.cumColor,count/(amount+count));
 | 
			
		||||
                if (!othercum.ingredients.NullOrEmpty()) for (int i=0; i<othercum.ingredients.Count; i++)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (!ingredients.Contains(othercum.ingredients[i])) ingredients.Add(othercum.ingredients[i]);
 | 
			
		||||
                    }
 | 
			
		||||
            }
 | 
			
		||||
            return res;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override string GetInspectString()
 | 
			
		||||
        {
 | 
			
		||||
            string res = "";
 | 
			
		||||
            if (!ingredients.NullOrEmpty()) for(int i=0; i<ingredients.Count; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    res += ingredients[i];
 | 
			
		||||
                    if (i != ingredients.Count - 1) res += ", ";
 | 
			
		||||
                }
 | 
			
		||||
            return res;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void InitwithCum(CumMixture cum)
 | 
			
		||||
        {
 | 
			
		||||
            ingredients.AddRange(cum.Getingredients);
 | 
			
		||||
            cumColor = cum.color;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										61
									
								
								1.3/source/RJW_Menstruation/SexperienceModule/JobDrivers.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								1.3/source/RJW_Menstruation/SexperienceModule/JobDrivers.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,61 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using Verse;
 | 
			
		||||
using Verse.AI;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using RJWSexperience;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Menstruation.Sexperience
 | 
			
		||||
{
 | 
			
		||||
    public class JobDriver_VaginaWashingWithBucket : JobDriver
 | 
			
		||||
    {
 | 
			
		||||
        const int excretingTime = 300;//ticks - 120 = 2 real seconds, 3 in-game minutes
 | 
			
		||||
 | 
			
		||||
        protected Building_CumBucket Bucket => TargetB.Thing as Building_CumBucket;
 | 
			
		||||
 | 
			
		||||
        public override bool TryMakePreToilReservations(bool errorOnFailed)
 | 
			
		||||
        {
 | 
			
		||||
            return pawn.Reserve(pawn, job, 1, -1, null, errorOnFailed);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected override IEnumerable<Toil> MakeNewToils()
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            HediffComp_Menstruation Comp = pawn.GetMenstruationComp();
 | 
			
		||||
            this.FailOn(delegate
 | 
			
		||||
            {
 | 
			
		||||
                return !(Comp.TotalCumPercent > 0.001);
 | 
			
		||||
            });
 | 
			
		||||
            yield return Toils_Goto.GotoThing(TargetIndex.B, PathEndMode.ClosestTouch);
 | 
			
		||||
            Toil excreting = Toils_General.Wait(excretingTime, TargetIndex.None);//duration of 
 | 
			
		||||
 | 
			
		||||
            excreting.WithProgressBarToilDelay(TargetIndex.A);
 | 
			
		||||
            yield return excreting;
 | 
			
		||||
            yield return new Toil()
 | 
			
		||||
            {
 | 
			
		||||
                initAction = delegate ()
 | 
			
		||||
                {
 | 
			
		||||
                    CumMixture mixture = Comp.MixtureOut(RJWSexperience.VariousDefOf.GatheredCum, 0.5f);
 | 
			
		||||
                    float amount = mixture.Volume;
 | 
			
		||||
                    if (mixture.ispurecum)
 | 
			
		||||
                    {
 | 
			
		||||
                        Bucket.AddCum(amount);
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        GatheredCumMixture cummixture = (GatheredCumMixture)ThingMaker.MakeThing(VariousDefOf.GatheredCumMixture);
 | 
			
		||||
                        cummixture.InitwithCum(mixture);
 | 
			
		||||
                        Bucket.AddCum(amount, cummixture);
 | 
			
		||||
                    }
 | 
			
		||||
                    if (Comp.TotalCumPercent > 0.001) JumpToToil(excreting);
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
            //yield return excreting;
 | 
			
		||||
            yield break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Menstruation.Sexperience
 | 
			
		||||
{
 | 
			
		||||
    [StaticConstructorOnStartup]
 | 
			
		||||
    internal static class First
 | 
			
		||||
    {
 | 
			
		||||
        static First()
 | 
			
		||||
        {
 | 
			
		||||
            var har = new Harmony("RJW_Menstruation.Sexperience");
 | 
			
		||||
            har.PatchAll(Assembly.GetExecutingAssembly());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
using Verse.AI;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using RJWSexperience;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Menstruation.Sexperience
 | 
			
		||||
{
 | 
			
		||||
    [HarmonyPatch(typeof(FloatMenuMakerMap), "AddHumanlikeOrders")]
 | 
			
		||||
    public class HumanlikeOrder_Patch
 | 
			
		||||
    {
 | 
			
		||||
        public static void Postfix(Vector3 clickPos, Pawn pawn, List<FloatMenuOption> opts)
 | 
			
		||||
        {
 | 
			
		||||
            var targets = GenUI.TargetsAt(clickPos, TargetingParameters.ForBuilding());
 | 
			
		||||
 | 
			
		||||
            foreach (LocalTargetInfo t in targets)
 | 
			
		||||
            {
 | 
			
		||||
                Building building = t.Thing as Building;
 | 
			
		||||
                if (building != null)
 | 
			
		||||
                {
 | 
			
		||||
                    if (building is Building_CumBucket)
 | 
			
		||||
                    {
 | 
			
		||||
                        opts.AddDistinct(MakeMenu(pawn, building));
 | 
			
		||||
                        break;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static FloatMenuOption MakeMenu(Pawn pawn, LocalTargetInfo target)
 | 
			
		||||
        {
 | 
			
		||||
            FloatMenuOption option = FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(Translations.FloatMenu_CleanSelf, delegate ()
 | 
			
		||||
            {
 | 
			
		||||
                pawn.jobs.TryTakeOrderedJob(new Verse.AI.Job(VariousDefOf.VaginaWashingwithBucket, null, target, target.Cell));
 | 
			
		||||
            }, MenuOptionPriority.Low), pawn, target);
 | 
			
		||||
 | 
			
		||||
            return option;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
using System.Reflection;
 | 
			
		||||
using System.Runtime.CompilerServices;
 | 
			
		||||
using System.Runtime.InteropServices;
 | 
			
		||||
 | 
			
		||||
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 
 | 
			
		||||
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
 | 
			
		||||
// 이러한 특성 값을 변경하세요.
 | 
			
		||||
[assembly: AssemblyTitle("SexperienceModule")]
 | 
			
		||||
[assembly: AssemblyDescription("")]
 | 
			
		||||
[assembly: AssemblyConfiguration("")]
 | 
			
		||||
[assembly: AssemblyCompany("")]
 | 
			
		||||
[assembly: AssemblyProduct("SexperienceModule")]
 | 
			
		||||
[assembly: AssemblyCopyright("Copyright ©  2021")]
 | 
			
		||||
[assembly: AssemblyTrademark("")]
 | 
			
		||||
[assembly: AssemblyCulture("")]
 | 
			
		||||
 | 
			
		||||
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 
 | 
			
		||||
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
 | 
			
		||||
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
 | 
			
		||||
[assembly: ComVisible(false)]
 | 
			
		||||
 | 
			
		||||
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
 | 
			
		||||
[assembly: Guid("7db664d7-d4b4-4673-9ff1-62ec18305715")]
 | 
			
		||||
 | 
			
		||||
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
 | 
			
		||||
//
 | 
			
		||||
//      주 버전
 | 
			
		||||
//      부 버전 
 | 
			
		||||
//      빌드 번호
 | 
			
		||||
//      수정 버전
 | 
			
		||||
//
 | 
			
		||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
 | 
			
		||||
// 기본값으로 할 수 있습니다.
 | 
			
		||||
// [assembly: AssemblyVersion("1.0.*")]
 | 
			
		||||
[assembly: AssemblyVersion("1.0.0.0")]
 | 
			
		||||
[assembly: AssemblyFileVersion("1.0.0.0")]
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,112 @@
 | 
			
		|||
<?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>{7DB664D7-D4B4-4673-9FF1-62EC18305715}</ProjectGuid>
 | 
			
		||||
    <OutputType>Library</OutputType>
 | 
			
		||||
    <AppDesignerFolder>Properties</AppDesignerFolder>
 | 
			
		||||
    <RootNamespace>RJW_Menstruation.Sexperience</RootNamespace>
 | 
			
		||||
    <AssemblyName>SexperienceModule</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>..\..\..\SexperienceModule\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>..\..\..\SexperienceModule\Assemblies\</OutputPath>
 | 
			
		||||
    <DefineConstants>TRACE</DefineConstants>
 | 
			
		||||
    <ErrorReport>prompt</ErrorReport>
 | 
			
		||||
    <WarningLevel>4</WarningLevel>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Reference Include="0Harmony">
 | 
			
		||||
      <HintPath>D:\잉어\Lib\Harmony.2.0.4.0\net472\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="RJW">
 | 
			
		||||
      <HintPath>..\..\..\..\..\RJW\1.3\Assemblies\RJW.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="RJWSexperience">
 | 
			
		||||
      <HintPath>..\..\..\..\..\RJW_Sexperience\Assemblies\RJWSexperience.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="RJW_Menstruation">
 | 
			
		||||
      <HintPath>..\..\..\Assemblies\RJW_Menstruation.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="System" />
 | 
			
		||||
    <Reference Include="System.Core" />
 | 
			
		||||
    <Reference Include="System.Xml.Linq" />
 | 
			
		||||
    <Reference Include="System.Data.DataSetExtensions" />
 | 
			
		||||
    <Reference Include="Microsoft.CSharp" />
 | 
			
		||||
    <Reference Include="System.Data" />
 | 
			
		||||
    <Reference Include="System.Net.Http" />
 | 
			
		||||
    <Reference Include="System.Xml" />
 | 
			
		||||
    <Reference Include="UnityEngine">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.CoreModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.IMGUIModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.InputLegacyModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.InputLegacyModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.InputModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.InputModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.TextCoreModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextCoreModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.TextRenderingModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.UI">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UI.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.UIElementsModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UIElementsModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.UIModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UIModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="GatheredCumMixture.cs" />
 | 
			
		||||
    <Compile Include="JobDrivers.cs" />
 | 
			
		||||
    <Compile Include="Patch\Harmony.cs" />
 | 
			
		||||
    <Compile Include="Patch\Pawn_Patch.cs" />
 | 
			
		||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
			
		||||
    <Compile Include="VariousDefOf.cs" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
			
		||||
</Project>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using rjw;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Menstruation.Sexperience
 | 
			
		||||
{
 | 
			
		||||
    public static class VariousDefOf
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public static readonly JobDef VaginaWashingwithBucket = DefDatabase<JobDef>.GetNamed("VaginaWashingwithBucket");
 | 
			
		||||
        public static readonly ThingDef GatheredCumMixture = DefDatabase<ThingDef>.GetNamed("GatheredCumMixture");
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 | 
			
		||||
<Manifest>
 | 
			
		||||
	<identifier>RJW Menstruation</identifier>
 | 
			
		||||
	<version>1.0.5.2</version>
 | 
			
		||||
	<version>1.0.5.4</version>
 | 
			
		||||
	<dependencies>
 | 
			
		||||
	</dependencies>
 | 
			
		||||
	<incompatibleWith />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,5 +9,6 @@
 | 
			
		|||
		<li>1.3</li>
 | 
			
		||||
		<li IfModActive="Abraxas.RJW.RaceSupport">1.3\RJW Menstruation Race Support</li>
 | 
			
		||||
		<li IfModActive="rjw.milk.humanoid">1.3\MilkModule</li>
 | 
			
		||||
		<li IfModActive="rjw.sexperience">1.3\SexperienceModule</li>
 | 
			
		||||
	</v1.3>
 | 
			
		||||
</loadFolders>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,3 +1,15 @@
 | 
			
		|||
Version 1.0.5.4
 | 
			
		||||
 - lactating cause nipple morph
 | 
			
		||||
 - clicking breast image will show nipple's origin state(before & after)
 | 
			
		||||
 - fixed animal pregnancy error
 | 
			
		||||
 - added cum effects
 | 
			
		||||
   - use IngestionOutcomeDoer
 | 
			
		||||
   - might you can make aphrodisiac cum with this
 | 
			
		||||
   - added antisperm antibody
 | 
			
		||||
   - added cyclosporine which cures antisperm antibody
 | 
			
		||||
 - sexperience integrations
 | 
			
		||||
   - added ability to gather cums in womb using cumbucket
 | 
			
		||||
 | 
			
		||||
Version 1.0.5.3
 | 
			
		||||
 - now impregnate on every orgasm
 | 
			
		||||
 - added egg lifespan setting
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue