Fix bad texture error for low fertility during induced ovulator sex

This commit is contained in:
lutepickle 2023-04-10 15:32:51 -07:00
parent 334ef9d52a
commit 25556c464e
6 changed files with 18 additions and 62 deletions

Binary file not shown.

View file

@ -55,12 +55,7 @@ namespace RJW_Menstruation
protected override void AfterCumIn(Pawn cummer) protected override void AfterCumIn(Pawn cummer)
{ {
base.AfterCumIn(cummer); base.AfterCumIn(cummer);
switch (curStage) if (curStage == Stage.Follicular) GoNextStage(Stage.Ovulatory);
{
case Stage.Follicular:
GoNextStage(Stage.Ovulatory);
break;
}
} }
public override bool IsDangerDay public override bool IsDangerDay

View file

@ -242,24 +242,15 @@ namespace RJW_Menstruation
public float TotalCum public float TotalCum
{ {
get get => cums?.Sum(cum => cum.Volume) ?? 0;
{
return cums?.Sum(cum => cum.Volume) ?? 0;
}
} }
public float TotalFertCum public float TotalFertCum
{ {
get get => cums?.Sum(cum => cum.FertVolume) ?? 0;
{
return cums?.Sum(cum => cum.FertVolume) ?? 0;
}
} }
public float TotalCumPercent public float TotalCumPercent
{ {
get get => cums?.Sum(cum => cum.Volume) / Props.maxCumCapacity ?? 0;
{
return cums?.Sum(cum => cum.Volume) / Props.maxCumCapacity ?? 0;
}
} }
public float CumCapacity public float CumCapacity
{ {
@ -275,7 +266,7 @@ namespace RJW_Menstruation
{ {
get get
{ {
if (xxx.has_quirk(Pawn, "Breeder")) return 0.5f; if (QuirkUtility.HasQuirk(Pawn, QuirkUtility.Quirks.Breeder)) return 0.5f;
return 1.0f; return 1.0f;
} }
@ -449,25 +440,13 @@ namespace RJW_Menstruation
public string WombTex public string WombTex
{ {
get get => customwombtex ?? Props.wombTex;
{ set => customwombtex = value;
return customwombtex ?? Props.wombTex;
}
set
{
customwombtex = value;
}
} }
public string VagTex public string VagTex
{ {
get get => customvagtex ?? Props.vagTex;
{ set => customvagtex = value;
return customvagtex ?? Props.vagTex;
}
set
{
customvagtex = value;
}
} }
public string GetFertilizingInfo public string GetFertilizingInfo
{ {
@ -520,18 +499,12 @@ namespace RJW_Menstruation
} }
public bool IsEggExist public bool IsEggExist
{ {
get get => !eggs.NullOrEmpty();
{
return !eggs.NullOrEmpty();
}
} }
public int EggLifespanHours public int EggLifespanHours
{ {
get get => eggLifeSpanHours;
{
return eggLifeSpanHours;
}
} }
public virtual bool IsDangerDay public virtual bool IsDangerDay
@ -555,10 +528,7 @@ namespace RJW_Menstruation
} }
public int GetNumOfEggs public int GetNumOfEggs
{ {
get get => eggs?.Count ?? 0;
{
return eggs?.Count ?? 0;
}
} }
public Color BloodColor public Color BloodColor
{ {
@ -573,7 +543,6 @@ namespace RJW_Menstruation
{ {
return Colors.blood; return Colors.blood;
} }
} }
} }
@ -587,18 +556,12 @@ namespace RJW_Menstruation
} }
return originvagsize ?? 0.1f; return originvagsize ?? 0.1f;
} }
set set => originvagsize = value;
{
originvagsize = value;
}
} }
public float CurStageIntervalHours public float CurStageIntervalHours
{ {
get get => currentIntervalHours;
{
return currentIntervalHours;
}
} }
public float StageProgress public float StageProgress

View file

@ -231,7 +231,7 @@ namespace RJW_Menstruation
job.Sexprops != null && job.Sexprops != null &&
!job.Sexprops.usedCondom && !job.Sexprops.usedCondom &&
(job.Sexprops.sexType == xxx.rjwSextype.Vaginal || job.Sexprops.sexType == xxx.rjwSextype.DoublePenetration)) (job.Sexprops.sexType == xxx.rjwSextype.Vaginal || job.Sexprops.sexType == xxx.rjwSextype.DoublePenetration))
return ContentFinder<Texture2D>.Get((comp.OvulationChance >= ovaryChanceToShow_01) ? "Ovaries/Ovary_01" : "Ovaries_Ovary_00", true); return ContentFinder<Texture2D>.Get((comp.OvulationChance >= ovaryChanceToShow_01) ? "Ovaries/Ovary_01" : "Ovaries/Ovary_00", true);
else break; else break;
} }
if (comp.curStageHrs > comp.CurStageIntervalHours - 30) // Approximate time for ovulation to occur if (comp.curStageHrs > comp.CurStageIntervalHours - 30) // Approximate time for ovulation to occur

View file

@ -200,19 +200,16 @@ namespace RJW_Menstruation
if (!VariousDefOf.WombGenes.Contains(gene.def)) return true; if (!VariousDefOf.WombGenes.Contains(gene.def)) return true;
bool keepGene; bool keepGene;
if (PawnGenerator.IsBeingGenerated(___pawn)) if (PawnGenerator.IsBeingGenerated(___pawn))
{ // During pawn generation, the vagina hediff doesn't exist yet, so use gender to decide instead
// During pawn generation, the vagina hediff doesn't exist yet
// So use gender to decide instead
// Not the most accurate, but close enough // Not the most accurate, but close enough
keepGene = ___pawn.gender == Gender.Female; keepGene = ___pawn.gender == Gender.Female;
}
else keepGene = ___pawn.GetMenstruationComps().Any(); else keepGene = ___pawn.GetMenstruationComps().Any();
if (!keepGene) __result = null; if (!keepGene) __result = null;
return keepGene; return keepGene;
} }
} }
[HarmonyPatch(typeof(Pawn_GeneTracker), "Notify_GenesChanged")] [HarmonyPatch(typeof(Pawn_GeneTracker), "Notify_GenesChanged")]
public class Notify_GenesChanged_Patch public class Notify_GenesChanged_Patch
{ {
public static void Postfix(Pawn_GeneTracker __instance) public static void Postfix(Pawn_GeneTracker __instance)

View file

@ -1,4 +1,5 @@
Version 1.0.9.0 Version 1.0.9.0
- Fix errors when opening the womb dialog of an induced ovulator with low fertility during sex.
- Menstruation-related genes will now stay on females during initial pawn setup. - Menstruation-related genes will now stay on females during initial pawn setup.
Version 1.0.8.9 Version 1.0.8.9