mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
120 lines
No EOL
3.2 KiB
C#
120 lines
No EOL
3.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Verse;
|
|
|
|
namespace RJW_Genes
|
|
{
|
|
public class GeneUtility
|
|
{
|
|
public static bool IsMechbreeder(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_mechbreeder);
|
|
}
|
|
|
|
public static bool IsInsectIncubator(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_insectincubator);
|
|
}
|
|
|
|
public static bool IsYouthFountain(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_youth_fountain);
|
|
}
|
|
|
|
public static bool IsAgeDrainer(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_sex_age_drain);
|
|
}
|
|
|
|
public static bool IsInsectBreeder(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_insectbreeder);
|
|
}
|
|
|
|
public static float MaxEggSizeMul(Pawn pawn)
|
|
{
|
|
float MaxEggSize = 1;
|
|
if (IsInsectIncubator(pawn))
|
|
{
|
|
MaxEggSize *= 2;
|
|
}
|
|
return MaxEggSize;
|
|
}
|
|
|
|
internal static bool IsElastic(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_elasticity);
|
|
}
|
|
|
|
public static bool IsCumflationImmune(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_cumflation_immunity);
|
|
}
|
|
public static bool IsGenerousDonor(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_generous_donor);
|
|
}
|
|
|
|
public static bool IsUnbreakable(Pawn pawn)
|
|
{
|
|
if (pawn.genes == null)
|
|
{
|
|
return false;
|
|
}
|
|
return pawn.genes.HasGene(GeneDefOf.rjw_genes_unbreakable);
|
|
}
|
|
|
|
|
|
public static bool HasGenitaliaResizingGenes(Pawn pawn)
|
|
{
|
|
return !GetGenitaliaResizingGenes(pawn).NullOrEmpty();
|
|
}
|
|
|
|
public static List<Gene_GenitaliaResizingGene> GetGenitaliaResizingGenes(Pawn pawn)
|
|
{
|
|
var ResizingGenes = new List<Gene_GenitaliaResizingGene>();
|
|
|
|
// Error Handling: Issue with Pawn or Genes return empty.
|
|
if (pawn == null || pawn.genes == null)
|
|
return ResizingGenes;
|
|
|
|
foreach (Gene gene in pawn.genes.GenesListForReading)
|
|
if (gene is Gene_GenitaliaResizingGene resizing_gene)
|
|
ResizingGenes.Add(resizing_gene);
|
|
|
|
return ResizingGenes;
|
|
}
|
|
}
|
|
} |