mirror of
				https://github.com/vegapnk/RJW-Genes.git
				synced 2024-08-15 00:23:31 +00:00 
			
		
		
		
	Added animal inheritance to RJW-genes code
This commit is contained in:
		
							parent
							
								
									b5033deef6
								
							
						
					
					
						commit
						33a37f26de
					
				
					 17 changed files with 821 additions and 9 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<RJW_BGS.RaceGeneDef ParentName="Slime_base">
 | 
			
		||||
		<defName>AA_Aerofleet</defName> 
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li>AA_Aerofleet</li>
 | 
			
		||||
			<li>AA_ColossalAerofleet</li>
 | 
			
		||||
		</raceNames> 
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>AG_BlueGelProduction</li>
 | 
			
		||||
			<li>AG_GasBags</li>
 | 
			
		||||
			<li>AG_AerofleetHead</li>
 | 
			
		||||
			<li>AG_SlimeBody</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<RJW_BGS.RaceGeneDef ParentName="Insect_base" Name="AA_lisks_base" Abstract="True">
 | 
			
		||||
		<defName>AA_lisks_base</defName> 
 | 
			
		||||
		<!-- <raceNames>
 | 
			
		||||
			<li>AA_Animalisk</li>
 | 
			
		||||
			<li>AA_Blizzarisk</li>
 | 
			
		||||
			<li>AA_Cinderlisk</li>
 | 
			
		||||
			<li>AA_Dunealisk</li>
 | 
			
		||||
			<li>AA_Feralisk</li>
 | 
			
		||||
			<li>AA_Junglelisk</li>
 | 
			
		||||
		</raceNames> -->
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>AG_Spinnerets</li>
 | 
			
		||||
			<li>AG_EggLaying</li>
 | 
			
		||||
			<li>AG_FeraliskEyes</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
 | 
			
		||||
	<RJW_BGS.RaceGeneDef ParentName="AA_lisks_base">
 | 
			
		||||
		<defName>AA_Animalisk</defName> 
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li>AA_Animalisk</li>
 | 
			
		||||
		</raceNames>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>PsychicAbility_Enhanced</li>
 | 
			
		||||
			<li>PsychicAbility_Extreme</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.8</li>
 | 
			
		||||
			<li>0.2</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef ParentName="AA_lisks_base">
 | 
			
		||||
		<defName>AA_Blizzarisk</defName> 
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li>AA_Blizzarisk</li>
 | 
			
		||||
		</raceNames>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>MaxTemp_SmallDecrease</li>
 | 
			
		||||
			<li>MinTemp_SmallDecrease</li>
 | 
			
		||||
			<li>MinTemp_LargeDecrease</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances>
 | 
			
		||||
			<li>0.8</li>		
 | 
			
		||||
			<li>0.8</li>
 | 
			
		||||
			<li>0.2</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef ParentName="AA_lisks_base">
 | 
			
		||||
		<defName>AA_Hotlisk</defName> 
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li>AA_Cinderlisk</li>
 | 
			
		||||
			<li>AA_Dunealisk</li>
 | 
			
		||||
		</raceNames>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>MinTemp_SmallIncrease</li>
 | 
			
		||||
			<li>MaxTemp_SmallIncrease</li>
 | 
			
		||||
			<li>MaxTemp_LargeIncrease</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.8</li>
 | 
			
		||||
			<li>0.8</li>
 | 
			
		||||
			<li>0.2</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef ParentName="AA_lisks_base">
 | 
			
		||||
		<defName>AA_Normallisk</defName> 
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li>AA_Feralisk</li>
 | 
			
		||||
			<li>AA_Junglelisk</li>
 | 
			
		||||
		</raceNames> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>AA_Wildpodgroup</defName> 
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li>AA_Wildpod</li>
 | 
			
		||||
			<li>AA_Wildpawn</li>
 | 
			
		||||
			<li>AA_Agaripawn</li>
 | 
			
		||||
			<li>AA_Agaripod</li>
 | 
			
		||||
		</raceNames> 
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>AG_FungalSkin</li>
 | 
			
		||||
			<li>MoveSpeed_Slow</li>
 | 
			
		||||
			<li>FireWeakness</li>
 | 
			
		||||
			<li>FireTerror</li>
 | 
			
		||||
			<li>Robust</li>
 | 
			
		||||
			<li>Unstoppable</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.15</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										122
									
								
								Common/Defs/RaceGeneDefs/RaceGeneDefs.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								Common/Defs/RaceGeneDefs/RaceGeneDefs.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,122 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<RJW_BGS.RaceGeneDef Name = "Canine">
 | 
			
		||||
		<defName>Canine</defName> 
 | 
			
		||||
		<raceGroup>Canine_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Ears_Floppy</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.9</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
<!-- You can use parents to have animals get specific genes in addition to the group.	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef ParentName = "Canine">
 | 
			
		||||
		<defName>Warg</defName>
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li>Warg</li>
 | 
			
		||||
		</raceNames>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>DarkVision</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.9</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
--> 	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Insect</defName> 
 | 
			
		||||
		<raceGroup>Insect_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Beauty_Ugly</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.5</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Feline</defName> 
 | 
			
		||||
		<raceGroup>Feline_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Ears_Cat</li>
 | 
			
		||||
			<li>Sleepy</li>
 | 
			
		||||
			<li>DarkVision</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.9</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
<!--	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Equine</defName> 
 | 
			
		||||
		<raceGroup>Equine_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Ears_Floppy</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>10</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
-->	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Dragon</defName> 
 | 
			
		||||
		<raceGroup>Dragon_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Unstoppable</li>
 | 
			
		||||
			<li>Headbone_CenterHorn</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
			<li>0.9</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Rodent</defName> 
 | 
			
		||||
		<raceGroup>Rodent_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Fertile</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.25</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Racoon</defName> 
 | 
			
		||||
		<raceGroup>Raccon_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>StrongStomach</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.5</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
<!--	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Needle</defName> 
 | 
			
		||||
		<raceGroup>Needle_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Ears_Floppy</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>10</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
-->
 | 
			
		||||
<!--
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Hemi</defName> 
 | 
			
		||||
		<raceGroup>Hemi_Group</raceGroup>
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Ears_Floppy</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>10</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
-->
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										26
									
								
								Common/Defs/RaceGeneDefs/RaceGeneDefs_Base.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Common/Defs/RaceGeneDefs/RaceGeneDefs_Base.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<RJW_BGS.RaceGeneDef Name="Insect_base" Abstract="True">
 | 
			
		||||
		<defName>Insect_base</defName> 
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>AG_InsectBlood</li>
 | 
			
		||||
			<li>rjw_genes_ovipositor_genitalia</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.5</li>
 | 
			
		||||
			<li>0.5</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<RJW_BGS.RaceGeneDef Name="Slime_base" Abstract="True">
 | 
			
		||||
		<defName>Slime_base</defName> 
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>AG_SlimeBlood</li>
 | 
			
		||||
			<li>rjw_genes_slime_genitalia</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.5</li>
 | 
			
		||||
			<li>0.5</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										38
									
								
								Common/Defs/RaceGeneDefs/RaceGeneDefs_template.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								Common/Defs/RaceGeneDefs/RaceGeneDefs_template.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Defs>
 | 
			
		||||
<!--
 | 
			
		||||
	<RJW_BGS.RaceGeneDef>
 | 
			
		||||
		<defName>Canine</defName>
 | 
			
		||||
		defName can be anything you want, as long as it is unique
 | 
			
		||||
		
 | 
			
		||||
		<raceGroup>Canine_Group</raceGroup>
 | 
			
		||||
		RJW.Racegroupdef, all animals in the raceGroup will be part of this group, RJW race support uses this so those can be used to quickly add a group
 | 
			
		||||
		
 | 
			
		||||
		<raceNames>
 | 
			
		||||
			<li> </li>
 | 
			
		||||
		</raceNames>
 | 
			
		||||
		For more direct control you can use raceNames directly. Use the defName of the animal. Can also use modded animals.
 | 
			
		||||
		
 | 
			
		||||
		<pawnKindNames>
 | 
			
		||||
			<li> </li>
 | 
			
		||||
		</pawnKindNames>
 | 
			
		||||
		For even more direct control you can use pawnKindNames. 
 | 
			
		||||
		
 | 
			
		||||
		The RaceGeneDef for an animal will first be decided by if it is in the pawnkindNames, after that racenames and lastly racegroup,
 | 
			
		||||
		so if there is for a wolf a RaceGeneDef with the canine group and a second which has wolf under raceNames it will always use the second one to determine
 | 
			
		||||
		which genes can be inherited
 | 
			
		||||
		
 | 
			
		||||
		<genes>
 | 
			
		||||
			<li>Ears_Floppy</li>
 | 
			
		||||
		</genes>
 | 
			
		||||
		The genes which may be inherited. Use the defName of the gene, you can also add modded genes. 
 | 
			
		||||
		
 | 
			
		||||
		<genechances> 
 | 
			
		||||
			<li>0.9</li>
 | 
			
		||||
		</genechances> 
 | 
			
		||||
		WIP, the chance of each gene to be inherited. Is in same order as genes, so for the second gene the chance to inherit is based on the second line in geweights. 
 | 
			
		||||
	</RJW_BGS.RaceGeneDef>
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
-->
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										31
									
								
								Source/Animal_Inheritance/First.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								Source/Animal_Inheritance/First.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using rjw;
 | 
			
		||||
using Verse;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
    [StaticConstructorOnStartup]
 | 
			
		||||
    internal static class First
 | 
			
		||||
    {
 | 
			
		||||
        static First()
 | 
			
		||||
        {
 | 
			
		||||
            RJWcopy.Racegroupdictbuilder();
 | 
			
		||||
            //foreach (RaceGroupDef raceGroupDef2  in DefDatabase<RaceGroupDef>.AllDefs)      
 | 
			
		||||
            //{
 | 
			
		||||
                //Log.Message("defName = " + raceGroupDef2.defName);
 | 
			
		||||
            //    if (raceGroupDef2.raceNames != null)
 | 
			
		||||
            //    {
 | 
			
		||||
            //        foreach (string race in raceGroupDef2.raceNames)
 | 
			
		||||
            //        {
 | 
			
		||||
                        //Log.Message(race);
 | 
			
		||||
            //        }
 | 
			
		||||
            //    }
 | 
			
		||||
           //}
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								Source/Animal_Inheritance/Harmony_Init.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Source/Animal_Inheritance/Harmony_Init.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
	[StaticConstructorOnStartup]
 | 
			
		||||
	internal static class HarmonyInit
 | 
			
		||||
	{
 | 
			
		||||
		// Token: 0x0600001F RID: 31 RVA: 0x000029A4 File Offset: 0x00000BA4
 | 
			
		||||
		static HarmonyInit()
 | 
			
		||||
		{
 | 
			
		||||
			Harmony harmony = new Harmony("RJW_BGS");
 | 
			
		||||
			harmony.PatchAll();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										134
									
								
								Source/Animal_Inheritance/InheritanceUtility.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								Source/Animal_Inheritance/InheritanceUtility.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,134 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
    public class InheritanceUtility
 | 
			
		||||
    {
 | 
			
		||||
        public static List<GeneDef> AnimalInheritedGenes(Pawn father, Pawn mother)
 | 
			
		||||
        {
 | 
			
		||||
            //One parent must be an animal and the other must be human, so only one needs to return
 | 
			
		||||
            List<GeneDef> genelist = new List<GeneDef>();
 | 
			
		||||
            if (father != null && !father.RaceProps.Humanlike)
 | 
			
		||||
            {
 | 
			
		||||
                return SelectGenes(father);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (mother != null && !mother.RaceProps.Humanlike)
 | 
			
		||||
            {
 | 
			
		||||
                return SelectGenes(mother);
 | 
			
		||||
                //PawnKindDef pawnKindDef = mother.kindDef;
 | 
			
		||||
                //RaceGeneDef raceGeneDef = RJWcopy.GetRaceGenDefInternal(pawnKindDef);
 | 
			
		||||
                //if (raceGeneDef != null)
 | 
			
		||||
                //{
 | 
			
		||||
                //    GeneDef gene = null;
 | 
			
		||||
                    //In case you hit a modded gene not currently active try again.
 | 
			
		||||
                //    for (int i = 0; i < 50 || gene == null; i++)
 | 
			
		||||
                //    {
 | 
			
		||||
                //        if (raceGeneDef.genes.Any())
 | 
			
		||||
                //        {
 | 
			
		||||
                //            gene = DefDatabase<GeneDef>.GetNamed(raceGeneDef.genes.RandomElement());
 | 
			
		||||
                //        }
 | 
			
		||||
                //    }
 | 
			
		||||
                //    if (gene != null)
 | 
			
		||||
                //    {
 | 
			
		||||
                //        genelist.Add(gene);
 | 
			
		||||
//
 | 
			
		||||
  //                  }
 | 
			
		||||
    //                
 | 
			
		||||
      //          }
 | 
			
		||||
            }
 | 
			
		||||
            return genelist;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static List<GeneDef> SelectGenes(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
            List<GeneDef> genelist = new List<GeneDef>();
 | 
			
		||||
            PawnKindDef pawnKindDef = pawn.kindDef;
 | 
			
		||||
            RaceGeneDef raceGeneDef = RJWcopy.GetRaceGenDefInternal(pawnKindDef);
 | 
			
		||||
            if (raceGeneDef != null)
 | 
			
		||||
            {
 | 
			
		||||
                int num1 = raceGeneDef.genes.Count;
 | 
			
		||||
                int num2 = raceGeneDef.genechances.Count;
 | 
			
		||||
                if (num1 != num2)
 | 
			
		||||
                {
 | 
			
		||||
                    Log.Error("The amount of genes and genechanches are different in " + raceGeneDef.defName + ". Can't select genes to inherit");
 | 
			
		||||
                    return genelist;
 | 
			
		||||
                }
 | 
			
		||||
                for (int i = 0; i<num1; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    if (raceGeneDef.genechances[i] > Rand.Range(0.01f, 1f))
 | 
			
		||||
                    {
 | 
			
		||||
                        genelist.Add(DefDatabase<GeneDef>.GetNamed(raceGeneDef.genes[i]));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return genelist;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void AddGenes(Pawn pawn, List<GeneDef> genes)
 | 
			
		||||
        {
 | 
			
		||||
            foreach (GeneDef gene in genes)
 | 
			
		||||
            {
 | 
			
		||||
                pawn.genes.AddGene(gene, false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void NewGenes(Pawn mother, Pawn dad, Pawn baby)
 | 
			
		||||
        {
 | 
			
		||||
            if (baby.RaceProps.Humanlike)
 | 
			
		||||
            {
 | 
			
		||||
                if (baby.genes == null)
 | 
			
		||||
                {
 | 
			
		||||
                    baby.genes = new Pawn_GeneTracker(baby);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                //Remove the hair and skin genes pawns always start with, should get correct ones from human parent anyway.
 | 
			
		||||
                for (int i = baby.genes.Endogenes.Count - 1; i >= 0; i--)
 | 
			
		||||
                {
 | 
			
		||||
                    baby.genes.RemoveGene(baby.genes.Endogenes[i]);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                List<GeneDef> genes = PregnancyUtility.GetInheritedGenes(dad, mother);
 | 
			
		||||
                List<GeneDef> beastgenes = InheritanceUtility.AnimalInheritedGenes(dad, mother);
 | 
			
		||||
                InheritanceUtility.AddGenes(baby, beastgenes);
 | 
			
		||||
                InheritanceUtility.AddGenes(baby, genes);
 | 
			
		||||
                if(baby.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin) == null)
 | 
			
		||||
                {
 | 
			
		||||
                    AddSkinColor(mother, dad, baby);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void AddSkinColor(Pawn mother, Pawn father, Pawn baby)
 | 
			
		||||
        {
 | 
			
		||||
            if (mother != null && mother.genes != null)
 | 
			
		||||
            {
 | 
			
		||||
                GeneDef gene = mother.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin);
 | 
			
		||||
                if (gene != null)
 | 
			
		||||
                {
 | 
			
		||||
                    baby.genes.AddGene(gene, false);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            else if (father != null && father.genes != null)
 | 
			
		||||
            {
 | 
			
		||||
                GeneDef gene = father.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin);
 | 
			
		||||
                if (gene != null)
 | 
			
		||||
                {
 | 
			
		||||
                    baby.genes.AddGene(gene, false);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Log.Message("Could not find skincolor of " + baby.Name + "'s parents, giving random skincolor.");
 | 
			
		||||
                baby.genes.AddGene(PawnSkinColors.RandomSkinColorGene(baby), false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using Verse;
 | 
			
		||||
using rjw;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
    [HarmonyPatch(typeof(Hediff_BasePregnancy), "Initialize")]
 | 
			
		||||
    public static class PatchRJWBestialityPregnancyUtility
 | 
			
		||||
    {
 | 
			
		||||
        [HarmonyPostfix]
 | 
			
		||||
        public static void AddGenes(Pawn mother, Pawn dad, ref Hediff_BasePregnancy __instance)
 | 
			
		||||
        {
 | 
			
		||||
            foreach (Pawn baby in __instance.babies)
 | 
			
		||||
            {
 | 
			
		||||
                if (baby.RaceProps.Humanlike)
 | 
			
		||||
                {
 | 
			
		||||
                    if (baby.genes == null)
 | 
			
		||||
                    {
 | 
			
		||||
                        baby.genes = new Pawn_GeneTracker(baby);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    //Remove the hair and skin genes pawns always start with, should get correct ones from human parent anyway.
 | 
			
		||||
                    for (int i = baby.genes.Endogenes.Count - 1; i >= 0; i--)
 | 
			
		||||
                    {
 | 
			
		||||
                        baby.genes.RemoveGene(baby.genes.Endogenes[i]);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    List<GeneDef> genes = PregnancyUtility.GetInheritedGenes(dad, mother);
 | 
			
		||||
                    List<GeneDef> beastgenes = InheritanceUtility.AnimalInheritedGenes(dad, mother);
 | 
			
		||||
                    InheritanceUtility.AddGenes(baby, beastgenes);
 | 
			
		||||
                    InheritanceUtility.AddGenes(baby, genes);
 | 
			
		||||
                    //foreach (GeneDef gene in genes)
 | 
			
		||||
                    //{
 | 
			
		||||
                    //    baby.genes.AddGene(gene, false);
 | 
			
		||||
                    //}
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								Source/Animal_Inheritance/PatchRJWHediffInsect_Egg.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								Source/Animal_Inheritance/PatchRJWHediffInsect_Egg.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Reflection.Emit;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using rjw;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
    [HarmonyPatch(typeof(Hediff_InsectEgg), "GiveBirth")]
 | 
			
		||||
    public static class PatchRJWHediffInsect_Egg
 | 
			
		||||
    {
 | 
			
		||||
        [HarmonyTranspiler]
 | 
			
		||||
        public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
 | 
			
		||||
        {
 | 
			
		||||
            MethodInfo newgenes = AccessTools.Method(typeof(InheritanceUtility), "NewGenes", null, null);
 | 
			
		||||
            FieldInfo implanter = AccessTools.Field(typeof(Hediff_InsectEgg), "implanter");
 | 
			
		||||
            FieldInfo father = AccessTools.Field(typeof(Hediff_InsectEgg), "father");
 | 
			
		||||
 | 
			
		||||
            foreach (CodeInstruction instruction in instructions)
 | 
			
		||||
            {
 | 
			
		||||
                yield return instruction;
 | 
			
		||||
                if (instruction.opcode == OpCodes.Call && instruction.operand.ToString() == "Void BabyPostBirth(Verse.Pawn, Verse.Pawn, Verse.Pawn)")
 | 
			
		||||
                {
 | 
			
		||||
                    yield return new CodeInstruction(OpCodes.Ldloc_0, null);
 | 
			
		||||
                    yield return new CodeInstruction(OpCodes.Ldfld, implanter);
 | 
			
		||||
                    yield return new CodeInstruction(OpCodes.Ldarg_0, null);
 | 
			
		||||
                    yield return new CodeInstruction(OpCodes.Ldfld, father);
 | 
			
		||||
                    yield return new CodeInstruction(OpCodes.Ldloc_1, null);
 | 
			
		||||
                    yield return new CodeInstruction(OpCodes.Call, newgenes);
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								Source/Animal_Inheritance/PatchVanillaPregnancyUtility.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								Source/Animal_Inheritance/PatchVanillaPregnancyUtility.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using Verse;
 | 
			
		||||
using rjw;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
    [HarmonyPatch(typeof(PregnancyUtility), "GetInheritedGeneSet", new Type[] 
 | 
			
		||||
    { 
 | 
			
		||||
        typeof(Pawn), 
 | 
			
		||||
        typeof(Pawn),
 | 
			
		||||
        //typeof(bool)
 | 
			
		||||
    }
 | 
			
		||||
    )]
 | 
			
		||||
    public static class PatchVanillaPregnancyUtility
 | 
			
		||||
    {
 | 
			
		||||
        [HarmonyPostfix]
 | 
			
		||||
        public static void AnimalInheritedGenes(Pawn father, Pawn mother, ref GeneSet __result)
 | 
			
		||||
        {
 | 
			
		||||
            List<GeneDef> genes = InheritanceUtility.AnimalInheritedGenes(father, mother);
 | 
			
		||||
            if (genes.Any())
 | 
			
		||||
            {
 | 
			
		||||
                foreach (GeneDef gene in genes)
 | 
			
		||||
                {
 | 
			
		||||
                    __result.AddGene(gene);
 | 
			
		||||
                }
 | 
			
		||||
            }        
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										150
									
								
								Source/Animal_Inheritance/RJWcopies.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								Source/Animal_Inheritance/RJWcopies.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,150 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using rjw;
 | 
			
		||||
using Verse;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
    internal class RJWcopy
 | 
			
		||||
    {
 | 
			
		||||
        //Code copied from rjw, as their code was internal and I need the dictionary to know which genes to add to the pawn
 | 
			
		||||
        public static void Racegroupdictbuilder()
 | 
			
		||||
        {
 | 
			
		||||
            foreach (PawnKindDef pawnKindDef2 in from pawnKindDef in DefDatabase<PawnKindDef>.AllDefs
 | 
			
		||||
                                                 where pawnKindDef.race.race != null
 | 
			
		||||
                                                 select pawnKindDef)
 | 
			
		||||
            {
 | 
			
		||||
                RaceGroupDef raceGroupDef = null;
 | 
			
		||||
				bool temp = TryGetRaceGroupDef(pawnKindDef2, out raceGroupDef);
 | 
			
		||||
            }
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static bool TryGetRaceGroupDef(PawnKindDef pawnKindDef, out RaceGroupDef raceGroupDef)
 | 
			
		||||
		{
 | 
			
		||||
			
 | 
			
		||||
			if (RaceGroupByPawnKind.TryGetValue(pawnKindDef, out raceGroupDef))
 | 
			
		||||
			{
 | 
			
		||||
				return raceGroupDef != null;
 | 
			
		||||
			}
 | 
			
		||||
			raceGroupDef = GetRaceGroupDefInternal(pawnKindDef);
 | 
			
		||||
			RaceGroupByPawnKind.Add(pawnKindDef, raceGroupDef);
 | 
			
		||||
			return raceGroupDef != null;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//slightly modified code so it also works racegroupdefs
 | 
			
		||||
		public static RaceGroupDef GetRaceGroupDefInternal(PawnKindDef kindDef)
 | 
			
		||||
		{
 | 
			
		||||
			string raceName = kindDef.race.defName;
 | 
			
		||||
			string pawnKindName = kindDef.defName;
 | 
			
		||||
			IEnumerable<RaceGroupDef> allDefs = DefDatabase<RaceGroupDef>.AllDefs;
 | 
			
		||||
			List<RaceGroupDef> list = allDefs.Where(delegate (RaceGroupDef group)
 | 
			
		||||
			{
 | 
			
		||||
				List<string> pawnKindNames = group.pawnKindNames;
 | 
			
		||||
				return pawnKindNames != null && pawnKindNames.Contains(pawnKindName);
 | 
			
		||||
			}).ToList<RaceGroupDef>();
 | 
			
		||||
			List<RaceGroupDef> list2 = allDefs.Where(delegate (RaceGroupDef group)
 | 
			
		||||
			{
 | 
			
		||||
				List<string> raceNames = group.raceNames;
 | 
			
		||||
				return raceNames != null && raceNames.Contains(raceName);
 | 
			
		||||
			}).ToList<RaceGroupDef>();
 | 
			
		||||
			int num = list.Count<RaceGroupDef>() + list2.Count<RaceGroupDef>();
 | 
			
		||||
			if (num == 0)
 | 
			
		||||
			{
 | 
			
		||||
				return null;
 | 
			
		||||
			}
 | 
			
		||||
			if (num == 1)
 | 
			
		||||
			{
 | 
			
		||||
				return list.Concat(list2).Single<RaceGroupDef>();
 | 
			
		||||
			}
 | 
			
		||||
			RaceGroupDef result;
 | 
			
		||||
			if ((result = list.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
 | 
			
		||||
			{
 | 
			
		||||
				if ((result = list2.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
 | 
			
		||||
				{
 | 
			
		||||
					result = (list.FirstOrDefault<RaceGroupDef>() ?? list2.FirstOrDefault<RaceGroupDef>());
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return result;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static RaceGeneDef GetRaceGenDefInternal(PawnKindDef kindDef)
 | 
			
		||||
        {
 | 
			
		||||
			if (kindDef == null)
 | 
			
		||||
            {
 | 
			
		||||
				return null;
 | 
			
		||||
            }
 | 
			
		||||
			string raceName = kindDef.race.defName;
 | 
			
		||||
			string pawnKindName = kindDef.defName;
 | 
			
		||||
			RaceGroupDef raceGroupDef = GetRaceGroupDef(kindDef);
 | 
			
		||||
			//string raceGroupName = GetRaceGroupDef(kindDef).defName;
 | 
			
		||||
			IEnumerable<RaceGeneDef> allDefs = DefDatabase<RaceGeneDef>.AllDefs;
 | 
			
		||||
			Log.Message(allDefs.Count<RaceGeneDef>().ToString());
 | 
			
		||||
			List<RaceGeneDef> list = allDefs.Where(delegate (RaceGeneDef group)
 | 
			
		||||
			{
 | 
			
		||||
				List<string> pawnKindNames = group.pawnKindNames;
 | 
			
		||||
				return pawnKindNames != null && pawnKindNames.Contains(pawnKindName);
 | 
			
		||||
			}).ToList<RaceGeneDef>();
 | 
			
		||||
			List<RaceGeneDef> list2 = allDefs.Where(delegate (RaceGeneDef group)
 | 
			
		||||
			{
 | 
			
		||||
				List<string> raceNames = group.raceNames;
 | 
			
		||||
				return raceNames != null && raceNames.Contains(raceName);
 | 
			
		||||
			}).ToList<RaceGeneDef>();
 | 
			
		||||
			List<RaceGeneDef> list3 = new List<RaceGeneDef>();
 | 
			
		||||
			if (raceGroupDef != null)
 | 
			
		||||
			{
 | 
			
		||||
				Log.Message("found a raceGroupDef");
 | 
			
		||||
				Log.Message(raceGroupDef.defName);
 | 
			
		||||
				foreach (RaceGeneDef rgd in allDefs)
 | 
			
		||||
                {
 | 
			
		||||
					Log.Message(rgd.defName);
 | 
			
		||||
                }
 | 
			
		||||
				list3 = allDefs.Where(delegate (RaceGeneDef group)
 | 
			
		||||
				{
 | 
			
		||||
					String raceGroupDefName = group.raceGroup;
 | 
			
		||||
					return raceGroupDefName != null && raceGroupDefName == raceGroupDef.defName;
 | 
			
		||||
				}).ToList<RaceGeneDef>();
 | 
			
		||||
			}
 | 
			
		||||
			RaceGeneDef result = null;
 | 
			
		||||
			//First check if there is a matching pawnkinddef then race, then racegroup
 | 
			
		||||
			if (list.Any())
 | 
			
		||||
			{
 | 
			
		||||
				result = list.RandomElement();
 | 
			
		||||
			}
 | 
			
		||||
			else if (list2.Any() && result == null)
 | 
			
		||||
			{
 | 
			
		||||
				result = list2.RandomElement();
 | 
			
		||||
			}
 | 
			
		||||
			else if (list3.Any() && result == null)
 | 
			
		||||
			{
 | 
			
		||||
				result = list3.RandomElement();
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
            {
 | 
			
		||||
				result = null;
 | 
			
		||||
            }
 | 
			
		||||
			return result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private static RaceGroupDef GetRaceGroupDef(PawnKindDef kindDef)
 | 
			
		||||
        {
 | 
			
		||||
			RaceGroupDef raceGroupDef = null;
 | 
			
		||||
			bool temp = TryGetRaceGroupDef(kindDef, out raceGroupDef);
 | 
			
		||||
			return raceGroupDef;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private static bool IsThisMod(Def def)
 | 
			
		||||
		{
 | 
			
		||||
			return LoadedModManager.RunningMods.Single((ModContentPack pack) => pack.Name == "RimJobWorld").AllDefs.Contains(def);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private static readonly IDictionary<PawnKindDef, RaceGroupDef> RaceGroupByPawnKind = new Dictionary<PawnKindDef, RaceGroupDef>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
   
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								Source/Animal_Inheritance/RaceGeneDef.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Source/Animal_Inheritance/RaceGeneDef.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
using rjw;
 | 
			
		||||
 | 
			
		||||
namespace RJW_BGS
 | 
			
		||||
{
 | 
			
		||||
    public class RaceGeneDef : Def
 | 
			
		||||
    {
 | 
			
		||||
        public String raceGroup;
 | 
			
		||||
        public List<string> raceNames;
 | 
			
		||||
        public List<string> pawnKindNames;
 | 
			
		||||
        public List<string> genes;
 | 
			
		||||
        public List<float> genechances;
 | 
			
		||||
        public String hybridName;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
    <ProjectGuid>{D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}</ProjectGuid>
 | 
			
		||||
    <OutputType>Library</OutputType>
 | 
			
		||||
    <AppDesignerFolder>Properties</AppDesignerFolder>
 | 
			
		||||
    <RootNamespace>Rjw-Genes</RootNamespace>
 | 
			
		||||
    <RootNamespace>RJW_Genes</RootNamespace>
 | 
			
		||||
    <AssemblyName>Rjw-Genes</AssemblyName>
 | 
			
		||||
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
 | 
			
		||||
    <FileAlignment>512</FileAlignment>
 | 
			
		||||
| 
						 | 
				
			
			@ -23,18 +23,19 @@
 | 
			
		|||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Reference Include="0Harmony">
 | 
			
		||||
      <HintPath>..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="Assembly-CSharp">
 | 
			
		||||
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="LicentiaLabs">
 | 
			
		||||
      <HintPath>..\..\licentia-labs\Assemblies\LicentiaLabs.dll</HintPath>
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\licentia-labs-master\Assemblies\LicentiaLabs.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="RJW">
 | 
			
		||||
      <HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\RJW\1.4\Assemblies\RJW.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="System" />
 | 
			
		||||
| 
						 | 
				
			
			@ -43,18 +44,26 @@
 | 
			
		|||
    <Reference Include="System.Data.DataSetExtensions" />
 | 
			
		||||
    <Reference Include="System.Data" />
 | 
			
		||||
    <Reference Include="System.Xml" />
 | 
			
		||||
    <Reference Include="UnityEngine">
 | 
			
		||||
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <None Include="..\About\**" />
 | 
			
		||||
    <None Include="..\Common\Defs\Genes\GeneCategories.xml" />
 | 
			
		||||
    <None Include="..\Common\Defs\Genes\GeneDefs_ExtraGenitaliaEndogenes.xml" />
 | 
			
		||||
    <None Include="..\Common\Defs\Genes\GeneDefs_GenitaliaTypeEndogenes.xml" />
 | 
			
		||||
    <None Include="..\Common\Languages\**" />
 | 
			
		||||
    <None Include="..\Common\Patches\**" />
 | 
			
		||||
    <Reference Include="UnityEngine">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="Animal_Inheritance\First.cs" />
 | 
			
		||||
    <Compile Include="Animal_Inheritance\Harmony_Init.cs" />
 | 
			
		||||
    <Compile Include="Animal_Inheritance\InheritanceUtility.cs" />
 | 
			
		||||
    <Compile Include="Animal_Inheritance\PatchRJWBestialityPregnancyUtility.cs" />
 | 
			
		||||
    <Compile Include="Animal_Inheritance\PatchRJWHediffInsect_Egg.cs" />
 | 
			
		||||
    <Compile Include="Animal_Inheritance\PatchVanillaPregnancyUtility.cs" />
 | 
			
		||||
    <Compile Include="Animal_Inheritance\RaceGeneDef.cs" />
 | 
			
		||||
    <Compile Include="Animal_Inheritance\RJWcopies.cs" />
 | 
			
		||||
    <Compile Include="GeneDefOf.cs" />
 | 
			
		||||
    <Compile Include="Genes\Breeding\Gene_MechBreeder.cs" />
 | 
			
		||||
    <Compile Include="Genes\Breeding\PatchMechBirth.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								Source/Rjw-Genes.csproj.user
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Source/Rjw-Genes.csproj.user
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <ReferencePath>
 | 
			
		||||
    </ReferencePath>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue