Changed Living Cumbucket behaviour

This commit is contained in:
Vegapnk 2024-07-23 09:06:36 +02:00
parent 4ef1c95f1f
commit c2f355f954
4 changed files with 32 additions and 13 deletions

View file

@ -182,9 +182,11 @@ 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
- Great images by @WasMachenDennSachen
- Great icons by @Alpenglow
**Beta-2** (17-07-2024)
**Since Beta-2** (17-07-2024)
- Changed behaviour of living cumbucket. Now, once "really full" the output happens more rarely but is much more at once.
# 2.1.0 (27-06-2024)

View file

@ -20,7 +20,7 @@
<li>0.5</li>
<li>0.25</li>
<li>0.1</li>
<li>0.005</li>
<li>0.5</li>
</mtbDaysPerStage>
</li>
</comps>
@ -74,7 +74,7 @@
</capMods>
</li>
<li>
<label>living fountain</label>
<label>living reservior</label>
<minSeverity>10.1</minSeverity>
<hungerRateFactor>0.1</hungerRateFactor>
<statOffsets>

View file

@ -6,7 +6,7 @@
<JobDef>
<defName>ProcessCumbucket</defName>
<driverClass>RJW_Genes.JobDriver_ProcessingCumbucket</driverClass>
<playerInterruptible>true</playerInterruptible>
<playerInterruptible>false</playerInterruptible>
<casualInterruptible>false</casualInterruptible>
<reportString>processing internal cumbucket.</reportString>
<suspendable>false</suspendable>

View file

@ -97,15 +97,32 @@ namespace RJW_Genes
return;
}
//TODO: Fine-Tune the amount and how things calm down.
// Case 1: "Normal Severity", just puke out a bit of cum here and there.
if (hediff.Severity <= 10)
{
Thing cum = ThingMaker.MakeThing(cumDef);
cum.Position = cell;
int stacks = Math.Max(1, (int)(hediff.Severity * 1.5));
stacks = Math.Min(stacks, 75); // 75 is the default max stacksize ...
cum.stackCount = stacks;
cum.SpawnSetup(map, false);
hediff.Severity -= (stacks / 50);
} else
// Case 2: Reserviour mode, put out a lot of cum at once but less often.
{
int stacks = Math.Max(1, (int)(hediff.Severity * 1.5));
Thing cum = ThingMaker.MakeThing(cumDef);
cum.Position = cell;
int stacks = Math.Max(1, (int)(hediff.Severity * 1.5));
stacks = Math.Min(stacks, 75); // 75 is the default max stacksize ...
cum.stackCount = stacks;
cum.SpawnSetup(map, false);
hediff.Severity -= (stacks / 50);
while (stacks > 0)
{
Thing cum = ThingMaker.MakeThing(cumDef);
cum.Position = cell;
var curStacks = Math.Min(stacks, 75); // 75 is the default max stacksize ...
cum.stackCount = stacks;
cum.SpawnSetup(map, false);
hediff.Severity -= (curStacks / 50);
stacks -= curStacks;
}
}
}
private int ticksLeft;