Skip to content
Snippets Groups Projects
Commit 747fe1d9 authored by Ed86's avatar Ed86
Browse files

rjw pregnancies:

children are now sexualized at birth
there is 25% per futa parent to birth futa child
cross-breeding:
there is a 10% chance child will inherit mother genitals
there is a 10% chance child will inherit father genitals
*should probably move above into genital_helper in next version
parent 1290d208
No related branches found
No related tags found
No related merge requests found
......@@ -120,6 +120,34 @@ namespace rjw
pawn.health.RemoveHediff(this);
}
public Pawn partstospawn(Pawn baby, Pawn mother, Pawn father)
{
//decide what parts to inherit
//default use own parts
var partstospawn = baby;
//spawn with mother parts
if (Rand.Range(0, 100) <= 10)
partstospawn = mother;
//spawn with father parts
if (Rand.Range(0, 100) <= 10)
partstospawn = father;
//Log.Message("[RJW] Pregnancy partstospawn " + partstospawn);
return partstospawn;
}
public bool spawnfutachild(Pawn baby, Pawn mother, Pawn father)
{
int futachance = 0;
if (Genital_Helper.is_futa(mother))
futachance = futachance + 25;
if (Genital_Helper.is_futa(father))
futachance = futachance + 25;
//Log.Message("[RJW] Pregnancy spawnfutachild " + futachance);
return (Rand.Range(0, 100) <= futachance);
}
public override void Tick()
{
this.ageTicks++;
......
......@@ -81,6 +81,29 @@ namespace rjw
foreach (Pawn baby in babies)
{
PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
//spawn futa
bool isfuta = spawnfutachild(baby, mother, father);
Genital_Helper.add_anus(baby, partstospawn(baby, mother, father));
if (baby.gender == Gender.Female || isfuta)
Genital_Helper.add_breasts(baby, partstospawn(baby, mother, father), Gender.Female);
if (isfuta)
{
Genital_Helper.add_genitals(baby, partstospawn(baby, mother, father), Gender.Female);
Genital_Helper.add_genitals(baby, partstospawn(baby, mother, father), Gender.Male);
}
else
Genital_Helper.add_genitals(baby, partstospawn(baby, mother, father));
var sex_need = pawn.needs.TryGetNeed<Need_Sex>();
if (pawn.Faction != null && !(pawn.Faction?.IsPlayer ?? false) && sex_need != null)
{
sex_need.CurLevel = 1.0f;
}
baby.relations.AddDirectRelation(relation_birthgiver, mother);
mother.relations.AddDirectRelation(relation_spawn, baby);
if (father != null)
......
......@@ -33,6 +33,29 @@ namespace rjw
foreach (Pawn baby in babies)
{
PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
//spawn futa
bool isfuta = spawnfutachild(baby, mother, father);
Genital_Helper.add_anus(baby, partstospawn(baby, mother, father));
if (baby.gender == Gender.Female || isfuta)
Genital_Helper.add_breasts(baby, partstospawn(baby, mother, father), Gender.Female);
if (isfuta)
{
Genital_Helper.add_genitals(baby, partstospawn(baby, mother, father), Gender.Female);
Genital_Helper.add_genitals(baby, partstospawn(baby, mother, father), Gender.Male);
}
else
Genital_Helper.add_genitals(baby, partstospawn(baby, mother, father));
var sex_need = pawn.needs.TryGetNeed<Need_Sex>();
if (pawn.Faction != null && !(pawn.Faction?.IsPlayer ?? false) && sex_need != null)
{
sex_need.CurLevel = 1.0f;
}
baby.relations.AddDirectRelation(PawnRelationDefOf.Parent, mother);
if (father != null)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment