| @@ -891,7 +891,7 @@ let macro = | |||||
| "femaleParts": true, | "femaleParts": true, | ||||
| "fillCum": function(self) { | "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) | if (self.cumStorage.amount > self.cumStorage.limit) | ||||
| self.arouse(1 * (self.cumStorage.amount / self.cumStorage.limit - 1)); | self.arouse(1 * (self.cumStorage.amount / self.cumStorage.limit - 1)); | ||||
| setTimeout(function () { self.fillCum(self); }, 100); | setTimeout(function () { self.fillCum(self); }, 100); | ||||
| @@ -899,7 +899,7 @@ let macro = | |||||
| }, | }, | ||||
| "fillFemcum": function(self) { | "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) | if (self.femcumStorage.amount > self.femcumStorage.limit) | ||||
| self.arouse(1 * (self.femcumStorage.amount / self.femcumStorage.limit - 1)); | self.arouse(1 * (self.femcumStorage.amount / self.femcumStorage.limit - 1)); | ||||
| setTimeout(function () { self.fillFemcum(self); }, 100); | setTimeout(function () { self.fillFemcum(self); }, 100); | ||||
| @@ -966,8 +966,8 @@ let macro = | |||||
| "scatDigestFactor": 1, | "scatDigestFactor": 1, | ||||
| // no actual filling, but it handles updates | |||||
| "fillScat": function(self) { | "fillScat": function(self) { | ||||
| self.scatStorage.amount += self.scatScale * self.scatStorage.limit / 100; | |||||
| if (self.scatStorage.amount > self.scatStorage.limit * 2) | if (self.scatStorage.amount > self.scatStorage.limit * 2) | ||||
| scat(self.scatStorage.amount); | scat(self.scatStorage.amount); | ||||
| setTimeout(function () { self.fillScat(self); }, 100); | setTimeout(function () { self.fillScat(self); }, 100); | ||||
| @@ -977,35 +977,35 @@ let macro = | |||||
| "cumStorage": { | "cumStorage": { | ||||
| "amount": 0, | "amount": 0, | ||||
| get limit() { | get limit() { | ||||
| return this.owner.ballVolume; | |||||
| return this.owner.ballVolume * this.owner.cumStorageScale; | |||||
| } | } | ||||
| }, | }, | ||||
| "femcumStorage": { | "femcumStorage": { | ||||
| "amount": 0, | "amount": 0, | ||||
| get limit() { | get limit() { | ||||
| return this.owner.vaginaVolume; | |||||
| return this.owner.vaginaVolume * this.owner.femcumStorageScale; | |||||
| } | } | ||||
| }, | }, | ||||
| "milkStorage": { | "milkStorage": { | ||||
| "amount": 0, | "amount": 0, | ||||
| get limit() { | get limit() { | ||||
| return this.owner.breastVolume * 2; | |||||
| return this.owner.breastVolume * 2 * this.owner.milkStorageScale; | |||||
| } | } | ||||
| }, | }, | ||||
| "gasStorage": { | "gasStorage": { | ||||
| "amount": 0, | "amount": 0, | ||||
| get limit() { | get limit() { | ||||
| return Math.pow(this.owner.scale,3) / 1000; | |||||
| return Math.pow(this.owner.scale,3) / 1000 * this.owner.gasStorageScale; | |||||
| } | } | ||||
| }, | }, | ||||
| "pissStorage": { | "pissStorage": { | ||||
| "amount": 0, | "amount": 0, | ||||
| get limit() { | 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, | "amount": 0, | ||||
| "victims": new Container(), | "victims": new Container(), | ||||
| get limit() { | 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; | vol = macro.scatStorage.amount; | ||||
| } | } | ||||
| macro.scatStorage.amount -= vol; | |||||
| let area = Math.pow(vol, 2/3); | let area = Math.pow(vol, 2/3); | ||||
| let scatArea = macro.analVoreArea; | let scatArea = macro.analVoreArea; | ||||
| @@ -2759,6 +2757,8 @@ function scat(vol) { | |||||
| add_victim_people("scat",prey); | add_victim_people("scat",prey); | ||||
| update([sound,line,linesummary,newline]); | update([sound,line,linesummary,newline]); | ||||
| macro.scatStorage.amount -= vol; | |||||
| macro.arouse(50); | macro.arouse(50); | ||||
| } | } | ||||
| @@ -679,9 +679,9 @@ function defaultBladderVore(container, macro, verbose) { | |||||
| } | } | ||||
| function defaultScat(container, macro, verbose) { | function defaultScat(container, macro, verbose) { | ||||
| if (macro.scatStorage.victims.count == 0) { | |||||
| if (macro.scatStorage.amount == 0) { | |||||
| return "Your bowels are empty."; | 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."; | 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 { | } else { | ||||
| return "You squat down, grunting as your lower guts squeeze out a $MASS, $LENGTH-long log of scat that smothers " + container.describe(verbose); | 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> | <label for="baseMass">Cum production factor</label> | ||||
| <input type="number" step="any" id="cumScale" name="cumScale" placeholder="1" /> | <input type="number" step="any" id="cumScale" name="cumScale" placeholder="1" /> | ||||
| </li> | </li> | ||||
| <li> | |||||
| <label for="cumStorageScale">Cum storage multiplier</label> | |||||
| <input type="number" step="any" id="cumStorageScale" name="cumStorageScale" placeholder="1" /> | |||||
| </li> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -541,6 +545,10 @@ | |||||
| <label for="lactationScale">Milk production factor</label> | <label for="lactationScale">Milk production factor</label> | ||||
| <input type="number" step="any" id="lactationScale" name="lactationScale" placeholder="1" /> | <input type="number" step="any" id="lactationScale" name="lactationScale" placeholder="1" /> | ||||
| </li> | </li> | ||||
| <li> | |||||
| <label for="milkStorageScale">Milk storage multiplier</label> | |||||
| <input type="number" step="any" id="milkStorageScale" name="milkStorageScale" placeholder="1" /> | |||||
| </li> | |||||
| </div> | </div> | ||||
| </ul> | </ul> | ||||
| </div> | </div> | ||||
| @@ -586,6 +594,10 @@ | |||||
| <label for="femcumScale">Femcum production factor</label> | <label for="femcumScale">Femcum production factor</label> | ||||
| <input type="number" step="any" id="femcumScale" name="femcumScale" placeholder="1" /> | <input type="number" step="any" id="femcumScale" name="femcumScale" placeholder="1" /> | ||||
| </li> | </li> | ||||
| <li> | |||||
| <label for="femcumStorageScale">Femum storage multiplier</label> | |||||
| <input type="number" step="any" id="femcumStorageScale" name="femcumStorageScale" placeholder="1" /> | |||||
| </li> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -624,6 +636,10 @@ | |||||
| <label for="baseGasDigestFactor">Gas digestion factor</label> | <label for="baseGasDigestFactor">Gas digestion factor</label> | ||||
| <input type="number" step="any" id="baseGasDigestFactor" name="baseGasDigestFactor" placeholder="1" /> | <input type="number" step="any" id="baseGasDigestFactor" name="baseGasDigestFactor" placeholder="1" /> | ||||
| </li> | </li> | ||||
| <li> | |||||
| <label for="gasStorageScale">Gas storage multiplier</label> | |||||
| <input type="number" step="any" id="gasStorageScale" name="gasStorageScale" placeholder="1" /> | |||||
| </li> | |||||
| <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> | <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" /> | <input type="checkbox" id="gasScaleWithSize" name="gasScaleWithSize" /> | ||||
| @@ -671,6 +687,10 @@ | |||||
| <label for="pissScale" >Piss production scale</label> | <label for="pissScale" >Piss production scale</label> | ||||
| <input type="number" step="any" id="pissScale" name="pissScale" placeholder="1" /> | <input type="number" step="any" id="pissScale" name="pissScale" placeholder="1" /> | ||||
| </li> | </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"> | <div class="custom-category-sub"> | ||||
| <ul class="flex-outer-sub"> | <ul class="flex-outer-sub"> | ||||
| <input class="custom-header-checkbox" type="checkbox" id="bladderVore" name="bladderVore" /> | <input class="custom-header-checkbox" type="checkbox" id="bladderVore" name="bladderVore" /> | ||||
| @@ -705,6 +725,14 @@ | |||||
| <label for="scatDigestFactor">Scat digestion factor</label> | <label for="scatDigestFactor">Scat digestion factor</label> | ||||
| <input type="number" step="any" id="scatDigestFactor" name="scatDigestFactor" placeholder="1" /> | <input type="number" step="any" id="scatDigestFactor" name="scatDigestFactor" placeholder="1" /> | ||||
| </li> | </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> | ||||
| </div> | </div> | ||||