mirror of
				https://gitgud.io/lutepickle/rjw_menstruation.git
				synced 2024-08-14 22:46:52 +00:00 
			
		
		
		
	Copy Animal Genetics properties for enzygotic siblings
This commit is contained in:
		
							parent
							
								
									9e8dcc0540
								
							
						
					
					
						commit
						511e5286dc
					
				
					 2 changed files with 21 additions and 8 deletions
				
			
		| 
						 | 
					@ -1,4 +1,6 @@
 | 
				
			||||||
using AnimalGenetics;
 | 
					using AnimalGenetics;
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
using Verse;
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace RJW_Menstruation
 | 
					namespace RJW_Menstruation
 | 
				
			||||||
| 
						 | 
					@ -10,12 +12,6 @@ namespace RJW_Menstruation
 | 
				
			||||||
            GeneticInformation motherGeneticInformation = mother?.AnimalGenetics();
 | 
					            GeneticInformation motherGeneticInformation = mother?.AnimalGenetics();
 | 
				
			||||||
            GeneticInformation fatherGeneticInformation = father?.AnimalGenetics();
 | 
					            GeneticInformation fatherGeneticInformation = father?.AnimalGenetics();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (fatherGeneticInformation == null && motherGeneticInformation != null)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                FatherGeneticInformation fatherGeneticInformationComp = pregnancy.TryGetComp<FatherGeneticInformation>();
 | 
					 | 
				
			||||||
                fatherGeneticInformation = fatherGeneticInformationComp?.GeneticInformation;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ParentReferences.Push(new ParentReferences.Record { Mother = motherGeneticInformation, Father = fatherGeneticInformation });
 | 
					            ParentReferences.Push(new ParentReferences.Record { Mother = motherGeneticInformation, Father = fatherGeneticInformation });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,5 +19,22 @@ namespace RJW_Menstruation
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            ParentReferences.Pop();
 | 
					            ParentReferences.Pop();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static void CopyGenes(Pawn baby, Pawn original)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Dictionary<StatDef, GeneRecord> babyRecords = baby.AnimalGenetics()?.GeneRecords;
 | 
				
			||||||
 | 
					            Dictionary<StatDef, GeneRecord> originalRecords = original.AnimalGenetics()?.GeneRecords;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (babyRecords == null || originalRecords == null) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            foreach(KeyValuePair<StatDef, GeneRecord> record in originalRecords)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                GeneRecord originalRecord = record.Value;
 | 
				
			||||||
 | 
					                if (!babyRecords.TryGetValue(record.Key, out GeneRecord babyRecord)) continue;  // Shouldn't fail, but best to be safe
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                babyRecord.Parent = originalRecord.Parent;
 | 
				
			||||||
 | 
					                babyRecord.Value = originalRecord.Value;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -455,9 +455,9 @@ namespace RJW_Menstruation
 | 
				
			||||||
                        baby.story.SetMemberValue("headGraphicPath", firstheadpath);
 | 
					                        baby.story.SetMemberValue("headGraphicPath", firstheadpath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (baby.IsHAR())
 | 
					                        if (baby.IsHAR())
 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            HARCompatibility.CopyHARProperties(baby, firstbaby);
 | 
					                            HARCompatibility.CopyHARProperties(baby, firstbaby);
 | 
				
			||||||
                        }
 | 
					                        if (Configurations.AnimalGeneticsActivated)
 | 
				
			||||||
 | 
					                            AnimalGeneticsCompatibility.CopyGenes(baby, firstbaby);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                babies.Add(baby);
 | 
					                babies.Add(baby);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue