Parcourir la source

Enforcing strict mode. Fixed many of the resulting errors.

tags/v0.7.0
Fen Dweller il y a 7 ans
Parent
révision
b48d8211e7
4 fichiers modifiés avec 109 ajouts et 97 suppressions
  1. +50
    -44
      game.js
  2. +4
    -2
      recursive-desc.js
  3. +53
    -51
      recursive-macro.js
  4. +2
    -0
      units.js

+ 50
- 44
game.js Voir le fichier

@@ -1,3 +1,7 @@
"use strict";

var started = false;

var strolling = false;

var maxStomachDigest = 10;
@@ -13,7 +17,7 @@ var biome = "suburb";

var newline = " ";

victims = {};
var victims = {};

var humanMode = true;

@@ -72,7 +76,7 @@ var macro =
"dickDensity": 1000,
"dickScale": 1,
get dickLength() {
factor = 1;
var factor = 1;
if (!this.arousalEnabled || this.arousal < 25) {
factor = 0.5;
} else if (this.arousal < 75) {
@@ -82,7 +86,7 @@ var macro =
return this.scaling(this.baseDickLength * this.dickScale * factor, this.scale, 1);
},
get dickDiameter() {
factor = 1;
var factor = 1;
if (!this.arousalEnabled || this.arousal < 25) {
factor = 0.5;
} else if (this.arousal < 75) {
@@ -107,7 +111,7 @@ var macro =
"ballDensity": 1000,
"ballScale": 1,
get ballDiameter() { return this.scaling(this.baseBallDiameter * this.ballScale, this.scale, 1); },
get ballArea() { return 2 * Math.PI * Math.pow(this.ballDiameter/2, 2) },
get ballArea() { return 2 * Math.PI * Math.pow(this.ballDiameter/2, 2); },
get ballVolume() {
var radius = this.ballDiameter / 2;
return 4/3 * Math.PI * Math.pow(radius,3);
@@ -129,8 +133,8 @@ var macro =

get vaginaLength() { return this.scaling(this.baseVaginaLength * this.vaginaScale, this.scale, 1); },
get vaginaWidth() { return this.scaling(this.baseVaginaWidth * this.vaginaScale, this.scale, 1); },
get vaginaArea() { return this.vaginaLength * this.vaginaWidth },
get vaginaVolume() { return this.vaginaArea * this.vaginaWidth },
get vaginaArea() { return this.vaginaLength * this.vaginaWidth; },
get vaginaVolume() { return this.vaginaArea * this.vaginaWidth; },
"baseFemcumRatio": 1,
"femcumScale": 1,
get femcumVolume() {
@@ -202,7 +206,7 @@ var macro =
},
"feedFunc": function(prey,self,owner) {
if (self.contents.length == 0)
setTimeout(function() { owner.digest(owner,self) }, 15000);
setTimeout(function() { owner.digest(owner,self); }, 15000);
this.contents.push(prey);
},
"describeDigestion": function(container) {
@@ -615,7 +619,7 @@ var macro =


get describeDick() {
state = "";
var state = "";
if (!this.arousalEnabled) {
state = "limp";
} else if (this.orgasm) {
@@ -637,7 +641,7 @@ var macro =
},

get describeVagina() {
state = "";
var state = "";
if (!this.arousalEnabled) {
state = "unassuming";
} else if (this.orgasm) {
@@ -850,7 +854,7 @@ function getOnePrey(biome,area)
});

for (var i=0; i<potAreas.length; i++) {
x = potAreas[i];
var x = potAreas[i];
if (x[1] < area) {
return new Container([new things[x[0]](1)]);
}
@@ -1087,8 +1091,8 @@ function anal_vore()
var line = describe("anal-vore", prey, macro, verbose);
var linesummary = summarize(prey.sum(), false);

people = get_living_prey(prey.sum());
sound = "Shlp";
var people = get_living_prey(prey.sum());
var sound = "Shlp";

if (people < 3) {
sound = "Shlp.";
@@ -1375,7 +1379,7 @@ function breast_vore()
function milk_breasts(e,vol)
{
if (vol == undefined) {
var vol = Math.min(macro.lactationVolume, macro.milkStorage.amount);
vol = Math.min(macro.lactationVolume, macro.milkStorage.amount);
}

macro.milkStorage.amount -= vol;
@@ -1383,7 +1387,7 @@ function milk_breasts(e,vol)
var area = Math.pow(vol, 2/3);

var prey = getPrey(biome, area);
var line = describe("breast-milk", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false))
var line = describe("breast-milk", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false));
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1417,7 +1421,7 @@ function unbirth()
{
var area = macro.vaginaArea;
var prey = getPrey(biome, area);
var line = describe("unbirth", prey, macro, verbose)
var line = describe("unbirth", prey, macro, verbose);
var linesummary = summarize(prey.sum(), false);

var people = get_living_prey(prey.sum());
@@ -1454,7 +1458,7 @@ function sheath_stuff()
{
var area = Math.min(macro.handArea, macro.dickGirth*3);
var prey = getPrey(biome, area);
var line = describe("sheath-stuff", prey, macro, verbose)
var line = describe("sheath-stuff", prey, macro, verbose);
var linesummary = summarize(prey.sum(), false);

var people = get_living_prey(prey.sum());
@@ -1486,7 +1490,7 @@ function sheath_stuff()
function sheath_squeeze()
{
var prey = macro.sheath.container;
var line = describe("sheath-squeeze", prey, macro, verbose)
var line = describe("sheath-squeeze", prey, macro, verbose);
var linesummary = summarize(prey.sum(), false);

var people = get_living_prey(prey.sum());
@@ -1516,7 +1520,7 @@ function sheath_crush()
{
var prey = macro.sheath.container;
macro.sheath.container = new Container();
var line = describe("sheath-crush", prey, macro, verbose)
var line = describe("sheath-crush", prey, macro, verbose);
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1546,7 +1550,7 @@ function sheath_absorb()
{
var prey = macro.sheath.container;
macro.sheath.container = new Container();
var line = describe("sheath-absorb", prey, macro, verbose)
var line = describe("sheath-absorb", prey, macro, verbose);
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1577,7 +1581,7 @@ function cockslap()
{
var area = macro.dickArea;
var prey = getPrey(biome, area);
var line = describe("cockslap", prey, macro, verbose)
var line = describe("cockslap", prey, macro, verbose);
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1612,7 +1616,7 @@ function cock_vore()
{
var area = macro.dickGirth;
var prey = getPrey(biome, area);
var line = describe("cock-vore", prey, macro, verbose)
var line = describe("cock-vore", prey, macro, verbose);
var linesummary = summarize(prey.sum(), false);

var people = get_living_prey(prey.sum());
@@ -1648,7 +1652,7 @@ function ball_smother()
{
var area = macro.ballArea * 2;
var prey = getPrey(biome, area);
var line = describe("ball-smother", prey, macro, verbose)
var line = describe("ball-smother", prey, macro, verbose);
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1683,7 +1687,7 @@ function male_spurt(vol)
var area = Math.pow(vol, 2/3);

var prey = getPrey(biome, area);
var line = describe("male-spurt", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false))
var line = describe("male-spurt", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false));
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1716,7 +1720,7 @@ function male_orgasm(vol)
var area = Math.pow(vol, 2/3);

var prey = getPrey(biome, area);
var line = describe("male-orgasm", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false))
var line = describe("male-orgasm", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false));
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1749,7 +1753,7 @@ function female_spurt(vol)
var area = Math.pow(vol, 2/3);

var prey = getPrey(biome, area);
var line = describe("female-spurt", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false))
var line = describe("female-spurt", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false));
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1814,7 +1818,7 @@ function tail_slap()
{
var area = macro.tailArea * macro.tailCount;
var prey = getPrey(biome, area);
var line = describe("tail-slap", prey, macro, verbose)
var line = describe("tail-slap", prey, macro, verbose);
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());
@@ -1848,7 +1852,7 @@ function tail_vore()
{
var area = macro.tailGirth * macro.tailCount;
var prey = getPrey(biome, area);
var line = describe("tail-vore", prey, macro, verbose)
var line = describe("tail-vore", prey, macro, verbose);
var linesummary = summarize(prey.sum(), false);

var people = get_living_prey(prey.sum());
@@ -1919,7 +1923,7 @@ function pouch_eat()
var prey = macro.pouch.container;
macro.pouch.container = new Container();

var line = describe("pouch-eat", prey, macro, verbose)
var line = describe("pouch-eat", prey, macro, verbose);
var linesummary = summarize(prey.sum(), false);

var people = get_living_prey(prey.sum());
@@ -2013,22 +2017,22 @@ function pick_move()
}

function grow_pick(times) {
if (document.getElementById("part-body").checked == true) {
if (document.getElementById("part-body").checked === true) {
grow(times);
}
else if (document.getElementById("part-ass").checked == true) {
else if (document.getElementById("part-ass").checked === true) {
grow_ass(times);
}
else if (document.getElementById("part-dick").checked == true) {
else if (document.getElementById("part-dick").checked === true) {
grow_dick(times);
}
else if (document.getElementById("part-balls").checked == true) {
else if (document.getElementById("part-balls").checked === true) {
grow_balls(times);
}
else if (document.getElementById("part-breasts").checked == true) {
else if (document.getElementById("part-breasts").checked === true) {
grow_breasts(times);
}
else if (document.getElementById("part-vagina").checked == true) {
else if (document.getElementById("part-vagina").checked === true) {
grow_vagina(times);
}
}
@@ -2189,11 +2193,9 @@ function preset(name) {
}

function saveSettings() {
storage = window.localStorage;

settings = {};

form = document.forms.namedItem("custom-species-form");
var storage = window.localStorage;
var settings = {};
var form = document.forms.namedItem("custom-species-form");

for (var i=0; i<form.length; i++) {
if (form[i].value != "") {
@@ -2218,10 +2220,10 @@ function loadSettings() {
if (window.localStorage.getItem('settings') == null)
return;

storage = window.localStorage;
var storage = window.localStorage;

settings = JSON.parse(storage.getItem('settings'));
form = document.forms.namedItem("custom-species-form");
var settings = JSON.parse(storage.getItem('settings'));
var form = document.forms.namedItem("custom-species-form");

for (var i=0; i<form.length; i++) {
if (settings[form[i].name] != undefined) {
@@ -2240,8 +2242,12 @@ function loadSettings() {
}

function startGame(e) {
if (started)
return;

form = document.forms.namedItem("custom-species-form");
started = true;
var form = document.forms.namedItem("custom-species-form");

for (var i=0; i<form.length; i++) {
if (form[i].value != "") {
@@ -2274,7 +2280,7 @@ function startGame(e) {
document.getElementById("option-panel").style.display = 'none';
document.getElementById("action-panel").style.display = 'flex';

victimTypes = ["stomped","digested","stomach","ground"];
var victimTypes = ["stomped","digested","stomach","ground"];

if (macro.analVore) {
victimTypes = victimTypes.concat(["bowels"]);


+ 4
- 2
recursive-desc.js Voir le fichier

@@ -1,4 +1,6 @@
rules = {};
'use strict';

var rules = {};

rules["eat"] = [];
rules["chew"] = [];
@@ -105,7 +107,7 @@ function nothingLarger(container, thing) {
}

function describe(action, container, macro, verbose=true) {
options = [];
var options = [];

for (var i = 0; i < rules[action].length; i++) {
if(rules[action][i].test(container,macro)) {


+ 53
- 51
recursive-macro.js Voir le fichier

@@ -1,3 +1,5 @@
'use strict';

var things =
{
"Container": Container,
@@ -107,9 +109,9 @@ var clusters =

function fill_area(area, weights, variance=0.15)
{
area = area + Math.random() * variance * 2 - variance;
result = [];
candidates = [];
var area = area + Math.random() * variance * 2 - variance;
var result = [];
var candidates = [];
for (var key in weights) {
if (weights.hasOwnProperty(key)) {
candidates.push({"name": key, "area": areas[key], "weight": weights[key]});
@@ -187,7 +189,7 @@ function merge_things(list,semicolons=false) {
} else if (list.length == 2) {
return list[0] + " and " + list[1];
} else {
result = "";
var result = "";

list.slice(0,list.length-1).forEach(function(term) {
result += term + ", ";
@@ -202,7 +204,7 @@ function merge_things(list,semicolons=false) {
// combine the adjectives for something into a single string

function merge_desc(list) {
result = ""
var result = ""

list.forEach(function(term) {
if (term != "")
@@ -289,7 +291,7 @@ function defaultSum(thing) {

for (var key in thing.contents) {
if (thing.contents.hasOwnProperty(key)) {
subcount = thing.contents[key].sum();
var subcount = thing.contents[key].sum();
for (var subkey in subcount) {
if (!counts.hasOwnProperty(subkey)) {
counts[subkey] = 0;
@@ -390,19 +392,19 @@ function Person(count = 1) {


this.describeOne = function (verbose=true) {
body = random_desc(["skinny","fat","tall","short","stocky","spindly"], (verbose ? 0.6 : 0));
sex = random_desc(["male", "female"], (verbose ? 1 : 0));
var body = random_desc(["skinny","fat","tall","short","stocky","spindly"], (verbose ? 0.6 : 0));
var sex = random_desc(["male", "female"], (verbose ? 1 : 0));
if (!humanMode)
species = random_desc(["wolf","cat","dog","squirrel","horse","hyena","fox","jackal","crux","sergal"]);
var species = random_desc(["wolf","cat","dog","squirrel","horse","hyena","fox","jackal","crux","sergal"]);
else
species = random_desc(["jogger","police officer","road worker","pastor","dog-walker","clerk","accountant","CEO","millionaire","mailman"]);
var species = random_desc(["jogger","police officer","road worker","pastor","dog-walker","clerk","accountant","CEO","millionaire","mailman"]);
return "a " + merge_desc([body,sex,species]);
}

this.describe = function(verbose=true) {
if (verbose) {
if (count <= 3) {
list = [];
var list = [];
for (var i = 0; i < count; i++) {
list.push(this.describeOne(this.count <= 2));
}
@@ -428,15 +430,15 @@ function Cow(count = 1) {


this.describeOne = function (verbose=true) {
body = random_desc(["skinny","fat","tall","short","stocky","spindly"], (verbose ? 0.6 : 0));
sex = random_desc(["male", "female"], (verbose ? 1 : 0));
var body = random_desc(["skinny","fat","tall","short","stocky","spindly"], (verbose ? 0.6 : 0));
var sex = random_desc(["male", "female"], (verbose ? 1 : 0));
return "a " + merge_desc([body,sex,"cow"]);
}

this.describe = function(verbose=true) {
if (verbose) {
if (count <= 3) {
list = [];
var list = [];
for (var i = 0; i < count; i++) {
list.push(this.describeOne(this.count <= 2));
}
@@ -463,16 +465,16 @@ function EmptyCar(count = 1) {


this.describeOne = function(verbose=true) {
color = random_desc(["black","black","gray","gray","blue","red","tan","white","white"]);
adjective = random_desc(["rusty","brand-new"],0.3);
type = random_desc(["SUV","coupe","sedan","truck","van","convertible"]);
var color = random_desc(["black","black","gray","gray","blue","red","tan","white","white"]);
var adjective = random_desc(["rusty","brand-new"],0.3);
var type = random_desc(["SUV","coupe","sedan","truck","van","convertible"]);
return "a parked " + merge_desc([adjective,color,type]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count <= 3) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne());
}
@@ -497,16 +499,16 @@ function Car(count = 1) {
this.addContent("Person", 2, 5, count);

this.describeOne = function(verbose=true) {
color = random_desc(["black","black","gray","gray","blue","red","tan","white","white"], (verbose ? 1 : 0));
adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
type = random_desc(["SUV","coupe","sedan","truck","van","convertible"]);
var color = random_desc(["black","black","gray","gray","blue","red","tan","white","white"], (verbose ? 1 : 0));
var adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
var type = random_desc(["SUV","coupe","sedan","truck","van","convertible"]);
return "a " + merge_desc([adjective,color,type]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count <= 3) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(this.count < 2));
}
@@ -531,16 +533,16 @@ function Bus(count = 1) {
this.addContent("Person",10,35,count);

this.describeOne = function(verbose=true) {
adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
color = random_desc(["black","tan","gray"], (verbose ? 1 : 0));
type = random_desc(["bus","double-decker bus","articulating bus"]);
var adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
var color = random_desc(["black","tan","gray"], (verbose ? 1 : 0));
var type = random_desc(["bus","double-decker bus","articulating bus"]);
return "a " + merge_desc([adjective,color,type]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count <= 3) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(this.count < 2));
}
@@ -565,16 +567,16 @@ function Tram(count = 1) {
this.addContent("Person",40,60,count);

this.describeOne = function(verbose=true) {
adjective = random_desc(["rusty","weathered"], (verbose ? 0.3 : 0));
color = random_desc(["blue","brown","gray"], (verbose ? 1 : 0));
type = random_desc(["tram"]);
var adjective = random_desc(["rusty","weathered"], (verbose ? 0.3 : 0));
var color = random_desc(["blue","brown","gray"], (verbose ? 1 : 0));
var type = random_desc(["tram"]);
return "a " + merge_desc([adjective,color,type]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count == 1) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(verbose));
}
@@ -615,16 +617,16 @@ function Train(count = 1) {
this.addContent("Train Car", 2, 10, count);

this.describeOne = function(verbose=true) {
adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
color = random_desc(["black","tan","gray"], (verbose ? 1 : 0));
type = random_desc(["train","passenger train","freight train"]);
var adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
var color = random_desc(["black","tan","gray"], (verbose ? 1 : 0));
var type = random_desc(["train","passenger train","freight train"]);
return "a " + merge_desc([adjective,color,type]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count == 1) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(verbose));
}
@@ -654,9 +656,9 @@ function TrainCar(count = 1) {
this.addContent("Person",10,40,count);

this.describeOne = function(verbose=true) {
adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
color = random_desc(["black","tan","gray"], (verbose ? 1 : 0));
type = random_desc(["train car","passenger train car","freight train car"]);
var adjective = random_desc(["rusty","brand-new"], (verbose ? 0.3 : 0));
var color = random_desc(["black","tan","gray"], (verbose ? 1 : 0));
var type = random_desc(["train car","passenger train car","freight train car"]);
return "a " + merge_desc([adjective,color,type]);
}

@@ -679,16 +681,16 @@ function House(count = 1) {
this.addContent("Empty Car",0,2,count);

this.describeOne = function(verbose=true) {
size = random_desc(["little","two-story","large"], (verbose ? 0.5 : 0));
color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
name = random_desc(["house","house","house","house","house","trailer"], 1);
var size = random_desc(["little","two-story","large"], (verbose ? 0.5 : 0));
var color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
var name = random_desc(["house","house","house","house","house","trailer"], 1);
return "a " + merge_desc([size,color,name]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count <= 3) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(this.count < 2));
}
@@ -713,16 +715,16 @@ function Barn(count = 1) {
this.addContent("Cow",30,70,count);

this.describeOne = function(verbose=true) {
size = random_desc(["little","big","large"], (verbose ? 0.5 : 0));
color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
name = random_desc(["barn","barn","barn","barn","barn","farmhouse"], 1);
var size = random_desc(["little","big","large"], (verbose ? 0.5 : 0));
var color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
var name = random_desc(["barn","barn","barn","barn","barn","farmhouse"], 1);
return "a " + merge_desc([size,color,name]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count <= 3) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(this.count < 2));
}
@@ -747,15 +749,15 @@ function SmallSkyscraper(count = 1) {
this.addContent("Empty Car",10,50,count);

this.describeOne = function(verbose=true) {
color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
name = random_desc(["skyscraper","office tower","office building"], 1);
var color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
var name = random_desc(["skyscraper","office tower","office building"], 1);
return "a " + merge_desc([color,name]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count <= 3) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(this.count < 2));
}
@@ -789,15 +791,15 @@ function LargeSkyscraper(count = 1) {
this.addContent("Empty Car",20,100,count);

this.describeOne = function(verbose=true) {
color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
name = random_desc(["skyscraper","office tower","office building"], 1);
var color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
var name = random_desc(["skyscraper","office tower","office building"], 1);
return "a " + merge_desc(["towering",color,name]);
}

this.describe = function(verbose = true) {
if (verbose) {
if (this.count <= 3) {
list = [];
var list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(this.count < 2));
}


+ 2
- 0
units.js Voir le fichier

@@ -1,3 +1,5 @@
'use strict';

function round(number,precision=3) {
return Math.round(number*Math.pow(10,precision)) / Math.pow(10,precision);
}


Chargement…
Annuler
Enregistrer