mirror of
				https://github.com/vegapnk/RJW-Genes.git
				synced 2024-08-15 00:23:31 +00:00 
			
		
		
		
	Some documentation
This commit is contained in:
		
							parent
							
								
									70f7ce1f7d
								
							
						
					
					
						commit
						710efc7d85
					
				
					 2 changed files with 20 additions and 46 deletions
				
			
		| 
						 | 
				
			
			@ -14,7 +14,10 @@ namespace RJW_BGS
 | 
			
		|||
    [HarmonyPatch(typeof(Hediff_BasePregnancy))]
 | 
			
		||||
    public class BasePregnancyPatcher
 | 
			
		||||
    {
 | 
			
		||||
        public static List<string> racesgen1 = new List<string>()
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// The supported races that are produced by Vanilla Genetics Expanded, that can lead to different offsprings when in Human - Animal Sex
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static List<string> firstGenerationOffspringRaces = new List<string>()
 | 
			
		||||
            {
 | 
			
		||||
            "GR_Manbear",
 | 
			
		||||
            "GR_Bearman",
 | 
			
		||||
| 
						 | 
				
			
			@ -36,7 +39,10 @@ namespace RJW_BGS
 | 
			
		|||
            "GR_Lizardman"
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
        public static List<string> racesgen0 = new List<string>()
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// The supported races that can produce Vanilla Genetics hybrids as Human - Animal Sex results. 
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static List<string> parentGenerationOffspringRaces = new List<string>()
 | 
			
		||||
            {
 | 
			
		||||
            "Bear_Grizzly",
 | 
			
		||||
            "Bear_Polar",
 | 
			
		||||
| 
						 | 
				
			
			@ -85,50 +91,18 @@ namespace RJW_BGS
 | 
			
		|||
            "Tortoise"
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
        //public static HediffDef controler = DefDatabase<HediffDef>.GetNamed("RJWGenes_AnimalControlHediff", true);
 | 
			
		||||
 | 
			
		||||
        [HarmonyPostfix]
 | 
			
		||||
        [HarmonyPatch("GenerateBabies")]
 | 
			
		||||
        public static void AddComfortableWithHumansHediff (Hediff_BasePregnancy __instance)
 | 
			
		||||
        {
 | 
			
		||||
            //if (controler == null) return;
 | 
			
		||||
            
 | 
			
		||||
            foreach (Pawn p in __instance.babies)
 | 
			
		||||
            foreach (Pawn baby in __instance.babies)
 | 
			
		||||
            {
 | 
			
		||||
                if(p != null)
 | 
			
		||||
                if (baby != null && firstGenerationOffspringRaces.Contains(baby.kindDef.race.defName))
 | 
			
		||||
                {
 | 
			
		||||
                    if (racesgen1.Contains(p.kindDef.race.defName))
 | 
			
		||||
                    {
 | 
			
		||||
                        p.health.AddHediff(RJW_Genes.HediffDefOf.rjw_genes_animal_control_hediff);
 | 
			
		||||
                    }
 | 
			
		||||
                    baby.health.AddHediff(RJW_Genes.HediffDefOf.rjw_genes_animal_control_hediff);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Error Received on 04.06.2024 
 | 
			
		||||
 * Failed to find Verse.HediffDef named RJWGenes_AnimalControlHediff. There are 446 defs of this type loaded.
 | 
			
		||||
UnityEngine.StackTraceUtility:ExtractStackTrace ()
 | 
			
		||||
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
 | 
			
		||||
Verse.DefDatabase`1<Verse.HediffDef>:GetNamed (string,bool)
 | 
			
		||||
RJW_BGS.BasePregnancyPatcher:.cctor ()
 | 
			
		||||
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:rjw.PregnancyHelper.AddPregnancyHediff_Patch1 (Verse.Pawn,Verse.Pawn)
 | 
			
		||||
rjw.PregnancyHelper:DoImpregnate (Verse.Pawn,Verse.Pawn)
 | 
			
		||||
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:rjw.PregnancyHelper.impregnate_Patch1 (rjw.SexProps)
 | 
			
		||||
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:rjw.JobDriver_Sex.Orgasm_Patch1 (rjw.JobDriver_Sex)
 | 
			
		||||
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:rjw.JobDriver_Sex.SexTick_Patch2 (rjw.JobDriver_Sex,Verse.Pawn,Verse.Thing,bool,bool)
 | 
			
		||||
rjw.JobDriver_Mating/<>c__DisplayClass1_0:<MakeNewToils>b__5 ()
 | 
			
		||||
Verse.AI.JobDriver:DriverTick ()
 | 
			
		||||
Verse.AI.Pawn_JobTracker:JobTrackerTick ()
 | 
			
		||||
Verse.Pawn:Tick ()
 | 
			
		||||
Verse.TickList:Tick ()
 | 
			
		||||
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickManager.DoSingleTick_Patch2 (Verse.TickManager)
 | 
			
		||||
Verse.TickManager:TickManagerUpdate ()
 | 
			
		||||
Verse.Game:UpdatePlay ()
 | 
			
		||||
Verse.Root_Play:Update ()
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -21,29 +21,29 @@ namespace RJW_BGS
 | 
			
		|||
        {
 | 
			
		||||
            if (!RJW_BGSSettings.rjw_bgs_VE_genetics) return true;
 | 
			
		||||
            if (mother == null || father == null) return true;
 | 
			
		||||
            bool a = mother.IsHuman() && BasePregnancyPatcher.racesgen0.Contains(father.kindDef.race.defName);
 | 
			
		||||
            bool b = mother.IsHuman() && BasePregnancyPatcher.racesgen1.Contains(father.kindDef.race.defName);
 | 
			
		||||
            bool c = father.IsHuman() && BasePregnancyPatcher.racesgen0.Contains(mother.kindDef.race.defName);
 | 
			
		||||
            bool d = father.IsHuman() && BasePregnancyPatcher.racesgen1.Contains(mother.kindDef.race.defName);
 | 
			
		||||
            bool humanMotherAndSupportedAnimal = mother.IsHuman() && BasePregnancyPatcher.parentGenerationOffspringRaces.Contains(father.kindDef.race.defName);
 | 
			
		||||
            bool humanMotherAndSupportedHybrid = mother.IsHuman() && BasePregnancyPatcher.firstGenerationOffspringRaces.Contains(father.kindDef.race.defName);
 | 
			
		||||
            bool humanFatherAndSupportedAnimal = father.IsHuman() && BasePregnancyPatcher.parentGenerationOffspringRaces.Contains(mother.kindDef.race.defName);
 | 
			
		||||
            bool humanFatherAndSupportedHybrid = father.IsHuman() && BasePregnancyPatcher.firstGenerationOffspringRaces.Contains(mother.kindDef.race.defName);
 | 
			
		||||
 | 
			
		||||
            if (!(a || b||c|| d)) return true;
 | 
			
		||||
            if (a)
 | 
			
		||||
            if (!(humanMotherAndSupportedAnimal || humanMotherAndSupportedHybrid||humanFatherAndSupportedAnimal|| humanFatherAndSupportedHybrid)) return true;
 | 
			
		||||
            if (humanMotherAndSupportedAnimal)
 | 
			
		||||
            {
 | 
			
		||||
                Hediff_BasePregnancy.Create<Hediff_BestialPregnancy>(mother, father, DnaGivingParent.Father);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            else if (b)
 | 
			
		||||
            else if (humanMotherAndSupportedHybrid)
 | 
			
		||||
            {
 | 
			
		||||
                ModLog.Message("preg hediffdefof PregnantHuman " + RimWorld.HediffDefOf.PregnantHuman);
 | 
			
		||||
                PregnancyHelper.StartVanillaPregnancy(mother, father);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            else if (c)
 | 
			
		||||
            else if (humanFatherAndSupportedAnimal)
 | 
			
		||||
            {
 | 
			
		||||
                Hediff_BasePregnancy.Create<Hediff_BestialPregnancy>(mother, father, DnaGivingParent.Mother);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            else if (d)
 | 
			
		||||
            else if (humanFatherAndSupportedHybrid)
 | 
			
		||||
            {
 | 
			
		||||
                Hediff_BasePregnancy.Create<Hediff_BestialPregnancy>(mother, father, DnaGivingParent.Father);
 | 
			
		||||
                return false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue