This commit is contained in:
moreoreganostodump 2021-09-26 18:19:24 +09:00
parent 892697626a
commit 1a8d386e02
88 changed files with 270 additions and 85 deletions

Binary file not shown.

View File

@ -12,14 +12,14 @@
</graphicData> </graphicData>
<tickerType>Never</tickerType> <tickerType>Never</tickerType>
<smeltable>false</smeltable> <smeltable>false</smeltable>
<tradeability>Sellable</tradeability> <tradeability>Sellable</tradeability>
<statBases> <statBases>
<MaxHitPoints>20</MaxHitPoints> <MaxHitPoints>20</MaxHitPoints>
<Mass>0.01</Mass> <Mass>0.01</Mass>
<WorkToMake>1000</WorkToMake> <WorkToMake>1000</WorkToMake>
<Flammability>1.0</Flammability> <Flammability>1.0</Flammability>
<EquipDelay>2</EquipDelay> <EquipDelay>2</EquipDelay>
<MaxAbsorbable>10</MaxAbsorbable> <MaxAbsorbable>10</MaxAbsorbable>
</statBases> </statBases>
<costStuffCount>5</costStuffCount> <costStuffCount>5</costStuffCount>
<stuffCategories> <stuffCategories>
@ -34,7 +34,7 @@
<soundWorking>Recipe_Tailor</soundWorking> <soundWorking>Recipe_Tailor</soundWorking>
<recipeUsers> <recipeUsers>
<li>ElectricTailoringBench</li> <li>ElectricTailoringBench</li>
<li>HandTailoringBench</li> <li>HandTailoringBench</li>
</recipeUsers> </recipeUsers>
<useIngredientsForColor>true</useIngredientsForColor> <useIngredientsForColor>true</useIngredientsForColor>
<skillRequirements> <skillRequirements>
@ -46,11 +46,12 @@
</thingCategories> </thingCategories>
<apparel> <apparel>
<careIfWornByCorpse>true</careIfWornByCorpse> <careIfWornByCorpse>true</careIfWornByCorpse>
<countsAsClothingForNudity>false</countsAsClothingForNudity>
<careIfDamaged>false</careIfDamaged> <careIfDamaged>false</careIfDamaged>
<wearPerDay>0</wearPerDay> <wearPerDay>0</wearPerDay>
<gender>Female</gender> <gender>Female</gender>
<bodyPartGroups> <bodyPartGroups>
<li>Torso</li> <li>GenitalsBPG</li>
</bodyPartGroups> </bodyPartGroups>
<layers> <layers>
<li>Absorber</li> <li>Absorber</li>
@ -59,18 +60,18 @@
<li>Absorber</li> <li>Absorber</li>
</tags> </tags>
</apparel> </apparel>
<modExtensions> <modExtensions>
<li Class="RJW_Menstruation.AbsorberModExtension"> <li Class="RJW_Menstruation.AbsorberModExtension">
<leakAfterDirty>false</leakAfterDirty> <leakAfterDirty>false</leakAfterDirty>
<effectsAfterDirty>true</effectsAfterDirty> <effectsAfterDirty>true</effectsAfterDirty>
<minHourstoDirtyEffect>10</minHourstoDirtyEffect> <minHourstoDirtyEffect>10</minHourstoDirtyEffect>
<dirtyDef>Absorber_Tampon_Dirty</dirtyDef> <dirtyDef>Absorber_Tampon_Dirty</dirtyDef>
</li> </li>
</modExtensions> </modExtensions>
</ThingDef> </ThingDef>
<ThingDef ParentName="ApparelNoQualityBase"> <ThingDef ParentName="ApparelNoQualityBase">
<defName>Absorber_Tampon_Dirty</defName> <defName>Absorber_Tampon_Dirty</defName>
<label>dirty tampon</label> <label>dirty tampon</label>
<description>An wet used tampon.&#10;May cause infection.</description> <description>An wet used tampon.&#10;May cause infection.</description>
<thingClass>RJW_Menstruation.Absorber_Tampon</thingClass> <thingClass>RJW_Menstruation.Absorber_Tampon</thingClass>
@ -80,16 +81,16 @@
</graphicData> </graphicData>
<tickerType>Never</tickerType> <tickerType>Never</tickerType>
<smeltable>false</smeltable> <smeltable>false</smeltable>
<tradeability>None</tradeability> <tradeability>None</tradeability>
<statBases> <statBases>
<MaxHitPoints>20</MaxHitPoints> <MaxHitPoints>20</MaxHitPoints>
<Mass>0.05</Mass> <Mass>0.05</Mass>
<MarketValue>0</MarketValue> <MarketValue>0</MarketValue>
<WorkToMake>1000</WorkToMake> <WorkToMake>1000</WorkToMake>
<Flammability>0.2</Flammability> <Flammability>0.2</Flammability>
<EquipDelay>2</EquipDelay> <EquipDelay>2</EquipDelay>
<MaxAbsorbable>10</MaxAbsorbable> <MaxAbsorbable>10</MaxAbsorbable>
<Cleanliness>-5</Cleanliness> <Cleanliness>-5</Cleanliness>
</statBases> </statBases>
<stuffCategories> <stuffCategories>
<li>Fabric</li> <li>Fabric</li>
@ -99,11 +100,12 @@
</thingCategories> </thingCategories>
<apparel> <apparel>
<careIfWornByCorpse>true</careIfWornByCorpse> <careIfWornByCorpse>true</careIfWornByCorpse>
<countsAsClothingForNudity>false</countsAsClothingForNudity>
<careIfDamaged>false</careIfDamaged> <careIfDamaged>false</careIfDamaged>
<wearPerDay>0</wearPerDay> <wearPerDay>0</wearPerDay>
<gender>Female</gender> <gender>Female</gender>
<bodyPartGroups> <bodyPartGroups>
<li>Torso</li> <li>GenitalsBPG</li>
</bodyPartGroups> </bodyPartGroups>
<layers> <layers>
<li>Absorber</li> <li>Absorber</li>
@ -112,17 +114,17 @@
<li>Absorber</li> <li>Absorber</li>
</tags> </tags>
</apparel> </apparel>
<modExtensions> <modExtensions>
<li Class="RJW_Menstruation.AbsorberModExtension"> <li Class="RJW_Menstruation.AbsorberModExtension">
<leakAfterDirty>false</leakAfterDirty> <leakAfterDirty>false</leakAfterDirty>
<effectsAfterDirty>true</effectsAfterDirty> <effectsAfterDirty>true</effectsAfterDirty>
<minHourstoDirtyEffect>8</minHourstoDirtyEffect> <minHourstoDirtyEffect>8</minHourstoDirtyEffect>
<dirtyDef>Absorber_Tampon_Dirty</dirtyDef> <dirtyDef>Absorber_Tampon_Dirty</dirtyDef>
</li> </li>
</modExtensions> </modExtensions>
</ThingDef> </ThingDef>
<ThingDef ParentName="ApparelNoQualityBase"> <ThingDef ParentName="ApparelNoQualityBase">
<defName>Absorber_Pad</defName> <defName>Absorber_Pad</defName>
<label>sanitary pad</label> <label>sanitary pad</label>
@ -134,14 +136,22 @@
</graphicData> </graphicData>
<tickerType>Never</tickerType> <tickerType>Never</tickerType>
<smeltable>false</smeltable> <smeltable>false</smeltable>
<tradeability>Sellable</tradeability> <tradeability>Sellable</tradeability>
<statBases> <statBases>
<MaxHitPoints>40</MaxHitPoints> <MaxHitPoints>40</MaxHitPoints>
<Mass>0.02</Mass> <Mass>0.02</Mass>
<WorkToMake>1000</WorkToMake> <WorkToMake>1000</WorkToMake>
<Flammability>1.0</Flammability> <Flammability>1.0</Flammability>
<EquipDelay>4</EquipDelay> <EquipDelay>4</EquipDelay>
<MaxAbsorbable>25</MaxAbsorbable> <MaxAbsorbable>25</MaxAbsorbable>
<StuffEffectMultiplierArmor>0.02</StuffEffectMultiplierArmor>
<StuffEffectMultiplierInsulation_Cold>0.02</StuffEffectMultiplierInsulation_Cold>
<StuffEffectMultiplierInsulation_Heat>0.05</StuffEffectMultiplierInsulation_Heat>
<ArmorRating_Sharp>0.01</ArmorRating_Sharp>
<ArmorRating_Blunt>0.04</ArmorRating_Blunt>
<ArmorRating_Heat>0.05</ArmorRating_Heat>
<Insulation_Cold>1</Insulation_Cold>
<Insulation_Heat>-1</Insulation_Heat>
</statBases> </statBases>
<costStuffCount>10</costStuffCount> <costStuffCount>10</costStuffCount>
<stuffCategories> <stuffCategories>
@ -155,7 +165,7 @@
<soundWorking>Recipe_Tailor</soundWorking> <soundWorking>Recipe_Tailor</soundWorking>
<recipeUsers> <recipeUsers>
<li>ElectricTailoringBench</li> <li>ElectricTailoringBench</li>
<li>HandTailoringBench</li> <li>HandTailoringBench</li>
</recipeUsers> </recipeUsers>
<useIngredientsForColor>true</useIngredientsForColor> <useIngredientsForColor>true</useIngredientsForColor>
<skillRequirements> <skillRequirements>
@ -167,11 +177,12 @@
</thingCategories> </thingCategories>
<apparel> <apparel>
<careIfWornByCorpse>true</careIfWornByCorpse> <careIfWornByCorpse>true</careIfWornByCorpse>
<countsAsClothingForNudity>true</countsAsClothingForNudity>
<careIfDamaged>false</careIfDamaged> <careIfDamaged>false</careIfDamaged>
<wearPerDay>0</wearPerDay> <wearPerDay>0</wearPerDay>
<gender>Female</gender> <gender>Female</gender>
<bodyPartGroups> <bodyPartGroups>
<li>Torso</li> <li>GenitalsBPG</li>
</bodyPartGroups> </bodyPartGroups>
<layers> <layers>
<li>Absorber</li> <li>Absorber</li>
@ -180,17 +191,17 @@
<li>Absorber</li> <li>Absorber</li>
</tags> </tags>
</apparel> </apparel>
<modExtensions> <modExtensions>
<li Class="RJW_Menstruation.AbsorberModExtension"> <li Class="RJW_Menstruation.AbsorberModExtension">
<leakAfterDirty>true</leakAfterDirty> <leakAfterDirty>true</leakAfterDirty>
<effectsAfterDirty>false</effectsAfterDirty> <effectsAfterDirty>false</effectsAfterDirty>
<dirtyDef>Absorber_Pad_Dirty</dirtyDef> <dirtyDef>Absorber_Pad_Dirty</dirtyDef>
</li> </li>
</modExtensions> </modExtensions>
</ThingDef> </ThingDef>
<ThingDef ParentName="ApparelNoQualityBase"> <ThingDef ParentName="ApparelNoQualityBase">
<defName>Absorber_Pad_Dirty</defName> <defName>Absorber_Pad_Dirty</defName>
<label>wet sanitary pad</label> <label>wet sanitary pad</label>
<description>An wet used pad.</description> <description>An wet used pad.</description>
<thingClass>RJW_Menstruation.Absorber</thingClass> <thingClass>RJW_Menstruation.Absorber</thingClass>
@ -200,16 +211,24 @@
</graphicData> </graphicData>
<tickerType>Never</tickerType> <tickerType>Never</tickerType>
<smeltable>false</smeltable> <smeltable>false</smeltable>
<tradeability>None</tradeability> <tradeability>None</tradeability>
<statBases> <statBases>
<MaxHitPoints>40</MaxHitPoints> <MaxHitPoints>40</MaxHitPoints>
<Mass>0.10</Mass> <Mass>0.10</Mass>
<MarketValue>0</MarketValue> <MarketValue>0</MarketValue>
<WorkToMake>1000</WorkToMake> <WorkToMake>1000</WorkToMake>
<Flammability>0.2</Flammability> <Flammability>0.2</Flammability>
<EquipDelay>4</EquipDelay> <EquipDelay>4</EquipDelay>
<MaxAbsorbable>25</MaxAbsorbable> <MaxAbsorbable>25</MaxAbsorbable>
<Cleanliness>-5</Cleanliness> <Cleanliness>-5</Cleanliness>
<StuffEffectMultiplierArmor>0.02</StuffEffectMultiplierArmor>
<StuffEffectMultiplierInsulation_Cold>0.02</StuffEffectMultiplierInsulation_Cold>
<StuffEffectMultiplierInsulation_Heat>0.05</StuffEffectMultiplierInsulation_Heat>
<ArmorRating_Sharp>0.01</ArmorRating_Sharp>
<ArmorRating_Blunt>0.04</ArmorRating_Blunt>
<ArmorRating_Heat>0.1</ArmorRating_Heat>
<Insulation_Cold>-4</Insulation_Cold>
<Insulation_Heat>2</Insulation_Heat>
</statBases> </statBases>
<stuffCategories> <stuffCategories>
<li>Fabric</li> <li>Fabric</li>
@ -219,11 +238,12 @@
</thingCategories> </thingCategories>
<apparel> <apparel>
<careIfWornByCorpse>true</careIfWornByCorpse> <careIfWornByCorpse>true</careIfWornByCorpse>
<countsAsClothingForNudity>true</countsAsClothingForNudity>
<careIfDamaged>false</careIfDamaged> <careIfDamaged>false</careIfDamaged>
<wearPerDay>0</wearPerDay> <wearPerDay>0</wearPerDay>
<gender>Female</gender> <gender>Female</gender>
<bodyPartGroups> <bodyPartGroups>
<li>Torso</li> <li>GenitalsBPG</li>
</bodyPartGroups> </bodyPartGroups>
<layers> <layers>
<li>Absorber</li> <li>Absorber</li>
@ -232,12 +252,12 @@
<li>Absorber</li> <li>Absorber</li>
</tags> </tags>
</apparel> </apparel>
<modExtensions> <modExtensions>
<li Class="RJW_Menstruation.AbsorberModExtension"> <li Class="RJW_Menstruation.AbsorberModExtension">
<leakAfterDirty>true</leakAfterDirty> <leakAfterDirty>true</leakAfterDirty>
<effectsAfterDirty>false</effectsAfterDirty> <effectsAfterDirty>false</effectsAfterDirty>
<dirtyDef>Absorber_Pad_Dirty</dirtyDef> <dirtyDef>Absorber_Pad_Dirty</dirtyDef>
</li> </li>
</modExtensions> </modExtensions>
</ThingDef> </ThingDef>
</Defs> </Defs>

