Compare commits

..

No commits in common. "2ad91a10760bc8318f3877baa8cfc45e4018ec45" and "b9a2466425b20c513797de8c223400fb9d3de526" have entirely different histories.

3 changed files with 14 additions and 42 deletions

View file

@ -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)
{
if (old_value > 0.2f && drain.Resource.Value <= 0.2f)
//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))
{
//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);
}
}
}

View file

@ -33,9 +33,6 @@ namespace RJW_Genes
{
List<Hediff_InsectEgg> eggs = new List<Hediff_InsectEgg>();
pawn.health.hediffSet.GetHediffs<Hediff_InsectEgg>(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)

View file

@ -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);
}
/// <summary>
/// Looks up if there is a Xenotype with Queen-Gene for the pawns parents.