瀏覽代碼

Goo push/pull for more vore types. Better fluid descrptions. Typos.

tags/v0.7.0
Fen Dweller 7 年之前
父節點
當前提交
130d1a0f44
共有 3 個文件被更改,包括 118 次插入41 次删除
  1. +76
    -30
      game.js
  2. +36
    -11
      recursive-desc.js
  3. +6
    -0
      stroll.html

+ 76
- 30
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)


+ 36
- 11
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<actions.length; i++) {
rules[actions[i]] = [];
@@ -372,7 +373,7 @@ function defaultSheathClench(container, macro, verbose) {
if (container.count == 0)
return "You squeeze your sheath.";
else if (isGory(macro))
return "You squeeze you packed sheath, reducing " + container.describe(false) + " to a gory paste that slickens your throbbing shaft.";
return "You squeeze your packed sheath, reducing " + container.describe(false) + " to a gory paste that slickens your throbbing shaft.";
else if (isFatal(macro))
return "Your fingers run over your packed sheath, squeezing on the " + macro.describeDick + " shaft within and smashing " + container.describe(false);
else
@@ -433,7 +434,7 @@ function defaultMaleSpurt(container, macro, verbose) {

function defaultMaleOrgasm(container, macro, verbose) {
if (container.count == 0)
return "Your " + macro.describeDick + " cock spurts $TIMES times, gushing $VOLUME of seed.";
return "Your " + macro.describeDick + " cock spurts $TIMES times, gushing out a $VOLUME glob of cum.";
else if (isFatal(macro))
return "You're cumming! Your " + macro.describeDick + " cock erupts with $TIMES ropes of seed, obliterating " + container.describe(verbose) + " in a $VOLUME-torrent of cum.";
else
@@ -595,21 +596,21 @@ function defaultBowelsToStomach(container, macro, verbose) {

function defaultWomb(container, macro, verbose) {
if (isFatal(macro))
return "Your womb squeezes and dissolves " + container.describe(false) + ", turning them into slick femcum.";
return "Your womb squeezes and dissolves " + container.describe(false) + ", turning them into $VOLUME of slick femcum.";
else
return "Your womb squeezes as it absorbs " + container.describe(false);
}

function defaultBalls(container, macro, verbose) {
if (isFatal(macro))
return "Your balls slosh as they digest " + container.describe(false) + " into cum";
return "Your balls slosh as they digest " + container.describe(false) + " into $VOLUME of cum";
else
return "Your balls slosh as they absorb " + container.describe(false);
}

function defaultBreasts(container, macro, verbose) {
if (isFatal(macro))
return "Your breasts grrgle as they digest " + container.describe(false) + " into milk";
if (isFatal(macro) && macro.lactationEnabled)
return "Your breasts grrgle as they digest " + container.describe(false) + " into $VOLUME of milk";
else
return "Your breasts slosh as they absorb " + container.describe(false);
}
@@ -617,13 +618,13 @@ function defaultBreasts(container, macro, verbose) {
function defaultBladder(container, macro, verbose) {
if (isSadistic(macro)) {
let fatalities = get_living_prey(container.sum());
let line = "Your bladder swells as " + container.describe(false) + " are dissolved in your acrid piss.";
let line = "Your bladder swells as " + container.describe(false) + " are dissolved in your acrid piss, digesting them down to $VOLUME of fresh urine";
if (fatalities > 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


+ 6
- 0
stroll.html 查看文件

@@ -301,6 +301,12 @@
<button class="action-button" id="button-action-melt">Melt</button>
<button class="action-button" id="button-action-goo_stomach_push">Push to Stomach</button>
<button class="action-button" id="button-action-goo_stomach_pull">Pull from Stomach</button>
<button class="action-button" id="button-action-goo_bowels_push">Push to Bowels</button>
<button class="action-button" id="button-action-goo_bowels_pull">Pull from Bowels</button>
<button class="action-button" id="button-action-goo_womb_push">Push to Womb</button>
<button class="action-button" id="button-action-goo_womb_pull">Pull from Womb</button>
<button class="action-button" id="button-action-goo_balls_push">Push to Balls</button>
<button class="action-button" id="button-action-goo_balls_pull">Pull from Balls</button>
</div>

<div class="action-tab" id="actions-misc">


Loading…
取消
儲存