quirk framework

This commit is contained in:
Jaaldabaoth 2024-05-30 22:01:51 +02:00
parent a9a49a4214
commit 38f9e43e42
3 changed files with 29 additions and 14 deletions

Binary file not shown.

View file

@ -49,7 +49,7 @@
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes> <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
</li> </li>
<li Class="RJW_Genes.QirkExtension"> <li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>DemonLover</Satisfiedquirk> <Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
</li> </li>
</modExtensions> </modExtensions>
</GeneDef> </GeneDef>
@ -107,7 +107,7 @@
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes> <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
</li> </li>
<li Class="RJW_Genes.QirkExtension"> <li Class="RJW_Genes.QirkExtension">
<Satisfiedquirk>DemonLover</Satisfiedquirk> <Satisfiedquirk>DemonLoverQuirk</Satisfiedquirk>
</li> </li>
</modExtensions> </modExtensions>
</GeneDef> </GeneDef>

View file

@ -3,34 +3,49 @@ using RimWorld;
using rjw; using rjw;
using System.Collections.Generic; using System.Collections.Generic;
using rjw.Modules.Quirks; using rjw.Modules.Quirks;
using System;
namespace RJW_Genes namespace RJW_Genes
{ {
public class QuirkPatcher public class QuirkPatcher
{ {
public static void CountSatisfiedPostfix(ref int __result, SexProps props) public static void CountSatisfiedPostfix(ref int __result, SexProps props)
{/* {
Pawn pawn = props.pawn; Pawn pawn = props.pawn;
Pawn partner = props.partner; Pawn partner = props.partner;
int count = 0; int count = 0;
List<Quirk> listquirk= new List<Quirk>(); List<string> listquirk = new List<string>();
Quirk q = null; string s;
foreach(Gene g in partner.genes.GenesListForReading) { foreach (Gene g in partner.genes.GenesListForReading)
{
if (partner.genes.HasActiveGene(g.def)) if (partner.genes.HasActiveGene(g.def))
{ {
g.def?.GetModExtension<QirkExtension>().Satisfiedquirk; s = null;
listquirk.Add(g.def?.GetModExtension<QirkExtension>().Satisfiedquirk); s = g.def?.GetModExtension<QirkExtension>()?.Satisfiedquirk;
if (!string.IsNullOrEmpty(s))
{
listquirk.Add(s);
}
} }
} }
foreach (Quirk q in listquirk) foreach (Quirk q in Quirk.All)
{
if (pawn.Has(q))
{
foreach (string s2 in listquirk)
{
if (!string.IsNullOrEmpty(s2))
if (q.LocaliztionKey==s2)
{ {
if (pawn.Has(q)){
count++; count++;
} }
} }
}
}
__result = __result + count; __result = __result + count;
return;*/ return;
} }
} }