瀏覽代碼

Tails can digest prey themselves.

tags/v0.7.0
Fen Dweller 7 年之前
父節點
當前提交
31012d45b5
共有 3 個文件被更改,包括 95 次插入4 次删除
  1. +62
    -1
      game.js
  2. +25
    -3
      recursive-desc.js
  3. +8
    -0
      stroll.html

+ 62
- 1
game.js 查看文件

@@ -281,6 +281,9 @@ let macro =
get tailMass() {
return this.tailVolume * this.tailDensity;
},
get tailDesc() {
return this.tailType + " " + (this.tailCount > 1 ? "tails" : "tail");
},
"dickType": "canine",
"baseDickLength": 0.3,
"baseDickDiameter": 0.08,
@@ -462,6 +465,57 @@ let macro =
"stages": 3
},

"tail": {
"name" : "tail",
"setup": function(owner) {
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.tailDigestTime);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
},
"feedFunc": function(prey,self,owner) {
this.contents[0] = this.contents[0].merge(prey);
},
"describeMove" : function(container) {
return describe("tail-to-stomach",container,this.owner,verbose);
},
"describeDigestion" : function(container) {
return describe("tail",container,this.owner,verbose);
},
"fill": function(owner,container) {
if (owner.gasEnabled)
owner.gasStorage.amount += container.sum_property("mass") * owner.gasDigestFactor / 1e3;
if (owner.scatEnabled) {
owner.scatStorage.amount += container.sum_property("mass") * owner.scatDigestFactor / 1e3;
owner.scatStorage.victims = owner.scatStorage.victims.merge(container);
}
},
get description() {
let prey = new Container();
this.contents.forEach(function(x) {
prey = prey.merge(x);
});

if (prey.count == 0) {
return "Your " + this.owner.tailDesc + " are empty.";
} else {
if (this.owner.tailVoreToStomach) {
return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "clench and squeeze around " : "clenches and squeezes around ") + prey.describe(false) + ", working them deeper and deeper inside.";
}
else if (macro.brutality > 0) {
return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "groans" : "groan") + " ominously as " + (this.owner.tailCount > 1 ? "they gurgle" : "it gurgles" ) + " around " + prey.describe(false) + ", slowly absorbing them into your musky depths.";
} else {
return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "bulge" : "bulges") + " with " + prey.describe(false) + ".";
}
}
},
"contents" : [],
"stages": 3
},

"bowels": {
"name" : "bowels",
"setup": function(owner) {
@@ -911,6 +965,7 @@ let macro =
"init": function() {
this.stomach.setup(this);
this.bowels.setup(this);
this.tail.setup(this);
this.womb.setup(this);
this.balls.setup(this);
this.breasts.setup(this);
@@ -930,6 +985,10 @@ let macro =
this.bowels.moves = this.stomach;
}

if (this.tailVoreToStomach) {
this.tail.moves = this.stomach;
}

if (this.maleParts)
this.fillCum(this);
if (this.femaleParts)
@@ -2601,6 +2660,8 @@ function tail_vore(count)

lines.push(linesummary);

lines.push(newline);

let people = get_living_prey(totalPrey.sum());

let preyMass = totalPrey.sum_property("mass");
@@ -2609,7 +2670,7 @@ function tail_vore(count)

macro.addGrowthPoints(preyMass);

macro.stomach.feed(totalPrey);
macro.tail.feed(totalPrey);
add_victim_people("tail-vore",totalPrey);




+ 25
- 3
recursive-desc.js 查看文件

@@ -5,6 +5,10 @@
var rules = {};
var defaults = {};

function plural(quantity, singular, plural) {
return quantity > 1 ? plural : singular;
}

function getDefault(name) {
let tokens = name.split("-");
for (let i=0; i<tokens.length; i++) {
@@ -21,7 +25,7 @@ var actions = ["eat","chew","vomit","stomp","stomp-wedge","flex-toes","kick","an
"breast-vore","breast-milk","unbirth","sheath-stuff","sheath-clench","sheath-crush",
"sheath-absorb","cock-vore","cockslap","ball-smother","male-spurt","male-orgasm","female-spurt",
"female-orgasm","grind","pouch-stuff","pouch-rub","pouch-eat","pouch-absorb","soul-vore","soul-absorb-paw",
"paw-stench","ass-stench","piss-stench","scat-stench","belch","fart","stomach","womb","balls","bowels","bowels-to-stomach","breasts","bladder",
"paw-stench","ass-stench","piss-stench","scat-stench","belch","fart","stomach","tail","tail-to-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",
"goo-bowels-pull","goo-bowels-push","goo-womb-pull","goo-womb-push","goo-balls-pull","goo-balls-push"];
@@ -243,10 +247,10 @@ function defaultTailVore(container, macro, verbose) {
return "Your drooling tail swings to and fro";
else if (isFatal(macro))
return "Your tail lunges, maw agape, at " + container.describe(verbose) +
". It scarfs down everything in seconds, gulping forcefully to drag your prey into your sloppy guts.";
". It scarfs down everything in seconds, gulping forcefully to drag your prey into your sloppy confines.";
else
return "Your tail lunges, maw agape, at " + container.describe(verbose) +
". It scarfs down everything in a second, gulping forcefully and pulling everything into your belly.";
". It scarfs down everything in a second, gulping forcefully and pulling your prey inside.";
}

function defaultCleavageStuff(container, macro, verbose) {
@@ -598,6 +602,24 @@ function defaultStomach(container, macro, verbose) {
return "Your stomach groans and abosrbs " + container.describe(false) + ".";
}

function defaultTail(container, macro, verbose) {
if (isSadistic(macro))
return "Your " + macro.tailDesc + " " + (macro.tailCount > 1 ? "clench" : "clenches") + ", crushing " + container.describe(false) + " into unrecognizable paste.";
else if (isGory(macro))
return "Your fatal " + (macro.tailCount > 1 ? "tails crush " : "tail crushes ") + container.describe(false) + " to a gory pulp.";
else if (isFatal(macro))
return "Your " + (macro.tailCount > 1 ? "tails gurgles as they digest " : "tail gurgles as it digests ") + container.describe(false) + ".";
else
return "Your " + (macro.tailCount > 1 ? "tails groan and absorb " : "tail groans and absorbs ") + container.describe(false) + ".";
}

function defaultTailToStomach(container, macro, verbose) {
if (isFatal(macro))
return "Your " + (macro.tailCount > 1 ? "tails clench" : "tail clenches") + ", squeezing " + container.describe(false) + " into your gurgling stomach.";
else
return "Your " + (macro.tailCount > 1 ? "tails squeeze" : "tail squeezes") + " " + container.describe(false) + " into your belly.";
}

function defaultBowels(container, macro, verbose) {
if (isSadistic(macro))
return "Your rancid bowels clench and churn, crushing " + container.describe(false) + " into a paste of gore and rubble - and then swiftly absorbing everything.";


+ 8
- 0
stroll.html 查看文件

@@ -620,6 +620,14 @@
<label for="tailStretchiness">Tail stretchiness</label>
<input autocomplete="off" type="number" step="any" name="tailStretchiness" placeholder="1" />
</li>
<li>
<label for="tailDigestTime">Digestion time (0 for manual)</label>
<input autocomplete="off" type="number" step="any" id="tailDigestTime" name="tailDigestTime" placeholder="15">
</li>
<li>
<input autocomplete="off" type="checkbox" checked="true" name="tailVoreToStomach" id="tailVoreToStomach" />
<label class="has-tooltip" for="tailVoreToStomach" title="Otherwise, tail(s) will digest/absorb">Tail vore goes to stomach</label>
</li>
</div>
</ul>
</div>


Loading…
取消
儲存