mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
Prevent two humanlikes from creating an animal for Biotech pregnancies
This commit is contained in:
parent
12c760d16c
commit
8aff96e5a4
3 changed files with 12 additions and 4 deletions
|
@ -37,6 +37,7 @@ namespace RJW_Menstruation
|
|||
// But it is possible that there is no new hediff (be it a birth, miscarrage, or dev edit)
|
||||
base.CompPostPostRemoved();
|
||||
|
||||
// Send the babies from this comp to the new one
|
||||
switch (parent)
|
||||
{
|
||||
case Hediff_Pregnant hediff_Pregnant:
|
||||
|
@ -70,7 +71,7 @@ namespace RJW_Menstruation
|
|||
public void AddNewBaby(Pawn mother, Pawn father)
|
||||
{
|
||||
if (babies == null) babies = new List<Pawn>();
|
||||
PawnKindDef babyPawnKind = PregnancyCommon.BabyPawnKindDecider(mother, father);
|
||||
PawnKindDef babyPawnKind = PregnancyCommon.BabyPawnKindDecider(mother, father, true);
|
||||
PawnGenerationRequest request = new PawnGenerationRequest
|
||||
(
|
||||
kind: babyPawnKind,
|
||||
|
@ -115,7 +116,7 @@ namespace RJW_Menstruation
|
|||
baby.story.furDef = firstbaby.story.furDef;
|
||||
}
|
||||
|
||||
if (baby.genes != null && ModsConfig.BiotechActive)
|
||||
if (baby.genes != null)
|
||||
{
|
||||
baby.genes.SetXenotypeDirect(firstbaby.genes.Xenotype);
|
||||
baby.genes.xenotypeName = firstbaby.genes.xenotypeName;
|
||||
|
|
|
@ -313,7 +313,7 @@ namespace RJW_Menstruation
|
|||
allowAddictions: false,
|
||||
relationWithExtraPawnChanceFactor: 0,
|
||||
fixedLastName: lastname,
|
||||
kind: PregnancyCommon.BabyPawnKindDecider(mother, father),
|
||||
kind: PregnancyCommon.BabyPawnKindDecider(mother, father, false),
|
||||
//fixedIdeo: mother.Ideo,
|
||||
forbidAnyTitle: true,
|
||||
forceNoBackstory: true,
|
||||
|
|
|
@ -61,7 +61,8 @@ namespace RJW_Menstruation
|
|||
/// <param name="father"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
public static PawnKindDef BabyPawnKindDecider(Pawn mother, Pawn father)
|
||||
/// <param name="noAnimalsFromHumanlikes"></param>
|
||||
public static PawnKindDef BabyPawnKindDecider(Pawn mother, Pawn father, bool noAnimalsFromHumanlikes)
|
||||
{
|
||||
PawnKindDef motherKindDef = Utility.GetRacesPawnKind(mother);
|
||||
PawnKindDef fatherKindDef = Utility.GetRacesPawnKind(father);
|
||||
|
@ -177,6 +178,12 @@ namespace RJW_Menstruation
|
|||
if (!spawn_kind_def_list.NullOrEmpty()) spawn_kind_def = spawn_kind_def_list.RandomElement();
|
||||
}
|
||||
|
||||
// If both parents are humanlike, Biotech will attempt to assign genes to the child
|
||||
// Normally not a problem, but with the hybrid system, two humanlikes might produce an animal
|
||||
// So override it and force the child to be human
|
||||
if (noAnimalsFromHumanlikes && mother.genes != null && father?.genes != null && !spawn_kind_def.race.race.Humanlike)
|
||||
spawn_kind_def = Rand.Chance(RJWPregnancySettings.humanlike_DNA_from_mother) ? motherKindDef : fatherKindDef;
|
||||
|
||||
return spawn_kind_def;
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue