Browse Source

Added melting logic, fixed summarize showing 0 kill

tags/v0.7.0
Fen Dweller 7 years ago
parent
commit
da14de08b6
3 changed files with 108 additions and 6 deletions
  1. +81
    -2
      game.js
  2. +16
    -1
      recursive-desc.js
  3. +11
    -3
      stroll.html

+ 81
- 2
game.js View File

@@ -785,6 +785,49 @@ let macro =
"stages" : 2 "stages" : 2
}, },


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

"goo": {
"name" : "goo",
"setup": function(owner) {
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner,this);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
},
"feedFunc": function(prey,self,owner) {
this.contents[0] = this.contents[0].merge(prey);
},
"describeDigestion": function(container) {
return describe("goo",container,this.owner,verbose);
},
"fill": function(owner,container) {

},
get description() {
let prey = new Container();
this.contents.forEach(function(x) {
prey = prey.merge(x);
});

if (prey.count == 0) {
return "You contain no prey.";
} else {
if (macro.gooDigestion > 0) {
return "Your gooey body contains " + prey.describe(false) + ", gradually absorbing them into your bulk.";
} else {
return "Your gooey body contains " + prey.describe(false) + ".";
}
}
},
"contents" : [],
"stages" : 4
},

// holding spots // holding spots


hasPouch: true, hasPouch: true,
@@ -1487,11 +1530,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>";
} }
@@ -2820,6 +2863,42 @@ function scat(vol) {
macro.arouse(50); macro.arouse(50);
} }


function melt()
{
macro.gooMolten = true;

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

update([line, newline]);
}

function solidify()
{
let prey = new Container();
macro.goo.contents.forEach(function(x) {
prey = prey.merge(x);
});

let line = describe("solidify", 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("insert",preyMass);

macro.gooMolten = false;

if (macro.gooDigest) {
update([sound, line, linesummary, newline]);
} else {
update([sound, line, newline]);
}
}


function transformNumbers(line) function transformNumbers(line)
{ {
return line.toString().replace(/[0-9]+(\.[0-9]+)?(e\+[0-9]+)?/g, function(text) { return number(text, numbers); }); return line.toString().replace(/[0-9]+(\.[0-9]+)?(e\+[0-9]+)?/g, function(text) { return number(text, numbers); });


+ 16
- 1
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",""];
"sheath-toy","slit-toy","breast-toy","melt","solidify"];


for (let i=0; i<actions.length; i++) { for (let i=0; i<actions.length; i++) {
rules[actions[i]] = []; rules[actions[i]] = [];
@@ -750,6 +750,21 @@ function defaultScat(container, macro, verbose) {
} }
} }


function defaultMelt(container, macro, verbose) {
return "Your body turns gooey.";
}

function defaultSolidify(container, macro, verbose) {
if (container.count == 0) {
return "Your body turns solid.";
} else if (macro.gooDigest > 0) {
return "Your body turns solid, pushing out " + container.describe(verbose);
} else {
return "Your body turns solid, swiftly absorbing" + container.describe(verbose);
}
}


// EATING // EATING


rules["eat"].push({ rules["eat"].push({


+ 11
- 3
stroll.html View File

@@ -270,9 +270,11 @@


<p>Stroll is a text-based macro game. Stomp things, eat things, abuse things - then grow larger and do it all over again. </p> <p>Stroll is a text-based macro game. Stomp things, eat things, abuse things - then grow larger and do it all over again. </p>


<p>Build your Character (leave blank for reasonable normal-scale defaults)</p>
<p>Build your Character</p>
<p>Leave a box empty for a sane default value</p>
<p>Lengths in meters, areas in square meters, masses in kilograms</p> <p>Lengths in meters, areas in square meters, masses in kilograms</p>
<p>Click on highlight/darkened titles to enable and disabled features.</p>
<p>(but you can preview the customary value)</p>
<p>Click on highlight/darkened titles to enable and disable features.</p>
<div id="custom-species"> <div id="custom-species">




@@ -875,7 +877,13 @@


<div class="custom-category"> <div class="custom-category">
<input autocomplete="off" class="custom-header-checkbox" type="checkbox" id="gooEnabled" name="gooEnabled" /> <input autocomplete="off" class="custom-header-checkbox" type="checkbox" id="gooEnabled" name="gooEnabled" />
<label class="custom-header" for="gooEnabled">Goo (not in yet)</label>
<label class="custom-header" for="gooEnabled">Goo</label>
<div class="reveal-if-active">
<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>
</li>
</div>
</div> </div>
</ul> </ul>
</form> </form>


Loading…
Cancel
Save