mirror of
				https://github.com/amevarashi/RJW-Sexperience.git
				synced 2024-08-14 23:54:08 +00:00 
			
		
		
		
	Implement HistoryEvent secondary events
This commit is contained in:
		
							parent
							
								
									6a1978414d
								
							
						
					
					
						commit
						2fe5d3272f
					
				
					 9 changed files with 217 additions and 151 deletions
				
			
		| 
						 | 
					@ -1,5 +1,4 @@
 | 
				
			||||||
using RimWorld;
 | 
					using System.Collections.Generic;
 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
using System.Diagnostics.CodeAnalysis;
 | 
					using System.Diagnostics.CodeAnalysis;
 | 
				
			||||||
using Verse;
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,22 +7,6 @@ namespace RJWSexperience.Ideology.HistoryEvents
 | 
				
			||||||
	public class DefExtension_PartnerDependentOverrides : DefModExtension
 | 
						public class DefExtension_PartnerDependentOverrides : DefModExtension
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
							[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
				
			||||||
		public List<PartnerDependentOverride> overrideRules = new List<PartnerDependentOverride>();
 | 
							public List<PartnerDependentRule> overrideRules = new List<PartnerDependentRule>();
 | 
				
			||||||
 | 
					 | 
				
			||||||
		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);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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<PartnerDependentRule> generationRules = new List<PartnerDependentRule>();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -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);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -11,59 +11,6 @@ using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace RJWSexperience.Ideology.Patches
 | 
					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<DefExtension_PartnerDependentOverrides>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			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")]
 | 
						[HarmonyPatch(typeof(xxx), "is_rapist")]
 | 
				
			||||||
	public static class RJW_Patch_is_rapist
 | 
						public static class RJW_Patch_is_rapist
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					@ -128,10 +75,10 @@ namespace RJWSexperience.Ideology.Patches
 | 
				
			||||||
				if (interactionEvents != null)
 | 
									if (interactionEvents != null)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					foreach (HistoryEventDef eventDef in interactionEvents.pawnEvents)
 | 
										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)
 | 
										foreach (HistoryEventDef eventDef in interactionEvents.partnerEvents)
 | 
				
			||||||
						Find.HistoryEventsManager.RecordEvent(eventDef.CreateEventWithPartner(props.partner, props.pawn));
 | 
											eventDef.RecordEventWithPartner(props.partner, props.pawn);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
| 
						 | 
					@ -146,22 +93,12 @@ namespace RJWSexperience.Ideology.Patches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		public static void AfterSexHuman(Pawn human, Pawn partner, bool rape)
 | 
							public static void AfterSexHuman(Pawn human, Pawn partner, bool rape)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosSex.CreateEventWithPartner(human, partner));
 | 
								VariousDefOf.RSI_NonIncestuosSex.RecordEventWithPartner(human, partner);
 | 
				
			||||||
			Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosSex.CreateEventWithPartner(partner, human));
 | 
								VariousDefOf.RSI_NonIncestuosSex.RecordEventWithPartner(partner, human);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (partner.IsAnimal())
 | 
								if (partner.IsAnimal())
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if (human.Ideo?.IsVeneratedAnimal(partner) ?? false)
 | 
									VariousDefOf.RSI_SexWithAnimal.RecordEventWithPartner(human, partner);
 | 
				
			||||||
					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));
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else if (xxx.is_human(partner))
 | 
								else if (xxx.is_human(partner))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,8 +12,8 @@ namespace RJWSexperience.Ideology.Patches
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		public static void Postfix(Pawn firstPawn, Pawn secondPawn)
 | 
							public static void Postfix(Pawn firstPawn, Pawn secondPawn)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosMarriage.CreateEventWithPartner(firstPawn, secondPawn));
 | 
								VariousDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(firstPawn, secondPawn);
 | 
				
			||||||
			Find.HistoryEventsManager.RecordEvent(VariousDefOf.RSI_NonIncestuosMarriage.CreateEventWithPartner(secondPawn, firstPawn));
 | 
								VariousDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(secondPawn, firstPawn);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										75
									
								
								RJWSexperience/IdeologyAddon/Ideology/RJWUtility_Ideo.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								RJWSexperience/IdeologyAddon/Ideology/RJWUtility_Ideo.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -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<DefExtension_PartnerDependentSecondaryEvents>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								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<DefExtension_PartnerDependentOverrides>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								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;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -43,7 +43,9 @@
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <Compile Include="GlobalSuppressions.cs" />
 | 
					    <Compile Include="GlobalSuppressions.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Ideology\HistoryEvents\DefExtension_PartnerDependentSecondaryEvents.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\HistoryEvents\DefExtension_PartnerDependentOverrides.cs" />
 | 
					    <Compile Include="Ideology\HistoryEvents\DefExtension_PartnerDependentOverrides.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Ideology\HistoryEvents\PartnerDependentRule.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\InteractionDefExtension_HistoryEvents.cs" />
 | 
					    <Compile Include="Ideology\InteractionDefExtension_HistoryEvents.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\GoodwillSituationWorker_MemeCompatibility.cs" />
 | 
					    <Compile Include="Ideology\GoodwillSituationWorker_MemeCompatibility.cs" />
 | 
				
			||||||
    <Compile Include="Harmony.cs" />
 | 
					    <Compile Include="Harmony.cs" />
 | 
				
			||||||
