Skip to content
Snippets Groups Projects
Commit 1895663a authored by Ed86's avatar Ed86
Browse files

changed(untested) egg pregnancy to birth implanter/queen faction for...

changed(untested) egg pregnancy to birth implanter/queen faction for humanlikes, insect hive for insect hivers, non faction for other animals(spiders?)
parent bb8fe394
No related branches found
No related tags found
No related merge requests found
......@@ -136,31 +136,43 @@ namespace rjw
{
//Log.Message("[RJW]Hediff_InsectEgg::BirthBaby() - Egg of " + parentDef + " in " + mother.ToString() + " birth!");
PawnKindDef spawn_kind_def = father.kindDef;
Faction spawn_faction = Faction.OfInsects;
int chance = 5;
Faction spawn_faction = null;
//random chance to make insect neutral/tamable
if (father.Faction == Faction.OfInsects)
chance = 5;
if (father.Faction != Faction.OfInsects)
chance = 10;
if (father.Faction == Faction.OfPlayer)
chance = 25;
if (queen.Faction == Faction.OfPlayer)
chance += 25;
if (queen.Faction == Faction.OfPlayer && xxx.is_human(queen))
chance += (int)(25 * queen.GetStatValue(StatDefOf.PsychicSensitivity));
if (Rand.Range(0, 100) <= chance)
spawn_faction = null;
//this is probably fucked up, idk how to filter insects from non insects/spiders etc
//humanlikes egging
if (spawn_kind_def.defaultFactionType.humanlikeFaction)
spawn_faction = queen.Faction;
//Hive Insects... probably
else if (spawn_kind_def.defaultFactionType.permanentEnemy)
if (queen.Faction == Faction.OfInsects || father.Faction == Faction.OfInsects || mother.Faction == Faction.OfInsects)
{
spawn_faction = Faction.OfInsects;
int chance = 5;
//random chance to make insect neutral/tamable
if (father.Faction == Faction.OfInsects)
chance = 5;
if (father.Faction != Faction.OfInsects)
chance = 10;
if (father.Faction == Faction.OfPlayer)
chance = 25;
if (queen.Faction == Faction.OfPlayer)
chance += 25;
if (queen.Faction == Faction.OfPlayer && xxx.is_human(queen))
chance += (int)(25 * queen.GetStatValue(StatDefOf.PsychicSensitivity));
if (Rand.Range(0, 100) <= chance)
spawn_faction = null;
//chance tame insect on birth
if (spawn_faction == null)
if (queen.Faction == Faction.OfPlayer && xxx.is_human(queen))
if (Rand.Range(0, 100) <= (int)(50 * queen.GetStatValue(StatDefOf.PsychicSensitivity)))
spawn_faction = Faction.OfPlayer;
//chance tame insect on birth
if (spawn_faction == null)
if (queen.Faction == Faction.OfPlayer && xxx.is_human(queen))
if (Rand.Range(0, 100) <= (int)(50 * queen.GetStatValue(StatDefOf.PsychicSensitivity)))
spawn_faction = Faction.OfPlayer;
}
//egging animal spawn factionless
//Log.Message("[RJW]Hediff_InsectEgg::BirthBaby() " + spawn_kind_def + " of " + spawn_faction + " in " + (int)(50 * queen.GetStatValue(StatDefOf.PsychicSensitivity)) + " chance!");
PawnGenerationRequest request = new PawnGenerationRequest(spawn_kind_def, spawn_faction, PawnGenerationContext.NonPlayer, -1, false, true, false, false, false, false, 0, false, true, true, false, false, false, false, null, null, null, null);
PawnGenerationRequest request = new PawnGenerationRequest(spawn_kind_def, spawn_faction, PawnGenerationContext.NonPlayer, -1, false, true, false, false, false, false, 0, false, true, false, false, false, false, false, null, null, 0, 0);
baby = PawnGenerator.GeneratePawn(request);
if (PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother))
......@@ -253,6 +265,8 @@ namespace rjw
if (queen == null)
{
queen = pawn;
if (((HediffDef_InsectEgg)this.def).selffertilized)
Fertilize(pawn);
}
}
......
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