From e62dcd23eeae2bfe8c3a14702f9badc572357e28 Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Thu, 27 Apr 2023 20:28:30 +0200 Subject: [PATCH] Added a fervent Ovipositor Gene, making much more eggs --- Common/Defs/GeneDefs/GeneDefs_Breeding.xml | 27 +++++---- Common/Defs/GeneDefs/GeneDefs_Hive.xml | 58 +++++++++++-------- .../Hive/Genes/Gene_FerventOvipositor.cs | 42 ++++++++++++++ Source/Rjw-Genes.csproj | 1 + 4 files changed, 91 insertions(+), 37 deletions(-) create mode 100644 Source/Genes/Hive/Genes/Gene_FerventOvipositor.cs diff --git a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml index 7482459..1627e3a 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml @@ -13,19 +13,18 @@ -1 - - - rjw_genes_zoophile - - rjw_genes_breeding - Xenotypes with this Gene are Zoophile. - Genes/Icons/Zoophile - 54 - -
  • - Zoophile -
  • -
    -
    + + rjw_genes_zoophile + + rjw_genes_breeding + Xenotypes with this Gene are Zoophile. + Genes/Icons/Zoophile + 54 + +
  • + Zoophile +
  • +
    +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Hive.xml b/Common/Defs/GeneDefs/GeneDefs_Hive.xml index 84b15ff..33ec3a2 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Hive.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Hive.xml @@ -166,28 +166,40 @@ -1 - - - rjw_genes_insectincubator - - RJW_Genes.Gene_InsectIncubator - Pawns with this gene are able to host more insect eggs, hatch them faster and fertilize any inserted egg. - Genes/Icons/More_Egg_Space - 52 - rjw_genes_hive - 1 - -1 - - - - rjw_genes_insectbreeder - - Pawns with this gene are able to fertilize eggs with any fertile penis. - World/WorldObjects/Expanding/Insects - 53 - rjw_genes_hive - 1 - -1 - + + rjw_genes_insectincubator + + RJW_Genes.Gene_InsectIncubator + Pawns with this gene are able to hold more insect eggs. + Genes/Icons/More_Egg_Space + 52 + rjw_genes_hive + 1 + -1 + + + + rjw_genes_insectbreeder + + Pawns with this gene are able to fertilize eggs with any fertile penis. + World/WorldObjects/Expanding/Insects + 53 + rjw_genes_hive + 1 + -1 + + + + rjw_genes_fervent_ovipositor + + RJW_Genes.Gene_FerventOvipositor + Pawns that have a female (egg producing) ovipositor produce eggs at drastically increased speed. + World/WorldObjects/Expanding/Insects + 55 + rjw_genes_hive + 1 + -1 + + \ No newline at end of file diff --git a/Source/Genes/Hive/Genes/Gene_FerventOvipositor.cs b/Source/Genes/Hive/Genes/Gene_FerventOvipositor.cs new file mode 100644 index 0000000..353148a --- /dev/null +++ b/Source/Genes/Hive/Genes/Gene_FerventOvipositor.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Verse; +using rjw; + +namespace RJW_Genes +{ + + /// + /// Manages the rjw_genes_fervent_ovipositor to grow eggs much faster. + /// + /// TODO: Move the Multiplier into XML + /// TODO: This gene only works after the first egg, the first egg for two new pawns spawns at the same time (strange). + /// + public class Gene_FerventOvipositor : Gene + { + + const int MULTIPLIER = 3; // Tick 3 times as much, making a pawn with this Gene Produce Eggs 4 times as fast as the normal. + + public override void Tick() + { + base.Tick(); + + if (pawn == null) return; + + Hediff_PartBaseNatural OvipositorF = (Hediff_PartBaseNatural) pawn.health.hediffSet.GetFirstHediffOfDef(rjw.Genital_Helper.ovipositorF); + + if (OvipositorF == null) return; + + OvipositorF.nextEggTick = Math.Max(OvipositorF.nextEggTick - MULTIPLIER, -1); + + // DevNote: I first had a for-loop calling OviPositorF.tick(), but I fear that would be a performance sink. + // Also, it would double other aspects as well, such as bleeding out through your insect-PP or dropping out the eggs. + } + + + } +} diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index f6e2479..30baf90 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -44,6 +44,7 @@ +