mirror of
				https://github.com/vegapnk/RJW-Genes.git
				synced 2024-08-15 00:23:31 +00:00 
			
		
		
		
	Simple implementation of a Rut gene
This commit is contained in:
		
							parent
							
								
									8d1d43b691
								
							
						
					
					
						commit
						35d9662663
					
				
					 8 changed files with 140 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -128,6 +128,8 @@ Because this is the genes mod, and I find things here quite robust.
 | 
			
		|||
- Gene: Blocked Masturbation. Pawns cannot masturbate. 
 | 
			
		||||
- {Sexperience} Gene: Living Cumbucket. Pawns with this Gene get "filled" upon sex, and slowly disperse usable gathered cum. 
 | 
			
		||||
- Disease Gene: Infectious Blocked Masturbation
 | 
			
		||||
- Gene: Rut. Pawns have a chance to go into heat and need more sex for a day. (Default: 5% chance per day, to go 1 day in heat).
 | 
			
		||||
- Disease Gene: Infectious Rut.
 | 
			
		||||
- Pawns will have negative thoughts about pawns with more genetic diseases than themselves. 
 | 
			
		||||
- Faction Penalties for spreading diseases, stealing genes and aging pawns with age transfer
 | 
			
		||||
- Patch  for [Imphilee Xeno](https://steamcommunity.com/sharedfiles/filedetails/?id=2990674516) by @Bunuffin
 | 
			
		||||
| 
						 | 
				
			
			@ -179,6 +181,7 @@ Its just meant if you want to drop me a tip.
 | 
			
		|||
 | 
			
		||||
- Made the Feminizer and Twinkifier configurable with XML.
 | 
			
		||||
- Typos in the Hediff Defs, tweaking of some values.
 | 
			
		||||
- Living Cum-Bucket & Rut Genes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 2.1.0 (27-06-2024)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,8 @@
 | 
			
		|||
  <GeneDef ParentName="BreedingBase">
 | 
			
		||||
    <defName>rjw_genes_fertile_anus</defName>
 | 
			
		||||
    <label>fertile anus</label>
 | 
			
		||||
    <description>Xenotypes with this gene have a functional uterus if they do not possess one by means of their vagina. 
 | 
			
		||||
    <description>Xenotypes with this gene have a functional uterus if they do not possess one by
 | 
			
		||||
      means of their vagina.
 | 
			
		||||
      For males, it is connected to the anal cavity and leads to a normal pregnancy.</description>
 | 
			
		||||
    <iconPath>Genes/Icons/Fertile_anus</iconPath>
 | 
			
		||||
    <displayOrderInCategory>54</displayOrderInCategory>
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +116,8 @@
 | 
			
		|||
  <GeneDef ParentName="BreedingBase">
 | 
			
		||||
    <defName>rjw_genes_hardwired_progenity</defName>
 | 
			
		||||
    <label>Hardwired Progenity</label>
 | 
			
		||||
    <description>Carriers of this gene need to procreate. They suffer negative effects if they are childless, and have increased capabilities if they reach a high amount of offsprings.</description>
 | 
			
		||||
    <description>Carriers of this gene need to procreate. They suffer negative effects if they are
 | 
			
		||||
      childless, and have increased capabilities if they reach a high amount of offsprings.</description>
 | 
			
		||||
    <iconPath>Genes/Icons/RJW_Genes_PheromoneSpit</iconPath>
 | 
			
		||||
    <displayOrderInCategory>70</displayOrderInCategory>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -150,4 +152,23 @@
 | 
			
		|||
    <biostatMet>0</biostatMet>
 | 
			
		||||
  </GeneDef>
 | 
			
		||||
 | 
			
		||||
  <GeneDef ParentName="BreedingBase">
 | 
			
		||||
    <defName>rjw_genes_basic_rut</defName>
 | 
			
		||||
    <label>Rut</label>
 | 
			
		||||
    <description>Carriers of this gene can enter a state of heat, resulting in drastically higher
 | 
			
		||||
      sexual activity.</description>
 | 
			
		||||
    <iconPath>UI/Icons/ColonistBar/Idle</iconPath>
 | 
			
		||||
    <biostatCpx>1</biostatCpx>
 | 
			
		||||
    <biostatMet>1</biostatMet>
 | 
			
		||||
    <displayOrderInCategory>11</displayOrderInCategory>
 | 
			
		||||
    <geneClass>RJW_Genes.Gene_Rut</geneClass>
 | 
			
		||||
    <modExtensions>
 | 
			
		||||
      <li Class="RJW_Genes.TickBasedChanceExtension">
 | 
			
		||||
        <!-- 60k = 1 days -->
 | 
			
		||||
        <tickInterval>60000</tickInterval>
 | 
			
		||||
        <eventChance>0.05</eventChance>
 | 
			
		||||
      </li>
 | 
			
		||||
    </modExtensions>
 | 
			
		||||
  </GeneDef>
 | 
			
		||||
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			@ -304,4 +304,28 @@
 | 
			
		|||
        </modExtensions>
 | 
			
		||||
    </GeneDef>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <GeneDef ParentName="BreedingBase">
 | 
			
		||||
        <defName>rjw_genes_infectious_rut</defName>
 | 
			
		||||
        <label>Rut</label>
 | 
			
		||||
        <description>Carriers of this gene can enter a state of heat, resulting in drastically higher
 | 
			
		||||
          sexual activity.</description>
 | 
			
		||||
        <iconPath>UI/Icons/ColonistBar/Idle</iconPath>
 | 
			
		||||
        <biostatCpx>1</biostatCpx>
 | 
			
		||||
        <biostatMet>2</biostatMet>
 | 
			
		||||
        <displayOrderInCategory>11</displayOrderInCategory>
 | 
			
		||||
        <geneClass>RJW_Genes.Gene_Rut</geneClass>
 | 
			
		||||
        <modExtensions>
 | 
			
		||||
          <li Class="RJW_Genes.TickBasedChanceExtension">
 | 
			
		||||
            <!-- 60k = 1 days -->
 | 
			
		||||
            <tickInterval>60000</tickInterval>
 | 
			
		||||
            <eventChance>0.05</eventChance>
 | 
			
		||||
          </li>
 | 
			
		||||
          <li Class="RJW_Genes.GeneticDiseaseExtension">
 | 
			
		||||
            <infectionChance>0.1</infectionChance>
 | 
			
		||||
        </li>
 | 
			
		||||
        </modExtensions>
 | 
			
		||||
      </GeneDef>
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										51
									
								
								Common/Defs/HediffDefs/Hediffs_Rut.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								Common/Defs/HediffDefs/Hediffs_Rut.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Defs>
 | 
			
		||||
    <HediffDef>
 | 
			
		||||
        <defName>rjw_genes_genetic_rut</defName>
 | 
			
		||||
        <hediffClass>HediffWithComps</hediffClass>
 | 
			
		||||
        <label>Rut</label>
 | 
			
		||||
        <description>Based on genetics, this pawn is in heat.</description>
 | 
			
		||||
        <defaultLabelColor>(240,200,110)</defaultLabelColor>
 | 
			
		||||
        <scenarioCanAdd>false</scenarioCanAdd>
 | 
			
		||||
        <maxSeverity>1.0</maxSeverity>
 | 
			
		||||
        <isBad>false</isBad>
 | 
			
		||||
        <tendable>false</tendable>
 | 
			
		||||
        <comps>
 | 
			
		||||
            <li Class="HediffCompProperties_SeverityPerDay">
 | 
			
		||||
                <severityPerDay>-1.00</severityPerDay>
 | 
			
		||||
            </li>
 | 
			
		||||
        </comps>
 | 
			
		||||
        <stages>
 | 
			
		||||
            <li>
 | 
			
		||||
                <label>calming down</label>
 | 
			
		||||
                <statOffsets>
 | 
			
		||||
                    <SexFrequency>0.50</SexFrequency>
 | 
			
		||||
                </statOffsets>
 | 
			
		||||
                <capMods>
 | 
			
		||||
                    <li>
 | 
			
		||||
                        <capacity>BloodPumping</capacity>
 | 
			
		||||
                        <offset>0.1</offset>
 | 
			
		||||
                    </li>
 | 
			
		||||
                </capMods>
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
                <label>in heat</label>
 | 
			
		||||
                <minSeverity>0.4</minSeverity>
 | 
			
		||||
                <statOffsets>
 | 
			
		||||
                    <SexFrequency>2.00</SexFrequency>
 | 
			
		||||
                </statOffsets>
 | 
			
		||||
                <capMods>
 | 
			
		||||
                    <li>
 | 
			
		||||
                        <capacity>Moving</capacity>
 | 
			
		||||
                        <offset>0.1</offset>
 | 
			
		||||
                    </li>
 | 
			
		||||
                    <li>
 | 
			
		||||
                        <capacity>BloodPumping</capacity>
 | 
			
		||||
                        <offset>0.15</offset>
 | 
			
		||||
                    </li>
 | 
			
		||||
                </capMods>
 | 
			
		||||
            </li>
 | 
			
		||||
        </stages>
 | 
			
		||||
    </HediffDef>
 | 
			
		||||
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			@ -75,6 +75,7 @@ namespace RJW_Genes
 | 
			
		|||
		public static readonly GeneDef rjw_genes_insectincubator;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_hardwired_progenity;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_blocked_masturbation;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_basic_rut;
 | 
			
		||||
 | 
			
		||||
        // Cum 
 | 
			
		||||
        public static readonly GeneDef rjw_genes_no_cum;
 | 
			
		||||
| 
						 | 
				
			
			@ -142,6 +143,7 @@ namespace RJW_Genes
 | 
			
		|||
		public static readonly GeneDef rjw_genes_infectious_hypersexuality;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_stretcher;
 | 
			
		||||
		public static readonly GeneDef rjw_genes_infectious_blocked_masturbation;
 | 
			
		||||
        public static readonly GeneDef rjw_genes_infectious_rut;
 | 
			
		||||
 | 
			
		||||
        //Other Defs
 | 
			
		||||
        public static readonly XenotypeDef rjw_genes_succubus;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										33
									
								
								Source/Genes/Breeding/Genes/Gene_Rut.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Source/Genes/Breeding/Genes/Gene_Rut.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Genes
 | 
			
		||||
{
 | 
			
		||||
    public class Gene_Rut : Gene
 | 
			
		||||
    {
 | 
			
		||||
        public override void Tick()
 | 
			
		||||
        {
 | 
			
		||||
            base.Tick();
 | 
			
		||||
 | 
			
		||||
            if (pawn == null || pawn.genes == null)
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            var chanceExtension = this.def.GetModExtension<TickBasedChanceExtension>();
 | 
			
		||||
            if (chanceExtension == null) return;
 | 
			
		||||
 | 
			
		||||
            if (pawn.IsHashIntervalTick(chanceExtension.tickInterval)){
 | 
			
		||||
                Random r = new Random();
 | 
			
		||||
                if (r.NextDouble() < chanceExtension.eventChance)
 | 
			
		||||
                {
 | 
			
		||||
                    Hediff rut = pawn.health.GetOrAddHediff(HediffDefOf.rjw_genes_genetic_rut);
 | 
			
		||||
                    rut.Severity = 1;
 | 
			
		||||
                    ModLog.Debug($"Pawn {pawn} gained rjw_genes_genetic_rut based on chance.");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -23,6 +23,8 @@ namespace RJW_Genes
 | 
			
		|||
        public static readonly HediffDef rjw_genes_twinkification_progress;
 | 
			
		||||
        public static readonly HediffDef rjw_genes_feminization_progress;
 | 
			
		||||
 | 
			
		||||
        public static readonly HediffDef rjw_genes_genetic_rut;
 | 
			
		||||
 | 
			
		||||
        // Note: Counter does meant it counters it, not it's counting
 | 
			
		||||
        [MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumstuffed_counter;
 | 
			
		||||
        [MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumflation_counter;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,6 +81,7 @@
 | 
			
		|||
    <Compile Include="Genes\Breeding\ConditionalStatAffecters\ConditionalStatAffecter_VeryManyChildren.cs" />
 | 
			
		||||
    <Compile Include="Genes\Breeding\Genes\Gene_FerventOvipositor.cs" />
 | 
			
		||||
    <Compile Include="Genes\Breeding\Genes\Gene_InsectIncubator.cs" />
 | 
			
		||||
    <Compile Include="Genes\Breeding\Genes\Gene_Rut.cs" />
 | 
			
		||||
    <Compile Include="Genes\Breeding\Patches\Patch_BlockedMasturbation.cs" />
 | 
			
		||||
    <Compile Include="Genes\Cum\HediffComp_ProcessCumbucket.cs" />
 | 
			
		||||
    <Compile Include="Genes\Cum\HediffsCompProperties_ProcessCumbucketMTB.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue