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>
 | 
							</comps>
 | 
				
			||||||
	</ThingDef>
 | 
						</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>
 | 
					</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>
 | 
								</li>
 | 
				
			||||||
		</comps>
 | 
							</comps>
 | 
				
			||||||
	</HediffDef>
 | 
						</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>
 | 
					</Defs>
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!--
 | 
					<!--
 | 
				
			||||||
	<Operation Class="PatchOperationAddModExtension">
 | 
						<Operation Class="PatchOperationAddModExtension">
 | 
				
			||||||
		<xpath>Defs/ThingDef[defName="Race's defName"]</xpath>
 | 
							<xpath>Defs/ThingDef[defName="Race's defName"]</xpath>
 | 
				
			||||||
| 
						 | 
					@ -8,6 +9,12 @@
 | 
				
			||||||
					<fetusTexPath>Fetus/Fetus_Default</fetusTexPath>
 | 
										<fetusTexPath>Fetus/Fetus_Default</fetusTexPath>
 | 
				
			||||||
					<cumColor>(255,255,255,255)</cumColor>
 | 
										<cumColor>(255,255,255,255)</cumColor>
 | 
				
			||||||
					<cumThickness>0.2</cumThickness>
 | 
										<cumThickness>0.2</cumThickness>
 | 
				
			||||||
 | 
										<cumOutcomeDoers>
 | 
				
			||||||
 | 
											<li Class="IngestionOutcomeDoers">
 | 
				
			||||||
 | 
												<Some field>value</Some field>
 | 
				
			||||||
 | 
												<Some field>value</Some field>
 | 
				
			||||||
 | 
											</li>
 | 
				
			||||||
 | 
										</cumOutcomeDoers>
 | 
				
			||||||
					<hybridExtension>
 | 
										<hybridExtension>
 | 
				
			||||||
						<Other Race's defName>
 | 
											<Other Race's defName>
 | 
				
			||||||
							<Race or PawnKind defName>1.0</Race or PawnKind defName>
 | 
												<Race or PawnKind defName>1.0</Race or PawnKind defName>
 | 
				
			||||||
| 
						 | 
					@ -33,6 +40,13 @@
 | 
				
			||||||
					<fetusTexPath>Fetus/Fetus_Default</fetusTexPath>
 | 
										<fetusTexPath>Fetus/Fetus_Default</fetusTexPath>
 | 
				
			||||||
					<cumColor>(255,255,255,255)</cumColor> 
 | 
										<cumColor>(255,255,255,255)</cumColor> 
 | 
				
			||||||
					<cumThickness>0.2</cumThickness>
 | 
										<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>
 | 
				
			||||||
					</hybridExtension>
 | 
										</hybridExtension>
 | 
				
			||||||
				</li>
 | 
									</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>
 | 
					    <DebugSymbols>true</DebugSymbols>
 | 
				
			||||||
    <DebugType>full</DebugType>
 | 
					    <DebugType>full</DebugType>
 | 
				
			||||||
    <Optimize>false</Optimize>
 | 
					    <Optimize>false</Optimize>
 | 
				
			||||||
    <OutputPath>bin\Debug\</OutputPath>
 | 
					    <OutputPath>..\..\..\MilkModule\Assemblies\</OutputPath>
 | 
				
			||||||
    <DefineConstants>DEBUG;TRACE</DefineConstants>
 | 
					    <DefineConstants>DEBUG;TRACE</DefineConstants>
 | 
				
			||||||
    <ErrorReport>prompt</ErrorReport>
 | 
					    <ErrorReport>prompt</ErrorReport>
 | 
				
			||||||
    <WarningLevel>4</WarningLevel>
 | 
					    <WarningLevel>4</WarningLevel>
 | 
				
			||||||
| 
						 | 
					@ -90,6 +90,7 @@
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <Compile Include="JobDriver_MilkSelf.cs" />
 | 
					    <Compile Include="JobDriver_MilkSelf.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Milk_Patch.cs" />
 | 
				
			||||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
					    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <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
 | 
					EndProject
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MilkModule", "MilkModule\MilkModule.csproj", "{3591B3C1-EB57-44BF-AB69-A613E097A7F8}"
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MilkModule", "MilkModule\MilkModule.csproj", "{3591B3C1-EB57-44BF-AB69-A613E097A7F8}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SexperienceModule", "SexperienceModule\SexperienceModule.csproj", "{7DB664D7-D4B4-4673-9FF1-62EC18305715}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
Global
 | 
					Global
 | 
				
			||||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
		Debug|Any CPU = Debug|Any CPU
 | 
							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}.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.ActiveCfg = Release|Any CPU
 | 
				
			||||||
		{3591B3C1-EB57-44BF-AB69-A613E097A7F8}.Release|Any CPU.Build.0 = 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
 | 
						EndGlobalSection
 | 
				
			||||||
	GlobalSection(SolutionProperties) = preSolution
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
		HideSolutionNode = FALSE
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
        protected bool useCustomColor = false;
 | 
					        protected bool useCustomColor = false;
 | 
				
			||||||
        protected float notcumthickness = 0;
 | 
					        protected float notcumthickness = 0;
 | 
				
			||||||
        protected float cumthickness = 1.0f;
 | 
					        protected float cumthickness = 1.0f;
 | 
				
			||||||
 | 
					        protected Thing internalThing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public float Volume
 | 
					        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() { }
 | 
					        public Cum() { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -151,6 +165,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
        public virtual void ExposeData()
 | 
					        public virtual void ExposeData()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            Scribe_References.Look(ref pawn, "pawn", true);
 | 
					            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 volume, "volume", volume, true);
 | 
				
			||||||
            Scribe_Values.Look(ref fertvolume, "fertvolume", fertvolume, true);
 | 
					            Scribe_Values.Look(ref fertvolume, "fertvolume", fertvolume, true);
 | 
				
			||||||
            Scribe_Values.Look(ref notcumthickness, "notcumthickness", notcumthickness, true);
 | 
					            Scribe_Values.Look(ref notcumthickness, "notcumthickness", notcumthickness, true);
 | 
				
			||||||
| 
						 | 
					@ -208,14 +223,25 @@ namespace RJW_Menstruation
 | 
				
			||||||
            CutMinor();
 | 
					            CutMinor();
 | 
				
			||||||
            totalleak -= volume;
 | 
					            totalleak -= volume;
 | 
				
			||||||
            return totalleak;
 | 
					            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()
 | 
					        protected void CutMinor()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (volume < 0.01f) volume = 0f;
 | 
					            if (volume < 0.01f) volume = 0f;
 | 
				
			||||||
            if (fertvolume < 0.001f) fertvolume = 0f;
 | 
					            if (fertvolume < 0.001f) fertvolume = 0f;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -224,7 +250,8 @@ namespace RJW_Menstruation
 | 
				
			||||||
    public class CumMixture : Cum, IDisposable
 | 
					    public class CumMixture : Cum, IDisposable
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        protected List<string> cums;
 | 
					        protected List<string> cums;
 | 
				
			||||||
 | 
					        public bool ispurecum = true;
 | 
				
			||||||
 | 
					        public List<string> Getingredients => cums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public CumMixture()
 | 
					        public CumMixture()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					@ -232,13 +259,14 @@ namespace RJW_Menstruation
 | 
				
			||||||
            cums = new List<string>();
 | 
					            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.pawn = pawn;
 | 
				
			||||||
            this.volume = volume;
 | 
					            this.volume = volume;
 | 
				
			||||||
            this.cums = cums;
 | 
					            this.cums = cums;
 | 
				
			||||||
            this.customColor = color;
 | 
					            this.customColor = color;
 | 
				
			||||||
            this.useCustomColor = true;
 | 
					            this.useCustomColor = true;
 | 
				
			||||||
 | 
					            ispurecum = pure;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void Dispose()
 | 
					        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 class OvaryPillOutcomDoer : IngestionOutcomeDoer
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public float effectOffset;
 | 
					        public float effectOffset;
 | 
				
			||||||
| 
						 | 
					@ -37,8 +67,6 @@ namespace RJW_Menstruation
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                comp.RecoverOvary(1 + effectOffset);
 | 
					                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
 | 
					        public Color NippleColor
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -111,7 +111,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get
 | 
					            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;
 | 
					                return opcache;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -610,9 +610,11 @@ namespace RJW_Menstruation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        protected void BeforeCumOut(out Absorber absorber)
 | 
					        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;
 | 
					            if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) antisperm = 0.70f + asafactor;
 | 
				
			||||||
            else antisperm = 0.0f;
 | 
					            else antisperm = 0.0f + asafactor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            absorber = (Absorber)parent.pawn.apparel?.WornApparel?.Find(x => x is Absorber);
 | 
					            absorber = (Absorber)parent.pawn.apparel?.WornApparel?.Find(x => x is Absorber);
 | 
				
			||||||
            if (absorber != null)
 | 
					            if (absorber != null)
 | 
				
			||||||
