Refactor Submissive precepts

This commit is contained in:
amevarashi 2022-07-08 19:35:05 +05:00
parent 03ea73c82e
commit 6941293212
10 changed files with 203 additions and 109 deletions

View File

@ -15,6 +15,8 @@ namespace RJWSexperience.Ideology
[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 bool? isSlave; public bool? isSlave;
[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 bool? isPrisoner;
[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
public bool? isAlien; public bool? isAlien;
[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<PawnRelationDef> hasOneOfRelations; public List<PawnRelationDef> hasOneOfRelations;
@ -36,6 +38,9 @@ namespace RJWSexperience.Ideology
if (isSlave != null && isSlave != partner.IsSlave) if (isSlave != null && isSlave != partner.IsSlave)
return false; return false;
if (isPrisoner != null && isPrisoner != partner.IsPrisoner)
return false;
//if (isAlien != null && isAlien != partner) //if (isAlien != null && isAlien != partner)
// return false; // return false;

View File

@ -1,4 +1,5 @@
using HarmonyLib; using HarmonyLib;
using RimWorld;
using rjw; using rjw;
using RJWSexperience.Ideology.Precepts; using RJWSexperience.Ideology.Precepts;
using Verse; using Verse;
@ -20,8 +21,15 @@ namespace RJWSexperience.Ideology.Patches
{ {
public static void Postfix(Pawn pawn, ref float __result) public static void Postfix(Pawn pawn, ref float __result)
{ {
if (__result > 0f && pawn.Ideo != null) // ideo is null if don't have dlc if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc
__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyRapeCPMtb>(pawn.Ideo); return;
if (!VariousDefOf.RSI_Raped.CreateEvent(pawn).DoerWillingToDo())
{
__result = -2f;
return;
}
__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyRapeCPMtb>(pawn.Ideo);
} }
} }
[HarmonyPatch(typeof(ThinkNode_ChancePerHour_Necro), "MtbHours")] [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Necro), "MtbHours")]
@ -29,8 +37,15 @@ namespace RJWSexperience.Ideology.Patches
{ {
public static void Postfix(Pawn pawn, ref float __result) public static void Postfix(Pawn pawn, ref float __result)
{ {
if (__result > 0f && pawn.Ideo != null) // ideo is null if don't have dlc if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc
__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyNecroMtb>(pawn.Ideo); return;
if (!VariousDefOf.SexWithCorpse.CreateEvent(pawn).DoerWillingToDo())
{
__result = -2f;
return;
}
__result *= IdeoUtility.GetPreceptsMtbMultiplier<DefExtension_ModifyNecroMtb>(pawn.Ideo);
} }
} }

View File

@ -3,7 +3,6 @@ using RimWorld;
using rjw; using rjw;
using rjw.Modules.Interactions.Internals.Implementation; using rjw.Modules.Interactions.Internals.Implementation;
using rjw.Modules.Interactions.Objects; using rjw.Modules.Interactions.Objects;
using RJWSexperience.Ideology.HistoryEvents;
using RJWSexperience.Ideology.Precepts; using RJWSexperience.Ideology.Precepts;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -104,21 +103,14 @@ namespace RJWSexperience.Ideology.Patches
{ {
if (rape) if (rape)
{ {
VariousDefOf.RSI_Raped.RecordEventWithPartner(human, partner);
if (partner.IsSlave) if (partner.IsSlave)
{ VariousDefOf.WasRapedSlave.RecordEventWithPartner(partner, human);
Find.HistoryEventsManager.RecordEvent(VariousDefOf.RapedSlave.CreateTaggedEvent(human, Tag.Gender(human), partner));
Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRapedSlave.CreateTaggedEvent(partner, Tag.Gender(partner), human));
}
else if (partner.IsPrisoner) else if (partner.IsPrisoner)
{ VariousDefOf.WasRapedPrisoner.RecordEventWithPartner(partner, human);
Find.HistoryEventsManager.RecordEvent(VariousDefOf.RapedPrisoner.CreateTaggedEvent(human, Tag.Gender(human), partner));
Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRapedPrisoner.CreateTaggedEvent(partner, Tag.Gender(partner), human));
}
else else
{ VariousDefOf.WasRaped.RecordEventWithPartner(partner, human);
Find.HistoryEventsManager.RecordEvent(VariousDefOf.Raped.CreateTaggedEvent(human, Tag.Gender(human), partner));
Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRaped.CreateTaggedEvent(partner, Tag.Gender(partner), human));
}
} }
} }
} }
@ -147,22 +139,20 @@ namespace RJWSexperience.Ideology.Patches
if (interactionEvents == null) if (interactionEvents == null)
return; return;
Ideo ideo = dominant.Pawn.Ideo; if (dominant.Pawn.Ideo != null)
if (ideo != null) __result.Dominant = PreceptSextype(dominant.Pawn, submissive.Pawn, __result.Dominant, interactionEvents.pawnEvents);
__result.Dominant = PreceptSextype(ideo, dominant.Pawn.GetStatValue(xxx.sex_drive_stat), __result.Dominant, interactionEvents.pawnEvents);
ideo = submissive.Pawn.Ideo; if (submissive.Pawn.Ideo != null)
if (ideo != null) __result.Submissive = PreceptSextype(submissive.Pawn, dominant.Pawn, __result.Submissive, interactionEvents.partnerEvents);
__result.Submissive = PreceptSextype(ideo, submissive.Pawn.GetStatValue(xxx.sex_drive_stat), __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) 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; return score * mult;
} }
} }

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}
}

View File

@ -53,6 +53,8 @@
<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\Precepts\Comp_SelfTookMemoryThought_Gendered.cs" />
<Compile Include="Ideology\Precepts\Comp_KnowsMemoryThought_Gendered.cs" />
<Compile Include="Ideology\RJWUtility_Ideo.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" />

View File

@ -17,14 +17,13 @@ namespace RJWSexperience.Ideology
[MayRequireIdeology] public static readonly MemeDef Rapist; [MayRequireIdeology] public static readonly MemeDef Rapist;
[MayRequireIdeology] public static readonly MemeDef Necrophile; [MayRequireIdeology] public static readonly MemeDef Necrophile;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithAnimal; [MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithAnimal;
[MayRequireIdeology] public static readonly HistoryEventDef Raped; [MayRequireIdeology] public static readonly HistoryEventDef RSI_Raped;
[MayRequireIdeology] public static readonly HistoryEventDef RapedSlave;
[MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner;
[MayRequireIdeology] public static readonly HistoryEventDef WasRaped; [MayRequireIdeology] public static readonly HistoryEventDef WasRaped;
[MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave; [MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave;
[MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner; [MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage; [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex; [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_TakenF;
[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenM; [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TakenM;
[MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookF; [MayRequireIdeology] public static readonly HistoryEventDef Virgin_TookF;

View File

@ -28,6 +28,9 @@
<li>Necrophile</li> <li>Necrophile</li>
</conflictingMemes> </conflictingMemes>
<comps> <comps>
<li Class="PreceptComp_UnwillingToDo">
<eventDef>SexWithCorpse</eventDef>
</li>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>SexWithCorpse</eventDef> <eventDef>SexWithCorpse</eventDef>
<thought>Necrophilia_Abhorrent</thought> <thought>Necrophilia_Abhorrent</thought>
@ -37,11 +40,6 @@
<thought>Necrophilia_Know_Abhorrent</thought> <thought>Necrophilia_Know_Abhorrent</thought>
</li> </li>
</comps> </comps>
<modExtensions>
<li Class="RJWSexperience.Ideology.Precepts.DefExtension_ModifyNecroMtb">
<disable>true</disable>
</li>
</modExtensions>
</PreceptDef> </PreceptDef>
<PreceptDef> <PreceptDef>

View File

@ -9,17 +9,35 @@
</IssueDef> </IssueDef>
<HistoryEventDef> <HistoryEventDef>
<defName>Raped</defName> <defName>RSI_Raped</defName>
<label>raped</label> <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>
<HistoryEventDef> <HistoryEventDef>
<defName>RapedSlave</defName> <defName>RSI_RapedSlave</defName>
<label>raped slave</label> <label>raped slave</label>
</HistoryEventDef> </HistoryEventDef>
<HistoryEventDef> <HistoryEventDef>
<defName>RapedPrisoner</defName> <defName>RSI_RapedPrisoner</defName>
<label>raped prisoner</label> <label>raped prisoner</label>
</HistoryEventDef> </HistoryEventDef>
@ -37,6 +55,7 @@
<defName>WasRapedPrisoner</defName> <defName>WasRapedPrisoner</defName>
<label>was raped</label> <label>was raped</label>
</HistoryEventDef> </HistoryEventDef>
<!-- Precepts --> <!-- Precepts -->
<PreceptDef> <PreceptDef>
@ -59,41 +78,39 @@
<li>Collectivist</li> <li>Collectivist</li>
</associatedMemes> </associatedMemes>
<comps> <comps>
<li Class="PreceptComp_UnwillingToDo">
<eventDef>RSI_Raped</eventDef>
</li>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Rape_Abhorrent</thought> <thought>Rape_Abhorrent</thought>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Rape_Know_Abhorrent</thought> <thought>Rape_Know_Abhorrent</thought>
<description>Someone raped other</description> <description>Someone raped other</description>
</li> </li>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>Rape_Horrible</thought> <thought>Rape_Horrible</thought>
<description>Raped prisoner</description> <description>Raped prisoner</description>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>Rape_Know_Horrible</thought> <thought>Rape_Know_Horrible</thought>
<description>Someone raped prisoner</description> <description>Someone raped prisoner</description>
</li> </li>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>RapedSlave</eventDef> <eventDef>RSI_RapedSlave</eventDef>
<thought>Rape_Disapproved</thought> <thought>Rape_Disapproved</thought>
<description>Raped slave</description> <description>Raped slave</description>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>RapedSlave</eventDef> <eventDef>RSI_RapedSlave</eventDef>
<thought>Rape_Know_Disapproved</thought> <thought>Rape_Know_Disapproved</thought>
<description>Someone raped slave</description> <description>Someone raped slave</description>
</li> </li>
</comps> </comps>
<modExtensions>
<li Class="RJWSexperience.Ideology.Precepts.DefExtension_ModifyRapeCPMtb">
<disable>true</disable>
</li>
</modExtensions>
</PreceptDef> </PreceptDef>
<PreceptDef> <PreceptDef>
@ -116,21 +133,21 @@
</associatedMemes> </associatedMemes>
<comps> <comps>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Rape_Horrible</thought> <thought>Rape_Horrible</thought>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Rape_Know_Horrible</thought> <thought>Rape_Know_Horrible</thought>
<description>Someone raped other</description> <description>Someone raped other</description>
</li> </li>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>Rape_Disapproved</thought> <thought>Rape_Disapproved</thought>
<description>Raped prisoner</description> <description>Raped prisoner</description>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>Rape_Know_Disapproved</thought> <thought>Rape_Know_Disapproved</thought>
<description>Someone raped prisoner</description> <description>Someone raped prisoner</description>
</li> </li>
@ -162,11 +179,11 @@
</associatedMemes> </associatedMemes>
<comps> <comps>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Rape_Disapproved</thought> <thought>Rape_Disapproved</thought>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Rape_Know_Disapproved</thought> <thought>Rape_Know_Disapproved</thought>
<description>Someone raped other</description> <description>Someone raped other</description>
</li> </li>
@ -208,34 +225,34 @@
</statFactors> </statFactors>
<comps> <comps>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>BloodlustStoleSomeLovin</thought> <thought>BloodlustStoleSomeLovin</thought>
<onlyForNonSlaves>true</onlyForNonSlaves> <onlyForNonSlaves>true</onlyForNonSlaves>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Rape_Know_Honorable</thought> <thought>Rape_Know_Honorable</thought>
<description>Someone raped other</description> <description>Someone raped other</description>
<onlyForNonSlaves>true</onlyForNonSlaves> <onlyForNonSlaves>true</onlyForNonSlaves>
</li> </li>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>BloodlustStoleSomeLovin</thought> <thought>BloodlustStoleSomeLovin</thought>
<onlyForNonSlaves>true</onlyForNonSlaves> <onlyForNonSlaves>true</onlyForNonSlaves>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>Rape_Know_Honorable</thought> <thought>Rape_Know_Honorable</thought>
<description>Someone raped other</description> <description>Someone raped other</description>
<onlyForNonSlaves>true</onlyForNonSlaves> <onlyForNonSlaves>true</onlyForNonSlaves>
</li> </li>
<li Class="PreceptComp_SelfTookMemoryThought"> <li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>RapedSlave</eventDef> <eventDef>RSI_RapedSlave</eventDef>
<thought>BloodlustStoleSomeLovin</thought> <thought>BloodlustStoleSomeLovin</thought>
<onlyForNonSlaves>true</onlyForNonSlaves> <onlyForNonSlaves>true</onlyForNonSlaves>
</li> </li>
<li Class="PreceptComp_KnowsMemoryThought"> <li Class="PreceptComp_KnowsMemoryThought">
<eventDef>RapedSlave</eventDef> <eventDef>RSI_RapedSlave</eventDef>
<thought>Rape_Know_Honorable</thought> <thought>Rape_Know_Honorable</thought>
<description>Someone raped other</description> <description>Someone raped other</description>
<onlyForNonSlaves>true</onlyForNonSlaves> <onlyForNonSlaves>true</onlyForNonSlaves>

View File

@ -32,53 +32,54 @@
<li>FemaleSupremacy</li> <li>FemaleSupremacy</li>
</requiredMemes> </requiredMemes>
<comps> <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> <eventDef>WasRaped</eventDef>
<thought>BeenRaped_Submissive</thought> <thought>BeenRaped_Submissive</thought>
<tag>Male</tag> <gender>Male</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRaped</eventDef> <eventDef>WasRaped</eventDef>
<thought>BeenRaped_NotSubmissive</thought> <thought>BeenRaped_NotSubmissive</thought>
<tag>Female</tag> <gender>Female</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Raped_Know_NotBeingSubmissive</thought> <thought>Raped_Know_NotBeingSubmissive</thought>
<description>not obedient</description> <doersGender>Male</doersGender>
<tag>Female</tag>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedPrisoner</eventDef> <eventDef>WasRapedPrisoner</eventDef>
<thought>BeenRaped_Submissive</thought> <thought>BeenRaped_Submissive</thought>
<tag>Male</tag> <gender>Male</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedPrisoner</eventDef> <eventDef>WasRapedPrisoner</eventDef>
<thought>BeenRaped_NotSubmissive</thought> <thought>BeenRaped_NotSubmissive</thought>
<tag>Female</tag> <gender>Female</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>Raped_Know_NotBeingSubmissive</thought> <thought>Raped_Know_NotBeingSubmissive</thought>
<description>not obedient</description> <doersGender>Male</doersGender>
<tag>Female</tag>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedSlave</eventDef> <eventDef>WasRapedSlave</eventDef>
<thought>BeenRaped_Submissive</thought> <thought>BeenRaped_Submissive</thought>
<tag>Male</tag> <gender>Male</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedSlave</eventDef> <eventDef>WasRapedSlave</eventDef>
<thought>BeenRaped_NotSubmissive</thought> <thought>BeenRaped_NotSubmissive</thought>
<tag>Female</tag> <gender>Female</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
<eventDef>RapedSlave</eventDef> <eventDef>RSI_RapedSlave</eventDef>
<thought>Raped_Know_NotBeingSubmissive</thought> <thought>Raped_Know_NotBeingSubmissive</thought>
<description>not obedient</description> <doersGender>Male</doersGender>
<tag>Female</tag>
</li> </li>
</comps> </comps>
</PreceptDef> </PreceptDef>
@ -95,60 +96,60 @@
<li>MaleSupremacy</li> <li>MaleSupremacy</li>
</requiredMemes> </requiredMemes>
<comps> <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> <eventDef>WasRaped</eventDef>
<thought>BeenRaped_Submissive</thought> <thought>BeenRaped_Submissive</thought>
<tag>Female</tag> <gender>Female</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRaped</eventDef> <eventDef>WasRaped</eventDef>
<thought>BeenRaped_NotSubmissive</thought> <thought>BeenRaped_NotSubmissive</thought>
<tag>Male</tag> <gender>Male</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
<eventDef>Raped</eventDef> <eventDef>RSI_Raped</eventDef>
<thought>Raped_Know_NotBeingSubmissive</thought> <thought>Raped_Know_NotBeingSubmissive</thought>
<description>not obedient</description> <doersGender>Female</doersGender>
<tag>Male</tag>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedPrisoner</eventDef> <eventDef>WasRapedPrisoner</eventDef>
<thought>BeenRaped_Submissive</thought> <thought>BeenRaped_Submissive</thought>
<tag>Female</tag> <gender>Female</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedPrisoner</eventDef> <eventDef>WasRapedPrisoner</eventDef>
<thought>BeenRaped_NotSubmissive</thought> <thought>BeenRaped_NotSubmissive</thought>
<tag>Male</tag> <gender>Male</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
<eventDef>RapedPrisoner</eventDef> <eventDef>RSI_RapedPrisoner</eventDef>
<thought>Raped_Know_NotBeingSubmissive</thought> <thought>Raped_Know_NotBeingSubmissive</thought>
<description>not obedient</description> <doersGender>Female</doersGender>
<tag>Male</tag>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedSlave</eventDef> <eventDef>WasRapedSlave</eventDef>
<thought>BeenRaped_Submissive</thought> <thought>BeenRaped_Submissive</thought>
<tag>Female</tag> <gender>Female</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_SelfTookThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_SelfTookMemoryThought_Gendered">
<eventDef>WasRapedSlave</eventDef> <eventDef>WasRapedSlave</eventDef>
<thought>BeenRaped_NotSubmissive</thought> <thought>BeenRaped_NotSubmissive</thought>
<tag>Male</tag> <gender>Male</gender>
</li> </li>
<li Class="RJWSexperience.Ideology.Precepts.PreceptComp_KnowsMemoryThoughtTagged"> <li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
<eventDef>RapedSlave</eventDef> <eventDef>RSI_RapedSlave</eventDef>
<thought>Raped_Know_NotBeingSubmissive</thought> <thought>Raped_Know_NotBeingSubmissive</thought>
<description>not obedient</description> <doersGender>Female</doersGender>
<tag>Male</tag>
</li> </li>
</comps> </comps>
</PreceptDef> </PreceptDef>
<!-- Thoughts --> <!-- Thoughts -->
<ThoughtDef> <ThoughtDef>
<defName>BeenRaped_Submissive</defName> <defName>BeenRaped_Submissive</defName>