| @@ -1,3 +1,7 @@ | |||||
| "use strict"; | |||||
| var started = false; | |||||
| var strolling = false; | var strolling = false; | ||||
| var maxStomachDigest = 10; | var maxStomachDigest = 10; | ||||
| @@ -13,7 +17,7 @@ var biome = "suburb"; | |||||
| var newline = " "; | var newline = " "; | ||||
| victims = {}; | |||||
| var victims = {}; | |||||
| var humanMode = true; | var humanMode = true; | ||||
| @@ -72,7 +76,7 @@ var macro = | |||||
| "dickDensity": 1000, | "dickDensity": 1000, | ||||
| "dickScale": 1, | "dickScale": 1, | ||||
| get dickLength() { | get dickLength() { | ||||
| factor = 1; | |||||
| var factor = 1; | |||||
| if (!this.arousalEnabled || this.arousal < 25) { | if (!this.arousalEnabled || this.arousal < 25) { | ||||
| factor = 0.5; | factor = 0.5; | ||||
| } else if (this.arousal < 75) { | } else if (this.arousal < 75) { | ||||
| @@ -82,7 +86,7 @@ var macro = | |||||
| return this.scaling(this.baseDickLength * this.dickScale * factor, this.scale, 1); | return this.scaling(this.baseDickLength * this.dickScale * factor, this.scale, 1); | ||||
| }, | }, | ||||
| get dickDiameter() { | get dickDiameter() { | ||||
| factor = 1; | |||||
| var factor = 1; | |||||
| if (!this.arousalEnabled || this.arousal < 25) { | if (!this.arousalEnabled || this.arousal < 25) { | ||||
| factor = 0.5; | factor = 0.5; | ||||
| } else if (this.arousal < 75) { | } else if (this.arousal < 75) { | ||||
| @@ -107,7 +111,7 @@ var macro = | |||||
| "ballDensity": 1000, | "ballDensity": 1000, | ||||
| "ballScale": 1, | "ballScale": 1, | ||||
| get ballDiameter() { return this.scaling(this.baseBallDiameter * this.ballScale, this.scale, 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() { | get ballVolume() { | ||||
| var radius = this.ballDiameter / 2; | var radius = this.ballDiameter / 2; | ||||
| return 4/3 * Math.PI * Math.pow(radius,3); | 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 vaginaLength() { return this.scaling(this.baseVaginaLength * this.vaginaScale, this.scale, 1); }, | ||||
| get vaginaWidth() { return this.scaling(this.baseVaginaWidth * 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, | "baseFemcumRatio": 1, | ||||
| "femcumScale": 1, | "femcumScale": 1, | ||||
| get femcumVolume() { | get femcumVolume() { | ||||
| @@ -202,7 +206,7 @@ var macro = | |||||
| }, | }, | ||||
| "feedFunc": function(prey,self,owner) { | "feedFunc": function(prey,self,owner) { | ||||
| if (self.contents.length == 0) | if (self.contents.length == 0) | ||||
| setTimeout(function() { owner.digest(owner,self) }, 15000); | |||||
| setTimeout(function() { owner.digest(owner,self); }, 15000); | |||||
| this.contents.push(prey); | this.contents.push(prey); | ||||
| }, | }, | ||||
| "describeDigestion": function(container) { | "describeDigestion": function(container) { | ||||
| @@ -615,7 +619,7 @@ var macro = | |||||
| get describeDick() { | get describeDick() { | ||||
| state = ""; | |||||
| var state = ""; | |||||
| if (!this.arousalEnabled) { | if (!this.arousalEnabled) { | ||||
| state = "limp"; | state = "limp"; | ||||
| } else if (this.orgasm) { | } else if (this.orgasm) { | ||||
| @@ -637,7 +641,7 @@ var macro = | |||||
| }, | }, | ||||
| get describeVagina() { | get describeVagina() { | ||||
| state = ""; | |||||
| var state = ""; | |||||
| if (!this.arousalEnabled) { | if (!this.arousalEnabled) { | ||||
| state = "unassuming"; | state = "unassuming"; | ||||
| } else if (this.orgasm) { | } else if (this.orgasm) { | ||||
| @@ -850,7 +854,7 @@ function getOnePrey(biome,area) | |||||
| }); | }); | ||||
| for (var i=0; i<potAreas.length; i++) { | for (var i=0; i<potAreas.length; i++) { | ||||
| x = potAreas[i]; | |||||
| var x = potAreas[i]; | |||||
| if (x[1] < area) { | if (x[1] < area) { | ||||
| return new Container([new things[x[0]](1)]); | return new Container([new things[x[0]](1)]); | ||||
| } | } | ||||
| @@ -1087,8 +1091,8 @@ function anal_vore() | |||||
| var line = describe("anal-vore", prey, macro, verbose); | var line = describe("anal-vore", prey, macro, verbose); | ||||
| var linesummary = summarize(prey.sum(), false); | 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) { | if (people < 3) { | ||||
| sound = "Shlp."; | sound = "Shlp."; | ||||
| @@ -1375,7 +1379,7 @@ function breast_vore() | |||||
| function milk_breasts(e,vol) | function milk_breasts(e,vol) | ||||
| { | { | ||||
| if (vol == undefined) { | if (vol == undefined) { | ||||
| var vol = Math.min(macro.lactationVolume, macro.milkStorage.amount); | |||||
| vol = Math.min(macro.lactationVolume, macro.milkStorage.amount); | |||||
| } | } | ||||
| macro.milkStorage.amount -= vol; | macro.milkStorage.amount -= vol; | ||||
| @@ -1383,7 +1387,7 @@ function milk_breasts(e,vol) | |||||
| var area = Math.pow(vol, 2/3); | var area = Math.pow(vol, 2/3); | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1417,7 +1421,7 @@ function unbirth() | |||||
| { | { | ||||
| var area = macro.vaginaArea; | var area = macro.vaginaArea; | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), false); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1454,7 +1458,7 @@ function sheath_stuff() | |||||
| { | { | ||||
| var area = Math.min(macro.handArea, macro.dickGirth*3); | var area = Math.min(macro.handArea, macro.dickGirth*3); | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), false); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1486,7 +1490,7 @@ function sheath_stuff() | |||||
| function sheath_squeeze() | function sheath_squeeze() | ||||
| { | { | ||||
| var prey = macro.sheath.container; | 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 linesummary = summarize(prey.sum(), false); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1516,7 +1520,7 @@ function sheath_crush() | |||||
| { | { | ||||
| var prey = macro.sheath.container; | var prey = macro.sheath.container; | ||||
| macro.sheath.container = new 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1546,7 +1550,7 @@ function sheath_absorb() | |||||
| { | { | ||||
| var prey = macro.sheath.container; | var prey = macro.sheath.container; | ||||
| macro.sheath.container = new 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1577,7 +1581,7 @@ function cockslap() | |||||
| { | { | ||||
| var area = macro.dickArea; | var area = macro.dickArea; | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1612,7 +1616,7 @@ function cock_vore() | |||||
| { | { | ||||
| var area = macro.dickGirth; | var area = macro.dickGirth; | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), false); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1648,7 +1652,7 @@ function ball_smother() | |||||
| { | { | ||||
| var area = macro.ballArea * 2; | var area = macro.ballArea * 2; | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1683,7 +1687,7 @@ function male_spurt(vol) | |||||
| var area = Math.pow(vol, 2/3); | var area = Math.pow(vol, 2/3); | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1716,7 +1720,7 @@ function male_orgasm(vol) | |||||
| var area = Math.pow(vol, 2/3); | var area = Math.pow(vol, 2/3); | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1749,7 +1753,7 @@ function female_spurt(vol) | |||||
| var area = Math.pow(vol, 2/3); | var area = Math.pow(vol, 2/3); | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1814,7 +1818,7 @@ function tail_slap() | |||||
| { | { | ||||
| var area = macro.tailArea * macro.tailCount; | var area = macro.tailArea * macro.tailCount; | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), true); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1848,7 +1852,7 @@ function tail_vore() | |||||
| { | { | ||||
| var area = macro.tailGirth * macro.tailCount; | var area = macro.tailGirth * macro.tailCount; | ||||
| var prey = getPrey(biome, area); | 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 linesummary = summarize(prey.sum(), false); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -1919,7 +1923,7 @@ function pouch_eat() | |||||
| var prey = macro.pouch.container; | var prey = macro.pouch.container; | ||||
| macro.pouch.container = new 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 linesummary = summarize(prey.sum(), false); | ||||
| var people = get_living_prey(prey.sum()); | var people = get_living_prey(prey.sum()); | ||||
| @@ -2013,22 +2017,22 @@ function pick_move() | |||||
| } | } | ||||
| function grow_pick(times) { | function grow_pick(times) { | ||||
| if (document.getElementById("part-body").checked == true) { | |||||
| if (document.getElementById("part-body").checked === true) { | |||||
| grow(times); | grow(times); | ||||
| } | } | ||||
| else if (document.getElementById("part-ass").checked == true) { | |||||
| else if (document.getElementById("part-ass").checked === true) { | |||||
| grow_ass(times); | grow_ass(times); | ||||
| } | } | ||||
| else if (document.getElementById("part-dick").checked == true) { | |||||
| else if (document.getElementById("part-dick").checked === true) { | |||||
| grow_dick(times); | grow_dick(times); | ||||
| } | } | ||||
| else if (document.getElementById("part-balls").checked == true) { | |||||
| else if (document.getElementById("part-balls").checked === true) { | |||||
| grow_balls(times); | grow_balls(times); | ||||
| } | } | ||||
| else if (document.getElementById("part-breasts").checked == true) { | |||||
| else if (document.getElementById("part-breasts").checked === true) { | |||||
| grow_breasts(times); | grow_breasts(times); | ||||
| } | } | ||||
| else if (document.getElementById("part-vagina").checked == true) { | |||||
| else if (document.getElementById("part-vagina").checked === true) { | |||||
| grow_vagina(times); | grow_vagina(times); | ||||
| } | } | ||||
| } | } | ||||
| @@ -2189,11 +2193,9 @@ function preset(name) { | |||||
| } | } | ||||
| function saveSettings() { | 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++) { | for (var i=0; i<form.length; i++) { | ||||
| if (form[i].value != "") { | if (form[i].value != "") { | ||||
| @@ -2218,10 +2220,10 @@ function loadSettings() { | |||||
| if (window.localStorage.getItem('settings') == null) | if (window.localStorage.getItem('settings') == null) | ||||
| return; | 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++) { | for (var i=0; i<form.length; i++) { | ||||
| if (settings[form[i].name] != undefined) { | if (settings[form[i].name] != undefined) { | ||||
| @@ -2240,8 +2242,12 @@ function loadSettings() { | |||||
| } | } | ||||
| function startGame(e) { | 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++) { | for (var i=0; i<form.length; i++) { | ||||
| if (form[i].value != "") { | if (form[i].value != "") { | ||||
| @@ -2274,7 +2280,7 @@ function startGame(e) { | |||||
| document.getElementById("option-panel").style.display = 'none'; | document.getElementById("option-panel").style.display = 'none'; | ||||
| document.getElementById("action-panel").style.display = 'flex'; | document.getElementById("action-panel").style.display = 'flex'; | ||||
| victimTypes = ["stomped","digested","stomach","ground"]; | |||||
| var victimTypes = ["stomped","digested","stomach","ground"]; | |||||
| if (macro.analVore) { | if (macro.analVore) { | ||||
| victimTypes = victimTypes.concat(["bowels"]); | victimTypes = victimTypes.concat(["bowels"]); | ||||
| @@ -1,4 +1,6 @@ | |||||
| rules = {}; | |||||
| 'use strict'; | |||||
| var rules = {}; | |||||
| rules["eat"] = []; | rules["eat"] = []; | ||||
| rules["chew"] = []; | rules["chew"] = []; | ||||
| @@ -105,7 +107,7 @@ function nothingLarger(container, thing) { | |||||
| } | } | ||||
| function describe(action, container, macro, verbose=true) { | function describe(action, container, macro, verbose=true) { | ||||
| options = []; | |||||
| var options = []; | |||||
| for (var i = 0; i < rules[action].length; i++) { | for (var i = 0; i < rules[action].length; i++) { | ||||
| if(rules[action][i].test(container,macro)) { | if(rules[action][i].test(container,macro)) { | ||||
| @@ -1,3 +1,5 @@ | |||||
| 'use strict'; | |||||
| var things = | var things = | ||||
| { | { | ||||
| "Container": Container, | "Container": Container, | ||||
| @@ -107,9 +109,9 @@ var clusters = | |||||
| function fill_area(area, weights, variance=0.15) | 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) { | for (var key in weights) { | ||||
| if (weights.hasOwnProperty(key)) { | if (weights.hasOwnProperty(key)) { | ||||
| candidates.push({"name": key, "area": areas[key], "weight": weights[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) { | } else if (list.length == 2) { | ||||
| return list[0] + " and " + list[1]; | return list[0] + " and " + list[1]; | ||||
| } else { | } else { | ||||
| result = ""; | |||||
| var result = ""; | |||||
| list.slice(0,list.length-1).forEach(function(term) { | list.slice(0,list.length-1).forEach(function(term) { | ||||
| result += term + ", "; | result += term + ", "; | ||||
| @@ -202,7 +204,7 @@ function merge_things(list,semicolons=false) { | |||||
| // combine the adjectives for something into a single string | // combine the adjectives for something into a single string | ||||
| function merge_desc(list) { | function merge_desc(list) { | ||||
| result = "" | |||||
| var result = "" | |||||
| list.forEach(function(term) { | list.forEach(function(term) { | ||||
| if (term != "") | if (term != "") | ||||
| @@ -289,7 +291,7 @@ function defaultSum(thing) { | |||||
| for (var key in thing.contents) { | for (var key in thing.contents) { | ||||
| if (thing.contents.hasOwnProperty(key)) { | if (thing.contents.hasOwnProperty(key)) { | ||||
| subcount = thing.contents[key].sum(); | |||||
| var subcount = thing.contents[key].sum(); | |||||
| for (var subkey in subcount) { | for (var subkey in subcount) { | ||||
| if (!counts.hasOwnProperty(subkey)) { | if (!counts.hasOwnProperty(subkey)) { | ||||
| counts[subkey] = 0; | counts[subkey] = 0; | ||||
| @@ -390,19 +392,19 @@ function Person(count = 1) { | |||||
| this.describeOne = function (verbose=true) { | 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) | 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 | 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]); | return "a " + merge_desc([body,sex,species]); | ||||
| } | } | ||||
| this.describe = function(verbose=true) { | this.describe = function(verbose=true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (count <= 3) { | if (count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < count; i++) { | for (var i = 0; i < count; i++) { | ||||
| list.push(this.describeOne(this.count <= 2)); | list.push(this.describeOne(this.count <= 2)); | ||||
| } | } | ||||
| @@ -428,15 +430,15 @@ function Cow(count = 1) { | |||||
| this.describeOne = function (verbose=true) { | 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"]); | return "a " + merge_desc([body,sex,"cow"]); | ||||
| } | } | ||||
| this.describe = function(verbose=true) { | this.describe = function(verbose=true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (count <= 3) { | if (count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < count; i++) { | for (var i = 0; i < count; i++) { | ||||
| list.push(this.describeOne(this.count <= 2)); | list.push(this.describeOne(this.count <= 2)); | ||||
| } | } | ||||
| @@ -463,16 +465,16 @@ function EmptyCar(count = 1) { | |||||
| this.describeOne = function(verbose=true) { | 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]); | return "a parked " + merge_desc([adjective,color,type]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count <= 3) { | if (this.count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne()); | list.push(this.describeOne()); | ||||
| } | } | ||||
| @@ -497,16 +499,16 @@ function Car(count = 1) { | |||||
| this.addContent("Person", 2, 5, count); | this.addContent("Person", 2, 5, count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([adjective,color,type]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count <= 3) { | if (this.count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(this.count < 2)); | list.push(this.describeOne(this.count < 2)); | ||||
| } | } | ||||
| @@ -531,16 +533,16 @@ function Bus(count = 1) { | |||||
| this.addContent("Person",10,35,count); | this.addContent("Person",10,35,count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([adjective,color,type]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count <= 3) { | if (this.count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(this.count < 2)); | list.push(this.describeOne(this.count < 2)); | ||||
| } | } | ||||
| @@ -565,16 +567,16 @@ function Tram(count = 1) { | |||||
| this.addContent("Person",40,60,count); | this.addContent("Person",40,60,count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([adjective,color,type]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count == 1) { | if (this.count == 1) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(verbose)); | list.push(this.describeOne(verbose)); | ||||
| } | } | ||||
| @@ -615,16 +617,16 @@ function Train(count = 1) { | |||||
| this.addContent("Train Car", 2, 10, count); | this.addContent("Train Car", 2, 10, count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([adjective,color,type]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count == 1) { | if (this.count == 1) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(verbose)); | list.push(this.describeOne(verbose)); | ||||
| } | } | ||||
| @@ -654,9 +656,9 @@ function TrainCar(count = 1) { | |||||
| this.addContent("Person",10,40,count); | this.addContent("Person",10,40,count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([adjective,color,type]); | ||||
| } | } | ||||
| @@ -679,16 +681,16 @@ function House(count = 1) { | |||||
| this.addContent("Empty Car",0,2,count); | this.addContent("Empty Car",0,2,count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([size,color,name]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count <= 3) { | if (this.count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(this.count < 2)); | list.push(this.describeOne(this.count < 2)); | ||||
| } | } | ||||
| @@ -713,16 +715,16 @@ function Barn(count = 1) { | |||||
| this.addContent("Cow",30,70,count); | this.addContent("Cow",30,70,count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([size,color,name]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count <= 3) { | if (this.count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(this.count < 2)); | list.push(this.describeOne(this.count < 2)); | ||||
| } | } | ||||
| @@ -747,15 +749,15 @@ function SmallSkyscraper(count = 1) { | |||||
| this.addContent("Empty Car",10,50,count); | this.addContent("Empty Car",10,50,count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc([color,name]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count <= 3) { | if (this.count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(this.count < 2)); | list.push(this.describeOne(this.count < 2)); | ||||
| } | } | ||||
| @@ -789,15 +791,15 @@ function LargeSkyscraper(count = 1) { | |||||
| this.addContent("Empty Car",20,100,count); | this.addContent("Empty Car",20,100,count); | ||||
| this.describeOne = function(verbose=true) { | 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]); | return "a " + merge_desc(["towering",color,name]); | ||||
| } | } | ||||
| this.describe = function(verbose = true) { | this.describe = function(verbose = true) { | ||||
| if (verbose) { | if (verbose) { | ||||
| if (this.count <= 3) { | if (this.count <= 3) { | ||||
| list = []; | |||||
| var list = []; | |||||
| for (var i = 0; i < this.count; i++) { | for (var i = 0; i < this.count; i++) { | ||||
| list.push(this.describeOne(this.count < 2)); | list.push(this.describeOne(this.count < 2)); | ||||
| } | } | ||||
| @@ -1,3 +1,5 @@ | |||||
| 'use strict'; | |||||
| function round(number,precision=3) { | function round(number,precision=3) { | ||||
| return Math.round(number*Math.pow(10,precision)) / Math.pow(10,precision); | return Math.round(number*Math.pow(10,precision)) / Math.pow(10,precision); | ||||
| } | } | ||||