| 
						 | 
					@ -657,6 +659,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
            List<Cum> removecums = new List<Cum>();
 | 
					            List<Cum> removecums = new List<Cum>();
 | 
				
			||||||
            foreach (Cum cum in cums)
 | 
					            foreach (Cum cum in cums)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					                cum.CumEffects(parent.pawn);
 | 
				
			||||||
                float vd = cum.DismishNatural(leakfactor, antisperm);
 | 
					                float vd = cum.DismishNatural(leakfactor, antisperm);
 | 
				
			||||||
                cum.MakeThinner(Configurations.CycleAcceleration);
 | 
					                cum.MakeThinner(Configurations.CycleAcceleration);
 | 
				
			||||||
                totalleak += AbsorbCum(cum, vd, absorber);
 | 
					                totalleak += AbsorbCum(cum, vd, absorber);
 | 
				
			||||||
| 
						 | 
					@ -719,7 +722,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
        /// <param name="mixtureDef"></param>
 | 
					        /// <param name="mixtureDef"></param>
 | 
				
			||||||
        /// <param name="portion"></param>
 | 
					        /// <param name="portion"></param>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <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;
 | 
					            if (cums.NullOrEmpty()) return null;
 | 
				
			||||||
            Color color = GetCumMixtureColor;
 | 
					            Color color = GetCumMixtureColor;
 | 
				
			||||||
| 
						 | 
					@ -727,6 +730,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
            List<string> cumlabels = new List<string>();
 | 
					            List<string> cumlabels = new List<string>();
 | 
				
			||||||
            float cumd = TotalCumPercent;
 | 
					            float cumd = TotalCumPercent;
 | 
				
			||||||
            List<Cum> removecums = new List<Cum>();
 | 
					            List<Cum> removecums = new List<Cum>();
 | 
				
			||||||
 | 
					            bool pure = true;
 | 
				
			||||||
            foreach (Cum cum in cums)
 | 
					            foreach (Cum cum in cums)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                float vd = cum.DismishForce(portion);
 | 
					                float vd = cum.DismishForce(portion);
 | 
				
			||||||
| 
						 | 
					@ -734,13 +738,14 @@ namespace RJW_Menstruation
 | 
				
			||||||
                cumlabels.Add(tmp.Replace(" x1", ""));
 | 
					                cumlabels.Add(tmp.Replace(" x1", ""));
 | 
				
			||||||
                totalleak += vd;
 | 
					                totalleak += vd;
 | 
				
			||||||
                if (cum.ShouldRemove()) removecums.Add(cum);
 | 
					                if (cum.ShouldRemove()) removecums.Add(cum);
 | 
				
			||||||
 | 
					                if (cum.notcum) pure = false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            foreach (Cum cum in removecums)
 | 
					            foreach (Cum cum in removecums)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                cums.Remove(cum);
 | 
					                cums.Remove(cum);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            removecums.Clear();
 | 
					            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));
 | 
					            ovarypower = Math.Max(0, (int)(ovarypower * multiply));
 | 
				
			||||||
            if (ovarypower >= ovarypowerthreshold)
 | 
					            if (ovarypower >= ovarypowerthreshold)
 | 
				
			||||||
| 
						 | 
					@ -1512,9 +1517,10 @@ namespace RJW_Menstruation
 | 
				
			||||||
            action += delegate
 | 
					            action += delegate
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) curStage = Stage.Young;
 | 
					                if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) curStage = Stage.Young;
 | 
				
			||||||
                CumOut();
 | 
					                //CumOut();
 | 
				
			||||||
                AfterSimulator();
 | 
					                AfterSimulator();
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					            action = CumOut + action;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            actionref = action;
 | 
					            actionref = action;
 | 
				
			||||||
            return actionref;
 | 
					            return actionref;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -207,7 +207,8 @@ namespace RJW_Menstruation
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (xxx.is_human(father))
 | 
					                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;
 | 
					                    lastname = NameTriple.FromString(father.Name.ToStringFull).Last;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
