diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index 18f35d8..23fa436 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -699,17 +699,20 @@ namespace RJW_Menstruation if (Pawn.genes == null || !ModsConfig.BiotechActive) return; - if (Pawn.genes.HasGene(VariousDefOf.ShortEggLifetime)) eggLifeSpanTicks = eggLifeSpanTicks * 3 / 4; - else if (Pawn.genes.HasGene(VariousDefOf.DoubleEggLifetime)) eggLifeSpanTicks *= 2; - else if (Pawn.genes.HasGene(VariousDefOf.QuadEggLifetime)) eggLifeSpanTicks *= 4; + foreach (GeneDef geneDef in Pawn.genes.GenesListForReading.Select(gene => gene.def)) + { + if (geneDef == VariousDefOf.ShortEggLifetime) eggLifeSpanTicks = eggLifeSpanTicks * 3 / 4; + else if (geneDef == VariousDefOf.DoubleEggLifetime) eggLifeSpanTicks *= 2; + else if (geneDef == VariousDefOf.QuadEggLifetime) eggLifeSpanTicks *= 4; - if (Pawn.genes.HasGene(VariousDefOf.NeverEstrus)) estrusLevel = EstrusLevel.None; - else if (Pawn.genes.HasGene(VariousDefOf.FullEstrus)) estrusLevel = EstrusLevel.Visible; + else if (geneDef == VariousDefOf.NeverEstrus) estrusLevel = EstrusLevel.None; + else if (geneDef == VariousDefOf.FullEstrus) estrusLevel = EstrusLevel.Visible; - if (Pawn.genes.HasGene(VariousDefOf.DoubleOvulation)) ovulationFactor = 2f; - else if (Pawn.genes.HasGene(VariousDefOf.QuadOvulation)) ovulationFactor = 4f; + else if (geneDef == VariousDefOf.DoubleOvulation) ovulationFactor = 2f; + else if (geneDef == VariousDefOf.QuadOvulation) ovulationFactor = 4f; - noBleeding = Pawn.genes.HasGene(VariousDefOf.NoBleeding); + else if (geneDef == VariousDefOf.NoBleeding) noBleeding = true; + } } public bool ShouldSimulate()