mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Start on Living CumBucket
This commit is contained in:
parent
bd1ef6d5a2
commit
05770a834e
11 changed files with 164 additions and 4 deletions
|
@ -16,5 +16,6 @@
|
||||||
<li IfModActive="vanillaracesexpanded.android">Mods/Android</li>
|
<li IfModActive="vanillaracesexpanded.android">Mods/Android</li>
|
||||||
<li IfModActive="VanillaExpanded.VGeneticsE">Mods/VE_Genetics</li>
|
<li IfModActive="VanillaExpanded.VGeneticsE">Mods/VE_Genetics</li>
|
||||||
<li IfModActive="LustLicentia.RJWLabs">Mods/LicentiaLabs</li>
|
<li IfModActive="LustLicentia.RJWLabs">Mods/LicentiaLabs</li>
|
||||||
|
<li IfModActive="rjw.sexperience">Mods/Sexperience</li>
|
||||||
</v1.5>
|
</v1.5>
|
||||||
</loadFolders>
|
</loadFolders>
|
20
Mods/Sexperience/Defs/GeneDefs/Sexperience_GeneDefs.xml
Normal file
20
Mods/Sexperience/Defs/GeneDefs/Sexperience_GeneDefs.xml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
|
||||||
|
<GeneDef>
|
||||||
|
<defName>rjw_genes_living_cumbucket</defName>
|
||||||
|
<label>living cumbucket</label>
|
||||||
|
<displayCategory>rjw_genes_cum</displayCategory>
|
||||||
|
<description>When this Xenotype partakes in sexual activity, they store cum and produce it as an item.</description>
|
||||||
|
<iconPath>Genes/Icons/Generous_Donor</iconPath>
|
||||||
|
<displayOrderInCategory>559</displayOrderInCategory>
|
||||||
|
|
||||||
|
<modExtensions>
|
||||||
|
<li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core" Class="VanillaGenesExpanded.GeneExtension">
|
||||||
|
<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
|
||||||
|
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
</GeneDef>
|
||||||
|
|
||||||
|
</Defs>
|
71
Mods/Sexperience/Defs/HediffDefs/Sexperience_HediffDefs.xml
Normal file
71
Mods/Sexperience/Defs/HediffDefs/Sexperience_HediffDefs.xml
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<HediffDef>
|
||||||
|
<defName>rjw_genes_filled_living_cumbucket</defName>
|
||||||
|
<hediffClass>HediffWithComps</hediffClass>
|
||||||
|
<label>filled living cumbucket</label>
|
||||||
|
<description>This pawn is a (filled) living cum bucket. Thanks to a generous donation, this pawn will slowly generate cum for pickup.</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>-0.5</severityPerDay>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
<stages>
|
||||||
|
<li>
|
||||||
|
<label>slight</label>
|
||||||
|
<statOffsets>
|
||||||
|
<Vulnerability>-0.1</Vulnerability>
|
||||||
|
</statOffsets>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>moderate</label>
|
||||||
|
<minSeverity>0.4</minSeverity>
|
||||||
|
<hungerRateFactor>0.8</hungerRateFactor>
|
||||||
|
<statOffsets>
|
||||||
|
<Vulnerability>-0.25</Vulnerability>
|
||||||
|
</statOffsets>
|
||||||
|
<capMods>
|
||||||
|
<li>
|
||||||
|
<capacity>Moving</capacity>
|
||||||
|
<offset>-0.05</offset>
|
||||||
|
</li>
|
||||||
|
</capMods>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>full</label>
|
||||||
|
<minSeverity>0.65</minSeverity>
|
||||||
|
<hungerRateFactor>0.75</hungerRateFactor>
|
||||||
|
<statOffsets>
|
||||||
|
<Vulnerability>-0.25</Vulnerability>
|
||||||
|
</statOffsets>
|
||||||
|
<capMods>
|
||||||
|
<li>
|
||||||
|
<capacity>Moving</capacity>
|
||||||
|
<offset>-0.1</offset>
|
||||||
|
</li>
|
||||||
|
</capMods>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>over-full</label>
|
||||||
|
<minSeverity>1.1</minSeverity>
|
||||||
|
<hungerRateFactor>0.6</hungerRateFactor>
|
||||||
|
<statOffsets>
|
||||||
|
<Vulnerability>-0.5</Vulnerability>
|
||||||
|
</statOffsets>
|
||||||
|
<capMods>
|
||||||
|
<li>
|
||||||
|
<capacity>Moving</capacity>
|
||||||
|
<offset>-0.15</offset>
|
||||||
|
</li>
|
||||||
|
</capMods>
|
||||||
|
</li>
|
||||||
|
</stages>
|
||||||
|
</HediffDef>
|
||||||
|
|
||||||
|
|
||||||
|
</Defs>
|
|
@ -83,6 +83,7 @@ namespace RJW_Genes
|
||||||
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_likes_cumflation;
|
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_likes_cumflation;
|
||||||
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_cumflation_immunity;
|
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_cumflation_immunity;
|
||||||
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_generous_donor;
|
[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_generous_donor;
|
||||||
|
[MayRequire("rjw.sexperience")] public static readonly GeneDef rjw_genes_living_cumbucket;
|
||||||
|
|
||||||
|
|
||||||
// Reproduction
|
// Reproduction
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
using HarmonyLib;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Verse;
|
||||||
|
using static System.Net.Mime.MediaTypeNames;
|
||||||
|
|
||||||
|
namespace RJW_Genes
|
||||||
|
{
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(SexUtility), nameof(SexUtility.SatisfyPersonal))]
|
||||||
|
public class Patch_LivingCumbucket_StackHediff
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is the amount of fluid required if the pawn has a bodysize of 1, to reach a severity in the hediff of 1.
|
||||||
|
/// The hediff can still be increased.
|
||||||
|
/// </summary>
|
||||||
|
const float fluid_amount_required_for_hediff_severity_ = 100.0f;
|
||||||
|
|
||||||
|
public static void Postfix(SexProps props)
|
||||||
|
{
|
||||||
|
if (!ModsConfig.IsActive("rjw.sexperience"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// ShortCuts: Exit Early if Pawn or Partner are null (can happen with Masturbation or other nieche-cases)
|
||||||
|
if (props == null || props.pawn == null || !props.hasPartner())
|
||||||
|
return;
|
||||||
|
|
||||||
|
Pawn pawnA = props.pawn;
|
||||||
|
Pawn pawnB = props.partner;
|
||||||
|
|
||||||
|
if (pawnA.genes != null && pawnA.genes.HasActiveGene(GeneDefOf.rjw_genes_living_cumbucket) && CumUtility.GetTotalFluidAmount(pawnB) > 0)
|
||||||
|
{
|
||||||
|
ProcessLivingCumbucket(pawnA, CumUtility.GetTotalFluidAmount(pawnB));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pawnB.genes != null && pawnB.genes.HasActiveGene(GeneDefOf.rjw_genes_living_cumbucket) && CumUtility.GetTotalFluidAmount(pawnA) > 0)
|
||||||
|
{
|
||||||
|
ProcessLivingCumbucket(pawnB, CumUtility.GetTotalFluidAmount(pawnA));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ProcessLivingCumbucket(Pawn pawn, float cumamount)
|
||||||
|
{
|
||||||
|
float bodysize = pawn.BodySize;
|
||||||
|
float result_severity_increase = cumamount / (fluid_amount_required_for_hediff_severity_ * bodysize);
|
||||||
|
ModLog.Message($"Pumping the living cumbucket {pawn} (Bodysize {bodysize}) with {cumamount} cum, resulting in severity {result_severity_increase}");
|
||||||
|
|
||||||
|
|
||||||
|
Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.rjw_genes_filled_living_cumbucket);
|
||||||
|
if (hediff == null)
|
||||||
|
{
|
||||||
|
hediff = pawn.health.GetOrAddHediff(HediffDefOf.rjw_genes_filled_living_cumbucket);
|
||||||
|
hediff.Severity = 0.01f;
|
||||||
|
}
|
||||||
|
|
||||||
|
hediff.Severity += result_severity_increase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -29,5 +29,7 @@ namespace RJW_Genes
|
||||||
|
|
||||||
public static readonly HediffDef OvaryAgitator;
|
public static readonly HediffDef OvaryAgitator;
|
||||||
public static readonly HediffDef Bioscaffold;
|
public static readonly HediffDef Bioscaffold;
|
||||||
|
|
||||||
|
[MayRequire("rjw.sexperience")] public static readonly HediffDef rjw_genes_filled_living_cumbucket;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,8 @@
|
||||||
<Compile Include="Genes\Breeding\Genes\Gene_FerventOvipositor.cs" />
|
<Compile Include="Genes\Breeding\Genes\Gene_FerventOvipositor.cs" />
|
||||||
<Compile Include="Genes\Breeding\Genes\Gene_InsectIncubator.cs" />
|
<Compile Include="Genes\Breeding\Genes\Gene_InsectIncubator.cs" />
|
||||||
<Compile Include="Genes\Breeding\Patches\Patch_BlockedMasturbation.cs" />
|
<Compile Include="Genes\Breeding\Patches\Patch_BlockedMasturbation.cs" />
|
||||||
<Compile Include="Genes\Cum\Patch_LikesCumflation.cs" />
|
<Compile Include="Genes\Cum\Patches\Patch_LikesCumflation.cs" />
|
||||||
|
<Compile Include="Genes\Cum\Patches\Patch_LivingCumbucket_StackHediff.cs" />
|
||||||
<Compile Include="Genes\Damage\Gene_Elasticity.cs" />
|
<Compile Include="Genes\Damage\Gene_Elasticity.cs" />
|
||||||
<Compile Include="Genes\Diseases\Defs\GeneticDiseaseExtension.cs" />
|
<Compile Include="Genes\Diseases\Defs\GeneticDiseaseExtension.cs" />
|
||||||
<Compile Include="Genes\Diseases\Defs\GeneticInfectorExtension.cs" />
|
<Compile Include="Genes\Diseases\Defs\GeneticInfectorExtension.cs" />
|
||||||
|
@ -109,10 +110,10 @@
|
||||||
<Compile Include="Genes\Gender\Genes\Gene_GenderFluid.cs" />
|
<Compile Include="Genes\Gender\Genes\Gene_GenderFluid.cs" />
|
||||||
<Compile Include="Genes\GenitaliaSize\Gene_EvergrowingGenitalia.cs" />
|
<Compile Include="Genes\GenitaliaSize\Gene_EvergrowingGenitalia.cs" />
|
||||||
<Compile Include="Genes\Cum\CumUtility.cs" />
|
<Compile Include="Genes\Cum\CumUtility.cs" />
|
||||||
<Compile Include="Genes\Cum\Gene_ChangeCumAmount.cs" />
|
<Compile Include="Genes\Cum\Genes\Gene_ChangeCumAmount.cs" />
|
||||||
<Compile Include="Genes\Cum\Patch_TransferNutrition.cs" />
|
<Compile Include="Genes\Cum\Patches\Patch_TransferNutrition.cs" />
|
||||||
<Compile Include="Genes\Damage\Gene_Unbreakable.cs" />
|
<Compile Include="Genes\Damage\Gene_Unbreakable.cs" />
|
||||||
<Compile Include="Genes\Cum\Patch_CumflationImmunity.cs" />
|
<Compile Include="Genes\Cum\Patches\Patch_CumflationImmunity.cs" />
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraBreasts.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraBreasts.cs" />
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraAnus.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraAnus.cs" />
|
||||||
<Compile Include="Genes\ExtraGenitalia\Gene_Futa.cs" />
|
<Compile Include="Genes\ExtraGenitalia\Gene_Futa.cs" />
|
||||||
|
|
Loading…
Reference in a new issue