mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Added a new gene that increases penis size on oral sex
This commit is contained in:
parent
93a4699fba
commit
d5580ba92a
12 changed files with 136 additions and 6 deletions
|
@ -6,6 +6,7 @@
|
||||||
- New Gene for Genderfluid Pawns - daily chance to change sex. Futas just change "display" and keep genitalia, other pawns switch genitalia. XML configurable times & chances.
|
- New Gene for Genderfluid Pawns - daily chance to change sex. Futas just change "display" and keep genitalia, other pawns switch genitalia. XML configurable times & chances.
|
||||||
- New Drawings for the Succubi Wings & Tail, thanks to @Monti (donated via Discord)
|
- New Drawings for the Succubi Wings & Tail, thanks to @Monti (donated via Discord)
|
||||||
- Simple Gene that removes Sex need (called asexual, `rjw_genes_no_sex_need`)
|
- Simple Gene that removes Sex need (called asexual, `rjw_genes_no_sex_need`)
|
||||||
|
- New Gene that grows Penisses on Oral sex. Configurable in XML.
|
||||||
|
|
||||||
**Fixes:**
|
**Fixes:**
|
||||||
|
|
||||||
|
|
|
@ -78,4 +78,24 @@
|
||||||
<biostatMet>-5</biostatMet>
|
<biostatMet>-5</biostatMet>
|
||||||
</GeneDef>
|
</GeneDef>
|
||||||
|
|
||||||
|
<GeneDef ParentName="SpecialBase">
|
||||||
|
<defName>rjw_genes_hormonal_saliva</defName>
|
||||||
|
<label>Hormonal Saliva</label>
|
||||||
|
<description>The saliva of this xenotype stimulates growth in penises. Regular contact will lead to noticable growth.</description>
|
||||||
|
<biostatCpx>2</biostatCpx>
|
||||||
|
<biostatMet>-1</biostatMet>
|
||||||
|
<iconPath>Genes/Icons/Big_Male_Genitalia</iconPath>
|
||||||
|
<displayOrderInCategory>6</displayOrderInCategory>
|
||||||
|
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJW_Genes.HormonalSalivaExtension">
|
||||||
|
<!-- SizeIncrement is applied "flat" -->
|
||||||
|
<sizeIncrement>0.02</sizeIncrement>
|
||||||
|
<maxBodySize>2.5</maxBodySize>
|
||||||
|
<!-- CumMultiplier is applied "exponential" -->
|
||||||
|
<cumMultiplier>1.05</cumMultiplier>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
</GeneDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
|
@ -43,6 +43,7 @@ namespace RJW_Genes
|
||||||
public static readonly GeneDef rjw_genes_small_breasts;
|
public static readonly GeneDef rjw_genes_small_breasts;
|
||||||
public static readonly GeneDef rjw_genes_loose_anus;
|
public static readonly GeneDef rjw_genes_loose_anus;
|
||||||
public static readonly GeneDef rjw_genes_tight_anus;
|
public static readonly GeneDef rjw_genes_tight_anus;
|
||||||
|
public static readonly GeneDef rjw_genes_evergrowth;
|
||||||
|
|
||||||
// Gender
|
// Gender
|
||||||
public static readonly GeneDef rjw_genes_female_only;
|
public static readonly GeneDef rjw_genes_female_only;
|
||||||
|
@ -68,6 +69,7 @@ namespace RJW_Genes
|
||||||
public static readonly GeneDef rjw_genes_rapist;
|
public static readonly GeneDef rjw_genes_rapist;
|
||||||
public static readonly GeneDef rjw_genes_homosexual;
|
public static readonly GeneDef rjw_genes_homosexual;
|
||||||
public static readonly GeneDef rjw_genes_bisexual;
|
public static readonly GeneDef rjw_genes_bisexual;
|
||||||
|
public static readonly GeneDef rjw_genes_no_sex_need;
|
||||||
|
|
||||||
// Damage & Side Effects
|
// Damage & Side Effects
|
||||||
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_elasticity;
|
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_elasticity;
|
||||||
|
@ -79,6 +81,7 @@ namespace RJW_Genes
|
||||||
public static readonly GeneDef rjw_genes_sex_age_drain;
|
public static readonly GeneDef rjw_genes_sex_age_drain;
|
||||||
public static readonly GeneDef rjw_genes_aphrodisiac_pheromones;
|
public static readonly GeneDef rjw_genes_aphrodisiac_pheromones;
|
||||||
public static readonly GeneDef rjw_genes_sexual_mytosis;
|
public static readonly GeneDef rjw_genes_sexual_mytosis;
|
||||||
|
public static readonly GeneDef rjw_genes_hormonal_saliva;
|
||||||
|
|
||||||
// LifeForce
|
// LifeForce
|
||||||
public static readonly GeneDef rjw_genes_lifeforce;
|
public static readonly GeneDef rjw_genes_lifeforce;
|
||||||
|
|
28
Source/Genes/Special/Defs/HormonalSalivaExtension.cs
Normal file
28
Source/Genes/Special/Defs/HormonalSalivaExtension.cs
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
|
{
|
||||||
|
public class HormonalSalivaExtension : DefModExtension
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// How much the genitalia will growth per interaction.
|
||||||
|
/// This is applied "flat", so if you have penis 0.5 and growthRate 0.05 it goes to 0.55, 0.60, 0.65 etc.
|
||||||
|
/// </summary>
|
||||||
|
public float sizeIncrement;
|
||||||
|
/// <summary>
|
||||||
|
/// Upper Limit for the body size - default should be 2-3
|
||||||
|
/// </summary>
|
||||||
|
public float maxBodySize;
|
||||||
|
/// <summary>
|
||||||
|
/// How much more cum the pawn will make.
|
||||||
|
/// This is applied as multiplication, so if you have cum 20 and multiplier 1.1 you will have 22,24,27 etc.
|
||||||
|
/// This leads to exponential growth, so try to keep it kinda low.
|
||||||
|
/// </summary>
|
||||||
|
public float cumMultiplier;
|
||||||
|
}
|
||||||
|
}
|
76
Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
Normal file
76
Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
using HarmonyLib;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
|
{
|
||||||
|
[HarmonyPatch(typeof(SexUtility), "Aftersex")]
|
||||||
|
public class Patch_HormonalSaliva
|
||||||
|
{
|
||||||
|
// TODO: Reduce to 0.02 after debug.
|
||||||
|
const float SIZE_INCREMENT_FALLBACK = 0.02f;
|
||||||
|
const float MAX_BODY_SIZE_FALLBACK = 2.5f;
|
||||||
|
const float CUM_MULTIPLIER_FALLBACK = 1.05f;
|
||||||
|
|
||||||
|
public static void Postfix(SexProps props)
|
||||||
|
{
|
||||||
|
if (props == null || props.pawn == null || props.partner == null || props.partner.IsAnimal())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Pawn pawn = props.pawn;
|
||||||
|
Pawn partner = props.partner;
|
||||||
|
|
||||||
|
|
||||||
|
if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_hormonal_saliva) && (props.sexType == xxx.rjwSextype.Oral || props.sexType == xxx.rjwSextype.Sixtynine || props.sexType == xxx.rjwSextype.Fellatio))
|
||||||
|
{
|
||||||
|
GrowPenisses(partner);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GeneUtility.HasGeneNullCheck(partner, GeneDefOf.rjw_genes_hormonal_saliva) && (props.sexType == xxx.rjwSextype.Oral || props.sexType == xxx.rjwSextype.Sixtynine || props.sexType == xxx.rjwSextype.Fellatio))
|
||||||
|
{
|
||||||
|
GrowPenisses(pawn);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void GrowPenisses(Pawn pawn)
|
||||||
|
{
|
||||||
|
|
||||||
|
HormonalSalivaExtension salivaExt = GeneDefOf.rjw_genes_hormonal_saliva.GetModExtension<HormonalSalivaExtension>();
|
||||||
|
|
||||||
|
float size_increment = salivaExt?.sizeIncrement ?? SIZE_INCREMENT_FALLBACK;
|
||||||
|
float maximum_body_size = salivaExt?.maxBodySize ?? MAX_BODY_SIZE_FALLBACK;
|
||||||
|
float cum_multiplier = salivaExt?.cumMultiplier ?? CUM_MULTIPLIER_FALLBACK;
|
||||||
|
|
||||||
|
|
||||||
|
List<Hediff> AllPenisses = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_penis(x));
|
||||||
|
foreach (Hediff penis in AllPenisses)
|
||||||
|
{
|
||||||
|
CompHediffBodyPart CompHediff = penis.TryGetComp<rjw.CompHediffBodyPart>();
|
||||||
|
if (penis.Severity < 1.00)
|
||||||
|
{
|
||||||
|
penis.Severity = Math.Min(1.01f, penis.Severity + size_increment);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (CompHediff != null && CompHediff.SizeOwner <= maximum_body_size)
|
||||||
|
{
|
||||||
|
CompHediff.SizeOwner += size_increment;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Increase Fluid
|
||||||
|
if (CompHediff != null)
|
||||||
|
CompHediff.FluidAmmount *= cum_multiplier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -142,9 +142,11 @@
|
||||||
<Compile Include="Genes\Life_Force\JobGivers\JobGiver_GetLifeForce.cs" />
|
<Compile Include="Genes\Life_Force\JobGivers\JobGiver_GetLifeForce.cs" />
|
||||||
<Compile Include="Genes\Life_Force\ThinkNodes\ThinkNode_NewFlirtTarget.cs" />
|
<Compile Include="Genes\Life_Force\ThinkNodes\ThinkNode_NewFlirtTarget.cs" />
|
||||||
<Compile Include="Genes\Patch_AddNotifyOnGeneration.cs" />
|
<Compile Include="Genes\Patch_AddNotifyOnGeneration.cs" />
|
||||||
<Compile Include="Genes\Special\AgeTransferExtension.cs" />
|
<Compile Include="Genes\Special\Defs\AgeTransferExtension.cs" />
|
||||||
<Compile Include="Genes\Special\Patch_AgeDrain.cs" />
|
<Compile Include="Genes\Special\Defs\HormonalSalivaExtension.cs" />
|
||||||
<Compile Include="Genes\Special\Patch_OrgasmMytosis.cs" />
|
<Compile Include="Genes\Special\Patches\Patch_AgeDrain.cs" />
|
||||||
|
<Compile Include="Genes\Special\Patches\Patch_HormonalSaliva.cs" />
|
||||||
|
<Compile Include="Genes\Special\Patches\Patch_OrgasmMytosis.cs" />
|
||||||
<Compile Include="Interactions\SuccubusTailjob\CompAbility_SexInteractionRequirements.cs" />
|
<Compile Include="Interactions\SuccubusTailjob\CompAbility_SexInteractionRequirements.cs" />
|
||||||
<Compile Include="Genes\Life_Force\Abilities\CompAbilityEffect_PussyHeal.cs" />
|
<Compile Include="Genes\Life_Force\Abilities\CompAbilityEffect_PussyHeal.cs" />
|
||||||
<Compile Include="Genes\Life_Force\Abilities\CompProperties_AbilityLifeForceCost.cs" />
|
<Compile Include="Genes\Life_Force\Abilities\CompProperties_AbilityLifeForceCost.cs" />
|
||||||
|
@ -159,10 +161,10 @@
|
||||||
<Compile Include="Genes\Life_Force\Genes\Gene_LifeForce.cs" />
|
<Compile Include="Genes\Life_Force\Genes\Gene_LifeForce.cs" />
|
||||||
<Compile Include="Genes\RJW_Gene.cs" />
|
<Compile Include="Genes\RJW_Gene.cs" />
|
||||||
<Compile Include="Genes\Genitalia\GenitaliaUtility.cs" />
|
<Compile Include="Genes\Genitalia\GenitaliaUtility.cs" />
|
||||||
<Compile Include="Genes\Special\Gene_Aphrodisiac_Pheromones.cs" />
|
<Compile Include="Genes\Special\Genes\Gene_Aphrodisiac_Pheromones.cs" />
|
||||||
<Compile Include="Genes\Life_Force\Patches\Patch_SatisfyPersonal_LifeForceGain.cs" />
|
<Compile Include="Genes\Life_Force\Patches\Patch_SatisfyPersonal_LifeForceGain.cs" />
|
||||||
<Compile Include="Genes\Special\Patch_OrgasmRush.cs" />
|
<Compile Include="Genes\Special\Patches\Patch_OrgasmRush.cs" />
|
||||||
<Compile Include="Genes\Special\Patch_Youth_Fountain.cs" />
|
<Compile Include="Genes\Special\Patches\Patch_Youth_Fountain.cs" />
|
||||||
<Compile Include="HarmonyInit.cs" />
|
<Compile Include="HarmonyInit.cs" />
|
||||||
<Compile Include="HediffDefOf.cs" />
|
<Compile Include="HediffDefOf.cs" />
|
||||||
<Compile Include="Interactions\SuccubusTailjob\CustomSexInteraction_Helper.cs" />
|
<Compile Include="Interactions\SuccubusTailjob\CustomSexInteraction_Helper.cs" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue