Sfoglia il codice sorgente

You can now get nothing. Added samesize vore/stomp options

tags/v0.7.0
Fen Dweller 8 anni fa
parent
commit
319544c33a
4 ha cambiato i file con 141 aggiunte e 57 eliminazioni
  1. +30
    -19
      game.js
  2. +99
    -31
      recursive-desc.js
  3. +1
    -4
      recursive-macro.js
  4. +11
    -3
      stroll.html

+ 30
- 19
game.js Vedi File

@@ -63,8 +63,11 @@ let macro =
"baseHandArea": 0.1, "baseHandArea": 0.1,
get handArea() { return this.scaling(this.baseHandArea, this.scale, 2); }, get handArea() { return this.scaling(this.baseHandArea, this.scale, 2); },


"sameSizeVore": true,
"sameSizeStomp": true,

"assScale": 1, "assScale": 1,
analVore: true,
"analVore": true,


"hasTail": true, "hasTail": true,
"tailType": "slinky", "tailType": "slinky",
@@ -889,7 +892,7 @@ function summarize(sum, fatal = true)
return "<b>(" + count + " " + word + ")</b>"; return "<b>(" + count + " " + word + ")</b>";
} }


function getOnePrey(biome,area)
function getOnePrey(biome, area, sameSize = true)
{ {
let potential = ["Person"]; let potential = ["Person"];


@@ -922,9 +925,13 @@ function getOnePrey(biome,area)
} }
} }


return new Container([new Person(1)]);
if (sameSize)
return new Container([new Person(1)]);
else
return new Container();
} }
function getPrey(region, area)

function getPrey(region, area, sameSize = false)
{ {
let weights = {"Person": 1}; let weights = {"Person": 1};


@@ -991,7 +998,11 @@ function getPrey(region, area)
}; break; }; break;
} }
} }
return fill_area(area,weights);
var prey = fill_area(area,weights);

if (prey.count == 0 && sameSize)
return getOnePrey(biome, area);
return prey;
} }




@@ -1010,7 +1021,7 @@ function updateVictims(type,prey)
function feed() function feed()
{ {
let area = macro.handArea; let area = macro.handArea;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeVore);


let line = describe("eat", prey, macro, verbose); let line = describe("eat", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);
@@ -1048,7 +1059,7 @@ function feed()
function chew() function chew()
{ {
let area = macro.handArea; let area = macro.handArea;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeVore);


let line = describe("chew", prey, macro, verbose); let line = describe("chew", prey, macro, verbose);


@@ -1085,7 +1096,7 @@ function chew()
function stomp() function stomp()
{ {
let area = macro.pawArea; let area = macro.pawArea;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeStomp);
let line = describe("stomp", prey, macro, verbose); let line = describe("stomp", prey, macro, verbose);
let linesummary = summarize(prey.sum(), true); let linesummary = summarize(prey.sum(), true);


@@ -1125,7 +1136,7 @@ function grind()
if (macro.femalePartS) if (macro.femalePartS)
area += macro.vaginaArea; area += macro.vaginaArea;


let prey = getPrey(biome,area);
let prey = getPrey(biome, area);


let line = describe("grind", prey, macro, verbose); let line = describe("grind", prey, macro, verbose);
let linesummary = summarize(prey.sum(), true); let linesummary = summarize(prey.sum(), true);
@@ -1160,7 +1171,7 @@ function grind()
function anal_vore() function anal_vore()
{ {
let area = macro.analVoreArea; let area = macro.analVoreArea;
let prey = getOnePrey(biome,area);
let prey = getOnePrey(biome, macro.sameSizeVore);


let line = describe("anal-vore", prey, macro, verbose); let line = describe("anal-vore", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);
@@ -1201,7 +1212,7 @@ function sit()
anal_vore(); anal_vore();


let area = macro.assArea; let area = macro.assArea;
let crushed = getPrey(biome,area);
let crushed = getPrey(biome, area, macro.sameSizeStomp);


let line = describe("ass-crush", crushed, macro, verbose); let line = describe("ass-crush", crushed, macro, verbose);
let linesummary = summarize(crushed.sum(), true); let linesummary = summarize(crushed.sum(), true);
@@ -1372,7 +1383,7 @@ function cleavage_absorb()
function breast_crush() function breast_crush()
{ {
let area = macro.breastArea; let area = macro.breastArea;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeStomp);
let line = describe("breast-crush", prey, macro, verbose); let line = describe("breast-crush", prey, macro, verbose);
let linesummary = summarize(prey.sum(), true); let linesummary = summarize(prey.sum(), true);


@@ -1412,7 +1423,7 @@ function breast_vore()
{ {
// todo nipple areas? // todo nipple areas?
let area = macro.breastArea/2; let area = macro.breastArea/2;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeVore);
let line = describe("breast-vore", prey, macro, verbose); let line = describe("breast-vore", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);


@@ -1494,7 +1505,7 @@ function breast_milk(e,vol)
function unbirth() function unbirth()
{ {
let area = macro.vaginaArea; let area = macro.vaginaArea;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeVore);
let line = describe("unbirth", prey, macro, verbose); let line = describe("unbirth", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);


@@ -1530,7 +1541,7 @@ function unbirth()


function sheath_stuff() function sheath_stuff()
{ {
let area = Math.min(macro.handArea, macro.dickGirth*3);
let area = Math.min(macro.handArea, macro.dickArea);
let prey = getPrey(biome, area); let prey = getPrey(biome, area);
let line = describe("sheath-stuff", prey, macro, verbose); let line = describe("sheath-stuff", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);
@@ -1689,7 +1700,7 @@ function cockslap()
function cock_vore() function cock_vore()
{ {
let area = macro.dickGirth; let area = macro.dickGirth;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeVore);
let line = describe("cock-vore", prey, macro, verbose); let line = describe("cock-vore", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);


@@ -1925,7 +1936,7 @@ function tail_slap()
function tail_vore() function tail_vore()
{ {
let area = macro.tailGirth * macro.tailCount; let area = macro.tailGirth * macro.tailCount;
let prey = getPrey(biome, area);
let prey = getPrey(biome, area, macro.sameSizeVore);
let line = describe("tail-vore", prey, macro, verbose); let line = describe("tail-vore", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);


@@ -2033,7 +2044,7 @@ function pouch_eat()
function soul_vore() function soul_vore()
{ {
let area = macro.height * macro.height; let area = macro.height * macro.height;
let prey = getPrey(biome,area);
let prey = getPrey(biome, area);


let line = describe("soul-vore", prey, macro, verbose); let line = describe("soul-vore", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false); let linesummary = summarize(prey.sum(), false);
@@ -2070,7 +2081,7 @@ function soul_vore()


function soul_absorb_paw() function soul_absorb_paw()
{ {
let prey = getPrey(biome,macro.pawArea);
let prey = getPrey(biome, macro.pawArea, macro.sameSizeStomp);


let line = describe("soul-absorb-paw", prey, macro, verbose); let line = describe("soul-absorb-paw", prey, macro, verbose);
let linesummary = summarize(prey.sum(), true); let linesummary = summarize(prey.sum(), true);


+ 99
- 31
recursive-desc.js Vedi File

@@ -20,7 +20,8 @@ var actions = ["eat","chew","stomp","kick","anal-vore","ass-crush","tail-slap","
"cleavage-stuff","cleavage-crush","cleavage-drop","cleavage-absorb","breast-crush", "cleavage-stuff","cleavage-crush","cleavage-drop","cleavage-absorb","breast-crush",
"breast-vore","breast-milk","unbirth","sheath-stuff","sheath-squeeze","sheath-crush", "breast-vore","breast-milk","unbirth","sheath-stuff","sheath-squeeze","sheath-crush",
"sheath-absorb","cock-vore","cockslap","ball-smother","male-spurt","male-orgasm","female-spurt", "sheath-absorb","cock-vore","cockslap","ball-smother","male-spurt","male-orgasm","female-spurt",
"female-orgasm","grind","pouch-stuff","soul-vore","soul-absorb-paw","pouch-eat","stomach","womb","balls","bowels","breasts","soul-digest"];
"female-orgasm","grind","pouch-stuff","soul-vore","soul-absorb-paw","pouch-eat","stomach","womb",
"balls","bowels","breasts","soul-digest"];


for (let i=0; i<actions.length; i++) { for (let i=0; i<actions.length; i++) {
rules[actions[i]] = []; rules[actions[i]] = [];
@@ -114,40 +115,57 @@ function describe(action, container, macro, verbose=true) {
// DEFAULTS // DEFAULTS


function defaultEat(container, macro, verbose) { function defaultEat(container, macro, verbose) {
return "You scoop up " + container.describe(verbose) + " and swallow " + (container.count > 1 ? "them" : "it") + " whole.";
if (container.count == 0)
return "You reach down for a delicious treat and grab - oh, nothing.";
else
return "You scoop up " + container.describe(verbose) + " and swallow " + (container.count > 1 ? "them" : "it") + " whole.";
} }


function defaultChew(container, macro, verbose) { function defaultChew(container, macro, verbose) {
if (isNonFatal(macro))
if (container.count == 0)
return "You reach down for a delicious treat and grab - oh, nothing.";
else if (isNonFatal(macro))
return defaultEat(container, macro, verbose); return defaultEat(container, macro, verbose);
else else
return "You scoop up " + container.describe(verbose) + " and crunch " + (container.count > 1 ? "them" : "it") + " in your powerful jaws, then swallow them down."; return "You scoop up " + container.describe(verbose) + " and crunch " + (container.count > 1 ? "them" : "it") + " in your powerful jaws, then swallow them down.";
} }


function defaultStomp(container, macro, verbose) { function defaultStomp(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your paw thumps the ground.";
else if (isFatal(macro))
return "You crush " + container.describe(verbose) + " underfoot."; return "You crush " + container.describe(verbose) + " underfoot.";
else else
return "You step on " + container.describe(verbose) + "."; return "You step on " + container.describe(verbose) + ".";
} }


function defaultKick(container, macro, verbose) { function defaultKick(container, macro, verbose) {
return "You punt " + container.describe(verbose) + ", destroying " + (container.count > 1 ? "them" : "it") + ".";
if (container.count == 0)
return "You swing your mighty paw..and hit nothing.";
else
return "You punt " + container.describe(verbose) + ", destroying " + (container.count > 1 ? "them" : "it") + ".";
} }


function defaultAnalVore(container, macro, verbose) { function defaultAnalVore(container, macro, verbose) {
return "You sit yourself down on " + container.describe(verbose) + ". " + (container.count > 1 ? "They slide" : "It slides") + " inside with ease.";
if (container.count == 0)
return "You're pretty sure you just sat on a rock.";
else
return "You sit yourself down on " + container.describe(verbose) + ". " + (container.count > 1 ? "They slide" : "It slides") + " inside with ease.";
} }


function defaultAssCrush(container, macro, verbose) { function defaultAssCrush(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "You take a seat. It's good to have a break!";
else if (isFatal(macro))
return "Your heavy ass obliterates " + container.describe(verbose) + ". "; return "Your heavy ass obliterates " + container.describe(verbose) + ". ";
else else
return "You sit on " + container.describe(verbose); return "You sit on " + container.describe(verbose);
} }


function defaultTailSlap(container, macro, verbose) { function defaultTailSlap(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your " + (macro.tailCount > 1 ? "tails swing" : "tail swings") + " to and fro";
else if (isFatal(macro))
return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails swing" : " tail swings") + " into " + container.describe(verbose) + ", smashing everything in " + return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails swing" : " tail swings") + " into " + container.describe(verbose) + ", smashing everything in " +
(macro.tailCount > 1 ? "their" : "its") + " path."; (macro.tailCount > 1 ? "their" : "its") + " path.";
else else
@@ -155,7 +173,9 @@ function defaultTailSlap(container, macro, verbose) {
} }


function defaultTailVore(container, macro, verbose) { function defaultTailVore(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your " + (macro.tailCount > 1 ? "drooling tails swing" : "drooling tail swings") + " to and fro";
else if (isFatal(macro))
return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails lunge, maws agape, " : " tail lunges, maw agape, ") + "at " + container.describe(verbose) + return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails lunge, maws agape, " : " tail lunges, maw agape, ") + "at " + container.describe(verbose) +
". " + (macro.tailCount > 1 ? "They" : "It") + " scarf down everything in a second, gulping forcefully to drag your prey into your sloppy guts."; ". " + (macro.tailCount > 1 ? "They" : "It") + " scarf down everything in a second, gulping forcefully to drag your prey into your sloppy guts.";
else else
@@ -164,7 +184,10 @@ function defaultTailVore(container, macro, verbose) {
} }


function defaultCleavageStuff(container, macro, verbose) { function defaultCleavageStuff(container, macro, verbose) {
return "You snatch up " + container.describe(verbose) + " and stuff " + (container.count > 1 ? "them" : "it") + " into your cleavage.";
if (container.count == 0)
return "You can't fit anything into your cleavage right now.";
else
return "You snatch up " + container.describe(verbose) + " and stuff " + (container.count > 1 ? "them" : "it") + " into your cleavage.";
} }


function defaultCleavageCrush(container, macro, verbose) { function defaultCleavageCrush(container, macro, verbose) {
@@ -195,30 +218,43 @@ function defaultCleavageAbsorb(container, macro, verbose) {
} }


function defaultBreastCrush(container, macro, verbose) { function defaultBreastCrush(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your thump your breasts against the ground.";
else if (isFatal(macro))
return "Your heavy breasts obliterate " + container.describe(verbose) + ". "; return "Your heavy breasts obliterate " + container.describe(verbose) + ". ";
else else
return "You smoosh " + container.describe(verbose) + " with your breasts."; return "You smoosh " + container.describe(verbose) + " with your breasts.";
} }


function defaultBreastVore(container, macro, verbose) { function defaultBreastVore(container, macro, verbose) {
return "Your nipples envelop " + container.describe(verbose) + ", pulling them into your breasts. ";
if (container.count == 0)
return "It'd be pretty hot to stick someone in your breasts. Shame you can't right now.";
else
return "Your nipples envelop " + container.describe(verbose) + ", pulling them into your breasts. ";
} }




function defaultBreastMilk(container, macro, verbose) { function defaultBreastMilk(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "You squeeze your breasts, coaxing out $VOLUME of warm, creamy milk that splatters on the ground.";
else if (isFatal(macro))
return "You squeeze your breasts, coaxing out $VOLUME of warm, creamy milk that floods " + container.describe(verbose) + " in an unstoppable wave of white."; return "You squeeze your breasts, coaxing out $VOLUME of warm, creamy milk that floods " + container.describe(verbose) + " in an unstoppable wave of white.";
else else
return "You squeeze your breasts, coaxing out $VOLUME of warm, creamy milk that floods " + container.describe(verbose) + "."; return "You squeeze your breasts, coaxing out $VOLUME of warm, creamy milk that floods " + container.describe(verbose) + ".";
} }


function defaultUnbirth(container, macro, verbose) { function defaultUnbirth(container, macro, verbose) {
return "You gasp as you slide " + container.describe(verbose) + " up your slit. ";
if (container.count == 0)
return "You grab " + new Person(1).describe(verbose) + " and grind them against your slit...but they won't fit.";
else
return "You gasp as you slide " + container.describe(verbose) + " up your slit. ";
} }


function defaultSheathStuff(container, macro, verbose) { function defaultSheathStuff(container, macro, verbose) {
return "You pluck " + container.describe(verbose) + " from the ground and slip them into your musky sheath.";
if (container.count == 0)
return "You grab a " + new Person(1).describe(verbose) + " and grind them against your sheath-slit...but they won't fit.";
else
return "You pluck " + container.describe(verbose) + " from the ground and slip them into your musky sheath.";
} }


function defaultSheathSqueeze(container, macro, verbose) { function defaultSheathSqueeze(container, macro, verbose) {
@@ -250,7 +286,9 @@ function defaultSheathSqueeze(container, macro, verbose) {
} }


function defaultSheathCrush(container, macro, verbose) { function defaultSheathCrush(container, macro, verbose) {
if (isGory(macro))
if (container.count == 0)
return "Your orgasm causes your " + macro.describeDick + " cock to swell and surge.";
else if (isGory(macro))
return "Your powerful orgasm causes your throbbing " + macro.describeDick + " cock to swell and crush the life from everything in your sheath, reducing " + container.describe(false) + " to a gory paste that slickens your spurting shaft."; return "Your powerful orgasm causes your throbbing " + macro.describeDick + " cock to swell and crush the life from everything in your sheath, reducing " + container.describe(false) + " to a gory paste that slickens your spurting shaft.";
else if (isFatal(macro)) else if (isFatal(macro))
return "Your orgasm causes your " + macro.describeDick + " shaft to throb and swell, smashing " + container.describe(false) + " trapped in your musky sheath."; return "Your orgasm causes your " + macro.describeDick + " shaft to throb and swell, smashing " + container.describe(false) + " trapped in your musky sheath.";
@@ -266,46 +304,61 @@ function defaultSheathAbsorb(container, macro, verbose) {
} }


function defaultCockVore(container, macro, verbose) { function defaultCockVore(container, macro, verbose) {
return "You stuff " + container.describe(verbose) + " into your throbbing shaft, forcing them down to your heavy balls.";
if (container.count == 0)
return "You grab " + new Person(1).describe(verbose) + " and grind them against your cock...but they won't fit.";
else
return "You stuff " + container.describe(verbose) + " into your throbbing shaft, forcing them down to your heavy balls.";
} }


function defaultCockslap(container, macro, verbose) { function defaultCockslap(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your " + macro.describeDick + " swings through the air. Lewd!";
else if (isFatal(macro))
return "Your swaying " + macro.describeDick + " cock crushes " + container.describe(verbose) + ". "; return "Your swaying " + macro.describeDick + " cock crushes " + container.describe(verbose) + ". ";
else else
return "You smack " + container.describe(verbose) + " with your " + macro.describeDick + " shaft."; return "You smack " + container.describe(verbose) + " with your " + macro.describeDick + " shaft.";
} }


function defaultBallSmother(container, macro, verbose) { function defaultBallSmother(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "You rest your heavy balls on the ground.";
else if (isFatal(macro))
return "Your weighty balls spread over " + container.describe(verbose) + ", drowning them in musk."; return "Your weighty balls spread over " + container.describe(verbose) + ", drowning them in musk.";
else else
return "Your weighty balls spread over " + container.describe(verbose) + "."; return "Your weighty balls spread over " + container.describe(verbose) + ".";
} }


function defaultMaleSpurt(container, macro, verbose) { function defaultMaleSpurt(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your " + macro.describeDick + " cock spurts out $VOLUME of bitter precum.";
else if (isFatal(macro))
return "Your " + macro.describeDick + " cock spurts out $VOLUME of bitter precum, drowning " + container.describe(verbose) + " in a deluge of musk."; return "Your " + macro.describeDick + " cock spurts out $VOLUME of bitter precum, drowning " + container.describe(verbose) + " in a deluge of musk.";
else else
return "Your " + macro.describeDick + " shaft spurts out $VOLUME of precum, splooging " + container.describe(verbose) + "."; return "Your " + macro.describeDick + " shaft spurts out $VOLUME of precum, splooging " + container.describe(verbose) + ".";
} }


function defaultMaleOrgasm(container, macro, verbose) { function defaultMaleOrgasm(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your " + macro.describeDick + " cock spurts out $VOLUME of seed.";
else if (isFatal(macro))
return "You're cumming! Your " + macro.describeDick + " cock gushes $VOLUME of seed, obliterating " + container.describe(verbose) + " in a torrent of cum."; return "You're cumming! Your " + macro.describeDick + " cock gushes $VOLUME of seed, obliterating " + container.describe(verbose) + " in a torrent of cum.";
else else
return "You're cumming! Your " + macro.describeDick + " shaft gushes $VOLUME of seed, splooging " + container.describe(verbose) + "."; return "You're cumming! Your " + macro.describeDick + " shaft gushes $VOLUME of seed, splooging " + container.describe(verbose) + ".";
} }


function defaultFemaleSpurt(container, macro, verbose) { function defaultFemaleSpurt(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your moist slit splatters $VOLUME of slick juices.";
else if (isFatal(macro))
return "Your moist slit splatters $VOLUME of slick juices, drowning " + container.describe(verbose) + " in your building lust."; return "Your moist slit splatters $VOLUME of slick juices, drowning " + container.describe(verbose) + " in your building lust.";
else else
return "Your moist slit splatters $VOLUME of slick juices, splooging " + container.describe(verbose) + "."; return "Your moist slit splatters $VOLUME of slick juices, splooging " + container.describe(verbose) + ".";
} }


function defaultFemaleOrgasm(container, macro, verbose) { function defaultFemaleOrgasm(container, macro, verbose) {
if (isFatal(macro))
if (container.count == 0)
return "Your moist slit splatters $VOLUME of slick femcum.";
else if (isFatal(macro))
return "Your moist slit sprays $VOLUME of slick femcum, obliterating " + container.describe(verbose) + " in a torrent of femcum."; return "Your moist slit sprays $VOLUME of slick femcum, obliterating " + container.describe(verbose) + " in a torrent of femcum.";
else else
return "Your moist slit sprays $VOLUME of slick femcum, splooging " + container.describe(verbose) + "."; return "Your moist slit sprays $VOLUME of slick femcum, splooging " + container.describe(verbose) + ".";
@@ -314,32 +367,47 @@ function defaultFemaleOrgasm(container, macro, verbose) {
function defaultGrind(container, macro, verbose) { function defaultGrind(container, macro, verbose) {
var mid = isFatal(macro) ? ", smashing them apart" : ", using them as a toy"; var mid = isFatal(macro) ? ", smashing them apart" : ", using them as a toy";
var end = macro.arousalEnabled ? " to fuel your lust." : "."; var end = macro.arousalEnabled ? " to fuel your lust." : ".";
var desc = container.counter > 0 ? container.describe(verbose) + mid + end : "the ground.";
if (macro.maleParts && macro.femaleParts) { if (macro.maleParts && macro.femaleParts) {
return "You grind your " + macro.describeDick + " cock and " + macro.describeVagina + " slit against " + container.describe(verbose) + mid + end;
return "You grind your " + macro.describeDick + " cock and " + macro.describeVagina + " slit against " + desc;
} else if (macro.maleParts && !macro.femaleParts) { } else if (macro.maleParts && !macro.femaleParts) {
return "You grind your " + macro.describeDick + " shaft against " + container.describe(verbose) + mid + end;
return "You grind your " + macro.describeDick + " shaft against " + desc;
} else if (!macro.maleParts && macro.femaleParts) { } else if (!macro.maleParts && macro.femaleParts) {
return "You grind your " + macro.describeVagina + " slit against " + container.describe(verbose) + mid + end;
return "You grind your " + macro.describeVagina + " slit against " + desc;
} else { } else {
return "You grind your hips against " + container.describe(verbose) + mid + end;
return "You grind your hips against " + desc;
} }
} }


function defaultPouchStuff(container, macro, verbose) { function defaultPouchStuff(container, macro, verbose) {
return "You grab " + container.describe(verbose) + " and stuff " + (container.count > 1 ? "them" : "it") + " into your pouch.";
if (container.count == 0)
return "You grab " + new Person(1).describe(verbose) + " and stuff them against your pouch...but they won't fit!";
else
return "You grab " + container.describe(verbose) + " and stuff " + (container.count > 1 ? "them" : "it") + " into your pouch.";
} }


function defaultPouchEat(container, macro, verbose) { function defaultPouchEat(container, macro, verbose) {
return "You snatch " + container.describe(verbose) + " from your pouch and shove " + (container.count > 1 ? "them" : "it") + " down your gullet!";
if (container.count == 0)
return "There's nothing in your pouch!";
else
return "You snatch " + container.describe(verbose) + " from your pouch and shove " + (container.count > 1 ? "them" : "it") + " down your gullet!";
} }


function defaultSoulVore(container, macro, verbose) { function defaultSoulVore(container, macro, verbose) {
return "You open your jaws and inhale, ripping the souls from " + container.describe(verbose) + " and dragging them down deep inside.";
if (container.count == 0)
return "No souls here.";
else
return "You open your jaws and inhale, ripping the souls from " + container.describe(verbose) + " and dragging them down deep inside.";
} }


function defaultSoulAbsorbPaw(container, macro, verbose) { function defaultSoulAbsorbPaw(container, macro, verbose) {
let sum = container.sum()["Person"]; let sum = container.sum()["Person"];
return "Your paw slams down on " + container.describe(verbose) + ", smashing them to pieces and absorbing " + sum + (sum == 1 ? " soul" : " souls") + " into your pads.";
if (container.count == 0)
return "Your paw thumps against the ground";
else if (sum == 0)
return "Your paw slams down on " + container.describe(verb0se) + "...but there aren't any souls within!";
else
return "Your paw slams down on " + container.describe(verbose) + ", smashing them to pieces and absorbing " + sum + (sum == 1 ? " soul" : " souls") + " into your pads.";
} }


function defaultStomach(container, macro, verbose) { function defaultStomach(container, macro, verbose) {


+ 1
- 4
recursive-macro.js Vedi File

@@ -147,10 +147,7 @@ function fill_area(area, weights, variance=0.15)
result.push(new things[candidate.name](count)); result.push(new things[candidate.name](count));
} }


if (result.length > 0)
return new Container(result);
else
return new Container([new Person(1)]);
return new Container(result);
} }
// describes everything in the container // describes everything in the container




+ 11
- 3
stroll.html Vedi File

@@ -73,7 +73,7 @@
</div> </div>
<div id="log-area"> <div id="log-area">
<div id="log"> <div id="log">
<div>Welcome to Stroll 0.5.4</div>
<div>Welcome to Stroll 0.5.5</div>
<div><b>This game features 18+ content</b></div> <div><b>This game features 18+ content</b></div>
<div><a href="https://chemicalcrux.org/stroll">Changelog</a></div> <div><a href="https://chemicalcrux.org/stroll">Changelog</a></div>
<div><a href="https://t.me/joinchat/BSXHzUZmSqc-CXB1khkuYw">Telegram discussion group</a></div> <div><a href="https://t.me/joinchat/BSXHzUZmSqc-CXB1khkuYw">Telegram discussion group</a></div>
@@ -135,7 +135,7 @@




<div class="option-container" id="option-panel"> <div class="option-container" id="option-panel">
<p>Welcome to Stroll 0.5.4</p>
<p>Welcome to Stroll 0.5.5</p>
<p><b>This game features 18+ content</b></p> <p><b>This game features 18+ content</b></p>
<p><a href="https://chemicalcrux.org/stroll">Changelog</a></p> <p><a href="https://chemicalcrux.org/stroll">Changelog</a></p>
<p><a href="https://t.me/joinchat/BSXHzUZmSqc-CXB1khkuYw">Telegram discussion group</a></p> <p><a href="https://t.me/joinchat/BSXHzUZmSqc-CXB1khkuYw">Telegram discussion group</a></p>
@@ -183,7 +183,7 @@
<input type="checkbox" checked="true" name="analVore"/><br> <input type="checkbox" checked="true" name="analVore"/><br>
</li> </li>
<li> <li>
<label for="baseAsArea">Ass area</label>
<label for="baseAssArea">Ass area</label>
<input type="number" name="baseAssArea" placeholder="0.4"><br> <input type="number" name="baseAssArea" placeholder="0.4"><br>
</li> </li>
<br> <br>
@@ -212,6 +212,14 @@
</li> </li>
</ul> </ul>
<br> <br>
<li>
<label class="has-tooltip" for="sameSizeVore" title="Can you eat people your own size?">Same-size predator</label>
<input type="checkbox" checked="true" name="sameSizeVore"/><br>
</li>
<li>
<label class="has-tooltip" for="sameSizeStomp" title="Can you stomp and sit on people your own size?">Same-size stomper</label>
<input type="checkbox" checked="true" name="sameSizeStomp"/><br>
</li>
<li> <li>
<label for="soulVoreEnabled">Soul vore</label> <label for="soulVoreEnabled">Soul vore</label>
<input type="checkbox" checked="true" name="soulVoreEnabled"/><br> <input type="checkbox" checked="true" name="soulVoreEnabled"/><br>


Loading…
Annulla
Salva