View File

@ -25,6 +25,8 @@
<Dialog_WombInfo07>Ovulation</Dialog_WombInfo07> <Dialog_WombInfo07>Ovulation</Dialog_WombInfo07>
<Dialog_WombInfo08></Dialog_WombInfo08> <Dialog_WombInfo08></Dialog_WombInfo08>
<Dialog_WombInfo09></Dialog_WombInfo09> <Dialog_WombInfo09></Dialog_WombInfo09>
<Dialog_DoCleanWomb_Tooltip>Gather cums into bucket</Dialog_DoCleanWomb_Tooltip>
<Dialog_DontCleanWomb_Tooltip>Store cums in womb</Dialog_DontCleanWomb_Tooltip>
<Option1_Label_1>enable womb icon</Option1_Label_1> <Option1_Label_1>enable womb icon</Option1_Label_1>
<Option1_Label_2>enable button in health tab</Option1_Label_2> <Option1_Label_2>enable button in health tab</Option1_Label_2>

View File

@ -19,8 +19,8 @@
<value> <value>
<comps> <comps>
<li Class="RJW_Menstruation.CompProperties_Breast"> <li Class="RJW_Menstruation.CompProperties_Breast">
<BreastTex>Breasts/Breast</BreastTex> <BreastTex>Breasts/Breasts_Artificial</BreastTex>
<BlacknippleColor>(55,20,0)</BlacknippleColor> <BlacknippleColor>(255,255,255)</BlacknippleColor>
</li> </li>
</comps> </comps>
</value> </value>
@ -31,8 +31,8 @@
<value> <value>
<comps> <comps>
<li Class="RJW_Menstruation.CompProperties_Breast"> <li Class="RJW_Menstruation.CompProperties_Breast">
<BreastTex>Breasts/Breast</BreastTex> <BreastTex>Breasts/Breasts_Artificial</BreastTex>
<BlacknippleColor>(55,20,0)</BlacknippleColor> <BlacknippleColor>(255,255,255)</BlacknippleColor>
</li> </li>
</comps> </comps>
</value> </value>
@ -44,7 +44,7 @@
<comps> <comps>
<li Class="RJW_Menstruation.CompProperties_Breast"> <li Class="RJW_Menstruation.CompProperties_Breast">
<BreastTex>Breasts/Breast</BreastTex> <BreastTex>Breasts/Breast</BreastTex>
<BlacknippleColor>(55,20,0)</BlacknippleColor> <BlacknippleColor>(255,255,255)</BlacknippleColor>
</li> </li>
</comps> </comps>
</value> </value>