| 
						 | 
					@ -215,24 +216,18 @@ namespace RJW_Menstruation
 | 
				
			||||||
                    melanin = mother.story?.melanin ?? 0f;
 | 
					                    melanin = mother.story?.melanin ?? 0f;
 | 
				
			||||||
                    lastname = NameTriple.FromString(mother.Name.ToStringFull).Last;
 | 
					                    lastname = NameTriple.FromString(mother.Name.ToStringFull).Last;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (xxx.is_human(father))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                melanin = father.story?.melanin ?? 0f;
 | 
				
			||||||
 | 
					                lastname = NameTriple.FromString(father.Name.ToStringFull).Last;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (xxx.is_human(father))
 | 
					                melanin = Rand.Range(0, 1.0f);
 | 
				
			||||||
                {
 | 
					                lastname = "";
 | 
				
			||||||
                    melanin = father.story?.melanin ?? 0f;
 | 
					 | 
				
			||||||
                    lastname = NameTriple.FromString(father.Name.ToStringFull).Last;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                else
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    melanin = Rand.Range(0, 1.0f);
 | 
					 | 
				
			||||||
                    lastname = NameTriple.FromString(mother.Name.ToStringFull).Last;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            PawnGenerationRequest request = new PawnGenerationRequest(
 | 
					            PawnGenerationRequest request = new PawnGenerationRequest(
 | 
				
			||||||
                newborn: true,
 | 
					                newborn: true,
 | 
				
			||||||
                allowDowned: true,
 | 
					                allowDowned: true,
 | 
				
			||||||
| 
						 | 
					@ -274,7 +269,8 @@ namespace RJW_Menstruation
 | 
				
			||||||
                        firstheadpath = (string)baby.story.GetMemberValue("headGraphicPath");
 | 
					                        firstheadpath = (string)baby.story.GetMemberValue("headGraphicPath");
 | 
				
			||||||
                        if (firstheadpath == null)
 | 
					                        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");
 | 
					                            firstheadpath = (string)baby.story.GetMemberValue("headGraphicPath");
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (Configurations.HARActivated && baby.IsHAR())
 | 
					                        if (Configurations.HARActivated && baby.IsHAR())
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            foreach (LocalTargetInfo t in selftargets)
 | 
					            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;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,9 +60,6 @@ namespace RJW_Menstruation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return option;
 | 
					            return option;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //[HarmonyPatch(typeof(HealthCardUtility), "DrawHediffListing")]
 | 
					    //[HarmonyPatch(typeof(HealthCardUtility), "DrawHediffListing")]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -114,6 +114,14 @@
 | 
				
			||||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
 | 
					      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
 | 
				
			||||||
      <Private>False</Private>
 | 
					      <Private>False</Private>
 | 
				
			||||||
    </Reference>
 | 
					    </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">
 | 
					    <Reference Include="UnityEngine.TextCoreModule">
 | 
				
			||||||
      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextCoreModule.dll</HintPath>
 | 
					      <HintPath>..\..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextCoreModule.dll</HintPath>
 | 
				
			||||||
      <Private>False</Private>
 | 
					      <Private>False</Private>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
        public Color CumColor => cumColor.ToColor;
 | 
					        public Color CumColor => cumColor.ToColor;
 | 
				
			||||||
        public float cumThickness = 0f;
 | 
					        public float cumThickness = 0f;
 | 
				
			||||||
        public List<HybridExtension> hybridExtension;
 | 
					        public List<HybridExtension> hybridExtension;
 | 
				
			||||||
 | 
					        public List<IngestionOutcomeDoer> ingestionOutcomeDoers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public HybridExtension GetHybridExtension(string race)
 | 
					        public HybridExtension GetHybridExtension(string race)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -201,12 +201,11 @@ namespace RJW_Menstruation
 | 
				
			||||||
            Rect pawnLabelRect = new Rect(0, pawnRectHeight, pawnRectWidth, fontheight - 10);
 | 
					            Rect pawnLabelRect = new Rect(0, pawnRectHeight, pawnRectWidth, fontheight - 10);
 | 
				
			||||||
            Rect pawnLabel2Rect = new Rect(0, pawnRectHeight + fontheight - 10, pawnRectWidth, fontheight - 10);
 | 
					            Rect pawnLabel2Rect = new Rect(0, pawnRectHeight + fontheight - 10, pawnRectWidth, fontheight - 10);
 | 
				
			||||||
            fontstylecenter.normal.textColor = pawn.DrawColor;
 | 
					            fontstylecenter.normal.textColor = pawn.DrawColor;
 | 
				
			||||||
            GUI.Label(pawnLabelRect, pawn.Name.ToStringFull, fontstylecenter);
 | 
					            GUI.Label(pawnLabelRect, pawn.Name?.ToStringFull ?? pawn.Label, fontstylecenter);
 | 
				
			||||||
            if (pawn.story != null) GUI.Label(pawnLabel2Rect, pawn.story.Title, fontstylecenter);
 | 
					            if (pawn.story != null) GUI.Label(pawnLabel2Rect, pawn.ageTracker.AgeBiologicalYears + ", " + pawn.story.Title, fontstylecenter);
 | 
				
			||||||
            GUI.color = Color.white;
 | 
					            GUI.color = Color.white;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
 | 
					 | 
				
			||||||
            float wombrecth = 0;
 | 
					            float wombrecth = 0;
 | 
				
			||||||
            if (Configurations.DrawWombStatus)
 | 
					            if (Configurations.DrawWombStatus)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
| 
						 | 
					@ -342,7 +341,9 @@ namespace RJW_Menstruation
 | 
				
			||||||
            GUI.color = new Color(1.00f, 0.47f, 0.47f, 1);
 | 
					            GUI.color = new Color(1.00f, 0.47f, 0.47f, 1);
 | 
				
			||||||
            GUI.Box(rect, "", boxstyle);
 | 
					            GUI.Box(rect, "", boxstyle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            pawn.DrawBreastIcon(BreastIconRect);
 | 
					            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            pawn.DrawBreastIcon(BreastIconRect, Mouse.IsOver(BreastIconRect) && Input.GetMouseButton(0));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            GUI.color = Color.white;
 | 
					            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"));
 | 
					            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;
 | 
					            Texture2D breast, nipple, areola;
 | 
				
			||||||
| 
						 | 
					@ -259,9 +259,20 @@ namespace RJW_Menstruation
 | 
				
			||||||
                else icon += "_Breast05";
 | 
					                else icon += "_Breast05";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                string nippleicon, areolaicon;
 | 
					                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);
 | 
					                nippleicon = icon + "_Nipple0" + GetNippleIndex(nipplesize);
 | 
				
			||||||
                areolaicon = icon + "_Areola0" + GetAreolaIndex(comp.AreolaSize);
 | 
					                areolaicon = icon + "_Areola0" + GetAreolaIndex(areolasize);
 | 
				
			||||||
                
 | 
					                
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                breast = ContentFinder<Texture2D>.Get(icon, false);
 | 
					                breast = ContentFinder<Texture2D>.Get(icon, false);
 | 
				
			||||||
| 
						 | 
					@ -270,7 +281,14 @@ namespace RJW_Menstruation
 | 
				
			||||||
                GUI.color = pawn.story.SkinColor;
 | 
					                GUI.color = pawn.story.SkinColor;
 | 
				
			||||||
                GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit);
 | 
					                GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                GUI.color = comp.NippleColor;
 | 
					                if (drawOrigin)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    GUI.color = comp.OriginColor;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    GUI.color = comp.NippleColor;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);
 | 
					                GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                GUI.DrawTexture(rect, nipple, 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_Menopause = DefDatabase<HediffDef>.GetNamed("Hediff_Menopause");
 | 
				
			||||||
        public static readonly HediffDef Hediff_Estrus = DefDatabase<HediffDef>.GetNamed("Hediff_Estrus");
 | 
					        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_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 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_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");
 | 
					        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"?>
 | 
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 | 
				
			||||||
<Manifest>
 | 
					<Manifest>
 | 
				
			||||||
	<identifier>RJW Menstruation</identifier>
 | 
						<identifier>RJW Menstruation</identifier>
 | 
				
			||||||
	<version>1.0.5.2</version>
 | 
						<version>1.0.5.4</version>
 | 
				
			||||||
	<dependencies>
 | 
						<dependencies>
 | 
				
			||||||
	</dependencies>
 | 
						</dependencies>
 | 
				
			||||||
	<incompatibleWith />
 | 
						<incompatibleWith />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,5 +9,6 @@
 | 
				
			||||||
		<li>1.3</li>
 | 
							<li>1.3</li>
 | 
				
			||||||
		<li IfModActive="Abraxas.RJW.RaceSupport">1.3\RJW Menstruation Race Support</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.milk.humanoid">1.3\MilkModule</li>
 | 
				
			||||||
 | 
							<li IfModActive="rjw.sexperience">1.3\SexperienceModule</li>
 | 
				
			||||||
	</v1.3>
 | 
						</v1.3>
 | 
				
			||||||
</loadFolders>
 | 
					</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
 | 
					Version 1.0.5.3
 | 
				
			||||||
 - now impregnate on every orgasm
 | 
					 - now impregnate on every orgasm
 | 
				
			||||||
 - added egg lifespan setting
 | 
					 - added egg lifespan setting
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue