Browse Source

Made the rest of the descriptions flatten properly, too

tags/v1.0.0
Fen Dweller 6 years ago
parent
commit
419220a949
2 changed files with 94 additions and 34 deletions
  1. +83
    -33
      game.js
  2. +11
    -1
      recursive-macro.js

+ 83
- 33
game.js View File

@@ -477,13 +477,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your belly is flat, growling and gurgling for want of prey.";
} else {
if (macro.brutality > 0) {
return "Your belly churns and bubbles as it works to melt " + prey.describe(false) + " down to chyme.";
return "Your belly churns and bubbles as it works to melt " + prey.describeSimple(verbose || flat) + " down to chyme.";
} else {
return "Your belly sloshes with the weight of " + prey.describe(false) + " trapped within.";
return "Your belly sloshes with the weight of " + prey.describeSimple(verbose || flat) + " trapped within.";
}
}
},
@@ -525,16 +529,20 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

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.";
return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "clench and squeeze around " : "clenches and squeezes around ") + prey.describeSimple(verbose || flat) + ", 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.";
return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "groans" : "groan") + " ominously as " + (this.owner.tailCount > 1 ? "they gurgle" : "it gurgles" ) + " around " + prey.describeSimple(verbose || flat) + ", slowly absorbing them into your musky depths.";
} else {
return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "bulge" : "bulges") + " with " + prey.describe(false) + ".";
return "Your " + this.owner.tailDesc + " " + (this.owner.tailCount > 1 ? "bulge" : "bulges") + " with " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -576,13 +584,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your bowels are empty.";
} else {
if (macro.brutality > 0) {
return "Your bowels groan ominously as they clench around " + prey.describe(false) + ", slowly absorbing them into your musky depths.";
return "Your bowels groan ominously as they clench around " + prey.describeSimple(verbose || flat) + ", slowly absorbing them into your musky depths.";
} else {
return "Your bowels bulge with " + prey.describe(false) + ".";
return "Your bowels bulge with " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -626,13 +638,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your lower belly is flat.";
} else {
if (macro.brutality > 0) {
return "Your womb tingles as its rhythmically grinds down on " + prey.describe(false) + ", turning them soft and wet as they start to dissolve into femcum.";
return "Your womb tingles as its rhythmically grinds down on " + prey.describeSimple(verbose || flat) + ", turning them soft and wet as they start to dissolve into femcum.";
} else {
return "Your womb clenches around " + prey.describe(false) + ".";
return "Your womb clenches around " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -676,13 +692,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your balls are smooth.";
} else {
if (macro.brutality > 0) {
return "Your balls slosh and bulge as they work to convert " + prey.describe(false) + " into hot cum.";
return "Your balls slosh and bulge as they work to convert " + prey.describeSimple(verbose || flat) + " into hot cum.";
} else {
return "Your balls slosh about, loaded down with " + prey.describe(false) + ".";
return "Your balls slosh about, loaded down with " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -728,13 +748,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your breasts are smooth.";
} else {
if (macro.brutality > 0) {
return "Your breasts slosh from side to side, " + prey.describe(false) + " slowly digesting into creamy milk.";
return "Your breasts slosh from side to side, " + prey.describeSimple(verbose || flat) + " slowly digesting into creamy milk.";
} else {
return "Your breasts bulge with " + prey.describe(false) + ".";
return "Your breasts bulge with " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -777,13 +801,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your bladder has nobody in it.";
} else {
if (macro.brutality > 0) {
return "Your bladder bulges, " + prey.describe(false) + " dissolving in your acrid piss.";
return "Your bladder bulges, " + prey.describeSimple(verbose || flat) + " dissolving in your acrid piss.";
} else {
return "Your bladder bulges with " + prey.describe(false) + ".";
return "Your bladder bulges with " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -866,13 +894,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "You contain no prey.";
} else {
if (macro.gooDigestion) {
return "Your gooey body contains " + prey.describe(false) + ", gradually absorbing them into your bulk.";
return "Your gooey body contains " + prey.describeSimple(verbose || flat) + ", gradually absorbing them into your bulk.";
} else {
return "Your gooey body contains " + prey.describe(false) + ".";
return "Your gooey body contains " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -908,10 +940,14 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your " + this.owner.footOnlyDesc(true) + " don't contain any prey.";
} else {
return "Your " + this.owner.footOnlyDesc(true) + " have enveloped " + prey.describe(false);
return "Your " + this.owner.footOnlyDesc(true) + " have enveloped " + prey.describeSimple(verbose || flat);
}
},
"contents" : [],
@@ -947,10 +983,14 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your crop don't contain any prey.";
} else {
return "Your crop bulges with " + prey.describe(false) + ".";
return "Your crop bulges with " + prey.describeSimple(verbose || flat) + ".";
}
},
"contents" : [],
@@ -986,13 +1026,17 @@ let macro =
prey = prey.merge(x);
});

if (verbose || flat) {
prey = flatten(prey);
}

if (prey.count == 0) {
return "Your don't have anyone trapped in your wings.";
} else {
if (macro.brutality > 0) {
return "Your folded wings bulge as they squeeze in on " + prey.describe(false) + ", slowly breaking them down.";
return "Your folded wings bulge as they squeeze in on " + prey.describeSimple(verbose || flat) + ", slowly breaking them down.";
} else {
return "Your wings bulge with " + prey.describe(false) + ".";
return "Your wings bulge with " + prey.describeSimple(verbose || flat) + ".";
}
}
},
@@ -1006,10 +1050,16 @@ let macro =
"name": "pouch",
"container": new Container(),
get description() {
let prey = this.container;

if (verbose || flat) {
prey = flatten(prey);
}
if (this.container.count == 0)
return "Your pouch is empty";
else
return "Your pouch contains " + this.container.describe(false);
return "Your pouch contains " + this.container.describeSimple(verbose || flat);
},
"add": function(victims) {
this.container = this.container.merge(victims);
@@ -1023,7 +1073,7 @@ let macro =
if (this.container.count == 0)
return "Your sheath is empty";
else
return "Your sheath contains " + this.container.describe(false);
return "Your sheath contains " + this.container.describeSimple(verbose || flat);
},
"add": function(victims) {
this.container = this.container.merge(victims);
@@ -1037,7 +1087,7 @@ let macro =
if (this.container.count == 0)
return "Your breasts don't have anyone stuck between them";
else
return "Your cleavage contains " + this.container.describe(false);
return "Your cleavage contains " + this.container.describeSimple(verbose || flat);
},
"add": function(victims) {
this.container = this.container.merge(victims);
@@ -1054,7 +1104,7 @@ let macro =
if (this.container.count == 0)
return "Your " + macro.shoeDesc(true) + " are empty.";
else
return "Your " + macro.shoeDesc(true) + " contain " + this.container.describe(false);
return "Your " + macro.shoeDesc(true) + " contain " + this.container.describeSimple(verbose || flat);
},
"add": function(victims) {
this.container = this.container.merge(victims);
@@ -1068,7 +1118,7 @@ let macro =
if (this.container.count == 0)
return "Your " + macro.sockDesc(true) + " are empty.";
else
return "Your " + macro.sockDesc(true) + " contain " + this.container.describe(false);
return "Your " + macro.sockDesc(true) + " contain " + this.container.describeSimple(verbose || flat);
},
"add": function(victims) {
this.container = this.container.merge(victims);
@@ -1082,7 +1132,7 @@ let macro =
if (this.container.count == 0)
return "You don't have anyone stuck between your " + this.owner.toeDesc(true);
else
return "You have " + this.container.describe(false) + " wedged between your " + this.owner.toeDesc(true);
return "You have " + this.container.describeSimple(verbose || flat) + " wedged between your " + this.owner.toeDesc(true);
},
"add": function(victims) {
this.container = this.container.merge(victims);
@@ -1492,7 +1542,7 @@ let macro =
line += " They slosh with " + volume(this.milkStorage.amount, unit, false) + " of creamy milk.";
}
if (this.cleavage.container.count > 0)
line += " Between them are " + this.cleavage.container.describe(false) + ".";
line += " Between them are " + this.cleavage.container.describeSimple(verbose || flat) + ".";

result.push(line);
if (this.breastVore) {
@@ -1515,16 +1565,16 @@ let macro =
line = "Your two " + this.footDesc(true) + " shake the earth.";

if (this.footShoeWorn && this.shoe.container.count > 0) {
line += " Within " + (this.shoe.container.count > 1 ? "are" : "is") + " " + this.shoe.container.describe(false);
line += " Within " + (this.shoe.container.count > 1 ? "are" : "is") + " " + this.shoe.container.describeSimple(verbose || flat);
if (this.footSockWorn && this.sock.container.count > 0) {
line += " and " + this.sock.container.describe(false) + " in your socks.";
line += " and " + this.sock.container.describeSimple(verbose || flat) + " in your socks.";
}
} else if (this.footSockWorn && this.sock.container.count > 0) {
line += " Within " + (this.sock.container.count > 1 ? "are" : "is") + " " + this.sock.container.describe(false);
line += " Within " + (this.sock.container.count > 1 ? "are" : "is") + " " + this.sock.container.describeSimple(verbose || flat);
}

if (this.paws.container.count > 0) {
line += " You have " + this.paws.container.describe(false) + " wedged between your " + macro.toeDesc(true);
line += " You have " + this.paws.container.describeSimple(verbose || flat) + " wedged between your " + macro.toeDesc(true);
}

result.push(line);
@@ -4777,7 +4827,7 @@ function showStats() {
if (victims.hasOwnProperty(key)) {
if (victims[key]["people"] > 0) {
lines.push([
victims[key]["people"] + " " + describe("victim-" + key, null, macro, false, flat),
victims[key]["people"] + " " + describe("victim-" + key, null, macro, false, false),
victims[key]["people"]
]);
total += victims[key]["people"];


+ 11
- 1
recursive-macro.js View File

@@ -499,7 +499,7 @@ function flatten(thing) {
let obj = new things[key](val);

obj.contents = [];
list.push(obj);
});

@@ -559,6 +559,15 @@ function defaultAddContent(thing) {
};
}

function defaultDescribeSimple(thing) {
return function(flat) {
if (flat) {
return flatten(thing).describe(false)
} else {
return thing.describe(false);
}
}
}
function DefaultEntity() {
this.sum = defaultSum;
this.area = defaultArea;
@@ -566,6 +575,7 @@ function DefaultEntity() {
this.sum_property = defaultSumProperty;
this.merge = defaultMerge;
this.multiply = defaultMultiply;
this.describeSimple = defaultDescribeSimple;

return this;
}


Loading…
Cancel
Save