From 2fe5d3272f52c46f3af9c1827449b776a12867d1 Mon Sep 17 00:00:00 2001 From: amevarashi Date: Sun, 3 Jul 2022 22:04:13 +0500 Subject: [PATCH] Implement HistoryEvent secondary events --- .../DefExtension_PartnerDependentOverrides.cs | 21 +--- ...tension_PartnerDependentSecondaryEvents.cs | 12 +++ .../HistoryEvents/PartnerDependentRule.cs | 22 +++++ .../Ideology/Patches/RJW_Patch_Ideo.cs | 73 +------------- .../Ideology/Patches/Rimworld_Patch.cs | 4 +- .../IdeologyAddon/Ideology/RJWUtility_Ideo.cs | 75 +++++++++++++++ .../IdeologyAddon/IdeologyAddon.csproj | 3 + RJWSexperience/IdeologyAddon/VariousDefOf.cs | 63 ++++++------ .../Defs/PreceptDefs/Precepts_Bestiality.xml | 95 +++++++++++++------ 9 files changed, 217 insertions(+), 151 deletions(-) create mode 100644 RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentSecondaryEvents.cs create mode 100644 RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/PartnerDependentRule.cs create mode 100644 RJWSexperience/IdeologyAddon/Ideology/RJWUtility_Ideo.cs diff --git a/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentOverrides.cs b/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentOverrides.cs index dd11834..dc36d58 100644 --- a/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentOverrides.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentOverrides.cs @@ -1,5 +1,4 @@ -using RimWorld; -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Verse; @@ -8,22 +7,6 @@ namespace RJWSexperience.Ideology.HistoryEvents public class DefExtension_PartnerDependentOverrides : DefModExtension { [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] - public List overrideRules = new List(); - - public class PartnerDependentOverride - { - [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] - public HistoryEventDef historyEventDef; - [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] - public PartnerFilter filter; - - public bool Applies(Pawn pawn, Pawn partner) - { - if (filter == null) - return false; - - return filter.Applies(pawn, partner); - } - } + public List overrideRules = new List(); } } diff --git a/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentSecondaryEvents.cs b/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentSecondaryEvents.cs new file mode 100644 index 0000000..42c2a76 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/DefExtension_PartnerDependentSecondaryEvents.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class DefExtension_PartnerDependentSecondaryEvents : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List generationRules = new List(); + } +} diff --git a/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/PartnerDependentRule.cs b/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/PartnerDependentRule.cs new file mode 100644 index 0000000..13bc7cc --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Ideology/HistoryEvents/PartnerDependentRule.cs @@ -0,0 +1,22 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class PartnerDependentRule + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public HistoryEventDef historyEventDef; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public PartnerFilter filter; + + public bool Applies(Pawn pawn, Pawn partner) + { + if (filter == null) + return false; + + return filter.Applies(pawn, partner); + } + } +} diff --git a/RJWSexperience/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs b/RJWSexperience/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs index c5f7eab..a199d00 100644 --- a/RJWSexperience/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs @@ -11,59 +11,6 @@ using Verse; namespace RJWSexperience.Ideology.Patches { - public static class RJWUtility_Ideo - { - public static HistoryEvent CreateTaggedEvent(this HistoryEventDef def, Pawn pawn, string tag, Pawn partner) - { - return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), tag.Named(ArgsNamesCustom.Tag), partner.Named(ArgsNamesCustom.Partner)); - } - - public static HistoryEvent CreateEvent(this HistoryEventDef def, Pawn pawn) - { - return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer)); - } - - public static HistoryEvent CreateEventWithPartner(this HistoryEventDef def, Pawn pawn, Pawn partner) - { - DefExtension_PartnerDependentOverrides overrides = def.GetModExtension(); - - if (overrides == null) - return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); - - foreach (var rule in overrides.overrideRules) - { - if (rule.Applies(pawn, partner)) - return rule.historyEventDef.CreateEventWithPartner(pawn, partner); - } - - return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); - } - - public static Faction GetFactionUsingPrecept(this Pawn baby, out Ideo ideo) - { - Faction playerfaction = Find.FactionManager.OfPlayer; - Ideo mainideo = playerfaction.ideos.PrimaryIdeo; - if (mainideo != null) - { - if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysFather)) - { - Pawn parent = baby.GetFather() ?? baby.GetMother(); - - ideo = parent.Ideo; - return parent.Faction; - } - else if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysColony)) - { - ideo = mainideo; - return playerfaction; - } - } - Pawn mother = baby.GetMother(); - ideo = mother?.Ideo; - return mother?.Faction ?? baby.Faction; - } - } - [HarmonyPatch(typeof(xxx), "is_rapist")] public static class RJW_Patch_is_rapist { @@ -128,10 +75,10 @@ namespace RJWSexperience.Ideology.Patches if (interactionEvents != null) { foreach (HistoryEventDef eventDef in interactionEvents.pawnEvents) - Find.HistoryEventsManager.RecordEvent(eventDef.CreateEventWithPartner(props.pawn, props.partner)); + eventDef.RecordEventWithPartner(props.pawn, props.partner); foreach (HistoryEventDef eventDef in interactionEvents.partnerEvents) - Find.HistoryEventsManager.RecordEvent(eventDef.CreateEventWithPartner(props.partner, props.pawn)); + eventDef.RecordEventWithPartner(props.partner, props.pawn); } } else @@ -146,22 +93,12 @@ namespace RJWSexperience.Ideology.Patches public static void AfterSexHuman(Pawn human, Pawn partner, bool rape) { - Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosSex.CreateEventWithPartner(human, partner)); - Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosSex.CreateEventWithPartner(partner, human)); + VariousDefOf.RSI_NonIncestuosSex.RecordEventWithPartner(human, partner); + VariousDefOf.RSI_NonIncestuosSex.RecordEventWithPartner(partner, human); if (partner.IsAnimal()) { - if (human.Ideo?.IsVeneratedAnimal(partner) ?? false) - Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithVeneratedAnimal.CreateEventWithPartner(human, partner)); - else - Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithNonVeneratedAnimal.CreateEventWithPartner(human, partner)); - - if (human.Ideo != null && human.relations?.DirectRelationExists(PawnRelationDefOf.Bond, partner) == true) - Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithBondedAnimal.CreateEventWithPartner(human, partner)); - else - Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithNonBondAnimal.CreateEventWithPartner(human, partner)); - - Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithAnimal.CreateEventWithPartner(human, partner)); + VariousDefOf.RSI_SexWithAnimal.RecordEventWithPartner(human, partner); } else if (xxx.is_human(partner)) { diff --git a/RJWSexperience/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs b/RJWSexperience/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs index c6799db..b3741c8 100644 --- a/RJWSexperience/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs @@ -12,8 +12,8 @@ namespace RJWSexperience.Ideology.Patches { public static void Postfix(Pawn firstPawn, Pawn secondPawn) { - Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosMarriage.CreateEventWithPartner(firstPawn, secondPawn)); - Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosMarriage.CreateEventWithPartner(secondPawn, firstPawn)); + VariousDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(firstPawn, secondPawn); + VariousDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(secondPawn, firstPawn); } } diff --git a/RJWSexperience/IdeologyAddon/Ideology/RJWUtility_Ideo.cs b/RJWSexperience/IdeologyAddon/Ideology/RJWUtility_Ideo.cs new file mode 100644 index 0000000..7b08b09 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Ideology/RJWUtility_Ideo.cs @@ -0,0 +1,75 @@ +using RimWorld; +using RJWSexperience.Ideology.HistoryEvents; +using Verse; + +namespace RJWSexperience.Ideology +{ + public static class RJWUtility_Ideo + { + public static void RecordEventWithPartner(this HistoryEventDef def, Pawn pawn, Pawn partner) + { + DefExtension_PartnerDependentSecondaryEvents secondaryEvents = def.GetModExtension(); + + if (secondaryEvents != null) + { + foreach (PartnerDependentRule rule in secondaryEvents.generationRules) + { + if (rule.Applies(pawn, partner)) + rule.historyEventDef.RecordEventWithPartner(pawn, partner); + } + } + + Find.HistoryEventsManager.RecordEvent(def.CreateEventWithPartner(pawn, partner)); + } + + public static HistoryEvent CreateTaggedEvent(this HistoryEventDef def, Pawn pawn, string tag, Pawn partner) + { + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), tag.Named(ArgsNamesCustom.Tag), partner.Named(ArgsNamesCustom.Partner)); + } + + public static HistoryEvent CreateEvent(this HistoryEventDef def, Pawn pawn) + { + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer)); + } + + public static HistoryEvent CreateEventWithPartner(this HistoryEventDef def, Pawn pawn, Pawn partner) + { + DefExtension_PartnerDependentOverrides overrides = def.GetModExtension(); + + if (overrides == null) + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); + + foreach (PartnerDependentRule rule in overrides.overrideRules) + { + if (rule.Applies(pawn, partner)) + return rule.historyEventDef.CreateEventWithPartner(pawn, partner); + } + + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); + } + + public static Faction GetFactionUsingPrecept(this Pawn baby, out Ideo ideo) + { + Faction playerfaction = Find.FactionManager.OfPlayer; + Ideo mainideo = playerfaction.ideos.PrimaryIdeo; + if (mainideo != null) + { + if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysFather)) + { + Pawn parent = baby.GetFather() ?? baby.GetMother(); + + ideo = parent.Ideo; + return parent.Faction; + } + else if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysColony)) + { + ideo = mainideo; + return playerfaction; + } + } + Pawn mother = baby.GetMother(); + ideo = mother?.Ideo; + return mother?.Faction ?? baby.Faction; + } + } +} diff --git a/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj index 31e264f..9e1bd81 100644 --- a/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj +++ b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj @@ -43,7 +43,9 @@ + + @@ -51,6 +53,7 @@ + diff --git a/RJWSexperience/IdeologyAddon/VariousDefOf.cs b/RJWSexperience/IdeologyAddon/VariousDefOf.cs index 35cd518..1b3c138 100644 --- a/RJWSexperience/IdeologyAddon/VariousDefOf.cs +++ b/RJWSexperience/IdeologyAddon/VariousDefOf.cs @@ -3,41 +3,38 @@ using Verse; namespace RJWSexperience.Ideology { + [DefOf] public static class VariousDefOf { - public static readonly JobDef RapeVictim = DefDatabase.GetNamed("RapeVictim"); - public static readonly JobDef Gangbang = DefDatabase.GetNamed("Gangbang"); - public static readonly JobDef GettinGangbang = DefDatabase.GetNamed("GettinGangbang"); - public static readonly JobDef DrugSex = DefDatabase.GetNamed("DrugSex"); - public static readonly JobDef GettinDrugSex = DefDatabase.GetNamed("GettinDrugSex"); - public static readonly JobDef DrugMasturbate = DefDatabase.GetNamed("DrugMasturbate"); + public static readonly JobDef RapeVictim; + public static readonly JobDef Gangbang; + public static readonly JobDef GettinGangbang; + public static readonly JobDef DrugSex; + public static readonly JobDef GettinDrugSex; + public static readonly JobDef DrugMasturbate; - [MayRequireIdeology] public static readonly MemeDef Zoophile = DefDatabase.GetNamed("Zoophile"); - [MayRequireIdeology] public static readonly MemeDef Rapist = DefDatabase.GetNamed("Rapist"); - [MayRequireIdeology] public static readonly MemeDef Necrophile = DefDatabase.GetNamed("Necrophile"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithAnimal = DefDatabase.GetNamed("SexWithAnimal"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithVeneratedAnimal = DefDatabase.GetNamed("SexWithVeneratedAnimal"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithNonVeneratedAnimal = DefDatabase.GetNamed("SexWithNonVeneratedAnimal"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithBondedAnimal = DefDatabase.GetNamed("SexWithBondedAnimal"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithNonBondAnimal = DefDatabase.GetNamed("SexWithNonBondAnimal"); - [MayRequireIdeology] public static readonly HistoryEventDef Raped = DefDatabase.GetNamed("Raped"); - [MayRequireIdeology] public static readonly HistoryEventDef RapedSlave = DefDatabase.GetNamed("RapedSlave"); - [MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner = DefDatabase.GetNamed("RapedPrisoner"); - [MayRequireIdeology] public static readonly HistoryEventDef WasRaped = DefDatabase.GetNamed("WasRaped"); - [MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave = DefDatabase.GetNamed("WasRapedSlave"); - [MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner = DefDatabase.GetNamed("WasRapedPrisoner"); - [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage = DefDatabase.GetNamed("RSI_NonIncestuosMarriage"); - [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex = DefDatabase.GetNamed("RSI_NonIncestuosSex"); - [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenF = DefDatabase.GetNamed("Virgin_TakenF"); - [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenM = DefDatabase.GetNamed("Virgin_TakenM"); - [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookF = DefDatabase.GetNamed("Virgin_TookF"); - [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookM = DefDatabase.GetNamed("Virgin_TookM"); - [MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated = DefDatabase.GetNamed("Bestiality_OnlyVenerated"); - [MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly = DefDatabase.GetNamed("Incestuos_IncestOnly"); - [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly = DefDatabase.GetNamed("Incestuos_Disapproved_CloseOnly"); - [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather = DefDatabase.GetNamed("BabyFaction_AlwaysFather"); - [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony = DefDatabase.GetNamed("BabyFaction_AlwaysColony"); - [MayRequireIdeology] public static readonly PreceptDef Submissive_Male = DefDatabase.GetNamed("Submissive_Male"); - [MayRequireIdeology] public static readonly PreceptDef Submissive_Female = DefDatabase.GetNamed("Submissive_Female"); + [MayRequireIdeology] public static readonly MemeDef Zoophile; + [MayRequireIdeology] public static readonly MemeDef Rapist; + [MayRequireIdeology] public static readonly MemeDef Necrophile; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithAnimal; + [MayRequireIdeology] public static readonly HistoryEventDef Raped; + [MayRequireIdeology] public static readonly HistoryEventDef RapedSlave; + [MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner; + [MayRequireIdeology] public static readonly HistoryEventDef WasRaped; + [MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave; + [MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex; + [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenF; + [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenM; + [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookF; + [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookM; + [MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated; + [MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly; + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly; + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather; + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony; + [MayRequireIdeology] public static readonly PreceptDef Submissive_Male; + [MayRequireIdeology] public static readonly PreceptDef Submissive_Female; } } diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml index 4f9afeb..cad0da6 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml @@ -9,27 +9,64 @@ - SexWithAnimal + RSI_SexWithAnimal + +
  • + +
  • + + true + + RSI_SexWithVeneratedAnimal +
  • +
  • + + true + false + + RSI_SexWithNonVeneratedAnimal +
  • +
  • + + true + +
  • Bond
  • + + + RSI_SexWithBondedAnimal + +
  • + + true + +
  • Bond
  • + + + RSI_SexWithNonBondAnimal + + + +
    - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal - SexWithNonVeneratedAnimal + RSI_SexWithNonVeneratedAnimal - SexWithBondedAnimal + RSI_SexWithBondedAnimal - SexWithNonBondAnimal + RSI_SexWithNonBondAnimal @@ -52,21 +89,21 @@
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Abhorrent
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Know_Abhorrent BeenRaped true
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Abhorrent
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Know_Abhorrent BeenRaped true @@ -106,21 +143,21 @@
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Horrible
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Know_Horrible BeenRaped true
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Horrible
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Know_Horrible BeenRaped true @@ -160,21 +197,21 @@
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Disapproved
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Know_Disapproved BeenRaped true
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Disapproved
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Know_Disapproved BeenRaped true @@ -227,23 +264,23 @@
  • - SexWithNonVeneratedAnimal + RSI_SexWithNonVeneratedAnimal Bestiality_Nonvenerated_Disapproved true
  • - SexWithNonVeneratedAnimal + RSI_SexWithNonVeneratedAnimal Bestiality_Nonvenerated_Know_Disapproved Someone sex with any animal true
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Honorable true
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Know_Honorable Someone sex with animal true @@ -290,23 +327,23 @@
  • - SexWithNonBondAnimal + RSI_SexWithNonBondAnimal Bestiality_NonBonded_Disapproved true
  • - SexWithNonBondAnimal + RSI_SexWithNonBondAnimal Bestiality_NonBonded_Know_Disapproved Someone sex with any animal true
  • - SexWithBondedAnimal + RSI_SexWithBondedAnimal Bestiality_Bond_Approved true
  • - SexWithBondedAnimal + RSI_SexWithBondedAnimal Bestiality_Bond_Approved_Know Someone sex with non bonded animal true @@ -357,23 +394,23 @@
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Honorable true
  • - SexWithAnimal + RSI_SexWithAnimal Bestiality_Know_Honorable Someone sex with animal true
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Honorable true
  • - SexWithVeneratedAnimal + RSI_SexWithVeneratedAnimal Bestiality_Know_Honorable Someone sex with animal true