mirror of
https://gitgud.io/amevarashi/rjw-sexperience-ideology.git
synced 2024-08-15 00:43:19 +00:00
Compare commits
2 commits
bcc9feb61a
...
355d409eb6
Author | SHA1 | Date | |
---|---|---|---|
|
355d409eb6 | ||
|
d33fa5e3ea |
5 changed files with 46 additions and 22 deletions
|
@ -111,6 +111,15 @@
|
||||||
<displayOrderInIssue>60</displayOrderInIssue>
|
<displayOrderInIssue>60</displayOrderInIssue>
|
||||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||||
<defaultSelectionWeight>100</defaultSelectionWeight>
|
<defaultSelectionWeight>100</defaultSelectionWeight>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJWSexperience.Ideology.Precepts.DefExtension_Incest">
|
||||||
|
<allowManualRomanceOnlyFor>
|
||||||
|
<li>CloseRelative</li>
|
||||||
|
<li>FarRelative</li>
|
||||||
|
<li>NotRelated</li>
|
||||||
|
</allowManualRomanceOnlyFor>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
</PreceptDef>
|
</PreceptDef>
|
||||||
|
|
||||||
<PreceptDef>
|
<PreceptDef>
|
||||||
|
@ -157,6 +166,12 @@
|
||||||
</li>
|
</li>
|
||||||
</rules>
|
</rules>
|
||||||
</li>
|
</li>
|
||||||
|
<li Class="RJWSexperience.Ideology.Precepts.DefExtension_Incest">
|
||||||
|
<allowManualRomanceOnlyFor>
|
||||||
|
<li>FarRelative</li>
|
||||||
|
<li>NotRelated</li>
|
||||||
|
</allowManualRomanceOnlyFor>
|
||||||
|
</li>
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
</PreceptDef>
|
</PreceptDef>
|
||||||
|
|
||||||
|
@ -275,6 +290,12 @@
|
||||||
</li>
|
</li>
|
||||||
</rules>
|
</rules>
|
||||||
</li>
|
</li>
|
||||||
|
<li Class="RJWSexperience.Ideology.Precepts.DefExtension_Incest">
|
||||||
|
<allowManualRomanceOnlyFor>
|
||||||
|
<li>CloseRelative</li>
|
||||||
|
<li>FarRelative</li>
|
||||||
|
</allowManualRomanceOnlyFor>
|
||||||
|
</li>
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
</PreceptDef>
|
</PreceptDef>
|
||||||
|
|
||||||
|
|
|
@ -76,11 +76,11 @@
|
||||||
<thought>BeenRaped_NotSubmissive</thought>
|
<thought>BeenRaped_NotSubmissive</thought>
|
||||||
<gender>Female</gender>
|
<gender>Female</gender>
|
||||||
</li>
|
</li>
|
||||||
<li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
|
<!--<li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
|
||||||
<eventDef>RSI_RapedSlave</eventDef>
|
<eventDef>RSI_RapedSlave</eventDef>
|
||||||
<thought>Raped_Know_NotBeingSubmissive</thought>
|
<thought>Raped_Know_NotBeingSubmissive</thought>
|
||||||
<doersGender>Male</doersGender>
|
<doersGender>Male</doersGender>
|
||||||
</li>
|
</li>-->
|
||||||
</comps>
|
</comps>
|
||||||
</PreceptDef>
|
</PreceptDef>
|
||||||
|
|
||||||
|
@ -140,11 +140,11 @@
|
||||||
<thought>BeenRaped_NotSubmissive</thought>
|
<thought>BeenRaped_NotSubmissive</thought>
|
||||||
<gender>Male</gender>
|
<gender>Male</gender>
|
||||||
</li>
|
</li>
|
||||||
<li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
|
<!--<li Class="RJWSexperience.Ideology.Precepts.Comp_KnowsMemoryThought_Gendered">
|
||||||
<eventDef>RSI_RapedSlave</eventDef>
|
<eventDef>RSI_RapedSlave</eventDef>
|
||||||
<thought>Raped_Know_NotBeingSubmissive</thought>
|
<thought>Raped_Know_NotBeingSubmissive</thought>
|
||||||
<doersGender>Female</doersGender>
|
<doersGender>Female</doersGender>
|
||||||
</li>
|
</li>-->
|
||||||
</comps>
|
</comps>
|
||||||
</PreceptDef>
|
</PreceptDef>
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@
|
||||||
<Compile Include="Harmony.cs" />
|
<Compile Include="Harmony.cs" />
|
||||||
<Compile Include="HistoryEvents\ArgsNamesCustom.cs" />
|
<Compile Include="HistoryEvents\ArgsNamesCustom.cs" />
|
||||||
<Compile Include="Keyed.cs" />
|
<Compile Include="Keyed.cs" />
|
||||||
|
<Compile Include="Precepts\DefExtension_Incest.cs" />
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize.cs" />
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Social.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Social.cs" />
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_NonPregnant.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_NonPregnant.cs" />
|
||||||
|
@ -98,7 +99,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Krafs.Rimworld.Ref">
|
<PackageReference Include="Krafs.Rimworld.Ref">
|
||||||
<Version>1.4.3542</Version>
|
<Version>1.4.3555</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Lib.Harmony">
|
<PackageReference Include="Lib.Harmony">
|
||||||
<Version>2.2.2</Version>
|
<Version>2.2.2</Version>
|
||||||
|
|
|
@ -80,29 +80,15 @@ namespace RJWSexperience.Ideology.Patches
|
||||||
public static bool RsiIncestuous(Pawn one, Pawn two)
|
public static bool RsiIncestuous(Pawn one, Pawn two)
|
||||||
{
|
{
|
||||||
PreceptDef incestuousPrecept = one.Ideo?.PreceptsListForReading.Select(precept => precept.def).FirstOrFallback(def => def.issue == VariousDefOf.Incestuos);
|
PreceptDef incestuousPrecept = one.Ideo?.PreceptsListForReading.Select(precept => precept.def).FirstOrFallback(def => def.issue == VariousDefOf.Incestuos);
|
||||||
|
var allowManualRomanceOnlyFor = incestuousPrecept?.GetModExtension<DefExtension_Incest>()?.allowManualRomanceOnlyFor;
|
||||||
BloodRelationDegree relationDegree = RelationHelpers.GetBloodRelationDegree(one, two);
|
BloodRelationDegree relationDegree = RelationHelpers.GetBloodRelationDegree(one, two);
|
||||||
|
|
||||||
if (incestuousPrecept == null ||
|
if (allowManualRomanceOnlyFor == null)
|
||||||
incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved ||
|
|
||||||
incestuousPrecept == RsiPreceptDefOf.Incestuos_Forbidden)
|
|
||||||
{
|
{
|
||||||
return relationDegree < BloodRelationDegree.NotRelated;
|
return relationDegree < BloodRelationDegree.NotRelated;
|
||||||
}
|
}
|
||||||
else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_Free)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved_CloseOnly)
|
|
||||||
{
|
|
||||||
return relationDegree == BloodRelationDegree.CloseRelative;
|
|
||||||
}
|
|
||||||
else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_IncestOnly)
|
|
||||||
{
|
|
||||||
return relationDegree == BloodRelationDegree.NotRelated;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Modded incestuous precept?
|
return !allowManualRomanceOnlyFor.Contains(relationDegree);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
16
Source/IdeologyAddon/Precepts/DefExtension_Incest.cs
Normal file
16
Source/IdeologyAddon/Precepts/DefExtension_Incest.cs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
using RJWSexperience.Ideology.Filters;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJWSexperience.Ideology.Precepts
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Special Def extension for the Incestuous issue precepts
|
||||||
|
/// </summary>
|
||||||
|
[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Def loader")]
|
||||||
|
public class DefExtension_Incest : DefModExtension
|
||||||
|
{
|
||||||
|
public List<BloodRelationDegree> allowManualRomanceOnlyFor;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue