mirror of
				https://github.com/amevarashi/RJW-Sexperience.git
				synced 2024-08-14 23:54:08 +00:00 
			
		
		
		
	Refactor Submissive precepts
This commit is contained in:
		
							parent
							
								
									03ea73c82e
								
							
						
					
					
						commit
						6941293212
					
				
					 10 changed files with 203 additions and 109 deletions
				
			
		| 
						 | 
				
			
			@ -15,6 +15,8 @@ namespace RJWSexperience.Ideology
 | 
			
		|||
		[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
			
		||||
		public bool? isSlave;
 | 
			
		||||
		[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
			
		||||
		public bool? isPrisoner;
 | 
			
		||||
		[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
			
		||||
		public bool? isAlien;
 | 
			
		||||
		[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
			
		||||
		public List<PawnRelationDef> hasOneOfRelations;
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +38,9 @@ namespace RJWSexperience.Ideology
 | 
			
		|||
			if (isSlave != null && isSlave != partner.IsSlave)
 | 
			
		||||
				return false;
 | 
			
		||||
 | 
			
		||||
			if (isPrisoner != null && isPrisoner != partner.IsPrisoner)
 | 
			
		||||
				return false;
 | 
			
		||||
 | 
			
		||||
			//if (isAlien != null && isAlien != partner)
 | 
			
		||||
			//	return false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
using HarmonyLib;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using rjw;
 | 
			
		||||
using RJWSexperience.Ideology.Precepts;
 | 
			
		||||
using Verse;
 | 
			
		||||
| 
						 | 
				
			
			@ -20,8 +21,15 @@ namespace RJWSexperience.Ideology.Patches
 | 
			
		|||
	{
 | 
			
		||||
		public static void Postfix(Pawn pawn, ref float __result)
 | 
			
		||||
		{
 | 
			
		||||
			if (__result > 0f && pawn.Ideo != null) // ideo is null if don't have dlc
 | 
			
		||||
				__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyRapeCPMtb>(pawn.Ideo);
 | 
			
		||||
			if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc
 | 
			
		||||
				return;
 | 
			
		||||
 | 
			
		||||
			if (!VariousDefOf.RSI_Raped.CreateEvent(pawn).DoerWillingToDo())
 | 
			
		||||
			{
 | 
			
		||||
				__result = -2f;
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
			__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyRapeCPMtb>(pawn.Ideo);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	[HarmonyPatch(typeof(ThinkNode_ChancePerHour_Necro), "MtbHours")]
 | 
			
		||||
| 
						 | 
				
			
			@ -29,8 +37,15 @@ namespace RJWSexperience.Ideology.Patches
 | 
			
		|||
	{
 | 
			
		||||
		public static void Postfix(Pawn pawn, ref float __result)
 | 
			
		||||
		{
 | 
			
		||||
			if (__result > 0f && pawn.Ideo != null) // ideo is null if don't have dlc
 | 
			
		||||
				__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyNecroMtb>(pawn.Ideo);
 | 
			
		||||
			if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc
 | 
			
		||||
				return;
 | 
			
		||||
 | 
			
		||||
			if (!VariousDefOf.SexWithCorpse.CreateEvent(pawn).DoerWillingToDo())
 | 
			
		||||
			{
 | 
			
		||||
				__result = -2f;
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
			__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyNecroMtb>(pawn.Ideo);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,6 @@ using RimWorld;
 | 
			
		|||
using rjw;
 | 
			
		||||
using rjw.Modules.Interactions.Internals.Implementation;
 | 
			
		||||
using rjw.Modules.Interactions.Objects;
 | 
			
		||||
using RJWSexperience.Ideology.HistoryEvents;
 | 
			
		||||
using RJWSexperience.Ideology.Precepts;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
| 
						 | 
				
			
			@ -104,21 +103,14 @@ namespace RJWSexperience.Ideology.Patches
 | 
			
		|||
			{
 | 
			
		||||
				if (rape)
 | 
			
		||||
				{
 | 
			
		||||
					VariousDefOf.RSI_Raped.RecordEventWithPartner(human, partner);
 | 
			
		||||
 | 
			
		||||
					if (partner.IsSlave)
 | 
			
		||||
					{
 | 
			
		||||
						Find.HistoryEventsManager.RecordEvent(VariousDefOf.RapedSlave.CreateTaggedEvent(human, Tag.Gender(human), partner));
 | 
			
		||||
						Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRapedSlave.CreateTaggedEvent(partner, Tag.Gender(partner), human));
 | 
			
		||||
					}
 | 
			
		||||
						VariousDefOf.WasRapedSlave.RecordEventWithPartner(partner, human);
 | 
			
		||||
					else if (partner.IsPrisoner)
 | 
			
		||||
					{
 | 
			
		||||
						Find.HistoryEventsManager.RecordEvent(VariousDefOf.RapedPrisoner.CreateTaggedEvent(human, Tag.Gender(human), partner));
 | 
			
		||||
						Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRapedPrisoner.CreateTaggedEvent(partner, Tag.Gender(partner), human));
 | 
			
		||||
					}
 | 
			
		||||
						VariousDefOf.WasRapedPrisoner.RecordEventWithPartner(partner, human);
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
						Find.HistoryEventsManager.RecordEvent(VariousDefOf.Raped.CreateTaggedEvent(human, Tag.Gender(human), partner));
 | 
			
		||||
						Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRaped.CreateTaggedEvent(partner, Tag.Gender(partner), human));
 | 
			
		||||
					}
 | 
			
		||||
						VariousDefOf.WasRaped.RecordEventWithPartner(partner, human);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -147,22 +139,20 @@ namespace RJWSexperience.Ideology.Patches
 | 
			
		|||
			if (interactionEvents == null)
 | 
			
		||||
				return;
 | 
			
		||||
 | 
			
		||||
			Ideo ideo = dominant.Pawn.Ideo;
 | 
			
		||||
			if (ideo != null)
 | 
			
		||||
				__result.Dominant = PreceptSextype(ideo, dominant.Pawn.GetStatValue(xxx.sex_drive_stat), __result.Dominant, interactionEvents.pawnEvents);
 | 
			
		||||
			if (dominant.Pawn.Ideo != null)
 | 
			
		||||
				__result.Dominant = PreceptSextype(dominant.Pawn, submissive.Pawn, __result.Dominant, interactionEvents.pawnEvents);
 | 
			
		||||
 | 
			
		||||
			ideo = submissive.Pawn.Ideo;
 | 
			
		||||
			if (ideo != null)
 | 
			
		||||
				__result.Submissive = PreceptSextype(ideo, submissive.Pawn.GetStatValue(xxx.sex_drive_stat), __result.Submissive, interactionEvents.partnerEvents);
 | 
			
		||||
			if (submissive.Pawn.Ideo != null)
 | 
			
		||||
				__result.Submissive = PreceptSextype(submissive.Pawn, dominant.Pawn, __result.Submissive, interactionEvents.partnerEvents);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static float PreceptSextype(Ideo ideo, float sexdrive, float score, List<HistoryEventDef> historyEventDefs)
 | 
			
		||||
		public static float PreceptSextype(Pawn pawn, Pawn partner, float score, List<HistoryEventDef> historyEventDefs)
 | 
			
		||||
		{
 | 
			
		||||
			foreach(HistoryEventDef eventDef in historyEventDefs)
 | 
			
		||||
			{
 | 
			
		||||
				if (ideo.MemberWillingToDo(new HistoryEvent(eventDef)))
 | 
			
		||||
				if (eventDef.CreateEventWithPartner(pawn, partner).DoerWillingToDo())
 | 
			
		||||
				{
 | 
			
		||||
					float mult = 8.0f * Math.Max(0.3f, 1 / Math.Max(0.01f, sexdrive));
 | 
			
		||||
					float mult = 8.0f * Math.Max(0.3f, 1 / Math.Max(0.01f, pawn.GetStatValue(xxx.sex_drive_stat)));
 | 
			
		||||
					return score * mult;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using System.Diagnostics.CodeAnalysis;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJWSexperience.Ideology.Precepts
 | 
			
		||||
{
 | 
			
		||||
	public class Comp_KnowsMemoryThought_Gendered : PreceptComp_KnowsMemoryThought
 | 
			
		||||
	{
 | 
			
		||||
		[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
			
		||||
		public Gender doersGender;
 | 
			
		||||
 | 
			
		||||
		public override void Notify_MemberWitnessedAction(HistoryEvent ev, Precept precept, Pawn member)
 | 
			
		||||
		{
 | 
			
		||||
			Pawn doer = ev.args.GetArg<Pawn>(HistoryEventArgsNames.Doer);
 | 
			
		||||
			if (doer.gender == doersGender)
 | 
			
		||||
				base.Notify_MemberWitnessedAction(ev, precept, member);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using System.Diagnostics.CodeAnalysis;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJWSexperience.Ideology.Precepts
 | 
			
		||||
{
 | 
			
		||||
	public class Comp_SelfTookMemoryThought_Gendered : PreceptComp_SelfTookMemoryThought
 | 
			
		||||
	{
 | 
			
		||||
		[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
			
		||||
		public Gender gender;
 | 
			
		||||
 | 
			
		||||
		public override void Notify_MemberTookAction(HistoryEvent ev, Precept precept, bool canApplySelfTookThoughts)
 | 
			
		||||
		{
 | 
			
		||||
			Pawn doer = ev.args.GetArg<Pawn>(HistoryEventArgsNames.Doer);
 | 
			
		||||
			if (doer.gender == gender)
 | 
			
		||||
				TakeThought(ev, precept, canApplySelfTookThoughts, doer);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// This is a copy of base.Notify_MemberTookAction, but with partner handling
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		protected void TakeThought(HistoryEvent ev, Precept precept, bool canApplySelfTookThoughts, Pawn doer)
 | 
			
		||||
		{
 | 
			
		||||
			if (ev.def != eventDef || !canApplySelfTookThoughts)
 | 
			
		||||
			{
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
			Pawn partner = ev.args.GetArg<Pawn>(HistoryEvents.ArgsNamesCustom.Partner);
 | 
			
		||||
			if (doer.needs?.mood != null && (!onlyForNonSlaves || !doer.IsSlave))
 | 
			
		||||
			{
 | 
			
		||||
				if (thought.minExpectationForNegativeThought != null && ExpectationsUtility.CurrentExpectationFor(doer).order < thought.minExpectationForNegativeThought.order)
 | 
			
		||||
				{
 | 
			
		||||
					return;
 | 
			
		||||
				}
 | 
			
		||||
				Thought_Memory thought_Memory = ThoughtMaker.MakeThought(thought, precept);
 | 
			
		||||
				if (thought_Memory is Thought_KilledInnocentAnimal thought_KilledInnocentAnimal && ev.args.TryGetArg<Pawn>(HistoryEventArgsNames.Victim, out Pawn animal))
 | 
			
		||||
				{
 | 
			
		||||
					thought_KilledInnocentAnimal.SetAnimal(animal);
 | 
			
		||||
				}
 | 
			
		||||
				if (thought_Memory is Thought_MemoryObservation thought_MemoryObservation && ev.args.TryGetArg<Corpse>(HistoryEventArgsNames.Subject, out Corpse target))
 | 
			
		||||
				{
 | 
			
		||||
					thought_MemoryObservation.Target = target;
 | 
			
		||||
				}
 | 
			
		||||
				doer.needs.mood.thoughts.memories.TryGainMemory(thought_Memory, partner);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -53,6 +53,8 @@
 | 
			
		|||
    <Compile Include="Ideology\HistoryEvents\ArgsNamesCustom.cs" />
 | 
			
		||||
    <Compile Include="Ideology\IssueUtility.cs" />
 | 
			
		||||
    <Compile Include="Ideology\Keyed.cs" />
 | 
			
		||||
    <Compile Include="Ideology\Precepts\Comp_SelfTookMemoryThought_Gendered.cs" />
 | 
			
		||||
    <Compile Include="Ideology\Precepts\Comp_KnowsMemoryThought_Gendered.cs" />
 | 
			
		||||
    <Compile Include="Ideology\RJWUtility_Ideo.cs" />
 | 
			
		||||
    <Compile Include="Ideology\Patches\RJW_Patch_ChancePerHour.cs" />
 | 
			
		||||
    <Compile Include="Ideology\Precepts\DefExtension_ModifyMtb.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,14 +17,13 @@ namespace RJWSexperience.Ideology
 | 
			
		|||
		[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 RSI_Raped;
 | 
			
		||||
		[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 SexWithCorpse;
 | 
			
		||||
		[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenF;
 | 
			
		||||
		[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenM;
 | 
			
		||||
		[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookF;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,9 @@
 | 
			
		|||
      <li>Necrophile</li>
 | 
			
		||||
    </conflictingMemes>
 | 
			
		||||
    <comps>
 | 
			
		||||
      <li Class="PreceptComp_UnwillingToDo">
 | 
			
		||||
        <eventDef>SexWithCorpse</eventDef>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>SexWithCorpse</eventDef>
 | 
			
		||||
        <thought>Necrophilia_Abhorrent</thought>
 | 
			
		||||
| 
						 | 
				
			
			@ -37,11 +40,6 @@
 | 
			
		|||
        <thought>Necrophilia_Know_Abhorrent</thought>
 | 
			
		||||
      </li>
 | 
			
		||||
    </comps>
 | 
			
		||||
    <modExtensions>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.DefExtension_ModifyNecroMtb">
 | 
			
		||||
        <disable>true</disable>
 | 
			
		||||
      </li>
 | 
			
		||||
    </modExtensions>
 | 
			
		||||
  </PreceptDef>
 | 
			
		||||
 | 
			
		||||
  <PreceptDef>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,17 +9,35 @@
 | 
			
		|||
  </IssueDef>
 | 
			
		||||
 | 
			
		||||
  <HistoryEventDef>
 | 
			
		||||
    <defName>Raped</defName>
 | 
			
		||||
    <defName>RSI_Raped</defName>
 | 
			
		||||
    <label>raped</label>
 | 
			
		||||
    <modExtensions>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.HistoryEvents.DefExtension_PartnerDependentOverrides">
 | 
			
		||||
        <overrideRules>
 | 
			
		||||
          <li>
 | 
			
		||||
            <filter>
 | 
			
		||||
              <isSlave>true</isSlave>
 | 
			
		||||
            </filter>
 | 
			
		||||
            <historyEventDef>RSI_RapedSlave</historyEventDef>
 | 
			
		||||
          </li>
 | 
			
		||||
          <li>
 | 
			
		||||
            <filter>
 | 
			
		||||
              <isPrisoner>true</isPrisoner>
 | 
			
		||||
            </filter>
 | 
			
		||||
            <historyEventDef>RSI_RapedPrisoner</historyEventDef>
 | 
			
		||||
          </li>
 | 
			
		||||
        </overrideRules>
 | 
			
		||||
      </li>
 | 
			
		||||
    </modExtensions>
 | 
			
		||||
  </HistoryEventDef>
 | 
			
		||||
 | 
			
		||||
  <HistoryEventDef>
 | 
			
		||||
    <defName>RapedSlave</defName>
 | 
			
		||||
    <defName>RSI_RapedSlave</defName>
 | 
			
		||||
    <label>raped slave</label>
 | 
			
		||||
  </HistoryEventDef>
 | 
			
		||||
 | 
			
		||||
  <HistoryEventDef>
 | 
			
		||||
    <defName>RapedPrisoner</defName>
 | 
			
		||||
    <defName>RSI_RapedPrisoner</defName>
 | 
			
		||||
    <label>raped prisoner</label>
 | 
			
		||||
  </HistoryEventDef>
 | 
			
		||||
  
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +55,7 @@
 | 
			
		|||
    <defName>WasRapedPrisoner</defName>
 | 
			
		||||
    <label>was raped</label>
 | 
			
		||||
  </HistoryEventDef>
 | 
			
		||||
  
 | 
			
		||||
  <!-- Precepts -->
 | 
			
		||||
 | 
			
		||||
  <PreceptDef>
 | 
			
		||||
| 
						 | 
				
			
			@ -59,41 +78,39 @@
 | 
			
		|||
      <li>Collectivist</li>
 | 
			
		||||
    </associatedMemes>
 | 
			
		||||
    <comps>
 | 
			
		||||
      <li Class="PreceptComp_UnwillingToDo">
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Rape_Abhorrent</thought>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Abhorrent</thought>
 | 
			
		||||
        <description>Someone raped other</description>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>Rape_Horrible</thought>
 | 
			
		||||
        <description>Raped prisoner</description>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Horrible</thought>
 | 
			
		||||
        <description>Someone raped prisoner</description>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>RapedSlave</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedSlave</eventDef>
 | 
			
		||||
        <thought>Rape_Disapproved</thought>
 | 
			
		||||
        <description>Raped slave</description>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>RapedSlave</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedSlave</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Disapproved</thought>
 | 
			
		||||
        <description>Someone raped slave</description>
 | 
			
		||||
      </li>
 | 
			
		||||
    </comps>
 | 
			
		||||
    <modExtensions>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.DefExtension_ModifyRapeCPMtb">
 | 
			
		||||
        <disable>true</disable>
 | 
			
		||||
      </li>
 | 
			
		||||
    </modExtensions>
 | 
			
		||||
  </PreceptDef>
 | 
			
		||||
 | 
			
		||||
  <PreceptDef>
 | 
			
		||||
| 
						 | 
				
			
			@ -116,21 +133,21 @@
 | 
			
		|||
    </associatedMemes>
 | 
			
		||||
    <comps>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Rape_Horrible</thought>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Horrible</thought>
 | 
			
		||||
        <description>Someone raped other</description>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>Rape_Disapproved</thought>
 | 
			
		||||
        <description>Raped prisoner</description>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Disapproved</thought>
 | 
			
		||||
        <description>Someone raped prisoner</description>
 | 
			
		||||
      </li>
 | 
			
		||||
| 
						 | 
				
			
			@ -162,11 +179,11 @@
 | 
			
		|||
    </associatedMemes>
 | 
			
		||||
    <comps>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Rape_Disapproved</thought>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Disapproved</thought>
 | 
			
		||||
        <description>Someone raped other</description>
 | 
			
		||||
      </li>
 | 
			
		||||
| 
						 | 
				
			
			@ -208,34 +225,34 @@
 | 
			
		|||
    </statFactors>
 | 
			
		||||
    <comps>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>BloodlustStoleSomeLovin</thought>
 | 
			
		||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Honorable</thought>
 | 
			
		||||
        <description>Someone raped other</description>
 | 
			
		||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>BloodlustStoleSomeLovin</thought>
 | 
			
		||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Honorable</thought>
 | 
			
		||||
        <description>Someone raped other</description>
 | 
			
		||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_SelfTookMemoryThought">
 | 
			
		||||
        <eventDef>RapedSlave</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedSlave</eventDef>
 | 
			
		||||
        <thought>BloodlustStoleSomeLovin</thought>
 | 
			
		||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="PreceptComp_KnowsMemoryThought">
 | 
			
		||||
        <eventDef>RapedSlave</eventDef>
 | 
			
		||||
        <eventDef>RSI_RapedSlave</eventDef>
 | 
			
		||||
        <thought>Rape_Know_Honorable</thought>
 | 
			
		||||
        <description>Someone raped other</description>
 | 
			
		||||
        <onlyForNonSlaves>true</onlyForNonSlaves>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,53 +32,54 @@
 | 
			
		|||
      <li>FemaleSupremacy</li>
 | 
			
		||||
    </requiredMemes>
 | 
			
		||||
    <comps>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="PreceptComp_UnwillingToDo_Gendered">
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <gender>Male</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRaped</eventDef>
 | 
			
		||||
        <thought>BeenRaped_Submissive</thought>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <gender>Male</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRaped</eventDef>
 | 
			
		||||
        <thought>BeenRaped_NotSubmissive</thought>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <gender>Female</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Raped_Know_NotBeingSubmissive</thought>
 | 
			
		||||
        <description>not obedient</description>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <doersGender>Male</doersGender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedPrisoner</eventDef>
 | 
			
		||||
        <thought>BeenRaped_Submissive</thought>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <gender>Male</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedPrisoner</eventDef>
 | 
			
		||||
        <thought>BeenRaped_NotSubmissive</thought>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <gender>Female</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>Raped_Know_NotBeingSubmissive</thought>
 | 
			
		||||
        <description>not obedient</description>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <doersGender>Male</doersGender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedSlave</eventDef>
 | 
			
		||||
        <thought>BeenRaped_Submissive</thought>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <gender>Male</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedSlave</eventDef>
 | 
			
		||||
        <thought>BeenRaped_NotSubmissive</thought>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <gender>Female</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
			
		||||
        <eventDef>RapedSlave</eventDef>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>RSI_RapedSlave</eventDef>
 | 
			
		||||
        <thought>Raped_Know_NotBeingSubmissive</thought>
 | 
			
		||||
        <description>not obedient</description>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <doersGender>Male</doersGender>
 | 
			
		||||
      </li>
 | 
			
		||||
    </comps>
 | 
			
		||||
  </PreceptDef>
 | 
			
		||||
| 
						 | 
				
			
			@ -95,60 +96,60 @@
 | 
			
		|||
      <li>MaleSupremacy</li>
 | 
			
		||||
    </requiredMemes>
 | 
			
		||||
    <comps>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="PreceptComp_UnwillingToDo_Gendered">
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <gender>Female</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRaped</eventDef>
 | 
			
		||||
        <thought>BeenRaped_Submissive</thought>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <gender>Female</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRaped</eventDef>
 | 
			
		||||
        <thought>BeenRaped_NotSubmissive</thought>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <gender>Male</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
			
		||||
        <eventDef>Raped</eventDef>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>RSI_Raped</eventDef>
 | 
			
		||||
        <thought>Raped_Know_NotBeingSubmissive</thought>
 | 
			
		||||
        <description>not obedient</description>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <doersGender>Female</doersGender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedPrisoner</eventDef>
 | 
			
		||||
        <thought>BeenRaped_Submissive</thought>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <gender>Female</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedPrisoner</eventDef>
 | 
			
		||||
        <thought>BeenRaped_NotSubmissive</thought>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <gender>Male</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
			
		||||
        <eventDef>RapedPrisoner</eventDef>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>RSI_RapedPrisoner</eventDef>
 | 
			
		||||
        <thought>Raped_Know_NotBeingSubmissive</thought>
 | 
			
		||||
        <description>not obedient</description>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <doersGender>Female</doersGender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedSlave</eventDef>
 | 
			
		||||
        <thought>BeenRaped_Submissive</thought>
 | 
			
		||||
        <tag>Female</tag>
 | 
			
		||||
        <gender>Female</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged">
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>WasRapedSlave</eventDef>
 | 
			
		||||
        <thought>BeenRaped_NotSubmissive</thought>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <gender>Male</gender>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged">
 | 
			
		||||
        <eventDef>RapedSlave</eventDef>
 | 
			
		||||
      <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
 | 
			
		||||
        <eventDef>RSI_RapedSlave</eventDef>
 | 
			
		||||
        <thought>Raped_Know_NotBeingSubmissive</thought>
 | 
			
		||||
        <description>not obedient</description>
 | 
			
		||||
        <tag>Male</tag>
 | 
			
		||||
        <doersGender>Female</doersGender>
 | 
			
		||||
      </li>
 | 
			
		||||
    </comps>
 | 
			
		||||
  </PreceptDef>
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  <!-- Thoughts -->
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  <ThoughtDef>
 | 
			
		||||
    <defName>BeenRaped_Submissive</defName>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue