Parcourir la source

Introduced the sadistic brutality setting. Fixed some prey counts. Fixed scat mass.

tags/v0.7.0
Fen Dweller il y a 7 ans
Parent
révision
ca727d32f8
5 fichiers modifiés avec 63 ajouts et 26 suppressions
  1. +2
    -1
      .jshintrc
  2. +2
    -14
      game.js
  3. +45
    -9
      recursive-desc.js
  4. +12
    -0
      recursive-macro.js
  5. +2
    -2
      stroll.html

+ 2
- 1
.jshintrc Voir le fichier

@@ -20,6 +20,7 @@
"contents_insert": true,
"contents_remove": true,
"contents_replace": true,
"getSound": true
"getSound": true,
"get_living_prey": true
}
}

+ 2
- 14
game.js Voir le fichier

@@ -1405,18 +1405,6 @@ function look()
update(desc);
}

function get_living_prey(sum) {
let total = 0;
for (let key in sum) {
if (sum.hasOwnProperty(key)) {
if (key == "Micro" || key == "Macro" || key == "Person" || key == "Cow")
total += sum[key];
}
}

return total;
}

function toggle_auto()
{
strolling = !strolling;
@@ -1781,7 +1769,7 @@ function paw_stench() {

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

if (prey.sum()["Person"] == undefined)
if (get_living_prey(prey.sum()) == 0)
return;

let preyMass = prey.sum_property("mass");
@@ -2770,7 +2758,7 @@ function scat(vol) {
let scatArea = macro.analVoreArea;
let scatLength = vol / macro.analVoreArea;
let prey = getPrey(biome, area);
let line = describe("scat", prey, macro, verbose).replace("$MASS",mass(vol,unit,true)).replace("$LENGTH",length(scatLength,unit,true));
let line = describe("scat", prey, macro, verbose).replace("$MASS",mass(vol*1000,unit,true)).replace("$LENGTH",length(scatLength,unit,true));
let linesummary = summarize(prey.sum(), true);

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


+ 45
- 9
recursive-desc.js Voir le fichier

@@ -40,6 +40,10 @@ function isGory(macro) {
return macro.brutality >= 2;
}

function isSadistic(macro) {
return macro.brutality >= 3;
}

function hasNothing(container, thing, amount) {
for (var key in container.contents) {
if (container.contents.hasOwnProperty(key))
@@ -123,12 +127,14 @@ function defaultEat(container, macro, verbose) {
}

function defaultChew(container, macro, verbose) {
let pronoun = (container.count > 1 ? "them" : "it");
if (container.count == 0)
return "You reach down for a delicious treat and grab - oh, nothing.";
else if (isSadistic(macro))
return "Your greedy fingers gather up " + container.describe(verbose) + ", stuffing " + pronoun + " into your " + macro.jawDesc(true) + ". A slow, lazy bite " + macro.biteDesc() + pronoun + ", rending flesh, snapping bone, and crushing everything between your savage " + macro.jawDesc(true) + ". You tip back your head and swallow...consigning the gory remains to your roiling gut.";
else if (isNonFatal(macro))
return defaultEat(container, macro, verbose);
else {
let pronoun = (container.count > 1 ? "them" : "it");
return "You scoop up " + container.describe(verbose) + " and " + macro.biteDesc() + " " + pronoun + " with your " + macro.jawDesc(true) + ", then swallow them down.";
}
}
@@ -136,6 +142,8 @@ function defaultChew(container, macro, verbose) {
function defaultStomp(container, macro, verbose) {
if (container.count == 0)
return "Your " + macro.footDesc() + " thumps the ground.";
else if (isSadistic(macro))
return "Your " + macro.footDesc(false) + " comes down on " + container.describe(verbose) + ", crushing your prey into gore and rubble with ease as your " + macro.toeDesc(true) + " shear bone and snap metal.";
else if (isFatal(macro))
return "You crush " + container.describe(verbose) + " under" + macro.footDesc(false,false,true) + ".";
else
@@ -193,8 +201,11 @@ function defaultAnalVore(container, macro, verbose) {
}

function defaultAssCrush(container, macro, verbose) {
let count = get_living_prey(container.sum());
if (container.count == 0)
return "You take a seat. It's good to have a break!";
else if (isSadistic(macro))
return "You lower your heavy ass to the ground, biting you lip as you feel " + container.describe(verbose) + " collapse beneath your massive cheeks. " + (count > 1 ? count + " lives are" : "A life is") + " snuffed out as you settle down, grinding your ass into the remains before slowly rising back up.";
else if (isFatal(macro))
return "Your heavy ass obliterates " + container.describe(verbose) + ". ";
else
@@ -232,6 +243,8 @@ function defaultCleavageStuff(container, macro, verbose) {
function defaultCleavageCrush(container, macro, verbose) {
if (container.count == 0)
return "You grasp your breasts and forcefully squeeze them together.";
else if (isSadistic(macro))
return "You grasp your breasts and slowly bring them together, steadily crushing the life from " + container.describe(false) + " trapped in between - savoring every last <i>pop</i> and <i>crunch</i> as you exterminate your prey.";
else if (isGory(macro))
return "You grasp your breasts and forcefully shove them together, crushing the life from " + container.describe(false) + ".";
else if (isFatal(macro))
@@ -399,6 +412,8 @@ function defaultMaleOrgasm(container, macro, verbose) {
function defaultFemaleSpurt(container, macro, verbose) {
if (container.count == 0)
return "Your moist slit splatters $VOLUME of slick juices.";
else if (isSadistic(macro))
return "Your dripping slit splatters $VOLUME of your intoxicating juices, dissolving " + container.describe(verbose) + ".";
else if (isFatal(macro))
return "Your moist slit splatters $VOLUME of slick juices, drowning " + container.describe(verbose) + " in your building lust.";
else
@@ -408,6 +423,8 @@ function defaultFemaleSpurt(container, macro, verbose) {
function defaultFemaleOrgasm(container, macro, verbose) {
if (container.count == 0)
return "Your moist slit sprays $TIMES times, gushing out $VOLUME of slick femcum.";
else if (isSadistic(macro))
return "Your quivering slit sprays $VOLUME of your intoxicating femcum, dissolving " + container.describe(verbose) + "in an unstoppable torrent of deadly lust.";
else if (isFatal(macro))
return "Your moist slit sprays $VOLUME of slick femcum, obliterating " + container.describe(verbose) + " in $TIMES consecutive bursts of lust.";
else
@@ -465,7 +482,7 @@ function defaultSoulVore(container, macro, verbose) {
}

function defaultSoulAbsorbPaw(container, macro, verbose) {
let sum = container.sum()["Person"];
let sum = get_living_prey(container.sum());
if (container.count == 0)
return "Your " + macro.footDesc() + " thumps against the ground";
else if (sum == 0)
@@ -475,7 +492,9 @@ function defaultSoulAbsorbPaw(container, macro, verbose) {
}

function defaultPawStench(container, macro, verbose) {
let sum = container.sum()["Person"];
let sum = get_living_prey(container.sum());
if (isSadistic(macro))
return "Horrific miasma flows from your " + macro.footDesc(true)+ ", the corrsoive fumes reducing " + (sum > 1 ? sum + " people" : "a person") + " to charred flesh as they wash over " + container.describe(false) + ".";
if (isFatal(macro))
return "Vile fumes waft from your " + macro.footDesc(true) + " , choking the life from " + (sum > 1 ? sum + " people." : "a person.");
else
@@ -483,7 +502,9 @@ function defaultPawStench(container, macro, verbose) {
}

function defaultAssStench(container, macro, verbose) {
let sum = container.sum()["Person"];
let sum = get_living_prey(container.sum());
if (isSadistic(macro))
return "Rancid fumes from your ass sear the flesh of " + (sum > 1 ? sum + " people" : "a person") + " as they wash over " + container.describe(false) + ", corroding everything in their path.";
if (isFatal(macro))
return "Vile miasma from your bitter ass snuffs out " + (sum > 1 ? sum + " people" : "a person") + ", suffocating them in your stench.";
else
@@ -491,9 +512,11 @@ function defaultAssStench(container, macro, verbose) {
}

function defaultBelch(container, macro, verbose) {
let sum = container.sum()["Person"];
let sum = get_living_prey(container.sum());
if (container.count == 0)
return "An ominous groan precedes a crass belch.";
if (isSadistic(macro))
return "A disgusting torrent of gas erupts from your rancid stomach, the vile green gale stopping hearts and burning flesh as it annihilates " + container.describe(verbose) + ".";
if (isFatal(macro))
return "A rancid belch flows from your " + macro.jawDesc(verbose) + ", corroding " + container.describe(verbose) + " with your vile fumes.";
else
@@ -501,9 +524,11 @@ function defaultBelch(container, macro, verbose) {
}

function defaultFart(container, macro, verbose) {
let sum = container.sum()["Person"];
let sum = get_living_prey(container.sum());
if (container.count == 0)
return "An ominous groan precedes a loud, pungent fart.";
if (isSadistic(macro))
return "Your intestines snarl and lurch, expelling a powerful jet of utterly rancid stench from your bitter ass. The plume gushes over " + container.describe(verbose) + ", ending " + (sum > 1 ? sum + " lives" : "a life") + " and annihilating everything in its path.";
if (isFatal(macro))
return "An ominous groan precedes a loud, pungent fart, corroding " + container.describe(verbose) + " with truly vile vapors.";
else
@@ -511,7 +536,9 @@ function defaultFart(container, macro, verbose) {
}

function defaultStomach(container, macro, verbose) {
if (isGory(macro))
if (isSadistic(macro))
return "Your churning guts crushes your prey into a gory paste, annihilating " + container.describe(false) + " and reducing everything to rancid chyme.";
else if (isGory(macro))
return "Your caustic stomach grinds " + container.describe(false) + " to a gory pulp.";
else if (isFatal(macro))
return "Your stomach gurgles as it digests " + container.describe(false) + ".";
@@ -520,6 +547,8 @@ function defaultStomach(container, macro, verbose) {
}

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.";
if (isFatal(macro))
return "Your bowels churn as they melt down " + container.describe(false) + " and absorb them into your body";
else
@@ -555,14 +584,21 @@ function defaultBreasts(container, macro, verbose) {
}

function defaultBladder(container, macro, verbose) {
if (isFatal(macro))
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.";
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";
else
return "Your bladder squeezes as it absorbs " + container.describe(false);
}

function defaultSoulDigest(container, macro, verbose) {
let sum = container.sum()["Person"];
let sum = get_living_prey(container.sum());
switch(macro.soulVoreType) {
case "release":
return (sum > 1 ? sum + " souls escape" : "A soul escapes") + " your depths.";


+ 12
- 0
recursive-macro.js Voir le fichier

@@ -227,6 +227,18 @@ function initContents(name,count) {
return result;
}

function get_living_prey(sum) {
let total = 0;
for (let key in sum) {
if (sum.hasOwnProperty(key)) {
if (key == "Micro" || key == "Macro" || key == "Person" || key == "Cow")
total += sum[key];
}
}

return total;
}

// general logic: each step fills in a fraction of the remaining space

function fill_area(area, weights, variance=0.15)


+ 2
- 2
stroll.html Voir le fichier

@@ -305,8 +305,8 @@
<label for="brutality-2">Gory</label>
</li>
<li>
<input type="radio" name="brutality" id="brutality-3" disabled="disableD" value="3">
<label for="brutality-3">Sadistic (not implemented)</label>
<input type="radio" name="brutality" id="brutality-3" value="3">
<label for="brutality-3">Sadistic</label>
</li>
</ul>
</div>


Chargement…
Annuler
Enregistrer