mirror of
				https://github.com/Shabakur/RJW_More_.git
				synced 2024-08-14 23:57:04 +00:00 
			
		
		
		
	Added setting for consensual pussyheal
This commit is contained in:
		
							parent
							
								
									7b033ff6d6
								
							
						
					
					
						commit
						1651afe4dd
					
				
					 19 changed files with 92 additions and 3 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -7,4 +7,11 @@
 | 
			
		|||
		<reportString>forced masturbatin'.</reportString>
 | 
			
		||||
		<casualInterruptible>false</casualInterruptible>
 | 
			
		||||
	</JobDef>
 | 
			
		||||
	
 | 
			
		||||
	<JobDef>
 | 
			
		||||
		<defName>MiscSexReciever</defName>
 | 
			
		||||
		<driverClass>RJW_More_Genes.JobDriver_MiscSexBaseReciever</driverClass>
 | 
			
		||||
		<reportString>lovin'.</reportString>
 | 
			
		||||
		<casualInterruptible>false</casualInterruptible>
 | 
			
		||||
	</JobDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -12,5 +12,7 @@ namespace RJW_More_Genes
 | 
			
		|||
    public static class JobDefOf
 | 
			
		||||
    {
 | 
			
		||||
        public static readonly JobDef Mindbreak;
 | 
			
		||||
        public static readonly JobDef MiscSexReciever;
 | 
			
		||||
        public static readonly JobDef HealPussy;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,11 @@ namespace RJW_More_Genes
 | 
			
		|||
            //this.FailOnCannotTouch(TargetIndex.B, PathEndMode.OnCell);
 | 
			
		||||
            this.FailOnDespawnedNullOrForbidden(this.iTarget);
 | 
			
		||||
            //this.FailOn(() => !target.health.capacities.CanBeAwake);
 | 
			
		||||
            JobDef PartnerJob = xxx.gettin_raped;
 | 
			
		||||
            JobDef PartnerJob = xxx.getting_quickie;
 | 
			
		||||
			if(RJWMGSettings.consensual_pussyheal)
 | 
			
		||||
            {
 | 
			
		||||
				PartnerJob = JobDefOf.MiscSexReciever;
 | 
			
		||||
            }
 | 
			
		||||
			yield return Toils_Goto.Goto(TargetIndex.A, PathEndMode.OnCell);
 | 
			
		||||
            yield return new Toil
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -46,6 +50,11 @@ namespace RJW_More_Genes
 | 
			
		|||
					if (comp.props is CompProperties_SexInteractionRequirements)
 | 
			
		||||
                    {
 | 
			
		||||
						CompProperties_SexInteractionRequirements sexpropsreq = comp.props as CompProperties_SexInteractionRequirements;
 | 
			
		||||
						if (RJWMGSettings.gene_pussyheal)
 | 
			
		||||
                        {
 | 
			
		||||
							sexpropsreq.tags.Clear();
 | 
			
		||||
							sexpropsreq.tags.Add(rjw.Modules.Interactions.Enums.InteractionTag.Consensual);
 | 
			
		||||
                        }
 | 
			
		||||
						this.Sexprops = SexInteractionUtility.GenerateSexProps(this.pawn, this.Partner, sexpropsreq);						
 | 
			
		||||
                    }
 | 
			
		||||
				}	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										65
									
								
								1.4/Source/RJW_More_Genes/JobDriver_MiscSexBaseReciever.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								1.4/Source/RJW_More_Genes/JobDriver_MiscSexBaseReciever.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using Verse;
 | 
			
		||||
using Verse.AI;
 | 
			
		||||
using rjw;
 | 
			
		||||
 | 
			
		||||
namespace RJW_More_Genes
 | 
			
		||||
{
 | 
			
		||||
	//Made this quickly may have some mistakes
 | 
			
		||||
    public class JobDriver_MiscSexBaseReciever: JobDriver_SexBaseReciever
 | 
			
		||||
	{
 | 
			
		||||
		protected override IEnumerable<Toil> MakeNewToils()
 | 
			
		||||
		{
 | 
			
		||||
			base.setup_ticks();
 | 
			
		||||
			this.parteners.Add(base.Partner);
 | 
			
		||||
			this.FailOnDespawnedOrNull(this.iTarget);
 | 
			
		||||
			this.FailOn(() => !base.Partner.health.capacities.CanBeAwake);
 | 
			
		||||
			this.FailOn(() => this.pawn.Drafted);
 | 
			
		||||
			this.FailOn(() => base.Partner.Drafted);
 | 
			
		||||
			Toil toil = this.MakeSexToil();
 | 
			
		||||
			toil.FailOn(() => base.Partner.CurJob.def != JobDefOf.HealPussy); //or other jobs in the future
 | 
			
		||||
			yield return toil;
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
			yield break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private Toil MakeSexToil()
 | 
			
		||||
		{
 | 
			
		||||
			Toil toil = new Toil();
 | 
			
		||||
			toil.defaultCompleteMode = ToilCompleteMode.Never;
 | 
			
		||||
			toil.socialMode = RandomSocialMode.Off;
 | 
			
		||||
			toil.handlingFacing = true;
 | 
			
		||||
			toil.tickAction = delegate ()
 | 
			
		||||
			{
 | 
			
		||||
				if (this.pawn.IsHashIntervalTick(this.ticks_between_hearts))
 | 
			
		||||
				{
 | 
			
		||||
					base.ThrowMetaIconF(this.pawn.Position, this.pawn.Map, FleckDefOf.Heart);
 | 
			
		||||
				}
 | 
			
		||||
			};
 | 
			
		||||
			toil.AddEndCondition(delegate
 | 
			
		||||
			{
 | 
			
		||||
				if (this.parteners.Count <= 0)
 | 
			
		||||
				{
 | 
			
		||||
					return JobCondition.Succeeded;
 | 
			
		||||
				}
 | 
			
		||||
				return JobCondition.Ongoing;
 | 
			
		||||
			});
 | 
			
		||||
			toil.AddFinishAction(delegate
 | 
			
		||||
			{
 | 
			
		||||
				if (xxx.is_human(this.pawn))
 | 
			
		||||
				{
 | 
			
		||||
					this.pawn.Drawer.renderer.graphics.ResolveApparelGraphics();
 | 
			
		||||
				}
 | 
			
		||||
				GlobalTextureAtlasManager.TryMarkPawnFrameSetDirty(this.pawn);
 | 
			
		||||
			});
 | 
			
		||||
			toil.socialMode = RandomSocialMode.Off;
 | 
			
		||||
			return toil;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +21,10 @@ namespace RJW_More_Genes
 | 
			
		|||
            listing_Standard.Begin(rect);
 | 
			
		||||
            listing_Standard.Gap(24f);
 | 
			
		||||
            listing_Standard.CheckboxLabeled("gene pussyheal", ref gene_pussyheal, "disable the effects of the gene", 0f, 1f);
 | 
			
		||||
            listing_Standard.Gap(3f);
 | 
			
		||||
            listing_Standard.CheckboxLabeled("sexfrenzy", ref sexfrenzy, "disable the effects", 0f, 1f);
 | 
			
		||||
            listing_Standard.Gap(3f);
 | 
			
		||||
            listing_Standard.CheckboxLabeled("consensual_pussyheal", ref consensual_pussyheal, "pussyheal counts as consensual sex instead of rape", 0f, 1f);
 | 
			
		||||
            listing_Standard.End();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -30,8 +33,10 @@ namespace RJW_More_Genes
 | 
			
		|||
            base.ExposeData();
 | 
			
		||||
            Scribe_Values.Look<bool>(ref RJWMGSettings.gene_pussyheal, "gene_pussyheal", RJWMGSettings.gene_pussyheal, true);
 | 
			
		||||
            Scribe_Values.Look<bool>(ref RJWMGSettings.sexfrenzy, "sexfrenzy", RJWMGSettings.sexfrenzy, true);
 | 
			
		||||
            Scribe_Values.Look<bool>(ref RJWMGSettings.consensual_pussyheal, "consensual_pussyheal", RJWMGSettings.consensual_pussyheal, false);
 | 
			
		||||
        }
 | 
			
		||||
        public static bool gene_pussyheal = true;
 | 
			
		||||
        public static bool sexfrenzy = true;
 | 
			
		||||
        public static bool consensual_pussyheal = true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,6 +69,7 @@
 | 
			
		|||
    </Reference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="JobDriver_CastAbilityAfterSex.cs" />
 | 
			
		||||
    <Compile Include="Royalty\AbilityUtility.cs" />
 | 
			
		||||
    <Compile Include="Royalty\CompAbilityEffect_Orgasm.cs" />
 | 
			
		||||
    <Compile Include="Royalty\CompAbilityEffect_SexFrenzy.cs" />
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +86,7 @@
 | 
			
		|||
    <Compile Include="Royalty\HediffComp_OrgasmCycle.cs" />
 | 
			
		||||
    <Compile Include="HediffDefOf.cs" />
 | 
			
		||||
    <Compile Include="JobDefOf.cs" />
 | 
			
		||||
    <Compile Include="JobDriver_CastAbilityAfterSex.cs" />
 | 
			
		||||
    <Compile Include="JobDriver_MiscSexBaseReciever.cs" />
 | 
			
		||||
    <Compile Include="JobDriver_Mindbreak.cs" />
 | 
			
		||||
    <Compile Include="MentalStateDefOf.cs" />
 | 
			
		||||
    <Compile Include="PatchProcessSex.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1 +1 @@
 | 
			
		|||
a5ab93a622659cbd8dd55dafbd7ec218b2635267
 | 
			
		||||
a9c54690bdfa5f3538ab47c50ae6d6f8f88e1b94
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue