Include Hawkeye32's Bond Only precept. For now as-is

This commit is contained in:
amevarashi 2022-06-20 23:25:21 +05:00
parent 8cbf5cd0e8
commit 59ef82b764
5 changed files with 181 additions and 2 deletions

View file

@ -90,8 +90,10 @@ namespace RJWSexperience.Ideology.Patches
if (partner != null) if (partner != null)
{ {
if (xxx.is_human(pawn)) AfterSexHuman(pawn, partner, props.isRape, props.sexType); if (xxx.is_human(pawn))
else if (xxx.is_human(partner)) AfterSexHuman(partner, pawn, false, props.sexType, true); AfterSexHuman(pawn, partner, props.isRape, props.sexType);
else if (xxx.is_human(partner))
AfterSexHuman(partner, pawn, false, props.sexType, true);
} }
} }
@ -114,11 +116,21 @@ namespace RJWSexperience.Ideology.Patches
if (human.IsSlave) RapeEffectSlave(human); if (human.IsSlave) RapeEffectSlave(human);
if (human.Ideo?.IsVeneratedAnimal(partner) ?? false) Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithVeneratedAnimal.TaggedEvent(human, tag + HETag.BeenRaped + HETag.Gender(human), partner)); if (human.Ideo?.IsVeneratedAnimal(partner) ?? false) Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithVeneratedAnimal.TaggedEvent(human, tag + HETag.BeenRaped + HETag.Gender(human), partner));
else Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithAnimal.TaggedEvent(human, tag + HETag.BeenRaped + HETag.Gender(human), partner)); else Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithAnimal.TaggedEvent(human, tag + HETag.BeenRaped + HETag.Gender(human), partner));
if (human.Ideo != null && human.relations?.DirectRelationExists(PawnRelationDefOf.Bond, partner) == true)
Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithBondedAnimal.TaggedEvent(human, tag + HETag.BeenRaped + HETag.Gender(human), partner));
else
Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithNonBondAnimal.TaggedEvent(human, tag + HETag.BeenRaped + HETag.Gender(human), partner));
} }
else else
{ {
if (human.Ideo?.IsVeneratedAnimal(partner) ?? false) Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithVeneratedAnimal.TaggedEvent(human, tag + HETag.Gender(human), partner)); if (human.Ideo?.IsVeneratedAnimal(partner) ?? false) Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithVeneratedAnimal.TaggedEvent(human, tag + HETag.Gender(human), partner));
else Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithAnimal.TaggedEvent(human, tag + HETag.Gender(human), partner)); else Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithAnimal.TaggedEvent(human, tag + HETag.Gender(human), partner));
if (human.Ideo != null && human.relations?.DirectRelationExists(PawnRelationDefOf.Bond, partner) == true)
Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithBondedAnimal.TaggedEvent(human, tag + HETag.Gender(human), partner));
else
Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithNonBondAnimal.TaggedEvent(human, tag + HETag.Gender(human), partner));
} }
} }
else if (xxx.is_human(partner)) else if (xxx.is_human(partner))

View file

@ -17,6 +17,8 @@ namespace RJWSexperience.Ideology
[MayRequireIdeology] public static readonly MemeDef Necrophile = DefDatabase<MemeDef>.GetNamed("Necrophile"); [MayRequireIdeology] public static readonly MemeDef Necrophile = DefDatabase<MemeDef>.GetNamed("Necrophile");
[MayRequireIdeology] public static readonly HistoryEventDef SexWithAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithAnimal"); [MayRequireIdeology] public static readonly HistoryEventDef SexWithAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithAnimal");
[MayRequireIdeology] public static readonly HistoryEventDef SexWithVeneratedAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithVeneratedAnimal"); [MayRequireIdeology] public static readonly HistoryEventDef SexWithVeneratedAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithVeneratedAnimal");
[MayRequireIdeology] public static readonly HistoryEventDef SexWithBondedAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithBondedAnimal");
[MayRequireIdeology] public static readonly HistoryEventDef SexWithNonBondAnimal = DefDatabase<HistoryEventDef>.GetNamed("SexWithNonBondAnimal");
[MayRequireIdeology] public static readonly HistoryEventDef Raped = DefDatabase<HistoryEventDef>.GetNamed("Raped"); [MayRequireIdeology] public static readonly HistoryEventDef Raped = DefDatabase<HistoryEventDef>.GetNamed("Raped");
[MayRequireIdeology] public static readonly HistoryEventDef RapedSlave = DefDatabase<HistoryEventDef>.GetNamed("RapedSlave"); [MayRequireIdeology] public static readonly HistoryEventDef RapedSlave = DefDatabase<HistoryEventDef>.GetNamed("RapedSlave");
[MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner = DefDatabase<HistoryEventDef>.GetNamed("RapedPrisoner"); [MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner = DefDatabase<HistoryEventDef>.GetNamed("RapedPrisoner");

View file

@ -26,6 +26,7 @@
<li> <li>
<li>Bestiality_Acceptable</li> <li>Bestiality_Acceptable</li>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
</li> </li>
</requireOne> </requireOne>

View file

@ -18,6 +18,16 @@
<label>sex with venerated animal</label> <label>sex with venerated animal</label>
</HistoryEventDef> </HistoryEventDef>
<HistoryEventDef>
<defName>SexWithBondedAnimal</defName>
<label>Sex with bonded</label>
</HistoryEventDef>
<HistoryEventDef>
<defName>SexWithNonBondAnimal</defName>
<label>Sex with Non Bonded</label>
</HistoryEventDef>
<!-- Precepts --> <!-- Precepts -->
<PreceptDef> <PreceptDef>
@ -258,6 +268,74 @@
</modExtensions> </modExtensions>
</PreceptDef> </PreceptDef>
<!-- Bond Only precept by Hawkeye32 -->
<PreceptDef>
<defName>Bestiality_BondOnly</defName>
<issue>Bestiality</issue>
<label>only bonded</label>
<description>Sex with Bonded animals should be honored and respected. But having sex with other animals will be denounced.</description>
<impact>High</impact>
<displayOrderInIssue>0</displayOrderInIssue>
<displayOrderInImpact>1000</displayOrderInImpact>
<conflictingMemes>
<li>HumanPrimacy</li>
</conflictingMemes>
<requiredMemes>
<li>Zoophile</li>
</requiredMemes>
<comps>
<li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>SexWithNonBondAnimal</eventDef>
<thought>Bestiality_NonBonded_Disapproved</thought>
<onlyForNonSlaves>true</onlyForNonSlaves>
</li>
<li Class="PreceptComp_KnowsMemoryThought">
<eventDef>SexWithNonBondAnimal</eventDef>
<thought>Bestiality_NonBonded_Know_Disapproved</thought>
<description>Someone sex with any animal</description>
<onlyForNonSlaves>true</onlyForNonSlaves>
</li>
<li Class="PreceptComp_SelfTookMemoryThought">
<eventDef>SexWithBondedAnimal</eventDef>
<thought>Bestiality_Bond_Approved</thought>
<onlyForNonSlaves>true</onlyForNonSlaves>
</li>
<li Class="PreceptComp_KnowsMemoryThought">
<eventDef>SexWithBondedAnimal</eventDef>
<thought>Bestiality_Bond_Approved_Know</thought>
<description>Someone sex with non bonded animal</description>
<onlyForNonSlaves>true</onlyForNonSlaves>
</li>
</comps>
<modExtensions>
<li Class="RJWSexperience.Ideology.Precepts.DefExtension_ModifyPreference">
<rules>
<li>
<filter>
<isAnimal>true</isAnimal>
<hasOneOfRelations>
<li>Bond</li>
</hasOneOfRelations>
</filter>
<multiplier>2.0</multiplier>
</li>
<li>
<filter>
<isAnimal>true</isAnimal>
<hasNoneOfRelations>
<li>Bond</li>
</hasNoneOfRelations>
</filter>
<multiplier>0.1</multiplier>
</li>
</rules>
</li>
<li Class="RJWSexperience.Ideology.Precepts.DefExtension_ModifyBestialityMtb">
<multiplier>0.5</multiplier>
</li>
</modExtensions>
</PreceptDef>
<PreceptDef> <PreceptDef>
<defName>Bestiality_Honorable</defName> <defName>Bestiality_Honorable</defName>
<issue>Bestiality</issue> <issue>Bestiality</issue>
@ -326,6 +404,7 @@
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Acceptable</li> <li>Bestiality_Acceptable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
<stages> <stages>
@ -349,6 +428,7 @@
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Acceptable</li> <li>Bestiality_Acceptable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
<stages> <stages>
@ -369,6 +449,7 @@
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Acceptable</li> <li>Bestiality_Acceptable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
<stages> <stages>
@ -392,6 +473,7 @@
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Acceptable</li> <li>Bestiality_Acceptable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
<stages> <stages>
@ -412,6 +494,7 @@
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Acceptable</li> <li>Bestiality_Acceptable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
<stages> <stages>
@ -435,6 +518,7 @@
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Acceptable</li> <li>Bestiality_Acceptable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
<stages> <stages>
@ -480,6 +564,80 @@
</stages> </stages>
</ThoughtDef> </ThoughtDef>
<ThoughtDef>
<defName>Bestiality_NonBonded_Disapproved</defName>
<durationDays>6</durationDays>
<stackLimit>1</stackLimit>
<nullifyingPrecepts>
<li>Bestiality_Honorable</li>
<li>Bestiality_Acceptable</li>
<li>Bestiality_OnlyVenerated</li>
</nullifyingPrecepts>
<stages>
<li>
<label>sex with non-bonded animal</label>
<description>I had sex with a non bonded animal. How could I?</description>
<baseMoodEffect>-5</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<defName>Bestiality_Bond_Approved</defName>
<durationDays>6</durationDays>
<stackLimit>1</stackLimit>
<nullifyingPrecepts>
<li>Bestiality_Abhorrent</li>
<li>Bestiality_Horrible</li>
<li>Bestiality_Disapproved</li>
</nullifyingPrecepts>
<stages>
<li>
<label>sex with bonded animal</label>
<description>I went wild with my bonded animal!</description>
<baseMoodEffect>8</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<defName>Bestiality_Bond_Approved_Know</defName>
<thoughtClass>Thought_MemorySocial</thoughtClass>
<durationDays>15</durationDays>
<stackLimit>2</stackLimit>
<nullifyingPrecepts>
<li>Bestiality_Abhorrent</li>
<li>Bestiality_Horrible</li>
<li>Bestiality_Disapproved</li>
</nullifyingPrecepts>
<stages>
<li>
<label>sex with bonded animal</label>
<description>Shares a special bond.</description>
<baseOpinionOffset>5</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
<ThoughtDef>
<defName>Bestiality_NonBonded_Know_Disapproved</defName>
<thoughtClass>Thought_MemorySocial</thoughtClass>
<durationDays>15</durationDays>
<stackLimit>100</stackLimit>
<stackLimitForSameOtherPawn>3</stackLimitForSameOtherPawn>
<nullifyingPrecepts>
<li>Bestiality_Honorable</li>
<li>Bestiality_Acceptable</li>
<li>Bestiality_OnlyVenerated</li>
</nullifyingPrecepts>
<stages>
<li>
<label>Had sex with a non bonded animal.</label>
<baseOpinionOffset>-10</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
<ThoughtDef> <ThoughtDef>
<defName>Bestiality_Honorable</defName> <defName>Bestiality_Honorable</defName>
<durationDays>6</durationDays> <durationDays>6</durationDays>

View file

@ -6,6 +6,7 @@
<value> <value>
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
</value> </value>
@ -16,6 +17,7 @@
<value> <value>
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
</value> </value>
@ -26,6 +28,7 @@
<value> <value>
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
</value> </value>
@ -36,6 +39,7 @@
<value> <value>
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
</value> </value>
@ -46,6 +50,7 @@
<value> <value>
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
</value> </value>
@ -56,6 +61,7 @@
<value> <value>
<nullifyingPrecepts> <nullifyingPrecepts>
<li>Bestiality_OnlyVenerated</li> <li>Bestiality_OnlyVenerated</li>
<li>Bestiality_BondOnly</li>
<li>Bestiality_Honorable</li> <li>Bestiality_Honorable</li>
</nullifyingPrecepts> </nullifyingPrecepts>
</value> </value>