diff --git a/1.3/Assemblies/RJW_Menstruation.dll b/1.3/Assemblies/RJW_Menstruation.dll index 130010d..ab99f28 100644 Binary files a/1.3/Assemblies/RJW_Menstruation.dll and b/1.3/Assemblies/RJW_Menstruation.dll differ diff --git a/1.3/Patches/PawnModExtentions.xml b/1.3/Patches/PawnModExtentions.xml index b019774..eb7ce03 100644 --- a/1.3/Patches/PawnModExtentions.xml +++ b/1.3/Patches/PawnModExtentions.xml @@ -42,9 +42,9 @@ 0.2
  • - 0.02 + 0.005 Hediff_ASA - 0.02 + 0.01
  • diff --git a/1.3/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml b/1.3/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml index eb7c72c..a193385 100644 --- a/1.3/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml +++ b/1.3/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml @@ -163,5 +163,7 @@ + + \ No newline at end of file diff --git a/1.3/SexperienceModule/Assemblies/SexperienceModule.dll b/1.3/SexperienceModule/Assemblies/SexperienceModule.dll index 9527922..c67dbcd 100644 Binary files a/1.3/SexperienceModule/Assemblies/SexperienceModule.dll and b/1.3/SexperienceModule/Assemblies/SexperienceModule.dll differ diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index 4b14d6f..86dd11c 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -92,12 +92,26 @@ namespace RJW_Menstruation Anestrus } + + public static readonly Dictionary StageTexture = new Dictionary() + { + { Stage.Follicular, TextureCache.humanTexture }, + { Stage.ClimactericFollicular, TextureCache.humanTexture }, + { Stage.Luteal, TextureCache.fertilityTexture }, + { Stage.ClimactericLuteal, TextureCache.fertilityTexture }, + { Stage.Bleeding, TextureCache.khorneTexture }, + { Stage.ClimactericBleeding, TextureCache.khorneTexture }, + { Stage.Recover, TextureCache.nurgleTexture } + }; + + protected List cums; protected List eggs; protected int follicularIntervalhours = -1; protected int lutealIntervalhours = -1; protected int bleedingIntervalhours = -1; protected int recoveryIntervalhours = -1; + protected int currentIntervalhours = -1; protected float crampPain = -1; protected Need sexNeed = null; protected string customwombtex = null; @@ -106,6 +120,7 @@ namespace RJW_Menstruation protected int opcache = -1; protected HediffComp_Breast breastcache = null; protected float antisperm = 0.0f; + protected float? originvagsize = null; public int ovarypowerthreshold { @@ -415,6 +430,64 @@ namespace RJW_Menstruation } } + public float OriginVagSize + { + get + { + if (originvagsize == null) + { + originvagsize = parent.Severity; + } + return originvagsize ?? 0.1f; + } + set + { + originvagsize = value; + } + } + + public float CurStageIntervalHours + { + get + { + switch (curStage) + { + case Stage.Follicular: + case Stage.ClimactericFollicular: + return FollicularIntervalHours; + case Stage.Luteal: + case Stage.ClimactericLuteal: + return lutealIntervalhours; + case Stage.Bleeding: + case Stage.ClimactericBleeding: + return bleedingIntervalhours; + case Stage.Recover: + return recoveryIntervalhours; + case Stage.Pregnant: + return currentIntervalhours; + default: + return float.PositiveInfinity; + } + } + } + + public float StageProgress + { + get + { + return curStageHrs / CurStageIntervalHours; + } + } + + public Texture2D GetStageTexture + { + get + { + Texture2D tex; + if (!StageTexture.TryGetValue(curStage, out tex)) tex = TextureCache.tzeentchTexture; + return tex; + } + } public override void CompExposeData() { @@ -427,12 +500,12 @@ namespace RJW_Menstruation Scribe_Values.Look(ref lutealIntervalhours, "lutealIntervalhours", lutealIntervalhours, true); Scribe_Values.Look(ref bleedingIntervalhours, "bleedingIntervalhours", bleedingIntervalhours, true); Scribe_Values.Look(ref recoveryIntervalhours, "recoveryIntervalhours", recoveryIntervalhours, true); + Scribe_Values.Look(ref currentIntervalhours, "currentIntervalhours", currentIntervalhours, true); Scribe_Values.Look(ref crampPain, "crampPain", crampPain, true); Scribe_Values.Look(ref ovarypower, "ovarypower", ovarypower, true); Scribe_Values.Look(ref eggstack, "eggstack", eggstack, true); Scribe_Values.Look(ref estrusflag, "estrusflag", estrusflag, true); - - + Scribe_Values.Look(ref originvagsize, "originvagsize", originvagsize, true); } @@ -795,7 +868,12 @@ namespace RJW_Menstruation InitOvary(parent.pawn.ageTracker.AgeBiologicalYears); - if (parent.pawn.IsPregnant()) curStage = Stage.Pregnant; + if (parent.pawn.IsPregnant()) + { + Hediff_BasePregnancy hediff = (Hediff_BasePregnancy)PregnancyHelper.GetPregnancy(parent.pawn); + currentIntervalhours = (int)(hediff?.GestationHours()); + curStage = Stage.Pregnant; + } if (parent.pawn.IsAnimal()) { if (Configurations.EnableAnimalCycle) @@ -953,7 +1031,7 @@ namespace RJW_Menstruation return null; } - //for now, only one egg can be implanted + protected bool Implant() { if (!eggs.NullOrEmpty()) @@ -970,18 +1048,17 @@ namespace RJW_Menstruation if (!Configurations.UseMultiplePregnancy) { PregnancyHelper.PregnancyDecider(parent.pawn, egg.fertilizer); + Hediff_BasePregnancy hediff = (Hediff_BasePregnancy)PregnancyHelper.GetPregnancy(parent.pawn); + currentIntervalhours = (int)hediff?.GestationHours(); pregnant = true; break; } else { Hediff_BasePregnancy.Create(parent.pawn, egg.fertilizer); - Hediff hediff = PregnancyHelper.GetPregnancy(parent.pawn); - //if (hediff is Hediff_BasePregnancy) - //{ - // Hediff_BasePregnancy h = (Hediff_BasePregnancy)hediff; - // if (h.babies.Count > 1) h.babies.RemoveRange(1, h.babies.Count - 1); - //} + Hediff_BasePregnancy hediff = (Hediff_BasePregnancy)PregnancyHelper.GetPregnancy(parent.pawn); + currentIntervalhours = (int)hediff?.GestationHours(); + pregnant = true; deadeggs.Add(egg); } @@ -1263,7 +1340,11 @@ namespace RJW_Menstruation EggDecay(); Implant(); } - if (parent.pawn.IsPregnant()) StayCurrentStageConst(Stage.Pregnant); + if (parent.pawn.IsPregnant()) + { + curStageHrs += 1; + StayCurrentStageConst(Stage.Pregnant); + } else { if (Breast != null) @@ -1671,6 +1752,26 @@ namespace RJW_Menstruation public class HediffComp_Anus : HediffComp { + protected float? originanussize; + + public float OriginAnusSize + { + get + { + if (originanussize == null) + { + originanussize = parent.Severity; + } + return originanussize ?? 0.1f; + } + } + + public override void CompExposeData() + { + base.CompExposeData(); + Scribe_Values.Look(ref originanussize, "originanussize", originanussize, true); + } + public override void CompPostTick(ref float severityAdjustment) { } diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs index 3155d68..4a2c92a 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs @@ -12,6 +12,8 @@ namespace RJW_Menstruation { public static class MenstruationUtility { + + public static HediffComp_Menstruation GetMenstruationComp(this Pawn pawn) { var hedifflist = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff h) => h.def.defName.ToLower().Contains("vagina")); @@ -37,6 +39,31 @@ namespace RJW_Menstruation return null; } + public static HediffComp_Anus GetAnusComp(this Pawn pawn) + { + var hedifflist = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff h) => h.def.defName.ToLower().Contains("anus")); + HediffComp_Anus result; + if (!hedifflist.NullOrEmpty()) + { + foreach (Hediff h in hedifflist) + { + result = h.TryGetComp(); + if (result != null) return result; + } + } + return null; + } + + public static HediffComp_Anus GetAnusComp(this Hediff hediff) + { + if (hediff is Hediff_PartBaseNatural || hediff is Hediff_PartBaseArtifical) + { + return hediff.TryGetComp(); + } + return null; + } + + public static float GetFertilityChance(this HediffComp_Menstruation comp) { return comp.TotalFertCum * Configurations.FertilizeChance; @@ -120,7 +147,6 @@ namespace RJW_Menstruation Texture2D cumtex = ContentFinder.Get((icon), true); return cumtex; } - public static Texture2D GetWombIcon(this HediffComp_Menstruation comp) { if (comp.Pawn.health.hediffSet.GetHediffs().FirstOrDefault() != null) return ContentFinder.Get(("Womb/Womb_Egged"), true); @@ -161,5 +187,75 @@ namespace RJW_Menstruation GUI.DrawTexture(rect, comp.GetEggIcon(), ScaleMode.ScaleToFit); } + + public static Texture2D GetGenitalIcon(this Pawn pawn, HediffComp_Menstruation comp, bool drawOrigin = false) + { + var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.Find((Hediff h) => h.def.defName.ToLower().Contains("vagina")); + if (hediff == null) return ContentFinder.Get("Genitals/Vagina00", true); + //HediffComp_Menstruation comp = hediff.GetMenstruationComp(); + string icon; + float severity; + if (drawOrigin) severity = comp.OriginVagSize; + else severity = hediff.Severity; + if (comp != null) icon = comp.vagTex; + else icon = "Genitals/Vagina"; + + if (severity < 0.20f) icon += "00"; //micro + else if (severity < 0.30f) icon += "01"; //tight + else if (severity < 0.40f) icon += "02"; //tight + else if (severity < 0.47f) icon += "03"; //average + else if (severity < 0.53f) icon += "04"; //average + else if (severity < 0.60f) icon += "05"; //average + else if (severity < 0.70f) icon += "06"; //accomodating + else if (severity < 0.80f) icon += "07"; //accomodating + else if (severity < 0.87f) icon += "08"; //cavernous + else if (severity < 0.94f) icon += "09"; //cavernous + else if (severity < 1.01f) icon += "10"; //cavernous + else icon += "11"; //abyssal + + return ContentFinder.Get((icon), true); + } + + public static Texture2D GetAnalIcon(this Pawn pawn, bool drawOrigin = false) + { + var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_anusBPR(pawn)).FirstOrDefault((Hediff h) => h.def.defName.ToLower().Contains("anus")); + if (hediff != null) + { + string icon; + float severity; + HediffComp_Anus comp = hediff.GetAnusComp(); + if (comp != null) + { + CompProperties_Anus Props = (CompProperties_Anus)comp.props; + icon = Props.analTex ?? "Genitals/Anal"; + if (drawOrigin) severity = comp.OriginAnusSize; + else severity = hediff.Severity; + } + else + { + icon = "Genitals/Anal"; + severity = hediff.Severity; + } + if (severity < 0.20f) icon += "00"; //micro + else if (severity < 0.40f) icon += "01"; //tight + else if (severity < 0.60f) icon += "02"; //average + else if (severity < 0.80f) icon += "03"; //accomodating + else if (severity < 1.01f) icon += "04"; //cavernous + else icon += "05"; //abyssal + + return ContentFinder.Get((icon), true); + } + else + { + return ContentFinder.Get(("Genitals/Anal00"), true); + } + } + + public static float GestationHours(this Hediff_BasePregnancy hediff) + { + return (1 / hediff?.progress_per_tick ?? 1) / 2500f; + } } + + } diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs index a602aeb..fb6fcb1 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs @@ -19,18 +19,23 @@ namespace RJW_Menstruation return; } - if (Configurations.EnableWombIcon && __instance.gender == Gender.Female) + if (__instance.ShouldShowWombGizmo()) { - if (!__instance.IsAnimal()) - { - AddWombGizmos(__instance, ref gizmoList); - } - else if (Configurations.EnableAnimalCycle) - { - AddWombGizmos(__instance, ref gizmoList); - } + AddWombGizmos(__instance, ref gizmoList); } + //if (Configurations.EnableWombIcon && __instance.gender == Gender.Female) + //{ + // if (!__instance.IsAnimal()) + // { + // AddWombGizmos(__instance, ref gizmoList); + // } + // else if (Configurations.EnableAnimalCycle) + // { + // AddWombGizmos(__instance, ref gizmoList); + // } + //} + diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/TextureCache.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/TextureCache.cs index 685a151..346f989 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/TextureCache.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/TextureCache.cs @@ -89,15 +89,15 @@ namespace RJW_Menstruation public static readonly Texture2D FertChanceTex = SolidColorMaterials.NewSolidColorTexture(new Color(1f, 1f, 1f, 0.4f)); - private static Texture2D milktexturecache = null; - private static Texture2D slaaneshtexturecache = null; - private static Texture2D khornetexturecache = null; - private static Texture2D tzeentchtexturecache = null; - private static Texture2D nurgletexturecache = null; - private static Texture2D humantexturecache = null; - private static Texture2D animaltexturecache = null; - private static Texture2D fertilitytexturecache = null; - private static Texture2D ghalmaraztexturecache = null; + 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 khornetexturecache = SolidColorMaterials.NewSolidColorTexture(0.415f, 0.0f, 0.003f, 1.0f); + private static Texture2D tzeentchtexturecache = SolidColorMaterials.NewSolidColorTexture(0.082f, 0.453f, 0.6f, 1.0f); + private static Texture2D nurgletexturecache = SolidColorMaterials.NewSolidColorTexture(0.6f, 0.83f, 0.35f, 1.0f); + private static Texture2D humantexturecache = SolidColorMaterials.NewSolidColorTexture(0.878f, 0.674f, 0.411f, 1.0f); + private static Texture2D animaltexturecache = SolidColorMaterials.NewSolidColorTexture(0.411f, 0.521f, 0.878f, 1.0f); + private static Texture2D fertilitytexturecache = SolidColorMaterials.NewSolidColorTexture(0.843f, 0.474f, 0.6f, 1.0f); + private static Texture2D ghalmaraztexturecache = SolidColorMaterials.NewSolidColorTexture(0.7f, 0.7f, 0.0f, 1.0f); diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Dialog_WombStatus.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Dialog_WombStatus.cs index f3c2c3f..c0c51db 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Dialog_WombStatus.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Dialog_WombStatus.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using RimWorld; using rjw; using System.Linq; @@ -72,7 +73,16 @@ namespace RJW_Menstruation Dialog_WombStatus window = (Dialog_WombStatus)Find.WindowStack.Windows.FirstOrDefault(x => x.GetType().Equals(typeof(Dialog_WombStatus))); if (window != null) { - if (window.pawn != pawn) + List pawns = Find.Selector.SelectedPawns.FindAll(x => x.ShouldShowWombGizmo()); + if (!pawns.NullOrEmpty() && pawns.Count > 1) + { + int index = pawns.IndexOf(window.pawn); + + SoundDefOf.TabOpen.PlayOneShotOnCamera(); + Pawn newpawn = pawns[(index + 1) % pawns.Count]; + window.ChangePawn(newpawn, newpawn.GetMenstruationComp()); + } + else if (window.pawn != pawn) { SoundDefOf.TabOpen.PlayOneShotOnCamera(); window.ChangePawn(pawn, comp); @@ -223,13 +233,14 @@ namespace RJW_Menstruation } - Rect wombInfoRect = new Rect(0f, mainRect.yMax - wombrecth - fontheight - 2, wombRectWidth, fontheight); - + Rect wombInfoRect = new Rect(0f, mainRect.yMax - wombrecth - fontheight - 2, wombRectWidth, fontheight - 4f); + Rect progressRect = new Rect(wombInfoRect.x,wombInfoRect.yMax,wombRectWidth, 4f); buttonstyle.normal.textColor = Color.white; //boxstyle.normal.background = Texture2D.whiteTexture; buttonstyle.alignment = TextAnchor.MiddleLeft; GUI.backgroundColor = new Color(0.24f, 0.29f, 0.35f, 1); GUI.Box(wombInfoRect, Translations.Dialog_WombInfo01 + ": " + comp.GetCurStageLabel, buttonstyle); + Widgets.FillableBar(progressRect, comp.StageProgress, comp.GetStageTexture); GUI.color = Color.white; @@ -248,7 +259,7 @@ namespace RJW_Menstruation { Rect genitalRect = new Rect(pawnRectWidth + 24, pawnRectHeight + 2 * fontheight, genitalRectWidth, genitalRectHeight + fontheight * 2); Rect breastRect = new Rect(pawnRectWidth + 24, 40f, breastRectWidth, breastRectHeight + fontheight); - DrawVagina(genitalRect); + DrawVagina(genitalRect, comp); DrawBreast(breastRect); cumlistTitle = new Rect(wombRectWidth + 4f, 0, 150f, fontheight); cumlistRect = new Rect(wombRectWidth + 4f, fontheight, 150f, mainRect.yMax - fontheight + preginfoheight + 3); @@ -311,14 +322,15 @@ namespace RJW_Menstruation - private void DrawVagina(Rect rect) + private void DrawVagina(Rect rect, HediffComp_Menstruation comp) { Rect genitalIconRect = new Rect(rect.x, rect.y + fontheight, genitalRectWidth, genitalRectHeight); Rect genitalVaginaLabelRect = new Rect(rect.x, rect.y + 10f, genitalRectWidth, fontheight); Rect genitalAnusLabelRect = new Rect(rect.x, rect.y + fontheight + genitalRectHeight, genitalRectWidth, fontheight); + bool showOrigin = Mouse.IsOver(genitalIconRect) && Input.GetMouseButton(0); - vagina = pawn.GetGenitalIcon(); - anal = pawn.GetAnalIcon(); + vagina = pawn.GetGenitalIcon(comp, showOrigin); + anal = pawn.GetAnalIcon(showOrigin); GUI.color = new Color(1.00f, 0.47f, 0.47f, 1); GUI.Box(rect, "", boxstyle); GUI.color = pawn.story.SkinColor; diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Gizmo_Womb.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Gizmo_Womb.cs index e076a42..e0291c9 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Gizmo_Womb.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/UI/Gizmo_Womb.cs @@ -9,6 +9,8 @@ namespace RJW_Menstruation public Color cumcolor; public HediffComp_Menstruation comp; + public const float progressbarHeight = 2f; + protected override void DrawIcon(Rect rect, Material buttonMat, GizmoRenderParms parms) { Texture2D badTex = icon; @@ -31,6 +33,8 @@ namespace RJW_Menstruation Widgets.DrawTextureFitted(rect, overay, iconDrawScale * 0.85f, iconProportions, iconTexCoords, iconAngle, buttonMat); GUI.color = Color.white; if (Configurations.DrawEggOverlay) comp.DrawEggOverlay(rect); + Rect progressRect = new Rect(rect.x + 2f, rect.y, rect.width - 4f, progressbarHeight); + Widgets.FillableBar(progressRect, comp.StageProgress, comp.GetStageTexture); } diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/Utility.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/Utility.cs index 96bdb55..e5f4b70 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/Utility.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/Utility.cs @@ -52,7 +52,7 @@ namespace RJW_Menstruation public static System.Random random = new System.Random(Environment.TickCount); - + public static float GetCumVolume(this Pawn pawn) { @@ -179,54 +179,6 @@ namespace RJW_Menstruation return null; } - public static Texture2D GetGenitalIcon(this Pawn pawn) - { - var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.Find((Hediff h) => h.def.defName.ToLower().Contains("vagina")); - if (hediff == null) return ContentFinder.Get("Genitals/Vagina00", true); - HediffComp_Menstruation comp = hediff.GetMenstruationComp(); - string icon; - if (comp != null) icon = comp.vagTex; - else icon = "Genitals/Vagina"; - - if (hediff.Severity < 0.20f) icon += "00"; //micro - else if (hediff.Severity < 0.30f) icon += "01"; //tight - else if (hediff.Severity < 0.40f) icon += "02"; //tight - else if (hediff.Severity < 0.47f) icon += "03"; //average - else if (hediff.Severity < 0.53f) icon += "04"; //average - else if (hediff.Severity < 0.60f) icon += "05"; //average - else if (hediff.Severity < 0.70f) icon += "06"; //accomodating - else if (hediff.Severity < 0.80f) icon += "07"; //accomodating - else if (hediff.Severity < 0.87f) icon += "08"; //cavernous - else if (hediff.Severity < 0.94f) icon += "09"; //cavernous - else if (hediff.Severity < 1.01f) icon += "10"; //cavernous - else icon += "11"; //abyssal - - return ContentFinder.Get((icon), true); - } - - public static Texture2D GetAnalIcon(this Pawn pawn) - { - var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_anusBPR(pawn)).FirstOrDefault((Hediff h) => h.def.defName.ToLower().Contains("anus")); - if (hediff != null) - { - CompProperties_Anus Props = (CompProperties_Anus)hediff.TryGetComp()?.props; - string icon; - if (Props != null) icon = Props.analTex ?? "Genitals/Anal"; - else icon = "Genitals/Anal"; - if (hediff.Severity < 0.20f) icon += "00"; //micro - else if (hediff.Severity < 0.40f) icon += "01"; //tight - else if (hediff.Severity < 0.60f) icon += "02"; //average - else if (hediff.Severity < 0.80f) icon += "03"; //accomodating - else if (hediff.Severity < 1.01f) icon += "04"; //cavernous - else icon += "05"; //abyssal - - return ContentFinder.Get((icon), true); - } - else - { - return ContentFinder.Get(("Genitals/Anal00"), true); - } - } public static void DrawBreastIcon(this Pawn pawn, Rect rect , bool drawOrigin = false) { @@ -501,5 +453,22 @@ namespace RJW_Menstruation return num * Rand.Range(1.0f - variant, 1.0f + variant); } + public static bool ShouldShowWombGizmo(this Pawn pawn) + { + + if (Configurations.EnableWombIcon && pawn.gender == Gender.Female) + { + if (!pawn.IsAnimal()) + { + return true; + } + else if (Configurations.EnableAnimalCycle) + { + return true; + } + } + return false; + } + } } diff --git a/1.3/source/RJW_Menstruation/SexperienceModule/GatheredCumMixture.cs b/1.3/source/RJW_Menstruation/SexperienceModule/GatheredCumMixture.cs index c2a4ba2..c4fd9fb 100644 --- a/1.3/source/RJW_Menstruation/SexperienceModule/GatheredCumMixture.cs +++ b/1.3/source/RJW_Menstruation/SexperienceModule/GatheredCumMixture.cs @@ -13,7 +13,7 @@ namespace RJW_Menstruation.Sexperience { public class GatheredCumMixture : ThingWithComps { - public Color cumColor; + public Color cumColor = Color.white; public List ingredients = new List(); public override Color DrawColor => cumColor; diff --git a/About/About.xml b/About/About.xml index 491d97c..b40797f 100644 --- a/About/About.xml +++ b/About/About.xml @@ -29,6 +29,9 @@
  • UnlimitedHugs.HugsLib
  • brrainz.harmony
  • rim.job.world
  • +
  • Abraxas.RJW.RaceSupport
  • +
  • rjw.milk.humanoid
  • +
  • rjw.sexperience
  • rjw.menstruation yes yes diff --git a/About/Manifest.xml b/About/Manifest.xml index ae8fa95..10e4a92 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW Menstruation - 1.0.5.4 + 1.0.5.5 diff --git a/LoadFolders.xml b/LoadFolders.xml index fb3353e..b8b2066 100644 --- a/LoadFolders.xml +++ b/LoadFolders.xml @@ -2,13 +2,13 @@
  • 1.2
  • -
  • 1.2\RJW Menstruation Race Support
  • -
  • 1.2\MilkModule
  • +
  • 1.2/RJW Menstruation Race Support
  • +
  • 1.2/MilkModule
  • 1.3
  • -
  • 1.3\RJW Menstruation Race Support
  • -
  • 1.3\MilkModule
  • -
  • 1.3\SexperienceModule
  • +
  • 1.3/RJW Menstruation Race Support
  • +
  • 1.3/MilkModule
  • +
  • 1.3/SexperienceModule
  • \ No newline at end of file diff --git a/changelogs.txt b/changelogs.txt index ee915cf..4efc30e 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,3 +1,9 @@ +Version 1.0.5.5 + - clicking vagina and anus image will show origin state + - fixed loadfolders.xml for other platforms + - added load orders + - added stage progress bar + Version 1.0.5.4 - lactating cause nipple morph - clicking breast image will show nipple's origin state(before & after)