mirror of
				https://gitgud.io/lutepickle/rjw_menstruation.git
				synced 2024-08-14 22:46:52 +00:00 
			
		
		
		
	Make induced ovulator egg count based on potential pregnancies.
This commit is contained in:
		
							parent
							
								
									6da6e9388c
								
							
						
					
					
						commit
						bdfbcf1edf
					
				
					 5 changed files with 9 additions and 13 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Menstruation
 | 
			
		||||
| 
						 | 
				
			
			@ -30,21 +31,15 @@ namespace RJW_Menstruation
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // The maximum theoretical rate of ovulation is inducing the moment it goes follicular and no pregnancies
 | 
			
		||||
        // There will be far more eggs than will ever actually be produced, but it fits the induced ovulator philosophy
 | 
			
		||||
        // In an induced ovulator, about 65% of eggs ovulated will become pregnancies, so the expected lifetime supply
 | 
			
		||||
        // is the number of pregnancies they could have, with some extra to be sure.
 | 
			
		||||
        // An IUD or a poor fertility mate could run this down quicker. Oh well.
 | 
			
		||||
        protected override float RaceCyclesPerYear()
 | 
			
		||||
        {
 | 
			
		||||
            int breedingSeasons = 0;
 | 
			
		||||
            if (Props.breedingSeason == SeasonalBreed.Always) breedingSeasons = 4;
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                if ((Props.breedingSeason & SeasonalBreed.Spring) != 0) breedingSeasons++;
 | 
			
		||||
                if ((Props.breedingSeason & SeasonalBreed.Summer) != 0) breedingSeasons++;
 | 
			
		||||
                if ((Props.breedingSeason & SeasonalBreed.Fall) != 0) breedingSeasons++;
 | 
			
		||||
                if ((Props.breedingSeason & SeasonalBreed.Winter) != 0) breedingSeasons++;
 | 
			
		||||
            }
 | 
			
		||||
            float breedingRatio = breedingSeasons / 4.0f;
 | 
			
		||||
            return breedingRatio * GenDate.DaysPerYear / ((float)(Props.lutealIntervalDays + Props.bleedingIntervalDays) / Configurations.CycleAccelerationDefault);
 | 
			
		||||
            // Don't bother with breeding season, since so much time is planned to be spent pregnant.
 | 
			
		||||
            float pregnanciesPerYear = GenDate.DaysPerYear / Mathf.Max(1, Pawn.def.race.gestationPeriodDays);
 | 
			
		||||
 | 
			
		||||
            return 2 * pregnanciesPerYear / Configurations.ImplantationChanceDefault;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // There's really no good way to estimate the number of times it's been induced, so this is all we can do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
Version 1.0.7.4
 | 
			
		||||
 - Fix errors when using mods with bad HediffCompProperties.
 | 
			
		||||
 - Induced ovulators will start with a lower number of eggs, but reasonably enough for a long breeding life. IUDs or sex with poor fertility partners may result in early menopause.
 | 
			
		||||
 - Updated max size areola images by wruf.
 | 
			
		||||
 - Title addition on pregnancy removed to match RJW 5.1.0.
 | 
			
		||||
 - Improve compatibility with RJW 5.1.0 for multiple wombs.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue