mirror of
				https://gitgud.io/lutepickle/rjw_menstruation.git
				synced 2024-08-14 22:46:52 +00:00 
			
		
		
		
	Check for null pregnancy before trying to miscarry it on postpostremoved
This commit is contained in:
		
							parent
							
								
									89248897f0
								
							
						
					
					
						commit
						6344338ee2
					
				
					 2 changed files with 12 additions and 2 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -624,7 +624,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
                Log.Warning($"Attempted to remove menstruation comp from wrong pawn ({Pawn}).");
 | 
					                Log.Warning($"Attempted to remove menstruation comp from wrong pawn ({Pawn}).");
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (!(pregnancy is Hediff_MechanoidPregnancy))
 | 
					            if (pregnancy != null && !(pregnancy is Hediff_MechanoidPregnancy))
 | 
				
			||||||
                pregnancy.Miscarry();
 | 
					                pregnancy.Miscarry();
 | 
				
			||||||
            base.CompPostPostRemoved();
 | 
					            base.CompPostPostRemoved();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -1176,22 +1176,26 @@ namespace RJW_Menstruation
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                else if (egg.fertilizer == null)
 | 
					                else if (egg.fertilizer == null)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
 | 
					                    if (Configurations.Debug) Log.Message($"Could not implant {Pawn}'s egg due to null father");
 | 
				
			||||||
                    deadeggs.Add(egg);
 | 
					                    deadeggs.Add(egg);
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (Pawn.health.hediffSet.GetHediffs<Hediff_InsectEgg>().Any() || pregnancy is Hediff_MechanoidPregnancy)
 | 
					                else if (Pawn.health.hediffSet.GetHediffs<Hediff_InsectEgg>().Any() || pregnancy is Hediff_MechanoidPregnancy)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
 | 
					                    if (Configurations.Debug) Log.Message($"Could not implant {Pawn}'s egg due to insect or mechanoid pregnancy");
 | 
				
			||||||
                    deadeggs.Add(egg);
 | 
					                    deadeggs.Add(egg);
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (Rand.Range(0.0f, 1.0f) <= Configurations.ImplantationChance * ImplantFactor * InterspeciesImplantFactor(egg.fertilizer))
 | 
					                else if (Rand.Range(0.0f, 1.0f) <= Configurations.ImplantationChance * ImplantFactor * InterspeciesImplantFactor(egg.fertilizer))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
 | 
					                    if (Configurations.Debug) Log.Message($"Implanting fertilized egg of {Pawn}, father {egg.fertilizer}");
 | 
				
			||||||
                    if (pregnancy != null)
 | 
					                    if (pregnancy != null)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (Configurations.UseMultiplePregnancy && Configurations.EnableHeteroOvularTwins)
 | 
					                        if (Configurations.UseMultiplePregnancy && Configurations.EnableHeteroOvularTwins)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            if (pregnancy is Hediff_MultiplePregnancy h)
 | 
					                            if (pregnancy is Hediff_MultiplePregnancy h)
 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
 | 
					                                if (Configurations.Debug) Log.Message($"Adding to existing pregnancy");
 | 
				
			||||||
                                h.AddNewBaby(Pawn, egg.fertilizer);
 | 
					                                h.AddNewBaby(Pawn, egg.fertilizer);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            pregnant = true;
 | 
					                            pregnant = true;
 | 
				
			||||||
| 
						 | 
					@ -1207,6 +1211,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (!Configurations.UseMultiplePregnancy)
 | 
					                        if (!Configurations.UseMultiplePregnancy)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
 | 
					                            if (Configurations.Debug) Log.Message($"Creating new base RJW pregnancy");
 | 
				
			||||||
                            PregnancyHelper.PregnancyDecider(Pawn, egg.fertilizer);
 | 
					                            PregnancyHelper.PregnancyDecider(Pawn, egg.fertilizer);
 | 
				
			||||||
                            // I hate having to do this, but it gets the newest pregnancy
 | 
					                            // I hate having to do this, but it gets the newest pregnancy
 | 
				
			||||||
                            pregnancy = Pawn.health.hediffSet.GetHediffs<Hediff_BasePregnancy>().MaxBy(hediff => hediff.loadID);
 | 
					                            pregnancy = Pawn.health.hediffSet.GetHediffs<Hediff_BasePregnancy>().MaxBy(hediff => hediff.loadID);
 | 
				
			||||||
| 
						 | 
					@ -1215,6 +1220,7 @@ namespace RJW_Menstruation
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        else
 | 
					                        else
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
 | 
					                            if (Configurations.Debug) Log.Message($"Creating new pregnancy");
 | 
				
			||||||
                            pregnancy = Hediff_BasePregnancy.Create<Hediff_MultiplePregnancy>(Pawn, egg.fertilizer);
 | 
					                            pregnancy = Hediff_BasePregnancy.Create<Hediff_MultiplePregnancy>(Pawn, egg.fertilizer);
 | 
				
			||||||
                            pregnant = true;
 | 
					                            pregnant = true;
 | 
				
			||||||
                            deadeggs.Add(egg);
 | 
					                            deadeggs.Add(egg);
 | 
				
			||||||
| 
						 | 
					@ -1222,7 +1228,11 @@ namespace RJW_Menstruation
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else deadeggs.Add(egg);
 | 
					                else
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if (Configurations.Debug) Log.Message($"Fertilized egg of {Pawn} failed to implant (father {egg.fertilizer})");
 | 
				
			||||||
 | 
					                    deadeggs.Add(egg);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (pregnant && (!Configurations.UseMultiplePregnancy || !Configurations.EnableHeteroOvularTwins))
 | 
					            if (pregnant && (!Configurations.UseMultiplePregnancy || !Configurations.EnableHeteroOvularTwins))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue