From 130d1a0f44554045fefbb6773cdb8fe50f5917f0 Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Sat, 26 May 2018 16:00:57 -0400 Subject: [PATCH] Goo push/pull for more vore types. Better fluid descrptions. Typos. --- game.js | 106 +++++++++++++++++++++++++++++++++------------- recursive-desc.js | 47 +++++++++++++++----- stroll.html | 6 +++ 3 files changed, 118 insertions(+), 41 deletions(-) diff --git a/game.js b/game.js index dfcc1c2..1f914cb 100644 --- a/game.js +++ b/game.js @@ -417,8 +417,8 @@ let macro = let sound = getSound("digest",container.sum_property("mass")); - let line = organ.describeDigestion(container); - organ.fill(this,container); + let vol = organ.fill(this,container); + let line = organ.describeDigestion(container, vol); let lethal = macro.brutality != 0 && (!macro.soulVoreEnabled || organ.name === "souls"); let summary = summarize(container.sum(),lethal); @@ -564,11 +564,13 @@ let macro = "feedFunc": function(prey,self,owner) { this.contents[0] = this.contents[0].merge(prey); }, - "describeDigestion" : function(container) { - return describe("womb",container,this.owner,verbose); + "describeDigestion": function(container, vol) { + return describe("womb",container,this.owner,verbose).replace("$VOLUME",volume(vol,unit,false)); }, "fill": function(owner,container) { - owner.femcumStorage.amount += container.sum_property("mass") * owner.femcumDigestFactor / 1e3; + let amount = container.sum_property("mass") * owner.femcumDigestFactor / 1e3; + owner.femcumStorage.amount += amount; + return amount; }, get description() { let prey = new Container(); @@ -614,11 +616,13 @@ let macro = "feedFunc": function(prey,self,owner) { this.contents[0] = this.contents[0].merge(prey); }, - "describeDigestion": function(container) { - return describe("balls",container,this.owner,verbose); + "describeDigestion": function(container, vol) { + return describe("balls",container,this.owner,verbose).replace("$VOLUME",volume(vol,unit,false)); }, "fill": function(owner,container) { - owner.cumStorage.amount += container.sum_property("mass") * owner.cumDigestFactor / 1e3; + let amount = container.sum_property("mass") * owner.cumDigestFactor / 1e3; + owner.cumStorage.amount += amount; + return amount; }, get description() { let prey = new Container(); @@ -664,12 +668,14 @@ let macro = "feedFunc": function(prey,self,owner) { this.contents[0] = this.contents[0].merge(prey); }, - "describeDigestion": function(container) { - return describe("breasts",container,this.owner,verbose); + "describeDigestion": function(container, vol) { + return describe("breasts",container,this.owner,verbose).replace("$VOLUME",volume(vol,unit,false)); }, "fill": function(owner,container) { if (macro.lactationEnabled) { - owner.milkStorage.amount += container.sum_property("mass") * owner.milkDigestFactor / 1e3; + let amount = container.sum_property("mass") * owner.milkDigestFactor / 1e3; + owner.milkStorage.amount += amount; + return amount; } }, get description() { @@ -716,13 +722,13 @@ let macro = "feedFunc": function(prey,self,owner) { this.contents[0] = this.contents[0].merge(prey); }, - "describeDigestion": function(container) { - return describe("bladder",container,this.owner,verbose); + "describeDigestion": function(container, vol) { + return describe("bladder",container,this.owner,verbose).replace("$VOLUME",volume(vol,unit,false)); }, "fill": function(owner,container) { - if (macro.lactationEnabled) { - owner.pissStorage.amount += container.sum_property("mass") * owner.pissDigestFactor / 1e3; - } + let amount = container.sum_property("mass") * owner.pissDigestFactor / 1e3; + owner.pissStorage.amount += amount; + return amount; }, get description() { let prey = new Container(); @@ -758,7 +764,8 @@ let macro = this.feedFunc(prey,this,this.owner); }, "feedFunc": function(prey,self,owner) { - this.contents[0] = this.contents[0].merge(prey); + if (get_living_prey(prey.sum()) > 0) + this.contents[0] = this.contents[0].merge(prey); }, "describeDigestion": function(container) { return describe("soul-digest",container,this.owner,verbose); @@ -772,13 +779,15 @@ let macro = prey = prey.merge(x); }); - if (prey.count == 0) { + let souls = get_living_prey(prey.sum()); + + if (souls == 0) { return "Your depths hold no souls."; } else { if (macro.brutality > 0) { - return "Your depths bubble and boil with energy, slowly digesting the " + (prey.count > 1 ? "souls of " : "soul of ") + prey.describe(false); + return "Your depths bubble and boil with energy, slowly digesting " + (souls > 1 ? souls + " souls." : "a lonely soul"); } else { - return "You feel " + (prey.count > 1 ? prey.count + " souls " : "a soul ") + "trapped in your depths."; + return "You feel " + (souls > 1 ? souls + " souls " : "a soul ") + "trapped in your depths."; } } }, @@ -2421,7 +2430,7 @@ function male_orgasm(vol,times) let area = Math.pow(vol, 2/3); let prey = getPrey(biome, area); - let line = describe("male-orgasm", prey, macro, verbose).replace("$TIMES",times).replace("$VOLUME",volume(vol*times,unit,false)); + let line = describe("male-orgasm", prey, macro, verbose).replace("$TIMES",times).replace("$VOLUME",volume(vol*times,unit,true)); let linesummary = summarize(prey.sum(), true); let people = get_living_prey(prey.sum()); @@ -2958,6 +2967,21 @@ function gooButtons(molten) { setButton("solidify", molten); setButton("goo_stomach_pull", molten); setButton("goo_stomach_push", molten); + + if (macro.analVore) { + setButton("goo_bowels_pull", molten); + setButton("goo_bowels_push", molten); + } + + if (macro.femaleParts) { + setButton("goo_womb_pull", molten); + setButton("goo_womb_push", molten); + } + + if (macro.maleParts) { + setButton("goo_balls_pull", molten); + setButton("goo_balls_push", molten); + } } function melt() @@ -3030,9 +3054,9 @@ function move_prey(from, to) { return prey; } -function goo_stomach_pull() { - let prey = move_prey(macro.stomach, macro.goo); - let line = describe("goo-stomach-pull", prey, macro, verbose); +function goo_move_prey(from, to, name) { + let prey = move_prey(from, to); + let line = describe(name, prey, macro, verbose); let linesummary = summarize(prey.sum(), false); let preyMass = prey.sum_property("mass"); let sound = getSound("goo", preyMass); @@ -3040,14 +3064,36 @@ function goo_stomach_pull() { update([sound, line, linesummary, newline]); } +function goo_stomach_pull() { + return goo_move_prey(macro.stomach, macro.goo, "goo-stomach-pull"); +} + function goo_stomach_push() { - let prey = move_prey(macro.goo, macro.stomach); - let line = describe("goo-stomach-push", prey, macro, verbose); - let linesummary = summarize(prey.sum(), false); - let preyMass = prey.sum_property("mass"); - let sound = getSound("goo", preyMass); + return goo_move_prey(macro.goo, macro.stomach, "goo-stomach-push"); +} - update([sound, line, linesummary, newline]); +function goo_bowels_pull() { + return goo_move_prey(macro.bowels, macro.goo, "goo-bowels-pull"); +} + +function goo_bowels_push() { + return goo_move_prey(macro.goo, macro.bowels, "goo-bowels-push"); +} + +function goo_womb_pull() { + return goo_move_prey(macro.womb, macro.goo, "goo-womb-pull"); +} + +function goo_womb_push() { + return goo_move_prey(macro.goo, macro.womb, "goo-womb-push"); +} + +function goo_balls_pull() { + return goo_move_prey(macro.balls, macro.goo, "goo-balls-pull"); +} + +function goo_balls_push() { + return goo_move_prey(macro.goo, macro.balls, "goo-balls-push"); } function transformNumbers(line) diff --git a/recursive-desc.js b/recursive-desc.js index 411e793..20fc290 100644 --- a/recursive-desc.js +++ b/recursive-desc.js @@ -23,7 +23,8 @@ var actions = ["eat","chew","vomit","stomp","stomp-wedge","flex-toes","kick","an "female-orgasm","grind","pouch-stuff","pouch-rub","pouch-eat","pouch-absorb","soul-vore","soul-absorb-paw", "paw-stench","ass-stench","belch","fart","stomach","womb","balls","bowels","bowels-to-stomach","breasts","bladder","soul-digest", "wear-shoe","remove-shoe","wear-sock","remove-sock","stuff-shoe","dump-shoe","stuff-sock","dump-sock","piss","bladder-vore","scat", -"sheath-toy","slit-toy","breast-toy","melt","solidify","stomp-goo","goo-digest","ass-goo","goo-stomach-pull","goo-stomach-push"]; +"sheath-toy","slit-toy","breast-toy","melt","solidify","stomp-goo","goo-digest","ass-goo","goo-stomach-pull","goo-stomach-push", +"goo-bowels-pull","goo-bowels-push","goo-womb-pull","goo-womb-push","goo-balls-pull","goo-balls-push"]; for (let i=0; i 0) { line += " " + (fatalities > 1 ? fatalities + " lives are" : "a life is") + " snuffed out by the horrific yellow tide, corroded and annihilated amongst the unbearable stench of urine."; } return line; } else if (isFatal(macro)) - return "Your bladder swells as it dissolves " + container.describe(false) + " into acrid piss"; + return "Your bladder swells as it dissolves " + container.describe(false) + " into $VOLUME of acrid piss"; else return "Your bladder squeezes as it absorbs " + container.describe(false); } @@ -738,7 +739,7 @@ function defaultBladderVore(container, macro, verbose) { } else { if (macro.maleParts) { - return "You snatch up " + container.describe(verbose) + " and stuff them into your " + macro.describeDick + ", grinding them to its base and forcing them into your musky bladder."; + return "You snatch up " + container.describe(verbose) + " and stuff them into your " + macro.describeDick + " cock, grinding them to its base and forcing them into your musky bladder."; } else if (macro.femaleParts) { return "You snatch " + container.describe(verbose) + " in your iron grip, grinding them against your " + macro.describeVagina + " slit before stuffing them into your urethra, sealing them away in your musky bladder."; } else { @@ -805,7 +806,31 @@ function defaultGooStomachPull(container, macro, verbose) { } function defaultGooStomachPush(container, macro, verobse) { - return "Your churning goo herds " + container.describe(false) + " into your churning stomach."; + return "Your churning goo herds " + container.describe(false) + " into your gurgling stomach."; +} + +function defaultGooBowelsPull(container, macro, verbose) { + return "Your molten depths squeeze in around the " + container.describe(false) + " imprisoned in your bowels, drawing them into the viscous goo."; +} + +function defaultGooBowelsPush(container, macro, verobse) { + return "Your churning goo herds " + container.describe(false) + " into your clenching bowels."; +} + +function defaultGooWombPull(container, macro, verbose) { + return "Your molten depths squeeze in around the " + container.describe(false) + " imprisoned in your womb, drawing them into the viscous goo."; +} + +function defaultGooWombPush(container, macro, verobse) { + return "Your churning goo herds " + container.describe(false) + " into your slick womb."; +} + +function defaultGooBallsPull(container, macro, verbose) { + return "Your molten depths squeeze in around the " + container.describe(false) + " imprisoned in your balls, drawing them into the viscous goo."; +} + +function defaultGooBallsPush(container, macro, verobse) { + return "Your churning goo herds " + container.describe(false) + " into your musky balls."; } // EATING diff --git a/stroll.html b/stroll.html index d201adb..bd3cfc5 100644 --- a/stroll.html +++ b/stroll.html @@ -301,6 +301,12 @@ + + + + + +