diff --git a/1.4/Defs/PreceptDefs/Precepts_Incest.xml b/1.4/Defs/PreceptDefs/Precepts_Incest.xml index 23f82de..3a36a95 100644 --- a/1.4/Defs/PreceptDefs/Precepts_Incest.xml +++ b/1.4/Defs/PreceptDefs/Precepts_Incest.xml @@ -111,15 +111,6 @@ 60 1000 100 - -
  • - -
  • CloseRelative
  • -
  • FarRelative
  • -
  • NotRelated
  • - - -
    @@ -166,12 +157,6 @@ -
  • - -
  • FarRelative
  • -
  • NotRelated
  • - -
    @@ -290,12 +275,6 @@ -
  • - -
  • CloseRelative
  • -
  • FarRelative
  • - - diff --git a/1.4/Defs/PreceptDefs/Precepts_Submissive.xml b/1.4/Defs/PreceptDefs/Precepts_Submissive.xml index aa7ae4d..e69c135 100644 --- a/1.4/Defs/PreceptDefs/Precepts_Submissive.xml +++ b/1.4/Defs/PreceptDefs/Precepts_Submissive.xml @@ -76,11 +76,11 @@ BeenRaped_NotSubmissive Female - + @@ -140,11 +140,11 @@ BeenRaped_NotSubmissive Male - + diff --git a/Source/IdeologyAddon/IdeologyAddon.csproj b/Source/IdeologyAddon/IdeologyAddon.csproj index 63f6689..d23b8ae 100644 --- a/Source/IdeologyAddon/IdeologyAddon.csproj +++ b/Source/IdeologyAddon/IdeologyAddon.csproj @@ -53,7 +53,6 @@ - @@ -99,7 +98,7 @@ - 1.4.3555 + 1.4.3542 2.2.2 diff --git a/Source/IdeologyAddon/Patches/Rimworld_Patch.cs b/Source/IdeologyAddon/Patches/Rimworld_Patch.cs index de49fe7..55f3ba6 100644 --- a/Source/IdeologyAddon/Patches/Rimworld_Patch.cs +++ b/Source/IdeologyAddon/Patches/Rimworld_Patch.cs @@ -80,15 +80,29 @@ 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()?.allowManualRomanceOnlyFor; BloodRelationDegree relationDegree = RelationHelpers.GetBloodRelationDegree(one, two); - if (allowManualRomanceOnlyFor == null) + if (incestuousPrecept == null || + incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved || + incestuousPrecept == RsiPreceptDefOf.Incestuos_Forbidden) { 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; + } - return !allowManualRomanceOnlyFor.Contains(relationDegree); + // Modded incestuous precept? + return true; } } } diff --git a/Source/IdeologyAddon/Precepts/DefExtension_Incest.cs b/Source/IdeologyAddon/Precepts/DefExtension_Incest.cs deleted file mode 100644 index f4e474d..0000000 --- a/Source/IdeologyAddon/Precepts/DefExtension_Incest.cs +++ /dev/null @@ -1,16 +0,0 @@ -using RJWSexperience.Ideology.Filters; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using Verse; - -namespace RJWSexperience.Ideology.Precepts -{ - /// - /// Special Def extension for the Incestuous issue precepts - /// - [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Def loader")] - public class DefExtension_Incest : DefModExtension - { - public List allowManualRomanceOnlyFor; - } -}