mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
Fix passive absorption not making absorbers dirty. Add absorbed amount to detailed description. Move passive absorption rate to XML
This commit is contained in:
parent
0dd3507010
commit
1a8189d9af
7 changed files with 41 additions and 10 deletions
Binary file not shown.
|
@ -68,6 +68,7 @@
|
|||
</apparel>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Menstruation.AbsorberModExtension">
|
||||
<passiveAbsorptionPerHour>0.2</passiveAbsorptionPerHour>
|
||||
<leakAfterDirty>false</leakAfterDirty>
|
||||
<effectsAfterDirty>true</effectsAfterDirty>
|
||||
<minHourstoDirtyEffect>10</minHourstoDirtyEffect>
|
||||
|
@ -122,6 +123,7 @@
|
|||
</apparel>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Menstruation.AbsorberModExtension">
|
||||
<passiveAbsorptionPerHour>0.2</passiveAbsorptionPerHour>
|
||||
<leakAfterDirty>false</leakAfterDirty>
|
||||
<effectsAfterDirty>true</effectsAfterDirty>
|
||||
<minHourstoDirtyEffect>8</minHourstoDirtyEffect>
|
||||
|
@ -204,6 +206,7 @@
|
|||
</apparel>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Menstruation.AbsorberModExtension">
|
||||
<passiveAbsorptionPerHour>0.04</passiveAbsorptionPerHour>
|
||||
<leakAfterDirty>true</leakAfterDirty>
|
||||
<effectsAfterDirty>false</effectsAfterDirty>
|
||||
<dirtyDef>Absorber_Pad_Dirty</dirtyDef>
|
||||
|
@ -265,6 +268,7 @@
|
|||
</apparel>
|
||||
<modExtensions>
|
||||
<li Class="RJW_Menstruation.AbsorberModExtension">
|
||||
<passiveAbsorptionPerHour>0.04</passiveAbsorptionPerHour>
|
||||
<leakAfterDirty>true</leakAfterDirty>
|
||||
<effectsAfterDirty>false</effectsAfterDirty>
|
||||
<dirtyDef>Absorber_Pad_Dirty</dirtyDef>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<Dialog_WombInfo08></Dialog_WombInfo08>
|
||||
<Dialog_WombInfo09></Dialog_WombInfo09>
|
||||
<Dialog_FatherUnknown>Unknown</Dialog_FatherUnknown>
|
||||
|
||||
<Description_Absorbed>Absorbed</Description_Absorbed>
|
||||
|
||||
|
||||
<Option1_Label_1>Enable womb icon</Option1_Label_1>
|
||||
|
|
|
@ -367,7 +367,7 @@ namespace RJW_Menstruation
|
|||
{
|
||||
if (cums.NullOrEmpty()) yield return Translations.Info_noCum;
|
||||
else foreach (Cum cum in cums)
|
||||
yield return string.Format("{0}: {1:0.##}ml", cum.notcum ? cum.notcumLabel : cum.pawn?.Label, cum.Volume);
|
||||
yield return string.Format("{0}: {1:0.##}ml", cum.notcum ? cum.notcumLabel : cum.pawn?.Label, cum.Volume);
|
||||
}
|
||||
}
|
||||
public Color GetCumMixtureColor
|
||||
|
@ -1570,12 +1570,7 @@ namespace RJW_Menstruation
|
|||
return amount;
|
||||
}
|
||||
absorber.absorbedfluids += amount;
|
||||
if (absorber.absorbedfluids > absorbable && !Pawn.apparel.IsLocked(absorber))
|
||||
{
|
||||
absorber.def = absorber.DirtyDef;
|
||||
//absorber.fluidColor = GetCumMixtureColor;
|
||||
absorber.dirty = true;
|
||||
}
|
||||
absorber.CheckDirty();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using RimWorld;
|
||||
using rjw;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
|
@ -186,6 +187,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
public class AbsorberModExtension : DefModExtension
|
||||
{
|
||||
public float passiveAbsorptionPerHour = 0.1f;
|
||||
public bool leakAfterDirty = false;
|
||||
public bool effectsAfterDirty = false;
|
||||
public ThingDef dirtyDef = null;
|
||||
|
@ -198,7 +200,7 @@ namespace RJW_Menstruation
|
|||
public float absorbedfluids = 0;
|
||||
public bool dirty = false;
|
||||
public int wearTicks = 0;
|
||||
protected virtual float PassiveAbsorptionPerHour => 0.1f;
|
||||
public virtual float PassiveAbsorptionPerHour => def.GetModExtension<AbsorberModExtension>().passiveAbsorptionPerHour;
|
||||
public virtual bool LeakAfterDirty => def.GetModExtension<AbsorberModExtension>().leakAfterDirty;
|
||||
public virtual bool EffectAfterDirty => def.GetModExtension<AbsorberModExtension>().effectsAfterDirty;
|
||||
public virtual ThingDef DirtyDef => def.GetModExtension<AbsorberModExtension>().dirtyDef;
|
||||
|
@ -211,9 +213,20 @@ namespace RJW_Menstruation
|
|||
public virtual void WearEffect(int tickInterval)
|
||||
{
|
||||
absorbedfluids += PassiveAbsorptionPerHour * tickInterval / GenDate.TicksPerHour;
|
||||
CheckDirty();
|
||||
if (dirty) wearTicks += tickInterval;
|
||||
}
|
||||
|
||||
public void CheckDirty()
|
||||
{
|
||||
if (absorbedfluids > this.GetStatValue(VariousDefOf.MaxAbsorbable) && (Wearer?.apparel.IsLocked(this) ?? false))
|
||||
{
|
||||
def = DirtyDef;
|
||||
//absorber.fluidColor = GetCumMixtureColor;
|
||||
dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override Color DrawColorTwo => fluidColor;
|
||||
|
||||
public override void ExposeData()
|
||||
|
@ -231,11 +244,26 @@ namespace RJW_Menstruation
|
|||
Scribe_Values.Look(ref fluidColor, "fluidColor", Color.white);
|
||||
}
|
||||
|
||||
public override string DescriptionDetailed
|
||||
{
|
||||
get
|
||||
{
|
||||
StringBuilder text = new StringBuilder(base.DescriptionDetailed);
|
||||
text.AppendLine();
|
||||
text.Append(Translations.Description_Absorbed);
|
||||
text.Append(": ");
|
||||
text.Append(absorbedfluids.ToStringDecimalIfSmall());
|
||||
text.Append("/");
|
||||
text.Append(this.GetStatValue(VariousDefOf.MaxAbsorbable).ToStringDecimalIfSmall());
|
||||
text.Append("ml");
|
||||
|
||||
return text.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class Absorber_Tampon : Absorber
|
||||
{
|
||||
protected override float PassiveAbsorptionPerHour => 0.5f;
|
||||
public override void DirtyEffect(int tickInterval)
|
||||
{
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ namespace RJW_Menstruation
|
|||
public static readonly string Dialog_WombInfo08 = "Dialog_WombInfo08".Translate();
|
||||
public static readonly string Dialog_WombInfo09 = "Dialog_WombInfo09".Translate();
|
||||
public static readonly string Dialog_WombInfo10 = "Dialog_WombInfo10".Translate();
|
||||
public static readonly string Description_Absorbed = "Description_Absorbed".Translate();
|
||||
|
||||
|
||||
public static readonly string Option1_Label_1 = "Option1_Label_1".Translate();
|
||||
|
|
|
@ -5,6 +5,9 @@ Version 1.0.9.2
|
|||
- Better handle wombs that are not in the genitals body part.
|
||||
- Handle errors more gracefully when starting a pregnancy.
|
||||
- Fix implanting multiple eggs in an animal when configured to use Biotech pregnancies.
|
||||
- An equipped tampon or pad will now show how much fluid it has absorbed in its tooltip.
|
||||
- Passive absorption will now make a tampon or pad dirty after enough time, even if no fluid was added.
|
||||
- It will take a cloth tampon about 2 days to become dirty passively. A cloth pad will take about 10 days.
|
||||
- Egglaying races no longer have a menstrual cycle, regardless of vagina type.
|
||||
- Pawns with the egglaying genes from Alpha Genes, VE Saurids, or Phytokin no longer have a menstrual cycle.
|
||||
- The womb status button will now appear in a pawn's health tab when using Compact Hediffs, with thanks to Fern.
|
||||
|
|
Loading…
Reference in a new issue