Browse Source

Slapped goo together, and fixed some typos

tags/v0.7.0
Fen Dweller 7 years ago
parent
commit
c981102152
4 changed files with 149 additions and 15 deletions
  1. +114
    -9
      game.js
  2. +23
    -4
      recursive-desc.js
  3. +2
    -0
      sounds.js
  4. +10
    -2
      stroll.html

+ 114
- 9
game.js View File

@@ -787,14 +787,21 @@ let macro =


"gooEnabled": true, "gooEnabled": true,
"gooMolten": false, "gooMolten": false,
"gooDigestion": true,


"goo": { "goo": {
"name" : "goo", "name" : "goo",
"setup": function(owner) { "setup": function(owner) {
this.owner = owner; this.owner = owner;

for (let i = 0; i < this.stages; i++) for (let i = 0; i < this.stages; i++)
this.contents.push(new Container()); this.contents.push(new Container());
owner.digest(owner,this);

if (owner.gooDigestion) {
owner.digest(owner,this);
}


}, },
"feed": function(prey) { "feed": function(prey) {
this.feedFunc(prey,this,this.owner); this.feedFunc(prey,this,this.owner);
@@ -803,7 +810,8 @@ let macro =
this.contents[0] = this.contents[0].merge(prey); this.contents[0] = this.contents[0].merge(prey);
}, },
"describeDigestion": function(container) { "describeDigestion": function(container) {
return describe("goo",container,this.owner,verbose);
add_victim_people("goo", container);
return describe("goo-digest",container,this.owner,verbose);
}, },
"fill": function(owner,container) { "fill": function(owner,container) {


@@ -817,7 +825,7 @@ let macro =
if (prey.count == 0) { if (prey.count == 0) {
return "You contain no prey."; return "You contain no prey.";
} else { } else {
if (macro.gooDigestion > 0) {
if (macro.gooDigestion) {
return "Your gooey body contains " + prey.describe(false) + ", gradually absorbing them into your bulk."; return "Your gooey body contains " + prey.describe(false) + ", gradually absorbing them into your bulk.";
} else { } else {
return "Your gooey body contains " + prey.describe(false) + "."; return "Your gooey body contains " + prey.describe(false) + ".";
@@ -928,6 +936,7 @@ let macro =
this.breasts.setup(this); this.breasts.setup(this);
this.bladder.setup(this); this.bladder.setup(this);
this.souls.setup(this); this.souls.setup(this);
this.goo.setup(this);
this.cumStorage.owner = this; this.cumStorage.owner = this;
this.femcumStorage.owner = this; this.femcumStorage.owner = this;
this.milkStorage.owner = this; this.milkStorage.owner = this;
@@ -1358,6 +1367,10 @@ let macro =


result.push(line); result.push(line);


if (this.gooMolten) {
result.push(this.goo.description);
}

return result; return result;
}, },


@@ -1530,11 +1543,11 @@ function summarize(sum, fatal = true)
let word; let word;
let count = get_living_prey(sum); let count = get_living_prey(sum);
if (fatal && macro.brutality > 0) if (fatal && macro.brutality > 0)
word = count == 1 ? "kills" : "kill";
word = count != 1 ? "kills" : "kill";
else if (!fatal && macro.brutality > 0) else if (!fatal && macro.brutality > 0)
word = "prey"; word = "prey";
else else
word = count == 1 ? "victims" : "victim";
word = count != 1 ? "victims" : "victim";


return "<b>(" + count + " " + word + ")</b>"; return "<b>(" + count + " " + word + ")</b>";
} }
@@ -1713,10 +1726,15 @@ function chew()


function stomp() function stomp()
{ {
if (macro.gooMolten) {
stomp_goo();
return;
}

let area = macro.pawArea; let area = macro.pawArea;
let prey = getPrey(biome, area, macro.sameSizeStomp); 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(), false);


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


@@ -1773,6 +1791,31 @@ function stomp_wedge() {
update([sound,line,linesummary,newline]); update([sound,line,linesummary,newline]);
} }


function stomp_goo() {
let area = macro.pawArea;
let prey = getPrey(biome, area, macro.sameSizeStomp);
let line = describe("stomp-goo", prey, macro, verbose);
let linesummary = summarize(prey.sum(), true);

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

let preyMass = prey.sum_property("mass");

let sound = getSound("goo",preyMass);

macro.addGrowthPoints(preyMass);

macro.goo.feed(prey);

update([sound,line,linesummary,newline]);

macro.arouse(5);

if (macro.stenchEnabled) {
paw_stench();
}
}

function flex_toes() { function flex_toes() {


let prey = new Container(); let prey = new Container();
@@ -1894,6 +1937,11 @@ function anal_vore()


function sit() function sit()
{ {
if (macro.gooMolten) {
sit_goo();
return;
}

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


@@ -1919,6 +1967,33 @@ function sit()
} }
} }


function sit_goo()
{
let area = macro.assArea;
let prey = getPrey(biome, area, macro.sameSizeStomp);

let line = describe("ass-goo", prey, macro, verbose);
let linesummary = summarize(prey.sum(), false);

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

let crushedMass = prey.sum_property("mass");

let sound = getSound("goo",crushedMass);

macro.goo.feed(prey);

macro.addGrowthPoints(crushedMass);

update([sound,line,linesummary,newline]);

macro.arouse(15);

if (macro.stenchEnabled) {
ass_stench();
}
}

function ass_stench() { function ass_stench() {


let area = macro.assStenchArea; let area = macro.assStenchArea;
@@ -2863,10 +2938,27 @@ function scat(vol) {
macro.arouse(50); macro.arouse(50);
} }


function setButton(button, state) {
if (state) {
enable_button(button);
} else {
disable_button(button);
}
}

function gooButtons(molten) {
setButton("melt", !molten);
setButton("solidify", molten);
setButton("push-stomach", molten);
setButton("pull-stomach", molten);
}

function melt() function melt()
{ {
macro.gooMolten = true; macro.gooMolten = true;


gooButtons(macro.gooMolten);

let line = describe("melt", new Container(), macro, verbose); let line = describe("melt", new Container(), macro, verbose);


update([line, newline]); update([line, newline]);
@@ -2874,6 +2966,10 @@ function melt()


function solidify() function solidify()
{ {
macro.gooMolten = false;

gooButtons(macro.gooMolten);

let prey = new Container(); let prey = new Container();
macro.goo.contents.forEach(function(x) { macro.goo.contents.forEach(function(x) {
prey = prey.merge(x); prey = prey.merge(x);
@@ -2889,10 +2985,9 @@ function solidify()


let sound = getSound("insert",preyMass); let sound = getSound("insert",preyMass);


macro.gooMolten = false;

if (macro.gooDigest) {
if (macro.gooDigestion) {
update([sound, line, linesummary, newline]); update([sound, line, linesummary, newline]);
add_victim_people("goo", prey);
} else { } else {
update([sound, line, newline]); update([sound, line, newline]);
} }
@@ -3456,6 +3551,16 @@ function startGame(e) {
enable_victim("scat","Shat on"); enable_victim("scat","Shat on");
} }


if (macro.gooEnabled) {
enable_panel("goo");

enable_button("melt");

if (macro.gooDigestion) {
enable_victim("goo","Absorbed into the goo");
}
}

document.getElementById("button-arousal").innerHTML = (macro.arousalEnabled ? "Arousal On" : "Arousal Off"); document.getElementById("button-arousal").innerHTML = (macro.arousalEnabled ? "Arousal On" : "Arousal Off");
if (!macro.arousalEnabled) { if (!macro.arousalEnabled) {
document.getElementById("arousal").style.display = "none"; document.getElementById("arousal").style.display = "none";


+ 23
- 4
recursive-desc.js View File

@@ -23,7 +23,7 @@ var actions = ["eat","chew","stomp","stomp-wedge","flex-toes","kick","anal-vore"
"female-orgasm","grind","pouch-stuff","pouch-rub","pouch-eat","pouch-absorb","soul-vore","soul-absorb-paw", "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", "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", "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"];
"sheath-toy","slit-toy","breast-toy","melt","solidify","stomp-goo","goo-digest","ass-goo"];


for (let i=0; i<actions.length; i++) { for (let i=0; i<actions.length; i++) {
rules[actions[i]] = []; rules[actions[i]] = [];
@@ -132,7 +132,7 @@ function defaultChew(container, macro, verbose) {
if (container.count == 0) if (container.count == 0)
return "You reach down for a delicious treat and grab - oh, nothing."; return "You reach down for a delicious treat and grab - oh, nothing.";
else if (isSadistic(macro)) 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.";
return "Your greedy fingers gather up " + container.describe(verbose) + ", stuffing " + pronoun + " into your " + macro.jawDesc(true) + ". A slow, lazy bite " + macro.biteDesc(true) + " " + 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)) else if (isNonFatal(macro))
return defaultEat(container, macro, verbose); return defaultEat(container, macro, verbose);
else { else {
@@ -758,12 +758,31 @@ function defaultSolidify(container, macro, verbose) {
if (container.count == 0) { if (container.count == 0) {
return "Your body turns solid."; return "Your body turns solid.";
} else if (macro.gooDigest > 0) { } else if (macro.gooDigest > 0) {
return "Your body turns solid, pushing out " + container.describe(verbose);
return "Your body turns solid, pushing out " + container.describe(verbose) + ".";
} else { } else {
return "Your body turns solid, swiftly absorbing" + container.describe(verbose);
return "Your body turns solid, swiftly absorbing " + container.describe(verbose) + ".";
} }
} }


function defaultStompGoo(container, macro, verbose) {
if (container.count == 0) {
return "Your gooey paw hits the ground.";
} else {
return "Your gooey paws falls over " + container.describe(verbose) + ", smothering them in goo and pulling them into your body.";
}
}

function defaultAssGoo(container, macro, verbose) {
if (container.count == 0) {
return "Your gooey ass sits down on the ground.";
} else {
return "You sit your gooey ass down on " + container.describe(verbose) + ", pulling them right into your body.";
}
}

function defaultGooDigest(container, macro, verbose) {
return "Your goopy depths dissolve " + container.describe(false) + ".";
}


// EATING // EATING




+ 2
- 0
sounds.js View File

@@ -11,6 +11,8 @@ let sounds = {
["Clench.","Squeeeeeze.","Squeeeeeeeeeeeze.","Sqlllllch.","SQLLLLLLCH!"], ["Clench.","Squeeeeeze.","Squeeeeeeeeeeeze.","Sqlllllch.","SQLLLLLLCH!"],
"digest": "digest":
["Grrgle.","Grrrrgle","Grrrrlglorp.","GrrrrGLRRRLPH!","GRRRRRLGPRLHK!"], ["Grrgle.","Grrrrgle","Grrrrlglorp.","GrrrrGLRRRLPH!","GRRRRRLGPRLHK!"],
"goo":
["Splat.", "Squish.", "Squish!", "SQLCH!", "SQLLLLRCH!", "SQQQQUEEEEELLCH!"]
}; };


function pickByMass(list, mass) { function pickByMass(list, mass) {


+ 10
- 2
stroll.html View File

@@ -182,6 +182,7 @@
<button class="action-part-button" id="action-part-souls">Souls</button> <button class="action-part-button" id="action-part-souls">Souls</button>
<button class="action-part-button" id="action-part-shoes">Shoes</button> <button class="action-part-button" id="action-part-shoes">Shoes</button>
<button class="action-part-button" id="action-part-waste">Waste</button> <button class="action-part-button" id="action-part-waste">Waste</button>
<button class="action-part-button" id="action-part-goo">Goo</button>
<button class="action-part-button" id="action-part-misc">Misc</button> <button class="action-part-button" id="action-part-misc">Misc</button>
</div> </div>


@@ -253,6 +254,13 @@
<button class="action-button" id="button-action-scat">Scat</button> <button class="action-button" id="button-action-scat">Scat</button>
</div> </div>


<div class="action-tab" id="actions-goo">
<button class="action-button" id="button-action-solidify">Solidify</button>
<button class="action-button" id="button-action-melt">Melt</button>
<button class="action-button" id="button-action-push-stomach">Push to Stomach</button>
<button class="action-button" id="button-action-pull-stomach">Pull from Stomach</button>
</div>

<div class="action-tab" id="actions-misc"> <div class="action-tab" id="actions-misc">
<button class="action-button" id="button-action-pouch_stuff">Stuff Pouch</button> <button class="action-button" id="button-action-pouch_stuff">Stuff Pouch</button>
<button class="action-button" id="button-action-pouch_rub">Rub Pouch</button> <button class="action-button" id="button-action-pouch_rub">Rub Pouch</button>
@@ -880,8 +888,8 @@
<label class="custom-header" for="gooEnabled">Goo</label> <label class="custom-header" for="gooEnabled">Goo</label>
<div class="reveal-if-active"> <div class="reveal-if-active">
<li> <li>
<input autocomplete="off" checked="true" type="checkbox" id="gooDigests" name="gooDigests" />
<label class="has-tooltip" for="scatScaleWithSize" title="If checked, produces more scat from the same prey as you get larger">Digestion</label>
<input autocomplete="off" checked="true" type="checkbox" id="gooDigestion" name="gooDigestion" />
<label for="gooDigestion">Digestion</label>
</li> </li>
</div> </div>
</div> </div>


Loading…
Cancel
Save