diff --git a/Source/Genes/GeneUtility.cs b/Source/Genes/GeneUtility.cs index c46e6e1..fa23fe7 100644 --- a/Source/Genes/GeneUtility.cs +++ b/Source/Genes/GeneUtility.cs @@ -17,29 +17,23 @@ namespace RJW_Genes public static void OffsetLifeForce(IGeneResourceDrain drain, float offset) { - if (drain.Resource != null && drain.Resource.Active) { - float old_value = drain.Resource.Value; - drain.Resource.Value += offset; - PostOffSetLifeForce(drain, old_value); - } + float old_value = drain.Resource.Value; + drain.Resource.Value += offset; + PostOffSetLifeForce(drain, old_value); } public static void PostOffSetLifeForce(IGeneResourceDrain drain, float old_value) { - - if (drain.Resource != null && drain.Resource.Active) + if (old_value > 0.2f && drain.Resource.Value <= 0.2f) + { + //TODO: Mood debuff + } + else if (old_value > 0f && drain.Resource.Value <= 0f) { - if (old_value > 0.2f && drain.Resource.Value <= 0.2f) + Pawn pawn = drain.Pawn; + if (!drain.Pawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_fertilin_craving)) { - //TODO: Mood debuff - } - else if (old_value > 0f && drain.Resource.Value <= 0f) - { - Pawn pawn = drain.Pawn; - if (!drain.Pawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_fertilin_craving)) - { - drain.Pawn.health.AddHediff(HediffDefOf.rjw_genes_fertilin_craving); - } + drain.Pawn.health.AddHediff(HediffDefOf.rjw_genes_fertilin_craving); } } } diff --git a/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs b/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs index 5173dd0..559ec2c 100644 --- a/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs +++ b/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs @@ -33,9 +33,6 @@ namespace RJW_Genes { List eggs = new List(); pawn.health.hediffSet.GetHediffs(ref eggs); - // This part works as intended and shows Non-Human Eggs too - //if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"Gene_InsectIncubator: Found {eggs.Count} Hediff_InsectEgg in {pawn}"); - foreach (Hediff_InsectEgg egg in eggs) { @@ -45,17 +42,7 @@ namespace RJW_Genes if (!egg.fertilized && egg.implanter != null) { egg.Fertilize(pawn); - // DevNote Issue 38: Sometimes Eggs are not fertilized here, because the normal Fertilize Function is called which has an upper Limit on Gestation. - // I will not do anything about it here, maybe upstream, but I print here. - if (RJW_Genes_Settings.rjw_genes_detailed_debug) - { - if (egg.fertilized) - ModLog.Message($"Gene_InsectIncubator: fertilized egg {egg} in {pawn}"); - else if (egg.GestationProgress > 0.5) - ModLog.Message($"Gene_InsectIncubator: Failed to fertilize {egg} in {pawn} due to high gestation progress"); - else - ModLog.Message($"Gene_InsectIncubator: failed to fertiliz egg {egg} in {pawn}"); - } + if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"Gene_InsectIncubator: fertilized egg {egg} in {pawn}"); } // DevNote: There is an issue with Eggs reaching too much gestation progress (>100%), which causes DownStream bugs. To avoid this, there are some extra checks in place. else if (egg.fertilized && egg.GestationProgress <= .93) diff --git a/Source/Genes/Hive/Helpers/HiveBirthLogic.cs b/Source/Genes/Hive/Helpers/HiveBirthLogic.cs index d5ca5f0..faf8534 100644 --- a/Source/Genes/Hive/Helpers/HiveBirthLogic.cs +++ b/Source/Genes/Hive/Helpers/HiveBirthLogic.cs @@ -50,7 +50,8 @@ namespace RJW_Genes { pawn.genes.SetXenotype(queenDef); if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"{pawn} born as a new queen with xenotype {queenDef.defName} ({hiveOffspringChanceDef.queenChance * 100}% chance,rolled {roll})"); - MakeQueenBornLetter(pawn); + // TODO: Make a letter ? Letter doesn't show :( + Find.LetterStack.ReceiveLetter("New Queen", "A new Queen was born! Make sure to adress inheritance before the new queen reaches adolesence.", LetterDefOf.BabyBirth, (LookTargets)(Thing)pawn); } // Case 2.b: New Drone born else if (roll < hiveOffspringChanceDef.droneChance + hiveOffspringChanceDef.queenChance) @@ -114,16 +115,6 @@ namespace RJW_Genes return null; } - public static void MakeQueenBornLetter(Pawn bornQueen) - { - if (bornQueen == null) return; - - var letter= LetterMaker.MakeLetter( - "New Queen", "A new Queen was born! Make sure to adress inheritance before the new queen reaches adolesence.", LetterDefOf.NeutralEvent, bornQueen - ); - //letter.Start(); - Find.LetterStack.ReceiveLetter(letter); - } /// /// Looks up if there is a Xenotype with Queen-Gene for the pawns parents.