| 
						 | 
					@ -51,6 +53,7 @@
 | 
				
			||||||
    <Compile Include="Ideology\HistoryEvents\ArgsNamesCustom.cs" />
 | 
					    <Compile Include="Ideology\HistoryEvents\ArgsNamesCustom.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\IssueUtility.cs" />
 | 
					    <Compile Include="Ideology\IssueUtility.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\Keyed.cs" />
 | 
					    <Compile Include="Ideology\Keyed.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Ideology\RJWUtility_Ideo.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\Patches\RJW_Patch_ChancePerHour.cs" />
 | 
					    <Compile Include="Ideology\Patches\RJW_Patch_ChancePerHour.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\Precepts\DefExtension_ModifyMtb.cs" />
 | 
					    <Compile Include="Ideology\Precepts\DefExtension_ModifyMtb.cs" />
 | 
				
			||||||
    <Compile Include="Ideology\Precepts\DefExtension_ModifyFappinMtb.cs" />
 | 
					    <Compile Include="Ideology\Precepts\DefExtension_ModifyFappinMtb.cs" />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,41 +3,38 @@ using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace RJWSexperience.Ideology
 | 
					namespace RJWSexperience.Ideology
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						[DefOf]
 | 
				
			||||||
	public static class VariousDefOf
 | 
						public static class VariousDefOf
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		public static readonly JobDef RapeVictim = DefDatabase<JobDef>.GetNamed("RapeVictim");
 | 
							public static readonly JobDef RapeVictim;
 | 
				
			||||||
		public static readonly JobDef Gangbang = DefDatabase<JobDef>.GetNamed("Gangbang");
 | 
							public static readonly JobDef Gangbang;
 | 
				
			||||||
		public static readonly JobDef GettinGangbang = DefDatabase<JobDef>.GetNamed("GettinGangbang");
 | 
							public static readonly JobDef GettinGangbang;
 | 
				
			||||||
		public static readonly JobDef DrugSex = DefDatabase<JobDef>.GetNamed("DrugSex");
 | 
							public static readonly JobDef DrugSex;
 | 
				
			||||||
		public static readonly JobDef GettinDrugSex = DefDatabase<JobDef>.GetNamed("GettinDrugSex");
 | 
							public static readonly JobDef GettinDrugSex;
 | 
				
			||||||
		public static readonly JobDef DrugMasturbate = DefDatabase<JobDef>.GetNamed("DrugMasturbate");
 | 
							public static readonly JobDef DrugMasturbate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		[MayRequireIdeology] public static readonly MemeDef Zoophile = DefDatabase<MemeDef>.GetNamed("Zoophile");
 | 
							[MayRequireIdeology] public static readonly MemeDef Zoophile;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly MemeDef Rapist = DefDatabase<MemeDef>.GetNamed("Rapist");
 | 
							[MayRequireIdeology] public static readonly MemeDef Rapist;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly MemeDef Necrophile = DefDatabase<MemeDef>.GetNamed("Necrophile");
 | 
							[MayRequireIdeology] public static readonly MemeDef Necrophile;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef SexWithAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithAnimal");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithAnimal;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef SexWithVeneratedAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithVeneratedAnimal");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef Raped;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef SexWithNonVeneratedAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithNonVeneratedAnimal");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef RapedSlave;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef SexWithBondedAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithBondedAnimal");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef SexWithNonBondAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithNonBondAnimal");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef WasRaped;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef Raped = DefDatabase<HistoryEventDef>.GetNamed("Raped");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef RapedSlave = DefDatabase<HistoryEventDef>.GetNamed("RapedSlave");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner = DefDatabase<HistoryEventDef>.GetNamed("RapedPrisoner");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef WasRaped = DefDatabase<HistoryEventDef>.GetNamed("WasRaped");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave = DefDatabase<HistoryEventDef>.GetNamed("WasRapedSlave");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenF;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner = DefDatabase<HistoryEventDef>.GetNamed("WasRapedPrisoner");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenM;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage = DefDatabase<HistoryEventDef>.GetNamed("RSI_NonIncestuosMarriage");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookF;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex = DefDatabase<HistoryEventDef>.GetNamed("RSI_NonIncestuosSex");
 | 
							[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookM;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenF = DefDatabase<HistoryEventDef>.GetNamed("Virgin_TakenF");
 | 
							[MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenM = DefDatabase<HistoryEventDef>.GetNamed("Virgin_TakenM");
 | 
							[MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookF = DefDatabase<HistoryEventDef>.GetNamed("Virgin_TookF");
 | 
							[MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookM = DefDatabase<HistoryEventDef>.GetNamed("Virgin_TookM");
 | 
							[MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated = DefDatabase<PreceptDef>.GetNamed("Bestiality_OnlyVenerated");
 | 
							[MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly = DefDatabase<PreceptDef>.GetNamed("Incestuos_IncestOnly");
 | 
							[MayRequireIdeology] public static readonly PreceptDef Submissive_Male;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly = DefDatabase<PreceptDef>.GetNamed("Incestuos_Disapproved_CloseOnly");
 | 
							[MayRequireIdeology] public static readonly PreceptDef Submissive_Female;
 | 
				
			||||||
		[MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather = DefDatabase<PreceptDef>.GetNamed("BabyFaction_AlwaysFather");
 | 
					 | 
				
			||||||
		[MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony = DefDatabase<PreceptDef>.GetNamed("BabyFaction_AlwaysColony");
 | 
					 | 
				
			||||||
		[MayRequireIdeology] public static readonly PreceptDef Submissive_Male = DefDatabase<PreceptDef>.GetNamed("Submissive_Male");
 | 
					 | 
				
			||||||
		[MayRequireIdeology] public static readonly PreceptDef Submissive_Female = DefDatabase<PreceptDef>.GetNamed("Submissive_Female");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,27 +9,64 @@
 | 
				
			||||||
  </IssueDef>
 | 
					  </IssueDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <HistoryEventDef>
 | 
					  <HistoryEventDef>
 | 
				
			||||||
    <defName>SexWithAnimal</defName>
 | 
					    <defName>RSI_SexWithAnimal</defName>
 | 
				
			||||||
    <label>sex with animal</label>
 | 
					    <label>sex with animal</label>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJWSexperience.Ideology.HistoryEvents.DefExtension_PartnerDependentSecondaryEvents">
 | 
				
			||||||
 | 
					        <generationRules>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <filter>
 | 
				
			||||||
 | 
					              <isVeneratedAnimal>true</isVeneratedAnimal>
 | 
				
			||||||
 | 
					            </filter>
 | 
				
			||||||
 | 
					            <historyEventDef>RSI_SexWithVeneratedAnimal</historyEventDef>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <filter>
 | 
				
			||||||
 | 
					              <isAnimal>true</isAnimal>
 | 
				
			||||||
 | 
					              <isVeneratedAnimal>false</isVeneratedAnimal>
 | 
				
			||||||
 | 
					            </filter>
 | 
				
			||||||
 | 
					            <historyEventDef>RSI_SexWithNonVeneratedAnimal</historyEventDef>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <filter>
 | 
				
			||||||
 | 
					              <isAnimal>true</isAnimal>
 | 
				
			||||||
 | 
					              <hasOneOfRelations>
 | 
				
			||||||
 | 
					                <li>Bond</li>
 | 
				
			||||||
 | 
					              </hasOneOfRelations>
 | 
				
			||||||
 | 
					            </filter>
 | 
				
			||||||
 | 
					            <historyEventDef>RSI_SexWithBondedAnimal</historyEventDef>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <filter>
 | 
				
			||||||
 | 
					              <isAnimal>true</isAnimal>
 | 
				
			||||||
 | 
					              <hasNoneOfRelations>
 | 
				
			||||||
 | 
					                <li>Bond</li>
 | 
				
			||||||
 | 
					              </hasNoneOfRelations>
 | 
				
			||||||
 | 
					            </filter>
 | 
				
			||||||
 | 
					            <historyEventDef>RSI_SexWithNonBondAnimal</historyEventDef>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        </generationRules>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
  </HistoryEventDef>
 | 
					  </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <HistoryEventDef>
 | 
					  <HistoryEventDef>
 | 
				
			||||||
    <defName>SexWithVeneratedAnimal</defName>
 | 
					    <defName>RSI_SexWithVeneratedAnimal</defName>
 | 
				
			||||||
    <label>sex with venerated animal</label>
 | 
					    <label>sex with venerated animal</label>
 | 
				
			||||||
  </HistoryEventDef>
 | 
					  </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <HistoryEventDef>
 | 
					  <HistoryEventDef>
 | 
				
			||||||
    <defName>SexWithNonVeneratedAnimal</defName>
 | 
					    <defName>RSI_SexWithNonVeneratedAnimal</defName>
 | 
				
			||||||
    <label>sex with non venerated animal</label>
 | 
					    <label>sex with non venerated animal</label>
 | 
				
			||||||
  </HistoryEventDef>
 | 
					  </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <HistoryEventDef>
 | 
					  <HistoryEventDef>
 | 
				
			||||||
    <defName>SexWithBondedAnimal</defName>
 | 
					    <defName>RSI_SexWithBondedAnimal</defName>
 | 
				
			||||||
    <label>Sex with bonded</label>
 | 
					    <label>Sex with bonded</label>
 | 
				
			||||||
  </HistoryEventDef>
 | 
					  </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <HistoryEventDef>
 | 
					  <HistoryEventDef>
 | 
				
			||||||
    <defName>SexWithNonBondAnimal</defName>
 | 
					    <defName>RSI_SexWithNonBondAnimal</defName>
 | 
				
			||||||
    <label>Sex with non Bonded</label>
 | 
					    <label>Sex with non Bonded</label>
 | 
				
			||||||
  </HistoryEventDef>
 | 
					  </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,21 +89,21 @@
 | 
				
			||||||
    </associatedMemes>
 | 
					    </associatedMemes>
 | 
				
			||||||
    <comps>
 | 
					    <comps>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Abhorrent</thought>
 | 
					        <thought>Bestiality_Abhorrent</thought>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
					      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Abhorrent</thought>
 | 
					        <thought>Bestiality_Know_Abhorrent</thought>
 | 
				
			||||||
        <tag>BeenRaped</tag>
 | 
					        <tag>BeenRaped</tag>
 | 
				
			||||||
        <exclusive>true</exclusive>
 | 
					        <exclusive>true</exclusive>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Abhorrent</thought>
 | 
					        <thought>Bestiality_Abhorrent</thought>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
					      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Abhorrent</thought>
 | 
					        <thought>Bestiality_Know_Abhorrent</thought>
 | 
				
			||||||
        <tag>BeenRaped</tag>
 | 
					        <tag>BeenRaped</tag>
 | 
				
			||||||
        <exclusive>true</exclusive>
 | 
					        <exclusive>true</exclusive>
 | 
				
			||||||
| 
						 | 
					@ -106,21 +143,21 @@
 | 
				
			||||||
    </associatedMemes>
 | 
					    </associatedMemes>
 | 
				
			||||||
    <comps>
 | 
					    <comps>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Horrible</thought>
 | 
					        <thought>Bestiality_Horrible</thought>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
					      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Horrible</thought>
 | 
					        <thought>Bestiality_Know_Horrible</thought>
 | 
				
			||||||
        <tag>BeenRaped</tag>
 | 
					        <tag>BeenRaped</tag>
 | 
				
			||||||
        <exclusive>true</exclusive>
 | 
					        <exclusive>true</exclusive>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Horrible</thought>
 | 
					        <thought>Bestiality_Horrible</thought>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
					      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Horrible</thought>
 | 
					        <thought>Bestiality_Know_Horrible</thought>
 | 
				
			||||||
        <tag>BeenRaped</tag>
 | 
					        <tag>BeenRaped</tag>
 | 
				
			||||||
        <exclusive>true</exclusive>
 | 
					        <exclusive>true</exclusive>
 | 
				
			||||||
| 
						 | 
					@ -160,21 +197,21 @@
 | 
				
			||||||
    </associatedMemes>
 | 
					    </associatedMemes>
 | 
				
			||||||
    <comps>
 | 
					    <comps>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Disapproved</thought>
 | 
					        <thought>Bestiality_Disapproved</thought>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
					      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Disapproved</thought>
 | 
					        <thought>Bestiality_Know_Disapproved</thought>
 | 
				
			||||||
        <tag>BeenRaped</tag>
 | 
					        <tag>BeenRaped</tag>
 | 
				
			||||||
        <exclusive>true</exclusive>
 | 
					        <exclusive>true</exclusive>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Disapproved</thought>
 | 
					        <thought>Bestiality_Disapproved</thought>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
					      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Disapproved</thought>
 | 
					        <thought>Bestiality_Know_Disapproved</thought>
 | 
				
			||||||
        <tag>BeenRaped</tag>
 | 
					        <tag>BeenRaped</tag>
 | 
				
			||||||
        <exclusive>true</exclusive>
 | 
					        <exclusive>true</exclusive>
 | 
				
			||||||
| 
						 | 
					@ -227,23 +264,23 @@
 | 
				
			||||||
    </requiredMemes>
 | 
					    </requiredMemes>
 | 
				
			||||||
    <comps>
 | 
					    <comps>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithNonVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithNonVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Nonvenerated_Disapproved</thought>
 | 
					        <thought>Bestiality_Nonvenerated_Disapproved</thought>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
					      <li Class="PreceptComp_KnowsMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithNonVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithNonVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Nonvenerated_Know_Disapproved</thought>
 | 
					        <thought>Bestiality_Nonvenerated_Know_Disapproved</thought>
 | 
				
			||||||
        <description>Someone sex with any animal</description>
 | 
					        <description>Someone sex with any animal</description>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Honorable</thought>
 | 
					        <thought>Bestiality_Honorable</thought>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
					      <li Class="PreceptComp_KnowsMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Honorable</thought>
 | 
					        <thought>Bestiality_Know_Honorable</thought>
 | 
				
			||||||
        <description>Someone sex with animal</description>
 | 
					        <description>Someone sex with animal</description>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
| 
						 | 
					@ -290,23 +327,23 @@
 | 
				
			||||||
    </requiredMemes>
 | 
					    </requiredMemes>
 | 
				
			||||||
    <comps>
 | 
					    <comps>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithNonBondAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithNonBondAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_NonBonded_Disapproved</thought>
 | 
					        <thought>Bestiality_NonBonded_Disapproved</thought>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
					      <li Class="PreceptComp_KnowsMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithNonBondAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithNonBondAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_NonBonded_Know_Disapproved</thought>
 | 
					        <thought>Bestiality_NonBonded_Know_Disapproved</thought>
 | 
				
			||||||
        <description>Someone sex with any animal</description>
 | 
					        <description>Someone sex with any animal</description>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithBondedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithBondedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Bond_Approved</thought>
 | 
					        <thought>Bestiality_Bond_Approved</thought>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
					      <li Class="PreceptComp_KnowsMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithBondedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithBondedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Bond_Approved_Know</thought>
 | 
					        <thought>Bestiality_Bond_Approved_Know</thought>
 | 
				
			||||||
        <description>Someone sex with non bonded animal</description>
 | 
					        <description>Someone sex with non bonded animal</description>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
| 
						 | 
					@ -357,23 +394,23 @@
 | 
				
			||||||
    </requiredMemes>
 | 
					    </requiredMemes>
 | 
				
			||||||
    <comps>
 | 
					    <comps>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Honorable</thought>
 | 
					        <thought>Bestiality_Honorable</thought>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
					      <li Class="PreceptComp_KnowsMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Honorable</thought>
 | 
					        <thought>Bestiality_Know_Honorable</thought>
 | 
				
			||||||
        <description>Someone sex with animal</description>
 | 
					        <description>Someone sex with animal</description>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
					      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Honorable</thought>
 | 
					        <thought>Bestiality_Honorable</thought>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
      </li>
 | 
					      </li>
 | 
				
			||||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
					      <li Class="PreceptComp_KnowsMemoryThought">
 | 
				
			||||||
        <eventDef>SexWithVeneratedAnimal</eventDef>
 | 
					        <eventDef>RSI_SexWithVeneratedAnimal</eventDef>
 | 
				
			||||||
        <thought>Bestiality_Know_Honorable</thought>
 | 
					        <thought>Bestiality_Know_Honorable</thought>
 | 
				
			||||||
        <description>Someone sex with animal</description>
 | 
					        <description>Someone sex with animal</description>
 | 
				
			||||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
					        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue