From 38f9e43e42279e6fcd0564dd6edd5d51547cc6f2 Mon Sep 17 00:00:00 2001 From: Jaaldabaoth Date: Thu, 30 May 2024 22:01:51 +0200 Subject: [PATCH] quirk framework --- Common/Assemblies/Rjw-Genes.dll | Bin 139264 -> 139776 bytes Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml | 4 +-- Source/Genes/QuirkPatching/QuirkPatcher.cs | 39 ++++++++++++++------- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 49d7a8ff3d1acabfb61d0bef8f8a418d2537d2f8..2dacea10236725f7d16f48677f616c9298c6f16b 100644 GIT binary patch delta 24576 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 MHF39SO_bvQ08&5yd;kCd diff --git a/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml b/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml index 1c0ae49..cfeab86 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml @@ -49,7 +49,7 @@ Genes/Icons/RJW_Genes_Xenogene_Background
  • - DemonLover + DemonLoverQuirk
  • @@ -107,7 +107,7 @@ Genes/Icons/RJW_Genes_Xenogene_Background
  • - DemonLover + DemonLoverQuirk
  • diff --git a/Source/Genes/QuirkPatching/QuirkPatcher.cs b/Source/Genes/QuirkPatching/QuirkPatcher.cs index bb367ed..6630612 100644 --- a/Source/Genes/QuirkPatching/QuirkPatcher.cs +++ b/Source/Genes/QuirkPatching/QuirkPatcher.cs @@ -3,34 +3,49 @@ using RimWorld; using rjw; using System.Collections.Generic; using rjw.Modules.Quirks; +using System; namespace RJW_Genes { public class QuirkPatcher { public static void CountSatisfiedPostfix(ref int __result, SexProps props) - {/* + { Pawn pawn = props.pawn; Pawn partner = props.partner; - int count= 0; - List listquirk= new List(); - Quirk q = null; - foreach(Gene g in partner.genes.GenesListForReading) { + int count = 0; + List listquirk = new List(); + string s; + foreach (Gene g in partner.genes.GenesListForReading) + { if (partner.genes.HasActiveGene(g.def)) { - g.def?.GetModExtension().Satisfiedquirk; - listquirk.Add(g.def?.GetModExtension().Satisfiedquirk); + s = null; + s = g.def?.GetModExtension()?.Satisfiedquirk; + if (!string.IsNullOrEmpty(s)) + { + listquirk.Add(s); + } } } - - foreach (Quirk q in listquirk) + + foreach (Quirk q in Quirk.All) { - if (pawn.Has(q)){ - count++; + if (pawn.Has(q)) + { + + foreach (string s2 in listquirk) + { + if (!string.IsNullOrEmpty(s2)) + if (q.LocaliztionKey==s2) + { + count++; + } + } } } __result = __result + count; - return;*/ + return; } }