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

View File

@ -25,6 +25,8 @@
<Dialog_WombInfo07>Ovulation</Dialog_WombInfo07>
<Dialog_WombInfo08></Dialog_WombInfo08>
<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_2>enable button in health tab</Option1_Label_2>

View File

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

View File

@ -4,7 +4,7 @@
<JobDef>
<defName>VaginaWashingwithBucket</defName>
<driverClass>RJW_Menstruation.Sexperience.JobDriver_VaginaWashingWithBucket</driverClass>
<reportString>washing vagina</reportString>
<reportString>gather cum</reportString>
<casualInterruptible>true</casualInterruptible>
</JobDef>
</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>
<Private>False</Private>
</Reference>
<Reference Include="RJW">
<HintPath>..\..\..\..\..\RJW\1.2\Assemblies\RJW.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />

View File

@ -73,7 +73,7 @@ namespace RJW_Menstruation
public bool loaded = false;
public int ovarypower = -100000;
public int eggstack = 0;
public bool DoCleanWomb = false;
public enum Stage
{
@ -121,7 +121,6 @@ namespace RJW_Menstruation
protected HediffComp_Breast breastcache = null;
protected float antisperm = 0.0f;
protected float? originvagsize = null;
protected bool? hymen = null;
public int ovarypowerthreshold
{
@ -507,7 +506,7 @@ namespace RJW_Menstruation
Scribe_Values.Look(ref eggstack, "eggstack", eggstack, true);
Scribe_Values.Look(ref estrusflag, "estrusflag", estrusflag, 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)
{
List<Gizmo> gizmoList = __result.ToList();
if (!__instance.ShowStatus())
{
return;
}
List<Gizmo> gizmoList = __result.ToList();
if (__instance.ShouldShowWombGizmo())
{
AddWombGizmos(__instance, ref gizmoList);
@ -46,10 +47,16 @@ namespace RJW_Menstruation
private static void AddWombGizmos(Pawn __instance, ref List<Gizmo> gizmoList)
{
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)
{
Texture2D icon, icon_overay;
@ -113,6 +120,7 @@ namespace RJW_Menstruation
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 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 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 Button_HealthTab = "Button_HealthTab".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_WombInfo02 = "Dialog_WombInfo02".Translate();

View File

@ -34,7 +34,7 @@ namespace RJW_Menstruation
if (Configurations.IsOverrideExist(def)) continue;
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;
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;
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;
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 buttonstyle = new GUIStyle(GUI.skin.button);
public Pawn Pawn
{
get
{
return pawn;
}
}
public HediffComp_Menstruation Comp
{
get
{
return comp;
}
}
public override Vector2 InitialSize

View File

@ -195,7 +195,7 @@ namespace RJW_Menstruation
nipple = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Nipple00", 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.color = Color.white;
GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);

View File

@ -11,11 +11,10 @@ using RJWSexperience;
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
protected Building_CumBucket Bucket => TargetB.Thing as Building_CumBucket;
public override bool TryMakePreToilReservations(bool errorOnFailed)
{
@ -54,6 +53,16 @@ namespace RJW_Menstruation.Sexperience
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 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)
{
var targets = GenUI.TargetsAt(clickPos, TargetingParameters.ForBuilding());
HediffComp_Menstruation comp = pawn.GetMenstruationComp();
if (comp != null && comp.TotalCumPercent > 0.001f)
foreach (LocalTargetInfo t in targets)
{
Building building = t.Thing as Building;
@ -39,7 +41,7 @@ namespace RJW_Menstruation.Sexperience
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));
}, MenuOptionPriority.Low), pawn, target);

View File

@ -5,14 +5,46 @@ using System.Text;
using System.Threading.Tasks;
using RimWorld;
using Verse;
using Verse.AI;
using rjw;
using RJW_Menstruation;
using HarmonyLib;
using RJWSexperience;
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>
<Compile Include="GatheredCumMixture.cs" />
<Compile Include="JobDrivers.cs" />
<Compile Include="Patch\GetGizmos.cs" />
<Compile Include="Patch\Harmony.cs" />
<Compile Include="Patch\Menstruation_Patch.cs" />
<Compile Include="Patch\Pawn_Patch.cs" />
<Compile Include="Patch\RJW_Patch.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Manifest>
<identifier>RJW Menstruation</identifier>
<version>1.0.5.7</version>
<version>1.0.5.8</version>
<dependencies>
</dependencies>
<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
- requires RJW 4.8.1 or later
- minor bug fixes