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
				
			
		| 
						 | 
					@ -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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue