mirror of
				https://github.com/vegapnk/RJW-Genes.git
				synced 2024-08-15 00:23:31 +00:00 
			
		
		
		
	Succubus xenotype & pawnkind, sex preferencees & start incident
Made xenotype and pawnkind, modified part preferences
This commit is contained in:
		
							parent
							
								
									09157e923d
								
							
						
					
					
						commit
						4a4b436270
					
				
					 13 changed files with 234 additions and 54 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -30,7 +30,7 @@
 | 
			
		|||
	  <li Class="RJW_Genes.CompProperties_AbilityLifeForceCost">
 | 
			
		||||
        <fertilinCost>0.2</fertilinCost>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li Class="RJW_Genes.CompProperties_AbilityPussyHeal"> <!-- namespace needs to be changed when copied to another mod-->
 | 
			
		||||
      <li Class="RJW_Genes.CompProperties_AbilityPussyHeal"> 
 | 
			
		||||
        <tendQualityRange>0.4~0.8</tendQualityRange> 
 | 
			
		||||
      </li>
 | 
			
		||||
	  <li Class="RJW_Genes.CompProperties_SexInteractionRequirements"> 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@
 | 
			
		|||
	</GeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<GeneDef>
 | 
			
		||||
		<defName>LifeForceDrain</defName>
 | 
			
		||||
		<defName>rjw_genes_lifeforcedrain</defName>
 | 
			
		||||
		<label>fertilin drain</label>
 | 
			
		||||
		<labelShortAdj>draining</labelShortAdj>
 | 
			
		||||
		<description>Carriers lose an additional 15 fertilin per day from biological entropy.</description>
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +50,7 @@
 | 
			
		|||
	</GeneDef>
 | 
			
		||||
	
 | 
			
		||||
	<GeneDef>
 | 
			
		||||
		<defName>rjw_genes_pussyhealer</defName>
 | 
			
		||||
		<defName>rjw_genes_pussyhealing</defName>
 | 
			
		||||
		<label>Pussy Healer</label>
 | 
			
		||||
		<labelShortAdj>pussyhealer</labelShortAdj>
 | 
			
		||||
		<description>Carriers of this gene are able use vaginal sex to tend to other's wounds.</description>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										30
									
								
								Common/Defs/Genes/XenotypeDefs.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								Common/Defs/Genes/XenotypeDefs.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Defs>
 | 
			
		||||
 | 
			
		||||
  <XenotypeDef>
 | 
			
		||||
    <defName>Succubus</defName>
 | 
			
		||||
    <label>succubus</label>
 | 
			
		||||
    <description>A succubus, an ancient race created long ago to fullfill sexual fantasies of humankind. (better description required) \n\nSuccubi require fertilin to survive, which is commonly derived from cum.</description>    <iconPath>UI/Icons/Xenotypes/Baseliner</iconPath>
 | 
			
		||||
	<inheritable>true</inheritable>
 | 
			
		||||
    <displayPriority>1000</displayPriority>
 | 
			
		||||
    <factionlessGenerationWeight>0</factionlessGenerationWeight>
 | 
			
		||||
	<genes>
 | 
			
		||||
      <li>rjw_genes_female_only</li>
 | 
			
		||||
	  <li>Beauty_Beautiful</li>
 | 
			
		||||
	  <li>rjw_genes_succubus_tail</li>
 | 
			
		||||
	  <li>rjw_genes_Succubus_Wings</li>
 | 
			
		||||
      <li>rjw_genes_aphrodisiac_pheromones</li>
 | 
			
		||||
      <li>rjw_genes_orgasm_rush</li>
 | 
			
		||||
      <li>rjw_genes_hypersexual</li>
 | 
			
		||||
      <li>rjw_genes_lifeforce</li>
 | 
			
		||||
      <li>rjw_genes_lifeforcedrain</li>
 | 
			
		||||
      <li>rjw_genes_pussyhealer</li>
 | 
			
		||||
      <li>rjw_genes_cockeater</li>
 | 
			
		||||
      <li>rjw_genes_paralysingkiss</li>
 | 
			
		||||
      <li>rjw_genes_seduce</li>
 | 
			
		||||
      <li>rjw_genes_vaginal_absorber</li>
 | 
			
		||||
      <li>rjw_genes_anal_absorber</li>
 | 
			
		||||
      <li>rjw_genes_drainer</li>
 | 
			
		||||
    </genes>
 | 
			
		||||
  </XenotypeDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										16
									
								
								Common/Defs/IncidentsDefs/Incidents_Succubus.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Common/Defs/IncidentsDefs/Incidents_Succubus.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
 | 
			
		||||
<Defs>	
 | 
			
		||||
	<IncidentDef>
 | 
			
		||||
		<defName>SuccubusDreamVisit</defName>
 | 
			
		||||
		<label>dirty dreams</label>
 | 
			
		||||
		<category>Misc</category>
 | 
			
		||||
		<targetTags>
 | 
			
		||||
			<li>Map_PlayerHome</li>
 | 
			
		||||
		</targetTags>
 | 
			
		||||
		<workerClass>RJW_Genes.IncidentWorker_SuccubusDreamVisit</workerClass>
 | 
			
		||||
		<baseChance>1.0</baseChance>
 | 
			
		||||
		<minRefireDays>10</minRefireDays>
 | 
			
		||||
		<pointsScaleable>false</pointsScaleable>
 | 
			
		||||
	</IncidentDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										45
									
								
								Common/Defs/PawnKindDefs/PawnKind_Succubus.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								Common/Defs/PawnKindDefs/PawnKind_Succubus.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
 | 
			
		||||
<Defs>
 | 
			
		||||
	<PawnKindDef>
 | 
			
		||||
		<defName>Succubus</defName>
 | 
			
		||||
		<label>succubus</label>
 | 
			
		||||
		<combatPower>50</combatPower>
 | 
			
		||||
		<race>Human</race>
 | 
			
		||||
		<xenotypeSet>
 | 
			
		||||
			<xenotypeChances>
 | 
			
		||||
				<Succubus>999</Succubus>
 | 
			
		||||
			</xenotypeChances>
 | 
			
		||||
		</xenotypeSet>
 | 
			
		||||
		<acceptArrestChanceFactor>0.5</acceptArrestChanceFactor>
 | 
			
		||||
		<useFactionXenotypes>false</useFactionXenotypes>
 | 
			
		||||
		<minGenerationAge>18</minGenerationAge>
 | 
			
		||||
		<maxGenerationAge>27</maxGenerationAge>
 | 
			
		||||
		<itemQuality>Poor</itemQuality>
 | 
			
		||||
		<backstoryCryptosleepCommonality>0.0</backstoryCryptosleepCommonality>
 | 
			
		||||
		<isFighter>false</isFighter>
 | 
			
		||||
		<gearHealthRange>
 | 
			
		||||
			<min>0.3</min>
 | 
			
		||||
			<max>0.9</max>
 | 
			
		||||
		</gearHealthRange>
 | 
			
		||||
		<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
 | 
			
		||||
		<apparelTags>
 | 
			
		||||
			<li>Tribal</li>
 | 
			
		||||
		</apparelTags>
 | 
			
		||||
		<apparelMoney>
 | 
			
		||||
			<min>0</min>
 | 
			
		||||
			<max>0</max>
 | 
			
		||||
		</apparelMoney>
 | 
			
		||||
		<apparelAllowHeadgearChance>0</apparelAllowHeadgearChance>
 | 
			
		||||
		<techHediffsMoney>
 | 
			
		||||
			<min>0</min>
 | 
			
		||||
			<max>0</max>
 | 
			
		||||
		</techHediffsMoney>
 | 
			
		||||
		<techHediffsTags>
 | 
			
		||||
			<li>Poor</li>
 | 
			
		||||
		</techHediffsTags>
 | 
			
		||||
		<techHediffsChance>0.0</techHediffsChance>
 | 
			
		||||
		<initialWillRange>2~4</initialWillRange>
 | 
			
		||||
		<initialResistanceRange>28~44</initialResistanceRange>
 | 
			
		||||
	</PawnKindDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			@ -75,7 +75,7 @@ namespace RJW_Genes
 | 
			
		|||
 | 
			
		||||
		// LifeForce
 | 
			
		||||
		public static readonly GeneDef rjw_genes_lifeforce;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_pussyhealer;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_pussyhealing;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_vaginal_absorber;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_anal_absorber;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_drainer;
 | 
			
		||||
| 
						 | 
				
			
			@ -87,5 +87,7 @@ namespace RJW_Genes
 | 
			
		|||
		public static readonly GeneDef rjw_genes_youth_fountain;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_sex_age_drain;
 | 
			
		||||
		public static readonly HediffDef rjw_genes_orgasm_rush_hediff;
 | 
			
		||||
 | 
			
		||||
		public static readonly XenotypeDef Succubus;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -162,7 +162,7 @@ namespace RJW_Genes
 | 
			
		|||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return pawn.genes.HasGene(GeneDefOf.rjw_genes_pussyhealer);
 | 
			
		||||
            return pawn.genes.HasGene(GeneDefOf.rjw_genes_pussyhealing);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static bool IsUnbreakable(Pawn pawn)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										87
									
								
								Source/Genes/Life_Force/IncidentWorker_SuccubusDreamVisit.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								Source/Genes/Life_Force/IncidentWorker_SuccubusDreamVisit.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using rjw;
 | 
			
		||||
namespace RJW_Genes
 | 
			
		||||
{
 | 
			
		||||
    public class IncidentWorker_SuccubusDreamVisit : IncidentWorker
 | 
			
		||||
    {
 | 
			
		||||
        //This incidint will only fire if there is a pawn asleep which while sexneed is lower than 0.25
 | 
			
		||||
        protected override bool CanFireNowSub(IncidentParms parms)
 | 
			
		||||
        {
 | 
			
		||||
            if (!base.CanFireNowSub(parms))
 | 
			
		||||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            Map map = (Map)parms.target;
 | 
			
		||||
            if (!map.mapTemperature.SeasonAcceptableFor(ThingDefOf.Human))
 | 
			
		||||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            foreach (Pawn pawn in map.mapPawns.FreeColonistsAndPrisonersSpawned)
 | 
			
		||||
            {
 | 
			
		||||
                if (pawn.jobs.curDriver.asleep && xxx.need_some_sex(pawn) > 1f)
 | 
			
		||||
                {
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected override bool TryExecuteWorker(IncidentParms parms)
 | 
			
		||||
        {
 | 
			
		||||
            Map map = (Map)parms.target;
 | 
			
		||||
            Pawn victim = ValidVictims(map).RandomElement();
 | 
			
		||||
            if (victim == null)
 | 
			
		||||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            IntVec3 loc = victim.Position;
 | 
			
		||||
            Faction faction;
 | 
			
		||||
            if (!this.TryFindFormerFaction(out faction))
 | 
			
		||||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //Spawn succubus at pawn and initiate sex
 | 
			
		||||
            Pawn succubus = PawnGenerator.GeneratePawn(new PawnGenerationRequest(PawnKindDef.Named("Succubus"), faction, PawnGenerationContext.NonPlayer, -1, 
 | 
			
		||||
                false, false, false, true, false, 1f, false, true, false, true, true, false, false, false, false, 0f, 0f, null, 1f, null, null, 
 | 
			
		||||
                null, null, null, null, null, null, null, null, null, null, false, false, false, false, null, null, null, null, null, 0f,
 | 
			
		||||
                DevelopmentalStage.Adult, null, null, null, false));
 | 
			
		||||
            succubus.SetFaction(null, null);
 | 
			
		||||
            GenSpawn.Spawn(succubus, loc, map, WipeMode.Vanish);
 | 
			
		||||
            
 | 
			
		||||
            //Sends letter
 | 
			
		||||
            //string value = succubus.DevelopmentalStage.Child() ? "FeralChild".Translate().ToString() : succubus.KindLabel;
 | 
			
		||||
            //TaggedString value2 = succubus.DevelopmentalStage.Child() ? "Child".Translate() : "Person".Translate();
 | 
			
		||||
            //TaggedString baseLetterLabel = this.def.letterLabel.Formatted(value).CapitalizeFirst();
 | 
			
		||||
            //TaggedString baseLetterText = this.def.letterText.Formatted(succubus.NameShortColored, value2, succubus.Named("PAWN")).AdjustedFor(succubus, "PAWN", true).CapitalizeFirst();
 | 
			
		||||
            //PawnRelationUtility.TryAppendRelationsWithColonistsInfo(ref baseLetterText, ref baseLetterLabel, succubus);
 | 
			
		||||
            //base.SendStandardLetter(baseLetterLabel, baseLetterText, this.def.letterDef, parms, succubus, Array.Empty<NamedArgument>());
 | 
			
		||||
           
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private IEnumerable<Pawn> ValidVictims(Map map)
 | 
			
		||||
        {
 | 
			
		||||
            foreach (Pawn pawn in map.mapPawns.FreeColonistsAndPrisonersSpawned)
 | 
			
		||||
            {
 | 
			
		||||
                if (pawn.jobs.curDriver.asleep && xxx.need_some_sex(pawn) > 1f)
 | 
			
		||||
                {
 | 
			
		||||
                    yield return pawn;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            yield break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private bool TryFindFormerFaction(out Faction formerFaction)
 | 
			
		||||
        {
 | 
			
		||||
            return Find.FactionManager.TryGetRandomNonColonyHumanlikeFaction(out formerFaction, false, true, TechLevel.Undefined, false);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -7,7 +7,6 @@ using System.Text;
 | 
			
		|||
using System.Threading.Tasks;
 | 
			
		||||
using RimWorld;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Genes
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -114,30 +113,6 @@ namespace RJW_Genes
 | 
			
		|||
			if (props.sexType == xxx.rjwSextype.Sixtynine)
 | 
			
		||||
			{
 | 
			
		||||
				absorb_factor += 1f;
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
			else if (props.sexType == xxx.rjwSextype.Vaginal)
 | 
			
		||||
			{
 | 
			
		||||
				//with insertion absorbtion or vaginal cum absorbtion 
 | 
			
		||||
				//absorb_factor += 1f;
 | 
			
		||||
			}
 | 
			
		||||
			else if (props.sexType == xxx.rjwSextype.DoublePenetration)
 | 
			
		||||
			{
 | 
			
		||||
				if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_vaginal_absorber))
 | 
			
		||||
				{
 | 
			
		||||
					//with insertion absorbtion?
 | 
			
		||||
					//absorb_factor += 0.5f;
 | 
			
		||||
				}
 | 
			
		||||
				if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_anal_absorber))
 | 
			
		||||
				{
 | 
			
		||||
					//with insertion absorbtion?
 | 
			
		||||
					//absorb_factor += 0.5f;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (props.sexType == xxx.rjwSextype.Scissoring)
 | 
			
		||||
			{
 | 
			
		||||
				//with vaginal cum absorption && vaginal absorbtion
 | 
			
		||||
				//absorb_factor += 1f;
 | 
			
		||||
			}
 | 
			
		||||
			return absorb_factor;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -148,7 +123,6 @@ namespace RJW_Genes
 | 
			
		|||
			if (props.sexType == xxx.rjwSextype.Oral || props.sexType == xxx.rjwSextype.Fellatio || props.sexType == xxx.rjwSextype.Sixtynine)
 | 
			
		||||
			{
 | 
			
		||||
				absorb_factor += 1f;
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
			else if (props.sexType == xxx.rjwSextype.Vaginal && GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_vaginal_absorber))
 | 
			
		||||
			{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,42 +10,64 @@ using Verse;
 | 
			
		|||
namespace RJW_Genes.Interactions
 | 
			
		||||
{
 | 
			
		||||
	//Summary//
 | 
			
		||||
	//Set custom preferences for pawn. Gets integrated to rjw by AddtoIPartPreferenceRule in First
 | 
			
		||||
	//Set custom preferences for pawn. Gets integrated into rjw by AddtoIPartPreferenceRule in First
 | 
			
		||||
	//Depending on the level of lifeforce increase the chance for using the mouth.
 | 
			
		||||
	public class GenesPartKindUsageRule : IPartPreferenceRule
 | 
			
		||||
    {
 | 
			
		||||
		public IEnumerable<Weighted<LewdablePartKind>> ModifiersForDominant(InteractionContext context)
 | 
			
		||||
		{
 | 
			
		||||
			Pawn pawn = context.Internals.Dominant.Pawn;
 | 
			
		||||
			if (GeneUtility.HasCriticalLifeForce(pawn))
 | 
			
		||||
			Gene_LifeForce gene = pawn.genes.GetFirstGeneOfType<Gene_LifeForce>();
 | 
			
		||||
			if (gene != null)
 | 
			
		||||
			{
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(50f, LewdablePartKind.Mouth);
 | 
			
		||||
			}
 | 
			
		||||
			else if (GeneUtility.HasLowLifeForce(pawn))
 | 
			
		||||
			{
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(10f, LewdablePartKind.Mouth);
 | 
			
		||||
			}
 | 
			
		||||
			else if (GeneUtility.HasLifeForce(pawn))
 | 
			
		||||
			{
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(2f, LewdablePartKind.Mouth);
 | 
			
		||||
				float weight = 2f;
 | 
			
		||||
				if (gene.Value < gene.MinLevelForAlert)
 | 
			
		||||
				{
 | 
			
		||||
					weight *= 10;
 | 
			
		||||
				}
 | 
			
		||||
				else if (gene.Value < gene.targetValue)
 | 
			
		||||
				{
 | 
			
		||||
					weight *= 2.5f;
 | 
			
		||||
				}
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
 | 
			
		||||
				if (pawn.genes.HasGene(GeneDefOf.rjw_genes_vaginal_absorber))
 | 
			
		||||
				{
 | 
			
		||||
					yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
 | 
			
		||||
				}
 | 
			
		||||
				if (pawn.genes.HasGene(GeneDefOf.rjw_genes_anal_absorber))
 | 
			
		||||
				{
 | 
			
		||||
					yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			yield break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public IEnumerable<Weighted<LewdablePartKind>> ModifiersForSubmissive(InteractionContext context)
 | 
			
		||||
		{
 | 
			
		||||
			Pawn pawn = context.Internals.Submissive.Pawn;
 | 
			
		||||
			if (GeneUtility.HasCriticalLifeForce(pawn))
 | 
			
		||||
			Pawn pawn = context.Internals.Dominant.Pawn;
 | 
			
		||||
			Gene_LifeForce gene = pawn.genes.GetFirstGeneOfType<Gene_LifeForce>();
 | 
			
		||||
			if (gene != null)
 | 
			
		||||
			{
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(50f, LewdablePartKind.Mouth);
 | 
			
		||||
			}
 | 
			
		||||
			else if (GeneUtility.HasLowLifeForce(pawn))
 | 
			
		||||
			{
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(10f, LewdablePartKind.Mouth);
 | 
			
		||||
			}
 | 
			
		||||
			else if (GeneUtility.HasLifeForce(pawn))
 | 
			
		||||
			{
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(2f, LewdablePartKind.Mouth);
 | 
			
		||||
				float weight = 2f;
 | 
			
		||||
				if (gene.Value < gene.MinLevelForAlert)
 | 
			
		||||
				{
 | 
			
		||||
					weight *= 10;
 | 
			
		||||
				}
 | 
			
		||||
				else if (gene.Value < gene.targetValue)
 | 
			
		||||
				{
 | 
			
		||||
					weight *= 2.5f;
 | 
			
		||||
				}
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
 | 
			
		||||
				yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
 | 
			
		||||
				if (pawn.genes.HasGene(GeneDefOf.rjw_genes_vaginal_absorber))
 | 
			
		||||
				{
 | 
			
		||||
					yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
 | 
			
		||||
				}
 | 
			
		||||
				if (pawn.genes.HasGene(GeneDefOf.rjw_genes_anal_absorber))
 | 
			
		||||
				{
 | 
			
		||||
					yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			yield break;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,7 @@
 | 
			
		|||
    </Reference>
 | 
			
		||||
    <Reference Include="Assembly-CSharp">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="LicentiaLabs">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\licentia-labs-master\Assemblies\LicentiaLabs.dll</HintPath>
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +36,7 @@
 | 
			
		|||
    </Reference>
 | 
			
		||||
    <Reference Include="RJW">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-master\1.4\Assemblies\RJW.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="System" />
 | 
			
		||||
    <Reference Include="System.Core" />
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +56,7 @@
 | 
			
		|||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.CoreModule">
 | 
			
		||||
      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.IMGUIModule">
 | 
			
		||||
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
 | 
			
		||||
| 
						 | 
				
			
			@ -122,6 +125,7 @@
 | 
			
		|||
    <Compile Include="Genes\Life_Force\Abilities\CompProperties_Seduce.cs" />
 | 
			
		||||
    <Compile Include="Genes\Life_Force\Abilities\CompProperties_AbilityCockEater.cs" />
 | 
			
		||||
    <Compile Include="Genes\Life_Force\Gene_LifeForceDrain.cs" />
 | 
			
		||||
    <Compile Include="Genes\Life_Force\IncidentWorker_SuccubusDreamVisit.cs" />
 | 
			
		||||
    <Compile Include="Genes\Life_Force\IngestionOutcomeDoer_LifeForceOffset.cs" />
 | 
			
		||||
    <Compile Include="Genes\Life_Force\JobDrivers\JobDriver_SexOnSpotReceiver.cs" />
 | 
			
		||||
    <Compile Include="Genes\Life_Force\JobDrivers\JobDriver_SexOnSpot.cs" />
 | 
			
		||||
| 
						 | 
				
			
			@ -155,7 +159,7 @@
 | 
			
		|||
    <Compile Include="HediffDefOf.cs" />
 | 
			
		||||
    <Compile Include="Interactions\CustomSexInteraction_Helper.cs" />
 | 
			
		||||
    <Compile Include="Interactions\GenesPartKindUsageRule.cs" />
 | 
			
		||||
    <Compile Include="Interactions\SubSuccubusTailCustomRequirementHandler - Copy.cs" />
 | 
			
		||||
    <Compile Include="Interactions\SubSuccubusTailCustomRequirementHandler.cs" />
 | 
			
		||||
    <Compile Include="Interactions\DomSuccubusTailCustomRequirementHandler.cs" />
 | 
			
		||||
    <Compile Include="JobDefOf.cs" />
 | 
			
		||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue