Add support for pregenerated babies into Implant
This commit is contained in:
parent
89f26b2601
commit
fcfb7cdefb
|
@ -1297,8 +1297,19 @@ namespace RJW_Menstruation
|
||||||
if (Configurations.Debug) Log.Message($"Implanting fertilized egg of {Pawn} into {parent}, father {egg.fertilizer}");
|
if (Configurations.Debug) Log.Message($"Implanting fertilized egg of {Pawn} into {parent}, father {egg.fertilizer}");
|
||||||
if (pregnancy != null)
|
if (pregnancy != null)
|
||||||
{
|
{
|
||||||
// TODO: Modified Biotech pregnancy
|
if (Configurations.PregnancySource == Configurations.PregnancyType.Biotech && Configurations.EnableBiotechTwins && Configurations.EnableHeteroOvularTwins)
|
||||||
if (Configurations.PregnancySource == Configurations.PregnancyType.MultiplePregnancy && Configurations.EnableHeteroOvularTwins)
|
{
|
||||||
|
if (Configurations.Debug) Log.Message($"Adding to existing Biotech pregnancy {pregnancy}");
|
||||||
|
HediffComp_PregeneratedBabies comp = pregnancy.TryGetComp<HediffComp_PregeneratedBabies>();
|
||||||
|
if (comp == null) Log.Warning($"Trying to add Biotech egg to {Pawn}'s pregnancy without a pregenerated baby comp: {pregnancy}");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
comp.AddNewBaby(Pawn, egg.fertilizer);
|
||||||
|
pregnant = true;
|
||||||
|
deadeggs.Add(egg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Configurations.PregnancySource == Configurations.PregnancyType.MultiplePregnancy && Configurations.EnableHeteroOvularTwins)
|
||||||
{
|
{
|
||||||
if (pregnancy is Hediff_MultiplePregnancy h)
|
if (pregnancy is Hediff_MultiplePregnancy h)
|
||||||
{
|
{
|
||||||
|
@ -1340,8 +1351,12 @@ namespace RJW_Menstruation
|
||||||
case Configurations.PregnancyType.Biotech:
|
case Configurations.PregnancyType.Biotech:
|
||||||
if (Configurations.Debug) Log.Message($"Creating new biotech pregnancy");
|
if (Configurations.Debug) Log.Message($"Creating new biotech pregnancy");
|
||||||
pregnancy = HediffMaker.MakeHediff(HediffDefOf.PregnantHuman, Pawn);
|
pregnancy = HediffMaker.MakeHediff(HediffDefOf.PregnantHuman, Pawn);
|
||||||
|
if(Configurations.EnableBiotechTwins)
|
||||||
|
pregnancy.TryGetComp<HediffComp_PregeneratedBabies>().AddNewBaby(Pawn, egg.fertilizer);
|
||||||
((Hediff_Pregnant)pregnancy).SetParents(Pawn, egg.fertilizer, PregnancyUtility.GetInheritedGeneSet(egg.fertilizer, Pawn));
|
((Hediff_Pregnant)pregnancy).SetParents(Pawn, egg.fertilizer, PregnancyUtility.GetInheritedGeneSet(egg.fertilizer, Pawn));
|
||||||
Pawn.health.AddHediff(pregnancy);
|
Pawn.health.AddHediff(pregnancy);
|
||||||
|
pregnant = true;
|
||||||
|
deadeggs.Add(egg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (pregnancy is Hediff_BasePregnancy rjw_preg)
|
if (pregnancy is Hediff_BasePregnancy rjw_preg)
|
||||||
|
@ -1361,7 +1376,9 @@ namespace RJW_Menstruation
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pregnant && (Configurations.PregnancySource != Configurations.PregnancyType.MultiplePregnancy || !Configurations.EnableHeteroOvularTwins))
|
if (pregnant &&
|
||||||
|
(Configurations.PregnancySource != Configurations.PregnancyType.MultiplePregnancy || !Configurations.EnableHeteroOvularTwins) &&
|
||||||
|
(Configurations.PregnancySource != Configurations.PregnancyType.Biotech || !Configurations.EnableBiotechTwins || !Configurations.EnableHeteroOvularTwins))
|
||||||
{
|
{
|
||||||
eggs.Clear();
|
eggs.Clear();
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue