mirror of
				https://github.com/amevarashi/RJW-Sexperience.git
				synced 2024-08-14 23:54:08 +00:00 
			
		
		
		
	No virgin? trait for tribal pawns
This commit is contained in:
		
							parent
							
								
									0743575d56
								
							
						
					
					
						commit
						3c4060f8bd
					
				
					 2 changed files with 14 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -27,16 +27,25 @@ namespace RJWSexperience
 | 
			
		|||
	[HarmonyPatch(typeof(ParentRelationUtility), nameof(ParentRelationUtility.SetMother))]
 | 
			
		||||
	public static class Rimworld_Patch_RemoveVirginOnSetMother
 | 
			
		||||
	{
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// Retcon virginity if game desides to generate a child for the pawn
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		public static void Postfix(Pawn pawn, Pawn newMother)
 | 
			
		||||
		{
 | 
			
		||||
			if (!pawn.relations.DirectRelationExists(PawnRelationDefOf.Parent, newMother))
 | 
			
		||||
				return;
 | 
			
		||||
				return; // Failed to add relation?
 | 
			
		||||
 | 
			
		||||
			Trait virgin = newMother.story?.traits?.GetTrait(RsDefOf.Trait.Virgin, Virginity.TraitDegree.FemaleVirgin);
 | 
			
		||||
			if (virgin != null)
 | 
			
		||||
			{
 | 
			
		||||
				newMother.story.traits.RemoveTrait(virgin);
 | 
			
		||||
				newMother.story.traits.GainTrait(new Trait(RsDefOf.Trait.Virgin, Virginity.TraitDegree.FemaleAfterSurgery));
 | 
			
		||||
 | 
			
		||||
				// Player may notice the missing trait on their pawns.
 | 
			
		||||
				// Doing this for all pawns results in up to a half of tribal raid generating with "virgin?"
 | 
			
		||||
				if (newMother.IsColonist || newMother.IsPrisonerOfColony)
 | 
			
		||||
				{
 | 
			
		||||
					newMother.story.traits.GainTrait(new Trait(RsDefOf.Trait.Virgin, Virginity.TraitDegree.FemaleAfterSurgery));
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,9 @@ namespace RJWSexperience.Virginity
 | 
			
		|||
 | 
			
		||||
			if (pawn.gender == Gender.Female && !pawn.IsVirgin())
 | 
			
		||||
			{
 | 
			
		||||
				if (Rand.Chance(hymenSurgeryChance))
 | 
			
		||||
				TechLevel techLevel = pawn.Faction?.def.techLevel ?? TechLevel.Industrial;
 | 
			
		||||
 | 
			
		||||
				if (techLevel >= TechLevel.Industrial && Rand.Chance(hymenSurgeryChance))
 | 
			
		||||
				{
 | 
			
		||||
					Trait virgin = new Trait(RsDefOf.Trait.Virgin, TraitDegree.FemaleAfterSurgery, true);
 | 
			
		||||
					pawn.story.traits.GainTrait(virgin);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue