diff --git a/.gitignore b/.gitignore index b14b0f8..2236aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -343,6 +343,3 @@ healthchecksdb *.psd *.dds *.pdn - -Directory.Build.props -Directory.Build.targets diff --git a/1.6/Animal Genetics/Assemblies/Animal Genetics.dll b/1.6/Animal Genetics/Assemblies/Animal Genetics.dll index e28598f..3591631 100644 Binary files a/1.6/Animal Genetics/Assemblies/Animal Genetics.dll and b/1.6/Animal Genetics/Assemblies/Animal Genetics.dll differ diff --git a/1.6/Assemblies/RJW_Menstruation.dll b/1.6/Assemblies/RJW_Menstruation.dll index 86b2376..53e512c 100644 Binary files a/1.6/Assemblies/RJW_Menstruation.dll and b/1.6/Assemblies/RJW_Menstruation.dll differ diff --git a/1.6/Defs/RJWTab/PawnColumnDefs_Menstruation.xml b/1.6/Defs/RJWTab/PawnColumnDefs_Menstruation.xml deleted file mode 100644 index 1ef4a86..0000000 --- a/1.6/Defs/RJWTab/PawnColumnDefs_Menstruation.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - RJWMenstruation_Womb - Womb/Womb - Open womb status. Click the header to sort by womb presence and cycle stage. - RJW_Menstruation.MainTab.PawnColumnWorker_WombStatus - true - 34 - - diff --git a/1.6/Humanoid Alien Races/Assemblies/HAR.dll b/1.6/Humanoid Alien Races/Assemblies/HAR.dll index 611da42..90ec171 100644 Binary files a/1.6/Humanoid Alien Races/Assemblies/HAR.dll and b/1.6/Humanoid Alien Races/Assemblies/HAR.dll differ diff --git a/1.6/Patches/RJW_PawnTableDefs.xml b/1.6/Patches/RJW_PawnTableDefs.xml deleted file mode 100644 index edbc555..0000000 --- a/1.6/Patches/RJW_PawnTableDefs.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - -
  • - /Defs/PawnTableDef[defName="RJW_PawnTable_Colonists"]/columns/li[text()="Pregnant"] - -
  • RJWMenstruation_Womb
  • - - -
  • - /Defs/PawnTableDef[defName="RJW_PawnTable_Property"]/columns/li[text()="Pregnant"] - -
  • RJWMenstruation_Womb
  • - - -
    -
    -
    diff --git a/1.6/Quirks/Assemblies/Quirks.dll b/1.6/Quirks/Assemblies/Quirks.dll index 91a4a19..5617250 100644 Binary files a/1.6/Quirks/Assemblies/Quirks.dll and b/1.6/Quirks/Assemblies/Quirks.dll differ diff --git a/1.6/Vanilla Expanded Core/Assemblies/VECore.dll b/1.6/Vanilla Expanded Core/Assemblies/VECore.dll index f47a501..968020c 100644 Binary files a/1.6/Vanilla Expanded Core/Assemblies/VECore.dll and b/1.6/Vanilla Expanded Core/Assemblies/VECore.dll differ diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Cum.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Cum.cs index 94eecdb..b02d683 100644 --- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Cum.cs +++ b/1.6/source/RJW_Menstruation/RJW_Menstruation/Cum.cs @@ -169,13 +169,6 @@ namespace RJW_Menstruation Scribe_Values.Look(ref useCustomColor, "useCustomColor", false); Scribe_Values.Look(ref customColor, "customColor", default); Scribe_Defs.Look(ref filthDef, "filthDef"); - if (Scribe.mode == LoadSaveMode.PostLoadInit && - (Single.IsInfinity(FertVolume) || Single.IsNaN(FertVolume) || volume < 0f)) - { - Log.Error($"Invalid amount of {pawn}'s cum in a womb"); - volume = 0; - fertility = 0; - } } public void MakeThinner(float speed) diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index afca25e..81a1cd3 100644 --- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -126,7 +126,7 @@ namespace RJW_Menstruation protected int? opcache = null; protected float antisperm = 0.0f; // RJW pregnancy, or Biotech pregnancy/labor/laborpushing - protected Hediff pregnancy = null; // Remove, instead reference per-genital pregnancy list + protected Hediff pregnancy = null; protected int eggLifeSpanTicks = GenDate.DaysToTicks(2); protected EstrusLevel estrusLevel = EstrusLevel.Visible; @@ -313,7 +313,7 @@ namespace RJW_Menstruation { StatDefOf.Fertility.Worker.ClearCacheForThing(Pawn); // No effect for now, but a future RW update might add caching for this calculatingOvulationChance = true; - ovulationChance *= PawnCapacityUtility.CalculateCapacityLevel(Pawn.health.hediffSet, xxx.reproduction); // Add genital fertility + ovulationChance *= PawnCapacityUtility.CalculateCapacityLevel(Pawn.health.hediffSet, xxx.reproduction); } finally { @@ -882,11 +882,6 @@ namespace RJW_Menstruation return cums?.Find(cum => !cum.notcum && cum.pawn == pawn); } - public IEnumerable GetFluids() - { - return cums ?? Enumerable.Empty(); - } - public IEnumerable GetFluids(Pawn pawn) { return cums?.Where(cum => cum.pawn == pawn) ?? Enumerable.Empty(); @@ -1481,7 +1476,7 @@ namespace RJW_Menstruation try { if (Configurations.Debug) Log.Message($"Implanting fertilized egg of {Pawn} into {parent}, father {egg.fertilizer}"); - if (pregnancy == null) // Support pregnancy list, maybe split off into function + if (pregnancy == null) { Configurations.PregnancyType usePregnancy = xxx.is_human(Pawn) ? Configurations.PregnancySource : Configurations.PregnancyType.MultiplePregnancy; switch (usePregnancy) @@ -1499,7 +1494,7 @@ namespace RJW_Menstruation case Configurations.PregnancyType.MultiplePregnancy: if (Configurations.Debug) Log.Message($"Creating new menstruation pregnancy"); - pregnancy = Hediff_BasePregnancy.Create(Pawn, egg.fertilizer); // Add fertility comp of mother + pregnancy = Hediff_BasePregnancy.Create(Pawn, egg.fertilizer); pregnant = true; deadeggs.Add(egg); break; diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/MainTab/PawnColumnWorker_WombStatus.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/MainTab/PawnColumnWorker_WombStatus.cs deleted file mode 100644 index 3c28db8..0000000 --- a/1.6/source/RJW_Menstruation/RJW_Menstruation/MainTab/PawnColumnWorker_WombStatus.cs +++ /dev/null @@ -1,138 +0,0 @@ -using RimWorld; -using UnityEngine; -using Verse; - -namespace RJW_Menstruation.MainTab -{ - public class PawnColumnWorker_WombStatus : PawnColumnWorker - { - private const float CellIconSize = 24f; - private const float ProgressBarHeight = 2f; - private const float IconScale = 0.85f; - private const int HasVisibleWombOffset = 100; - - public override void DoCell(Rect rect, Pawn pawn, PawnTable table) - { - HediffComp_Menstruation comp = GetDisplayComp(pawn); - if (comp == null) return; - - Gizmo_Womb gizmo = Pawn_GetGizmos.CreateGizmo_WombStatus(pawn, comp); - Rect iconRect = new Rect( - rect.x + (rect.width - CellIconSize) / 2f, - rect.y + Mathf.Max((rect.height - CellIconSize) / 2f, 0f), - CellIconSize, - CellIconSize); - - DrawCellIcon(iconRect, gizmo); - - if (Mouse.IsOver(iconRect) && !gizmo.defaultDesc.NullOrEmpty()) - { - TooltipHandler.TipRegion(iconRect, gizmo.defaultDesc); - } - - if (Widgets.ButtonInvisible(iconRect, doMouseoverSound: false)) - { - Dialog_WombStatus.ToggleWindow(pawn, comp); - } - } - - public override int GetMinWidth(PawnTable table) - { - return 30; - } - - public override int GetMaxWidth(PawnTable table) - { - return GetMinWidth(table); - } - - public override int GetMinCellHeight(Pawn pawn) - { - return 30; - } - - public override int Compare(Pawn a, Pawn b) - { - int result = GetSortValue(a).CompareTo(GetSortValue(b)); - if (result != 0) return result; - - return string.CompareOrdinal(a.LabelShortCap, b.LabelShortCap); - } - - private static HediffComp_Menstruation GetDisplayComp(Pawn pawn) - { - if (!pawn.ShowStatus() || !pawn.ShouldCycle()) return null; - - HediffComp_Menstruation comp = pawn.GetFirstMenstruationComp(); - if (comp == null) return null; - - if (!Configurations.ShowInfertileIcon && - (comp.CurrentVisibleStage == HediffComp_Menstruation.Stage.Infertile || - comp.CurrentVisibleStage == HediffComp_Menstruation.Stage.None)) - { - return null; - } - - return comp; - } - - private static int GetSortValue(Pawn pawn) - { - if (!pawn.ShowStatus() || !pawn.ShouldCycle()) return int.MinValue; - - HediffComp_Menstruation comp = pawn.GetFirstMenstruationComp(); - if (comp == null) return int.MinValue + 1; - - return HasVisibleWombOffset + GetStageSortValue(comp.CurrentVisibleStage); - } - - private static int GetStageSortValue(HediffComp_Menstruation.Stage stage) - { - switch (stage) - { - case HediffComp_Menstruation.Stage.Luteal: - return 9; - case HediffComp_Menstruation.Stage.Ovulatory: - return 8; - case HediffComp_Menstruation.Stage.Follicular: - return 7; - case HediffComp_Menstruation.Stage.Pregnant: - return 6; - case HediffComp_Menstruation.Stage.Bleeding: - return 5; - case HediffComp_Menstruation.Stage.Recover: - return 4; - case HediffComp_Menstruation.Stage.Anestrus: - return 3; - case HediffComp_Menstruation.Stage.Infertile: - return 2; - case HediffComp_Menstruation.Stage.None: - return 1; - default: - return 0; - } - } - - private static void DrawCellIcon(Rect rect, Gizmo_Womb gizmo) - { - Texture baseIcon = gizmo.icon ?? BaseContent.BadTex; - Texture overlay = gizmo.icon_overlay ?? BaseContent.BadTex; - - Widgets.DrawTextureFitted(rect, baseIcon, IconScale); - - Color oldColor = GUI.color; - GUI.color = gizmo.cumcolor; - Widgets.DrawTextureFitted(rect, overlay, IconScale); - GUI.color = Color.white; - - if (Configurations.DrawEggOverlay) - { - gizmo.comp.DrawEggOverlay(rect, false); - } - - Rect progressRect = new Rect(rect.x + 2f, rect.y, rect.width - 4f, ProgressBarHeight); - Widgets.FillableBar(progressRect, gizmo.comp.StageProgress, gizmo.comp.GetStageTexture); - GUI.color = oldColor; - } - } -} diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/Gizmo_Patch.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/Gizmo_Patch.cs index 8c2b59b..7838e01 100644 --- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/Gizmo_Patch.cs +++ b/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/Gizmo_Patch.cs @@ -46,7 +46,7 @@ namespace RJW_Menstruation } - internal static Gizmo_Womb CreateGizmo_WombStatus(Pawn pawn, HediffComp_Menstruation comp) + private static Gizmo CreateGizmo_WombStatus(Pawn pawn, HediffComp_Menstruation comp) { if (!comp.loaded) comp.Initialize(); diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs index fa25f4c..b1577ec 100644 --- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs +++ b/1.6/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs @@ -23,7 +23,7 @@ namespace RJW_Menstruation if (sextype != xxx.rjwSextype.Vaginal && sextype != xxx.rjwSextype.DoublePenetration) return true; if (!mother.ShouldCycle()) return true; - if (!InteractionCanCausePregnancy(props)) return true; + if (!InteractionCanCausePregnancy(props)) return false; List pawnparts = Genital_Helper.get_PartsHediffList(father, Genital_Helper.get_genitalsBPR(father)); diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj b/1.6/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj index 26593c6..0c6dfeb 100644 --- a/1.6/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj +++ b/1.6/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj @@ -90,7 +90,6 @@ - @@ -179,4 +178,4 @@ - + \ No newline at end of file diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Utility.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Utility.cs index 854e200..218c3fd 100644 --- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Utility.cs +++ b/1.6/source/RJW_Menstruation/RJW_Menstruation/Utility.cs @@ -207,8 +207,8 @@ namespace RJW_Menstruation Hediff hediff = pawn.GetBreastList().MaxBy(h => h.Severity); HediffComp_Breast comp = hediff.TryGetComp(); string icon; - if (breastCount > 1) icon = "Breasts_Udder/Breast"; - else icon = comp?.BreastTex ?? "Breasts/Breast"; + if (breastCount > 1) icon = "Breasts_Udder/Breast_Breast"; + else icon = comp?.BreastTex ?? "Breasts/Breast_Breast"; if (hediff.Severity < 0.20f) icon += "_Breast00"; else if (hediff.Severity < 0.40f) icon += "_Breast01"; @@ -339,7 +339,7 @@ namespace RJW_Menstruation } public static string GetBreastLabel(this Pawn pawn) { - Hediff hediff = pawn.health.hediffSet.hediffs.Where(h => VariousDefOf.AllBreasts.Contains(h.def)).MaxByWithFallback(h => h.Severity); + Hediff hediff = pawn.health.hediffSet.hediffs.FirstOrDefault(h => VariousDefOf.AllBreasts.Contains(h.def)); if (hediff != null) return hediff.LabelBase.CapitalizeFirst() + "\n(" + hediff.LabelInBrackets + ")"; else return ""; } diff --git a/About/Manifest.xml b/About/Manifest.xml index bef173d..9597ee4 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW Menstruation - 1.6.2.4 + 1.6.2.2 diff --git a/changelogs.txt b/changelogs.txt index 7316879..3dca13e 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,10 +1,3 @@ -Version 1.6.2.4 - - Fix error on startup and missing womb status in RJW tab with RJW 6.1.4. - -Version 1.6.2.3 - - Fix multiple breasts not appearing in the menstruation UI. - - Status of wombs now appears in RJW main tab, contributed by GhostClinic. - Version 1.6.2.2 - Pawns with multiple breasts will now display an udder in the menstruation UI. - Updated Traditional Chinese translation by Hydrogen.