| @@ -891,7 +891,7 @@ let macro = | |||
| "femaleParts": true, | |||
| "fillCum": function(self) { | |||
| self.cumStorage.amount += self.cumScale * self.ballVolume / 1200; | |||
| self.cumStorage.amount += self.cumScale * self.cumStorage.limit / 1200; | |||
| if (self.cumStorage.amount > self.cumStorage.limit) | |||
| self.arouse(1 * (self.cumStorage.amount / self.cumStorage.limit - 1)); | |||
| setTimeout(function () { self.fillCum(self); }, 100); | |||
| @@ -899,7 +899,7 @@ let macro = | |||
| }, | |||
| "fillFemcum": function(self) { | |||
| self.femcumStorage.amount += self.femcumScale * self.vaginaVolume / 1200; | |||
| self.femcumStorage.amount += self.femcumScale * self.femcumStorage.limit / 1200; | |||
| if (self.femcumStorage.amount > self.femcumStorage.limit) | |||
| self.arouse(1 * (self.femcumStorage.amount / self.femcumStorage.limit - 1)); | |||
| setTimeout(function () { self.fillFemcum(self); }, 100); | |||
| @@ -966,8 +966,8 @@ let macro = | |||
| "scatDigestFactor": 1, | |||
| // no actual filling, but it handles updates | |||
| "fillScat": function(self) { | |||
| self.scatStorage.amount += self.scatScale * self.scatStorage.limit / 100; | |||
| if (self.scatStorage.amount > self.scatStorage.limit * 2) | |||
| scat(self.scatStorage.amount); | |||
| setTimeout(function () { self.fillScat(self); }, 100); | |||
| @@ -977,35 +977,35 @@ let macro = | |||
| "cumStorage": { | |||
| "amount": 0, | |||
| get limit() { | |||
| return this.owner.ballVolume; | |||
| return this.owner.ballVolume * this.owner.cumStorageScale; | |||
| } | |||
| }, | |||
| "femcumStorage": { | |||
| "amount": 0, | |||
| get limit() { | |||
| return this.owner.vaginaVolume; | |||
| return this.owner.vaginaVolume * this.owner.femcumStorageScale; | |||
| } | |||
| }, | |||
| "milkStorage": { | |||
| "amount": 0, | |||
| get limit() { | |||
| return this.owner.breastVolume * 2; | |||
| return this.owner.breastVolume * 2 * this.owner.milkStorageScale; | |||
| } | |||
| }, | |||
| "gasStorage": { | |||
| "amount": 0, | |||
| get limit() { | |||
| return Math.pow(this.owner.scale,3) / 1000; | |||
| return Math.pow(this.owner.scale,3) / 1000 * this.owner.gasStorageScale; | |||
| } | |||
| }, | |||
| "pissStorage": { | |||
| "amount": 0, | |||
| get limit() { | |||
| return Math.pow(this.owner.scale,3) / 5000; | |||
| return Math.pow(this.owner.scale,3) / 5000 * this.owner.pissStorageScale; | |||
| } | |||
| }, | |||
| @@ -1015,7 +1015,7 @@ let macro = | |||
| "amount": 0, | |||
| "victims": new Container(), | |||
| get limit() { | |||
| return Math.pow(this.owner.scale,3) / 1000; | |||
| return Math.pow(this.owner.scale,3) / 1000 * this.owner.scatStorageScale; | |||
| } | |||
| }, | |||
| @@ -2739,8 +2739,6 @@ function scat(vol) { | |||
| vol = macro.scatStorage.amount; | |||
| } | |||
| macro.scatStorage.amount -= vol; | |||
| let area = Math.pow(vol, 2/3); | |||
| let scatArea = macro.analVoreArea; | |||
| @@ -2759,6 +2757,8 @@ function scat(vol) { | |||
| add_victim_people("scat",prey); | |||
| update([sound,line,linesummary,newline]); | |||
| macro.scatStorage.amount -= vol; | |||
| macro.arouse(50); | |||
| } | |||
| @@ -679,9 +679,9 @@ function defaultBladderVore(container, macro, verbose) { | |||
| } | |||
| function defaultScat(container, macro, verbose) { | |||
| if (macro.scatStorage.victims.count == 0) { | |||
| if (macro.scatStorage.amount == 0) { | |||
| return "Your bowels are empty."; | |||
| } else if (macro.brutality > 0) { | |||
| } else if (macro.brutality > 0 && macro.scatStorage.victims.amount > 0) { | |||
| return "You squat down, grunting as your lower guts squeeze out a $MASS, $LENGTH-long log of scat that smothers " + container.describe(verbose) + ". Embedded in the thick, chunky waste are the remains of " + listSum(macro.scatStorage.victims.sum()) + ", now little more than bones and wreckage in your shit."; | |||
| } else { | |||
| return "You squat down, grunting as your lower guts squeeze out a $MASS, $LENGTH-long log of scat that smothers " + container.describe(verbose); | |||
| @@ -516,6 +516,10 @@ | |||
| <label for="baseMass">Cum production factor</label> | |||
| <input type="number" step="any" id="cumScale" name="cumScale" placeholder="1" /> | |||
| </li> | |||
| <li> | |||
| <label for="cumStorageScale">Cum storage multiplier</label> | |||
| <input type="number" step="any" id="cumStorageScale" name="cumStorageScale" placeholder="1" /> | |||
| </li> | |||
| </div> | |||
| </div> | |||
| @@ -541,6 +545,10 @@ | |||
| <label for="lactationScale">Milk production factor</label> | |||
| <input type="number" step="any" id="lactationScale" name="lactationScale" placeholder="1" /> | |||
| </li> | |||
| <li> | |||
| <label for="milkStorageScale">Milk storage multiplier</label> | |||
| <input type="number" step="any" id="milkStorageScale" name="milkStorageScale" placeholder="1" /> | |||
| </li> | |||
| </div> | |||
| </ul> | |||
| </div> | |||
| @@ -586,6 +594,10 @@ | |||
| <label for="femcumScale">Femcum production factor</label> | |||
| <input type="number" step="any" id="femcumScale" name="femcumScale" placeholder="1" /> | |||
| </li> | |||
| <li> | |||
| <label for="femcumStorageScale">Femum storage multiplier</label> | |||
| <input type="number" step="any" id="femcumStorageScale" name="femcumStorageScale" placeholder="1" /> | |||
| </li> | |||
| </div> | |||
| </div> | |||
| @@ -624,6 +636,10 @@ | |||
| <label for="baseGasDigestFactor">Gas digestion factor</label> | |||
| <input type="number" step="any" id="baseGasDigestFactor" name="baseGasDigestFactor" placeholder="1" /> | |||
| </li> | |||
| <li> | |||
| <label for="gasStorageScale">Gas storage multiplier</label> | |||
| <input type="number" step="any" id="gasStorageScale" name="gasStorageScale" placeholder="1" /> | |||
| </li> | |||
| <li> | |||
| <label class="has-tooltip" for="gasScaleWithSize" title="If checked, produces more gas from the same prey as you get larger">Scale gas with size</label> | |||
| <input type="checkbox" id="gasScaleWithSize" name="gasScaleWithSize" /> | |||
| @@ -671,6 +687,10 @@ | |||
| <label for="pissScale" >Piss production scale</label> | |||
| <input type="number" step="any" id="pissScale" name="pissScale" placeholder="1" /> | |||
| </li> | |||
| <li> | |||
| <label for="pissStorageScale">Piss storage multiplier</label> | |||
| <input type="number" step="any" id="pissStorageScale" name="pissStorageScale" placeholder="1" /> | |||
| </li> | |||
| <div class="custom-category-sub"> | |||
| <ul class="flex-outer-sub"> | |||
| <input class="custom-header-checkbox" type="checkbox" id="bladderVore" name="bladderVore" /> | |||
| @@ -705,6 +725,14 @@ | |||
| <label for="scatDigestFactor">Scat digestion factor</label> | |||
| <input type="number" step="any" id="scatDigestFactor" name="scatDigestFactor" placeholder="1" /> | |||
| </li> | |||
| <li> | |||
| <label class="has-tooltip" for="scatScale" title="1 = 1% fill per second">Passive scat production</label> | |||
| <input type="number" step="any" id="scatScale" name="scatScale" placeholder="0" /> | |||
| </li> | |||
| <li> | |||
| <label for="scatStorageScale">Scat storage multiplier</label> | |||
| <input type="number" step="any" id="scatStorageScale" name="scatStorageScale" placeholder="1" /> | |||
| </li> | |||
| </div> | |||
| </div> | |||