diff --git a/RJWSexperience/IdeologyAddon/Ideology/PreceptDef_RequirementExtended.cs b/RJWSexperience/IdeologyAddon/Ideology/PreceptDefExtension_MultipleMemesRequired.cs similarity index 79% rename from RJWSexperience/IdeologyAddon/Ideology/PreceptDef_RequirementExtended.cs rename to RJWSexperience/IdeologyAddon/Ideology/PreceptDefExtension_MultipleMemesRequired.cs index ae38abe..dd8c16d 100644 --- a/RJWSexperience/IdeologyAddon/Ideology/PreceptDef_RequirementExtended.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/PreceptDefExtension_MultipleMemesRequired.cs @@ -1,10 +1,11 @@ using RimWorld; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; +using Verse; namespace RJWSexperience.Ideology { - public class PreceptDef_RequirementExtended : PreceptDef + public class PreceptDefExtension_MultipleMemesRequired : DefModExtension { [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] public List requiredAllMemes = new List(); diff --git a/RJWSexperience/IdeologyAddon/Ideology/Rimworld_Patch.cs b/RJWSexperience/IdeologyAddon/Ideology/Rimworld_Patch.cs index ba2f1fd..9996516 100644 --- a/RJWSexperience/IdeologyAddon/Ideology/Rimworld_Patch.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Rimworld_Patch.cs @@ -48,18 +48,23 @@ namespace RJWSexperience.Ideology { public static void Postfix(PreceptDef precept, bool checkDuplicates, ref IdeoFoundation __instance, ref AcceptanceReport __result) { - if (precept is PreceptDef_RequirementExtended def && !def.requiredAllMemes.NullOrEmpty()) - { - for (int i = 0; i < def.requiredAllMemes.Count; i++) - { - if (!__instance.ideo.memes.Contains(def.requiredAllMemes[i])) - { - List report = new List(); - foreach (MemeDef meme in def.requiredAllMemes) report.Add(meme.LabelCap); + PreceptDefExtension_MultipleMemesRequired extension = precept.GetModExtension(); - __result = new AcceptanceReport("RequiresMeme".Translate() + ": " + report.ToCommaList()); - return; - } + if (extension == null) + return; + + if (extension.requiredAllMemes.NullOrEmpty()) + return; + + for (int i = 0; i < extension.requiredAllMemes.Count; i++) + { + if (!__instance.ideo.memes.Contains(extension.requiredAllMemes[i])) + { + List report = new List(); + foreach (MemeDef meme in extension.requiredAllMemes) report.Add(meme.LabelCap); + + __result = new AcceptanceReport("RequiresMeme".Translate() + ": " + report.ToCommaList()); + return; } } } diff --git a/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj index e54bb40..27d0584 100644 --- a/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj +++ b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj @@ -46,7 +46,7 @@ - + diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Ritual_sex.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Ritual_sex.xml index 002d760..f5dc20d 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Ritual_sex.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Ritual_sex.xml @@ -48,7 +48,7 @@ - + AnimalGangbangCeremony A ritualistic gangbang where animals rape a victim. @@ -65,11 +65,15 @@ true false true - -
  • Rapist
  • -
  • Zoophile
  • -
    -
    + +
  • + +
  • Rapist
  • +
  • Zoophile
  • + + +
    + AnimalGangbangCeremony_Consensual