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