mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
WIP for Twinkification
This commit is contained in:
parent
f1debffbb3
commit
420e14f7af
4 changed files with 86 additions and 1 deletions
|
@ -224,7 +224,7 @@
|
||||||
<li Class="RJW_Genes.HediffIncreaseOnSexExtension">
|
<li Class="RJW_Genes.HediffIncreaseOnSexExtension">
|
||||||
<hediffDef>rjw_genes_twinkification_progress</hediffDef>
|
<hediffDef>rjw_genes_twinkification_progress</hediffDef>
|
||||||
<canCreateHediff>true</canCreateHediff>
|
<canCreateHediff>true</canCreateHediff>
|
||||||
<severityIncrease>0.01</severityIncrease>
|
<severityIncrease>0.99</severityIncrease>
|
||||||
<applicationChance>1.00</applicationChance>
|
<applicationChance>1.00</applicationChance>
|
||||||
<applicableForWomen>false</applicableForWomen>
|
<applicableForWomen>false</applicableForWomen>
|
||||||
<applicableForMen>true</applicableForMen>
|
<applicableForMen>true</applicableForMen>
|
||||||
|
|
|
@ -133,6 +133,12 @@ namespace RJW_Genes
|
||||||
public static readonly GeneDef rjw_genes_major_vulnerability;
|
public static readonly GeneDef rjw_genes_major_vulnerability;
|
||||||
public static readonly GeneDef rjw_genes_fluctual_sexual_needs;
|
public static readonly GeneDef rjw_genes_fluctual_sexual_needs;
|
||||||
public static readonly GeneDef rjw_genes_size_blinded;
|
public static readonly GeneDef rjw_genes_size_blinded;
|
||||||
|
public static readonly GeneDef rjw_genes_infectious_low_fertility;
|
||||||
|
public static readonly GeneDef rjw_genes_infectious_increased_sex_need;
|
||||||
|
public static readonly GeneDef rjw_genes_infectious_bisexuality;
|
||||||
|
public static readonly GeneDef rjw_genes_infectious_homosexuality;
|
||||||
|
public static readonly GeneDef rjw_genes_infectious_hypersexuality;
|
||||||
|
public static readonly GeneDef rjw_genes_stretcher;
|
||||||
|
|
||||||
//Other Defs
|
//Other Defs
|
||||||
public static readonly XenotypeDef rjw_genes_succubus;
|
public static readonly XenotypeDef rjw_genes_succubus;
|
||||||
|
|
78
Source/Genes/Special/Patches/Patch_Twinkifier.cs
Normal file
78
Source/Genes/Special/Patches/Patch_Twinkifier.cs
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
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
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// This patch handles the changes produced by `rjw_genes_twinkifier`.
|
||||||
|
/// It requires the hediff `rjw_genes_twinkification_in_progress` which is managed separately, in `Patch_HediffIncreaseOnSex`.
|
||||||
|
/// </summary>
|
||||||
|
[HarmonyPatch(typeof(SexUtility), "Aftersex")]
|
||||||
|
public static class Patch_Twinkifier
|
||||||
|
{
|
||||||
|
const float MINOR_APPLICATION_CHANCE = 0.25f; // = 25% to have a minor transformation
|
||||||
|
const float MAJOR_APPLICATION_CHANCE = 0.10f; // = 10% to have a major transformation
|
||||||
|
|
||||||
|
public static void Postfix(SexProps props)
|
||||||
|
{
|
||||||
|
if (props == null || props.pawn == null || !props.hasPartner() || props.partner == null)
|
||||||
|
return;
|
||||||
|
if (props.pawn.IsAnimal() || props.partner.IsAnimal())
|
||||||
|
return;
|
||||||
|
|
||||||
|
ApplyTwinkification(props.pawn);
|
||||||
|
ApplyTwinkification(props.partner);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ApplyTwinkification(Pawn pawn)
|
||||||
|
{
|
||||||
|
if (pawn == null) return;
|
||||||
|
Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.rjw_genes_twinkification_progress);
|
||||||
|
if (hediff == null) return;
|
||||||
|
|
||||||
|
var Random = new Random();
|
||||||
|
switch (hediff.SeverityLabel)
|
||||||
|
{
|
||||||
|
case "severe":
|
||||||
|
case "critical":
|
||||||
|
{
|
||||||
|
if (Random.NextDouble() < MAJOR_APPLICATION_CHANCE)
|
||||||
|
majorChange(pawn);
|
||||||
|
} break;
|
||||||
|
case "minor":
|
||||||
|
{
|
||||||
|
if (Random.NextDouble() < MINOR_APPLICATION_CHANCE)
|
||||||
|
minorChange(pawn);
|
||||||
|
} break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void minorChange(Pawn pawn)
|
||||||
|
{
|
||||||
|
// Minor Infectious Vulnerability
|
||||||
|
// Smaller Genitalia
|
||||||
|
// Remove Beard
|
||||||
|
// Thin Body Type
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void majorChange(Pawn pawn)
|
||||||
|
{
|
||||||
|
// Final Gene-Pool should have:
|
||||||
|
// - Fragile (?)
|
||||||
|
// - Infectious Vulnerability
|
||||||
|
// - Infectious Homosexuality
|
||||||
|
// - Beauty
|
||||||
|
// - Fertile Anus
|
||||||
|
|
||||||
|
pawn.genes.AddGene(GeneDefOf.rjw_genes_fertile_anus, !RJW_Genes_Settings.rjw_genes_genetic_disease_as_endogenes);
|
||||||
|
pawn.genes.AddGene(GeneDefOf.rjw_genes_infectious_homosexuality, !RJW_Genes_Settings.rjw_genes_genetic_disease_as_endogenes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -197,6 +197,7 @@
|
||||||
<Compile Include="Genes\Special\Patches\Patch_OrgasmMytosis.cs" />
|
<Compile Include="Genes\Special\Patches\Patch_OrgasmMytosis.cs" />
|
||||||
<Compile Include="Genes\Special\Patches\Patch_PregnancyOverwrite.cs" />
|
<Compile Include="Genes\Special\Patches\Patch_PregnancyOverwrite.cs" />
|
||||||
<Compile Include="Genes\Special\Patches\Patch_SexualTamer.cs" />
|
<Compile Include="Genes\Special\Patches\Patch_SexualTamer.cs" />
|
||||||
|
<Compile Include="Genes\Special\Patches\Patch_Twinkifier.cs" />
|
||||||
<Compile Include="Genes\Special\Thoughts\ThoughtWorker_Aphrodisiac_Pheromones_Social.cs" />
|
<Compile Include="Genes\Special\Thoughts\ThoughtWorker_Aphrodisiac_Pheromones_Social.cs" />
|
||||||
<Compile Include="LetterDefOf.cs" />
|
<Compile Include="LetterDefOf.cs" />
|
||||||
<Compile Include="Interactions\SuccubusTailjob\CompAbility_SexInteractionRequirements.cs" />
|
<Compile Include="Interactions\SuccubusTailjob\CompAbility_SexInteractionRequirements.cs" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue