mirror of
https://gitgud.io/amevarashi/rjw-sexperience-ideology.git
synced 2024-08-15 00:43:19 +00:00
Moved manual romance rules into XML
This commit is contained in:
parent
bcc9feb61a
commit
d33fa5e3ea
4 changed files with 42 additions and 18 deletions
|
@ -53,6 +53,7 @@
|
|||
<Compile Include="Harmony.cs" />
|
||||
<Compile Include="HistoryEvents\ArgsNamesCustom.cs" />
|
||||
<Compile Include="Keyed.cs" />
|
||||
<Compile Include="Precepts\DefExtension_Incest.cs" />
|
||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize.cs" />
|
||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Social.cs" />
|
||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_NonPregnant.cs" />
|
||||
|
@ -98,7 +99,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Krafs.Rimworld.Ref">
|
||||
<Version>1.4.3542</Version>
|
||||
<Version>1.4.3555</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Lib.Harmony">
|
||||
<Version>2.2.2</Version>
|
||||
|
|
|
@ -80,29 +80,15 @@ namespace RJWSexperience.Ideology.Patches
|
|||
public static bool RsiIncestuous(Pawn one, Pawn two)
|
||||
{
|
||||
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);
|
||||
|
||||
if (incestuousPrecept == null ||
|
||||
incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved ||
|
||||
incestuousPrecept == RsiPreceptDefOf.Incestuos_Forbidden)
|
||||
if (allowManualRomanceOnlyFor == null)
|
||||
{
|
||||
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 true;
|
||||
return !allowManualRomanceOnlyFor.Contains(relationDegree);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
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…
Add table
Add a link
Reference in a new issue