mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Compare commits
No commits in common. "2ad91a10760bc8318f3877baa8cfc45e4018ec45" and "b9a2466425b20c513797de8c223400fb9d3de526" have entirely different histories.
2ad91a1076
...
b9a2466425
3 changed files with 14 additions and 42 deletions
|
@ -17,17 +17,12 @@ namespace RJW_Genes
|
||||||
|
|
||||||
public static void OffsetLifeForce(IGeneResourceDrain drain, float offset)
|
public static void OffsetLifeForce(IGeneResourceDrain drain, float offset)
|
||||||
{
|
{
|
||||||
if (drain.Resource != null && drain.Resource.Active) {
|
|
||||||
float old_value = drain.Resource.Value;
|
float old_value = drain.Resource.Value;
|
||||||
drain.Resource.Value += offset;
|
drain.Resource.Value += offset;
|
||||||
PostOffSetLifeForce(drain, old_value);
|
PostOffSetLifeForce(drain, old_value);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static void PostOffSetLifeForce(IGeneResourceDrain drain, float 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)
|
||||||
{
|
{
|
||||||
|
@ -42,7 +37,6 @@ namespace RJW_Genes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static bool HasLowLifeForce(Pawn pawn)
|
public static bool HasLowLifeForce(Pawn pawn)
|
||||||
|
|
|
@ -33,9 +33,6 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
List<Hediff_InsectEgg> eggs = new List<Hediff_InsectEgg>();
|
List<Hediff_InsectEgg> eggs = new List<Hediff_InsectEgg>();
|
||||||
pawn.health.hediffSet.GetHediffs<Hediff_InsectEgg>(ref eggs);
|
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)
|
foreach (Hediff_InsectEgg egg in eggs)
|
||||||
{
|
{
|
||||||
|
@ -45,17 +42,7 @@ namespace RJW_Genes
|
||||||
|
|
||||||
if (!egg.fertilized && egg.implanter != null) {
|
if (!egg.fertilized && egg.implanter != null) {
|
||||||
egg.Fertilize(pawn);
|
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.
|
if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"Gene_InsectIncubator: fertilized egg {egg} in {pawn}");
|
||||||
// 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}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 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.
|
// 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)
|
else if (egg.fertilized && egg.GestationProgress <= .93)
|
||||||
|
|
|
@ -50,7 +50,8 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
pawn.genes.SetXenotype(queenDef);
|
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})");
|
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
|
// Case 2.b: New Drone born
|
||||||
else if (roll < hiveOffspringChanceDef.droneChance + hiveOffspringChanceDef.queenChance)
|
else if (roll < hiveOffspringChanceDef.droneChance + hiveOffspringChanceDef.queenChance)
|
||||||
|
@ -114,16 +115,6 @@ namespace RJW_Genes
|
||||||
return null;
|
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>
|
/// <summary>
|
||||||
/// Looks up if there is a Xenotype with Queen-Gene for the pawns parents.
|
/// Looks up if there is a Xenotype with Queen-Gene for the pawns parents.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue