2022-11-26 20:32:32 +00:00
|
|
|
|
using System;
|
2023-01-15 08:18:04 +00:00
|
|
|
|
using System.Collections.Generic;
|
2022-11-26 20:32:32 +00:00
|
|
|
|
using Verse;
|
2022-12-28 12:37:27 +00:00
|
|
|
|
using RimWorld;
|
2022-11-20 19:53:05 +00:00
|
|
|
|
namespace RJW_Genes
|
|
|
|
|
{
|
|
|
|
|
public class GeneUtility
|
|
|
|
|
{
|
2023-01-17 07:56:26 +00:00
|
|
|
|
|
2022-11-20 19:53:05 +00:00
|
|
|
|
public static float MaxEggSizeMul(Pawn pawn)
|
|
|
|
|
{
|
|
|
|
|
float MaxEggSize = 1;
|
2024-05-23 22:33:37 +00:00
|
|
|
|
|
2022-11-20 19:53:05 +00:00
|
|
|
|
return MaxEggSize;
|
|
|
|
|
}
|
2023-01-15 08:50:29 +00:00
|
|
|
|
public static List<Gene_GenitaliaResizingGene> GetGenitaliaResizingGenes(Pawn pawn)
|
2023-01-15 08:18:04 +00:00
|
|
|
|
{
|
2023-01-15 08:50:29 +00:00
|
|
|
|
var ResizingGenes = new List<Gene_GenitaliaResizingGene>();
|
2023-01-15 08:18:04 +00:00
|
|
|
|
|
|
|
|
|
// Error Handling: Issue with Pawn or Genes return empty.
|
|
|
|
|
if (pawn == null || pawn.genes == null)
|
|
|
|
|
return ResizingGenes;
|
|
|
|
|
|
2023-01-15 08:50:29 +00:00
|
|
|
|
foreach (Gene gene in pawn.genes.GenesListForReading)
|
|
|
|
|
if (gene is Gene_GenitaliaResizingGene resizing_gene)
|
|
|
|
|
ResizingGenes.Add(resizing_gene);
|
2023-01-15 08:18:04 +00:00
|
|
|
|
|
|
|
|
|
return ResizingGenes;
|
|
|
|
|
}
|
2023-01-17 07:56:26 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Unified small check for a pawn if it has a specified Gene.
|
|
|
|
|
/// Handles some errors and returns false as default.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="pawn">The pawn for which to look up a gene.</param>
|
|
|
|
|
/// <param name="genedef">The gene to look up.</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static bool HasGeneNullCheck(Pawn pawn, GeneDef genedef)
|
|
|
|
|
{
|
|
|
|
|
if (pawn.genes == null)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return pawn.genes.HasGene(genedef);
|
|
|
|
|
}
|
2023-01-20 07:40:09 +00:00
|
|
|
|
|
2023-01-17 07:56:26 +00:00
|
|
|
|
public static bool IsMechbreeder(Pawn pawn) { return HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_mechbreeder); }
|
|
|
|
|
public static bool IsYouthFountain(Pawn pawn) { return HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_youth_fountain); }
|
|
|
|
|
public static bool IsAgeDrainer(Pawn pawn) { return HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_sex_age_drain); }
|
|
|
|
|
public static bool IsElastic(Pawn pawn) { return HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_elasticity); }
|
|
|
|
|
public static bool IsCumflationImmune(Pawn pawn) { return HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_cumflation_immunity); }
|
|
|
|
|
public static bool IsGenerousDonor(Pawn pawn) { return HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_generous_donor); }
|
|
|
|
|
public static bool IsUnbreakable(Pawn pawn) { return HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_unbreakable); }
|
2023-01-22 08:59:16 +00:00
|
|
|
|
|
2022-11-20 19:53:05 +00:00
|
|
|
|
}
|
2023-03-10 07:03:07 +00:00
|
|
|
|
}
|