View File

@ -4,7 +4,7 @@
<JobDef> <JobDef>
<defName>VaginaWashingwithBucket</defName> <defName>VaginaWashingwithBucket</defName>
<driverClass>RJW_Menstruation.Sexperience.JobDriver_VaginaWashingWithBucket</driverClass> <driverClass>RJW_Menstruation.Sexperience.JobDriver_VaginaWashingWithBucket</driverClass>
<reportString>washing vagina</reportString> <reportString>gather cum</reportString>
<casualInterruptible>true</casualInterruptible> <casualInterruptible>true</casualInterruptible>
</JobDef> </JobDef>
</Defs> </Defs>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -43,10 +43,6 @@
<HintPath>..\..\..\..\..\rjw-mc-master\1.3\Assemblies\Milk.dll</HintPath> <HintPath>..\..\..\..\..\rjw-mc-master\1.3\Assemblies\Milk.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="RJW">
<HintPath>..\..\..\..\..\RJW\1.2\Assemblies\RJW.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />

View File

@ -73,7 +73,7 @@ namespace RJW_Menstruation
public bool loaded = false; public bool loaded = false;
public int ovarypower = -100000; public int ovarypower = -100000;
public int eggstack = 0; public int eggstack = 0;
public bool DoCleanWomb = false;
public enum Stage public enum Stage
{ {
@ -121,7 +121,6 @@ namespace RJW_Menstruation
protected HediffComp_Breast breastcache = null; protected HediffComp_Breast breastcache = null;
protected float antisperm = 0.0f; protected float antisperm = 0.0f;
protected float? originvagsize = null; protected float? originvagsize = null;
protected bool? hymen = null;
public int ovarypowerthreshold public int ovarypowerthreshold
{ {
@ -507,7 +506,7 @@ namespace RJW_Menstruation
Scribe_Values.Look(ref eggstack, "eggstack", eggstack, true); Scribe_Values.Look(ref eggstack, "eggstack", eggstack, true);
Scribe_Values.Look(ref estrusflag, "estrusflag", estrusflag, true); Scribe_Values.Look(ref estrusflag, "estrusflag", estrusflag, true);
Scribe_Values.Look(ref originvagsize, "originvagsize", originvagsize, true); Scribe_Values.Look(ref originvagsize, "originvagsize", originvagsize, true);
Scribe_Values.Look(ref hymen, "hymen", hymen, true); Scribe_Values.Look(ref DoCleanWomb, "DoCleanWomb", DoCleanWomb, true);
} }

View File

@ -12,13 +12,14 @@ namespace RJW_Menstruation
{ {
public static void Postfix(ref IEnumerable<Gizmo> __result, Pawn __instance) public static void Postfix(ref IEnumerable<Gizmo> __result, Pawn __instance)
{ {
List<Gizmo> gizmoList = __result.ToList();
if (!__instance.ShowStatus()) if (!__instance.ShowStatus())
{ {
return; return;
} }
List<Gizmo> gizmoList = __result.ToList();
if (__instance.ShouldShowWombGizmo()) if (__instance.ShouldShowWombGizmo())
{ {
AddWombGizmos(__instance, ref gizmoList); AddWombGizmos(__instance, ref gizmoList);
@ -46,10 +47,16 @@ namespace RJW_Menstruation
private static void AddWombGizmos(Pawn __instance, ref List<Gizmo> gizmoList) private static void AddWombGizmos(Pawn __instance, ref List<Gizmo> gizmoList)
{ {
HediffComp_Menstruation comp = __instance.GetMenstruationComp(); HediffComp_Menstruation comp = __instance.GetMenstruationComp();
if (comp != null) gizmoList.Add(CreateGizmo_WombStatus(__instance, comp)); if (comp != null) AddMenstruationGizmos(__instance, comp, ref gizmoList);
} }
private static void AddMenstruationGizmos(Pawn pawn, HediffComp_Menstruation comp, ref List<Gizmo> gizmolist)
{
gizmolist.Add(CreateGizmo_WombStatus(pawn, comp));
}
private static Gizmo CreateGizmo_WombStatus(Pawn pawn, HediffComp_Menstruation comp) private static Gizmo CreateGizmo_WombStatus(Pawn pawn, HediffComp_Menstruation comp)
{ {
Texture2D icon, icon_overay; Texture2D icon, icon_overay;
@ -113,6 +120,7 @@ namespace RJW_Menstruation
return gizmo; return gizmo;
} }
} }

View File

@ -87,7 +87,8 @@ namespace RJW_Menstruation
} }
public static readonly Texture2D FertChanceTex = SolidColorMaterials.NewSolidColorTexture(new Color(1f, 1f, 1f, 0.4f)); public static readonly Texture2D FertChanceTex = SolidColorMaterials.NewSolidColorTexture(new Color(1f, 1f, 1f, 0.4f));
public static readonly Texture2D GatherCum_Bucket = ContentFinder<Texture2D>.Get("UI/Icon/ToBucket");
public static readonly Texture2D GatherCum_Pussy = ContentFinder<Texture2D>.Get("UI/Icon/ToPussy");
private static Texture2D milktexturecache = SolidColorMaterials.NewSolidColorTexture(0.992f, 1.0f, 0.960f, 1.0f); private static Texture2D milktexturecache = SolidColorMaterials.NewSolidColorTexture(0.992f, 1.0f, 0.960f, 1.0f);
private static Texture2D slaaneshtexturecache = SolidColorMaterials.NewSolidColorTexture(0.686f, 0.062f, 0.698f, 1.0f); private static Texture2D slaaneshtexturecache = SolidColorMaterials.NewSolidColorTexture(0.686f, 0.062f, 0.698f, 1.0f);
@ -102,5 +103,6 @@ namespace RJW_Menstruation
} }
} }

View File

@ -19,6 +19,8 @@ namespace RJW_Menstruation
public static readonly string Stage_Anestrus = "Stage_Anestrus".Translate(); public static readonly string Stage_Anestrus = "Stage_Anestrus".Translate();
public static readonly string Button_HealthTab = "Button_HealthTab".Translate(); public static readonly string Button_HealthTab = "Button_HealthTab".Translate();
public static readonly string Button_MilkTooltip = "Button_MilkTooltip".Translate(); public static readonly string Button_MilkTooltip = "Button_MilkTooltip".Translate();
public static readonly string Dialog_DoCleanWomb_Tooltip = "Dialog_DoCleanWomb_Tooltip".Translate();
public static readonly string Dialog_DontCleanWomb_Tooltip = "Dialog_DontCleanWomb_Tooltip".Translate();
public static readonly string Dialog_WombInfo01 = "Dialog_WombInfo01".Translate(); public static readonly string Dialog_WombInfo01 = "Dialog_WombInfo01".Translate();
public static readonly string Dialog_WombInfo02 = "Dialog_WombInfo02".Translate(); public static readonly string Dialog_WombInfo02 = "Dialog_WombInfo02".Translate();

View File

@ -34,7 +34,7 @@ namespace RJW_Menstruation
if (Configurations.IsOverrideExist(def)) continue; if (Configurations.IsOverrideExist(def)) continue;
else else
{ {
raceList.Add(new FloatMenuOption(def.label, delegate { AddHybridOverride(def); } )); raceList.Add(new FloatMenuOption(def.label, delegate { AddHybridOverride(def);}, def.uiIcon, Color.white ));
} }
} }
} }
@ -288,7 +288,7 @@ namespace RJW_Menstruation
if (info.hybridExtension.Exists(x => x.defName == def.defName)) continue; if (info.hybridExtension.Exists(x => x.defName == def.defName)) continue;
else else
{ {
raceList.Add(new FloatMenuOption(def.label, delegate { AddHybridInfo(def); })); raceList.Add(new FloatMenuOption(def.label, delegate { AddHybridInfo(def); }, Widgets.GetIconFor(def), Color.white));
} }
} }
} }
@ -384,7 +384,7 @@ namespace RJW_Menstruation
if (extension.hybridInfo.ContainsKey(def.defName)) continue; if (extension.hybridInfo.ContainsKey(def.defName)) continue;
else else
{ {
list.Add(new FloatMenuOption(def.label, delegate { extension.hybridInfo.Add(def.defName, 1.0f); })); list.Add(new FloatMenuOption(def.label, delegate { extension.hybridInfo.Add(def.defName, 1.0f); }, Widgets.GetIconFor(def), Color.white));
} }
} }
} }
@ -456,7 +456,7 @@ namespace RJW_Menstruation
if (extension.hybridInfo.ContainsKey(def.defName)) continue; if (extension.hybridInfo.ContainsKey(def.defName)) continue;
else else
{ {
list.Add(new FloatMenuOption(def.label, delegate { extension.hybridInfo.Add(def.defName, 1.0f); })); list.Add(new FloatMenuOption(def.label, delegate { extension.hybridInfo.Add(def.defName, 1.0f); }, Widgets.GetIconFor(def.race), Color.white));
} }
} }
} }

View File

@ -38,7 +38,20 @@ namespace RJW_Menstruation
private GUIStyle boxstyle = new GUIStyle(GUI.skin.textArea); private GUIStyle boxstyle = new GUIStyle(GUI.skin.textArea);
private GUIStyle buttonstyle = new GUIStyle(GUI.skin.button); private GUIStyle buttonstyle = new GUIStyle(GUI.skin.button);
public Pawn Pawn
{
get
{
return pawn;
}
}
public HediffComp_Menstruation Comp
{
get
{
return comp;
}
}
public override Vector2 InitialSize public override Vector2 InitialSize

View File

@ -195,7 +195,7 @@ namespace RJW_Menstruation
nipple = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Nipple00", false); nipple = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Nipple00", false);
areola = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Areola00", false); areola = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Areola00", false);
GUI.color = pawn.story.SkinColor; GUI.color = pawn.story?.SkinColor ?? Color.white;
GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit); GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit);
GUI.color = Color.white; GUI.color = Color.white;
GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit); GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);

View File

@ -11,11 +11,10 @@ using RJWSexperience;
namespace RJW_Menstruation.Sexperience namespace RJW_Menstruation.Sexperience
{ {
public class JobDriver_VaginaWashingWithBucket : JobDriver public class JobDriver_VaginaWashingWithBucket : JobDriver_CleanSelfWithBucket
{ {
const int excretingTime = 300;//ticks - 120 = 2 real seconds, 3 in-game minutes 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) public override bool TryMakePreToilReservations(bool errorOnFailed)
{ {
@ -54,6 +53,16 @@ namespace RJW_Menstruation.Sexperience
if (Comp.TotalCumPercent > 0.001) JumpToToil(excreting); if (Comp.TotalCumPercent > 0.001) JumpToToil(excreting);
} }
}; };
Toil cleaning = new Toil();
cleaning.initAction = CleaningInit;
cleaning.tickAction = CleaningTick;
cleaning.AddFinishAction(Finish);
cleaning.defaultCompleteMode = ToilCompleteMode.Never;
cleaning.WithProgressBar(TargetIndex.A, () => progress / CleaningTime);
yield return cleaning;
//yield return excreting; //yield return excreting;
yield break; yield break;
} }

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using RimWorld;
using UnityEngine;
using RJWSexperience;
using rjw;
using HarmonyLib;
namespace RJW_Menstruation.Sexperience
{
[HarmonyPatch(typeof(Pawn_GetGizmos), "AddMenstruationGizmos")]
public static class GetGizmos_Patch
{
public static void Postfix(Pawn pawn, HediffComp_Menstruation comp, ref List<Gizmo> gizmolist)
{
gizmolist.Add(CreateGizmo_GatherCum(pawn, comp));
}
private static Gizmo CreateGizmo_GatherCum(Pawn pawn, HediffComp_Menstruation comp)
{
Texture2D icon = TextureCache.GatherCum_Bucket;
string label = Keyed.RS_GatherCum;
string description = Keyed.RS_GatherCum;
Gizmo gizmo = new Command_Toggle
{
defaultLabel = label,
defaultDesc = description,
icon = icon,
isActive = delegate() { return comp.DoCleanWomb; },
toggleAction = delegate
{
comp.DoCleanWomb = !comp.DoCleanWomb;
}
};
return gizmo;
}
}
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RJW_Menstruation;
using HarmonyLib;
using rjw;
using RimWorld;
using Verse;
using Verse.Sound;
using UnityEngine;
using RJWSexperience;
namespace RJW_Menstruation.Sexperience
{
[HarmonyPatch(typeof(Dialog_WombStatus), "DrawWomb")]
public static class Menstruation_Patch_Dialog_WombStatus
{
public const float ICONSIZE = 42f;
public static void Postfix(Rect rect, Dialog_WombStatus __instance)
{
Rect buttonRect = new Rect(rect.x, rect.yMax - ICONSIZE, ICONSIZE, ICONSIZE).ContractedBy(2f);
if (__instance.Comp.DoCleanWomb)
{
Widgets.DrawTextureFitted(buttonRect,TextureCache.GatherCum_Bucket,1.0f);
TooltipHandler.TipRegion(buttonRect, Translations.Dialog_DoCleanWomb_Tooltip);
}
else
{
Widgets.DrawTextureFitted(buttonRect, TextureCache.GatherCum_Pussy, 1.0f);
TooltipHandler.TipRegion(buttonRect, Translations.Dialog_DontCleanWomb_Tooltip);
}
if (Widgets.ButtonInvisible(buttonRect))
{
SoundDefOf.Click.PlayOneShotOnCamera();
__instance.Comp.DoCleanWomb = !__instance.Comp.DoCleanWomb;
}
}
}
}

View File

@ -18,7 +18,9 @@ namespace RJW_Menstruation.Sexperience
public static void Postfix(Vector3 clickPos, Pawn pawn, List<FloatMenuOption> opts) public static void Postfix(Vector3 clickPos, Pawn pawn, List<FloatMenuOption> opts)
{ {
var targets = GenUI.TargetsAt(clickPos, TargetingParameters.ForBuilding()); var targets = GenUI.TargetsAt(clickPos, TargetingParameters.ForBuilding());
HediffComp_Menstruation comp = pawn.GetMenstruationComp();
if (comp != null && comp.TotalCumPercent > 0.001f)
foreach (LocalTargetInfo t in targets) foreach (LocalTargetInfo t in targets)
{ {
Building building = t.Thing as Building; Building building = t.Thing as Building;
@ -39,7 +41,7 @@ namespace RJW_Menstruation.Sexperience
public static FloatMenuOption MakeMenu(Pawn pawn, LocalTargetInfo target) public static FloatMenuOption MakeMenu(Pawn pawn, LocalTargetInfo target)
{ {
FloatMenuOption option = FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(Translations.FloatMenu_CleanSelf, delegate () FloatMenuOption option = FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(Keyed.RS_GatherCum, delegate ()
{ {
pawn.jobs.TryTakeOrderedJob(new Verse.AI.Job(VariousDefOf.VaginaWashingwithBucket, null, target, target.Cell)); pawn.jobs.TryTakeOrderedJob(new Verse.AI.Job(VariousDefOf.VaginaWashingwithBucket, null, target, target.Cell));
}, MenuOptionPriority.Low), pawn, target); }, MenuOptionPriority.Low), pawn, target);

View File

@ -5,14 +5,46 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using RimWorld; using RimWorld;
using Verse; using Verse;
using Verse.AI;
using rjw; using rjw;
using RJW_Menstruation; using RJW_Menstruation;
using HarmonyLib;
using RJWSexperience;
namespace RJW_Menstruation.Sexperience namespace RJW_Menstruation.Sexperience
{ {
public class RJW_Patch [HarmonyPatch(typeof(WorkGiver_CleanSelf))]
public static class RJW_Patch_WorkGiver_CleanSelf
{ {
[HarmonyPrefix]
[HarmonyPatch("HasJobOnThing")]
public static bool HasJobOnThing(Pawn pawn, Thing t, bool forced, ref bool __result)
{
HediffComp_Menstruation comp = pawn.GetMenstruationComp();
if (comp != null && comp.DoCleanWomb && comp.TotalCumPercent > 0.001f)
{
__result = true;
return false;
}
return true;
}
[HarmonyPostfix]
[HarmonyPatch("JobOnThing")]
public static void JobOnThing(Pawn pawn, Thing t, bool forced, ref Job __result)
{
HediffComp_Menstruation comp = pawn.GetMenstruationComp();
if (comp != null && comp.DoCleanWomb && comp.TotalCumPercent > 0.001f)
{
Building_CumBucket bucket = pawn.FindClosestBucket();
if (bucket != null)
{
__result = JobMaker.MakeJob(VariousDefOf.VaginaWashingwithBucket, null, bucket, bucket.Position);
}
}
}

View File

@ -103,7 +103,9 @@
<ItemGroup> <ItemGroup>
<Compile Include="GatheredCumMixture.cs" /> <Compile Include="GatheredCumMixture.cs" />
<Compile Include="JobDrivers.cs" /> <Compile Include="JobDrivers.cs" />
<Compile Include="Patch\GetGizmos.cs" />
<Compile Include="Patch\Harmony.cs" /> <Compile Include="Patch\Harmony.cs" />
<Compile Include="Patch\Menstruation_Patch.cs" />
<Compile Include="Patch\Pawn_Patch.cs" /> <Compile Include="Patch\Pawn_Patch.cs" />
<Compile Include="Patch\RJW_Patch.cs" /> <Compile Include="Patch\RJW_Patch.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />

View File

@ -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.7</version> <version>1.0.5.8</version>
<dependencies> <dependencies>
</dependencies> </dependencies>
<incompatibleWith /> <incompatibleWith />

View File

@ -1,3 +1,10 @@
Version 1.0.5.8
- requires RJW 4.8.1 or later
- added toggle for gather cums in womb into a cum bucket
- fixed nudity pawns get mood debuff from tampons(pads will get debuffs)
- added blue breasts for hydraulic and bionic breasts
- now pads provide tiny armor rate to genitals
Version 1.0.5.7 Version 1.0.5.7
- requires RJW 4.8.1 or later - requires RJW 4.8.1 or later
- minor bug fixes - minor bug fixes