mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
First attempt at counter-inflation
This commit is contained in:
parent
13b565fac6
commit
3feefaaab1
6 changed files with 276 additions and 3 deletions
173
Common/Defs/HediffDefs/Hediffs_CounterCumflation.xml
Normal file
173
Common/Defs/HediffDefs/Hediffs_CounterCumflation.xml
Normal file
|
@ -0,0 +1,173 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<HediffDef>
|
||||
<defName>rjw_genes_cumflation_counter</defName>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<label>cumflation negator</label>
|
||||
<labelNoun>cumflation negator</labelNoun>
|
||||
<description>Negates the negative effects usually produced by being cumflated.</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.75</severityPerDay>
|
||||
</li>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
<label>a little</label>
|
||||
<becomeVisible>false</becomeVisible>
|
||||
</li>
|
||||
<li>
|
||||
<label>slight</label>
|
||||
<minSeverity>0.2</minSeverity>
|
||||
<statOffsets>
|
||||
<Vulnerability>-0.1</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>0.1</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>moderate</label>
|
||||
<minSeverity>0.4</minSeverity>
|
||||
<statOffsets>
|
||||
<Vulnerability>-0.3</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>0.3</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
<painOffset>-0.1</painOffset>
|
||||
</li>
|
||||
<li>
|
||||
<label>intense</label>
|
||||
<minSeverity>0.65</minSeverity>
|
||||
<statOffsets>
|
||||
<Vulnerability>+0.5</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>0.6</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
<painOffset>-0.3</painOffset>
|
||||
</li>
|
||||
<li>
|
||||
<label>extreme</label>
|
||||
<minSeverity>0.9</minSeverity>
|
||||
<statOffsets>
|
||||
<Vulnerability>-0.7</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>1.0</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
<painOffset>-0.5</painOffset>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
|
||||
<HediffDef>
|
||||
<defName>rjw_genes_cumstuffed_counter</defName>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<label>cumstuffed negator</label>
|
||||
<labelNoun>cumstuffed negated</labelNoun>
|
||||
<description>Negates the negative effects that one would suffer from being cumstuffed.</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.75</severityPerDay>
|
||||
</li>
|
||||
<li Class="LicentiaLabs.Hediffs.HediffCompProperties_VomitCumMtb">
|
||||
<mtbDaysPerStage>
|
||||
<li>0</li>
|
||||
<li>0</li>
|
||||
<li>0.75</li>
|
||||
<li>0.5</li>
|
||||
<li>0.2</li>
|
||||
</mtbDaysPerStage>
|
||||
</li>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
<label>slightly bloated</label>
|
||||
<becomeVisible>false</becomeVisible>
|
||||
</li>
|
||||
<li>
|
||||
<label>bloated</label>
|
||||
<minSeverity>0.2</minSeverity>
|
||||
<hungerRateFactor>0.95</hungerRateFactor>
|
||||
<statOffsets>
|
||||
<Vulnerability>-0.05</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>0.03</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>full</label>
|
||||
<minSeverity>0.4</minSeverity>
|
||||
<hungerRateFactor>0.9</hungerRateFactor>
|
||||
<statOffsets>
|
||||
<Vulnerability>-0.1</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>0.1</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>stuffed</label>
|
||||
<minSeverity>0.6</minSeverity>
|
||||
<hungerRateFactor>0.75</hungerRateFactor>
|
||||
<statOffsets>
|
||||
<Vulnerability>-0.15</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>0.2</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
<painOffset>-0.15</painOffset>
|
||||
</li>
|
||||
<li>
|
||||
<label>overstuffed</label>
|
||||
<minSeverity>0.8</minSeverity>
|
||||
<hungerRateFactor>0.5</hungerRateFactor>
|
||||
<statOffsets>
|
||||
<Vulnerability>-0.2</Vulnerability>
|
||||
</statOffsets>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>0.3</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
<painOffset>-0.3</painOffset>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
|
||||
</Defs>
|
|
@ -18,7 +18,7 @@ namespace RJW_Genes
|
|||
/// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs
|
||||
/// </summary>
|
||||
///
|
||||
class Patch_Cumflation
|
||||
class Patch_CumflationImmunity
|
||||
{
|
||||
// This patch does not need the normal Harmony Targetting,
|
||||
// as it needs to be added only on demand (See HarmonyInit.cs)
|
93
Source/Genes/Cum/Patch_LikesCumflation.cs
Normal file
93
Source/Genes/Cum/Patch_LikesCumflation.cs
Normal file
|
@ -0,0 +1,93 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Reflection.Emit;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using HarmonyLib;
|
||||
using rjw;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using static LicentiaLabs.Licentia;
|
||||
using static HarmonyLib.Code;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// Changes LicentiaLabs (if Present) to add a cumflation-counter hediff, when the pawn is cumflated.
|
||||
/// The counter hediff takes away the negative stats of the original hediff.
|
||||
/// This code is exercised / loaded in the HarmonyInit.
|
||||
/// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs
|
||||
/// </summary>
|
||||
///
|
||||
class Patch_LikesCumflation
|
||||
{
|
||||
// This patch does not need the normal Harmony Targetting,
|
||||
// as it needs to be added only on demand (See HarmonyInit.cs)
|
||||
public static void PostFix(SexProps props)
|
||||
{
|
||||
|
||||
if (props == null || props.pawn == null || props.partner == null) return;
|
||||
|
||||
if (props.pawn.genes != null && props.pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_likes_cumflation) )
|
||||
{
|
||||
AddOrIncreaseCumflationCounterHediff(props.pawn);
|
||||
}
|
||||
|
||||
if (props.partner.genes != null && props.partner.genes.HasActiveGene(GeneDefOf.rjw_genes_likes_cumflation))
|
||||
{
|
||||
AddOrIncreaseCumflationCounterHediff(props.partner);
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddOrIncreaseCumflationCounterHediff(Pawn inflated)
|
||||
{
|
||||
//Hediff cumstuffed_hediff = inflated.health.hediffSet.GetFirstHediffOfDef(LicentiaLabs.Licentia.HediffDefs.Cumstuffed);
|
||||
Hediff cumstuffed_hediff = LicentiaLabs.CumflationHelper.GetCumflationHediff(inflated, LicentiaLabs.Licentia.HediffDefs.Cumstuffed, "stomach");
|
||||
if (cumstuffed_hediff != null && cumstuffed_hediff.Severity >= 0.01) {
|
||||
|
||||
ModLog.Message($"{inflated} got cumstuffed and gets the counter-part");
|
||||
var bodyPartRecord = inflated.RaceProps.body.AllParts.Find(bpr => bpr.def.defName.Contains("stomach") || bpr.def.defName.Contains("stomach".ToLower()));
|
||||
var counter_hediff = CreateOrGetCumflationCounterHediff(inflated, HediffDefOf.rjw_genes_cumstuffed_counter, bodyPartRecord);
|
||||
counter_hediff.Severity = cumstuffed_hediff.Severity;
|
||||
}
|
||||
else if (cumstuffed_hediff != null)
|
||||
{
|
||||
ModLog.Message("cumstuffed_hediff was too un-sever");
|
||||
}
|
||||
else
|
||||
ModLog.Message("cumstuffed_hediff was null");
|
||||
|
||||
Hediff cumflation_hediff = inflated.health.hediffSet.GetFirstHediffOfDef(LicentiaLabs.Licentia.HediffDefs.Cumflation);
|
||||
if (cumflation_hediff != null && cumflation_hediff.Severity >= 0.01)
|
||||
{
|
||||
ModLog.Message($"{inflated} got cumflated and gets the counter-part");
|
||||
var bodyPartRecord = Genital_Helper.get_genitalsBPR(inflated);
|
||||
var counter_hediff = CreateOrGetCumflationCounterHediff(inflated, HediffDefOf.rjw_genes_cumstuffed_counter, bodyPartRecord);
|
||||
counter_hediff.Severity = cumstuffed_hediff.Severity;
|
||||
}
|
||||
else if (cumflation_hediff != null)
|
||||
{
|
||||
ModLog.Message("Cumflation Hediff was too un-sever");
|
||||
}
|
||||
else
|
||||
ModLog.Message("Cumflation Hediff was null");
|
||||
}
|
||||
|
||||
public static Hediff CreateOrGetCumflationCounterHediff(Pawn inflated, HediffDef counterCumflationDef, BodyPartRecord bodyPartRecord)
|
||||
{
|
||||
Hediff cumflationHediff = inflated.health.hediffSet.GetFirstHediffOfDef(counterCumflationDef);
|
||||
if (cumflationHediff == null)
|
||||
{
|
||||
cumflationHediff = HediffMaker.MakeHediff(counterCumflationDef, inflated, bodyPartRecord);
|
||||
cumflationHediff.Severity = 0;
|
||||
inflated.health.AddHediff(cumflationHediff, bodyPartRecord);
|
||||
} else {
|
||||
ModLog.Message("Did not find a correct Counter-CumflationDef ");
|
||||
}
|
||||
return cumflationHediff;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -57,13 +57,16 @@ namespace RJW_Genes
|
|||
{
|
||||
// Gene: Cumflation Immunity [Prefix Patch]
|
||||
harmony.Patch(AccessTools.Method(typeof(LicentiaLabs.CumflationHelper), nameof(LicentiaLabs.CumflationHelper.Cumflation)),
|
||||
prefix: new HarmonyMethod(typeof(Patch_Cumflation), nameof(Patch_Cumflation.Prefix)));
|
||||
prefix: new HarmonyMethod(typeof(Patch_CumflationImmunity), nameof(Patch_CumflationImmunity.Prefix)));
|
||||
// Gene: Generous Donor [Postfix Patch]
|
||||
harmony.Patch(AccessTools.Method(typeof(LicentiaLabs.CumflationHelper), nameof(LicentiaLabs.CumflationHelper.TransferNutrition)),
|
||||
postfix: new HarmonyMethod(typeof(Patch_TransferNutrition), nameof(Patch_TransferNutrition.Postfix)));
|
||||
// Gene: CumEater [Postfix Patch] -- This is not exactly licentia, but the Generous-Donor Gene is only active with Licentia
|
||||
harmony.Patch(AccessTools.Method(typeof(rjw.JobDriver_Sex), nameof(rjw.JobDriver_Sex.ChangePsyfocus)),
|
||||
postfix: new HarmonyMethod(typeof(Patch_SexTicks_ChangePsyfocus), nameof(Patch_SexTicks_ChangePsyfocus.Postfix)));
|
||||
// Gene: Likes Cumflation [Postfix Patch]
|
||||
harmony.Patch(AccessTools.Method(typeof(LicentiaLabs.CumflationHelper), nameof(LicentiaLabs.CumflationHelper.Cumflation)),
|
||||
prefix: new HarmonyMethod(typeof(Patch_LikesCumflation), nameof(Patch_LikesCumflation.PostFix)));
|
||||
}
|
||||
}))();
|
||||
}
|
||||
|
|
|
@ -20,6 +20,9 @@ namespace RJW_Genes
|
|||
public static readonly HediffDef rjw_genes_orgasmic_mytosis_hediff;
|
||||
public static readonly HediffDef rjw_genes_mytosis_shock_hediff;
|
||||
|
||||
[MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumstuffed_counter;
|
||||
[MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumflation_counter;
|
||||
|
||||
public static readonly HediffDef OvaryAgitator;
|
||||
public static readonly HediffDef Bioscaffold;
|
||||
}
|
||||
|
|
|
@ -71,6 +71,7 @@
|
|||
<Compile Include="Genes\Breeding\AnimalBreedingHelper.cs" />
|
||||
<Compile Include="Genes\Breeding\Genes\Gene_FerventOvipositor.cs" />
|
||||
<Compile Include="Genes\Breeding\Genes\Gene_InsectIncubator.cs" />
|
||||
<Compile Include="Genes\Cum\Patch_LikesCumflation.cs" />
|
||||
<Compile Include="Genes\Damage\Gene_Elasticity.cs" />
|
||||
<Compile Include="Genes\Life_Force\Events\SuccubusVisit\IncidentWorker_SuccubusVisit.cs" />
|
||||
<Compile Include="Genes\Life_Force\Events\SuccubusVisit\LordJob_SuccubusVisit.cs" />
|
||||
|
@ -93,7 +94,7 @@
|
|||
<Compile Include="Genes\Cum\Gene_NoCum.cs" />
|
||||
<Compile Include="Genes\Cum\Patch_TransferNutrition.cs" />
|
||||
<Compile Include="Genes\Damage\Gene_Unbreakable.cs" />
|
||||
<Compile Include="Genes\Cum\Patch_Cumflation.cs" />
|
||||
<Compile Include="Genes\Cum\Patch_CumflationImmunity.cs" />
|
||||
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraBreasts.cs" />
|
||||
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraAnus.cs" />
|
||||
<Compile Include="Genes\ExtraGenitalia\Gene_Futa.cs" />
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue