|
|
|
@@ -2,17 +2,27 @@ var baseHeight = 3.65; |
|
|
|
var baseMass = 1360; |
|
|
|
var scale = 1; |
|
|
|
|
|
|
|
var victims = |
|
|
|
var strolling = false; |
|
|
|
|
|
|
|
victims = {}; |
|
|
|
|
|
|
|
function toggle_auto() |
|
|
|
{ |
|
|
|
"Person": 0, |
|
|
|
"Car": 0, |
|
|
|
"Bus": 0, |
|
|
|
"Motorcycle": 0, |
|
|
|
"House": 0, |
|
|
|
"Train": 0, |
|
|
|
"Parking Garage": 0, |
|
|
|
"Overpass": 0 |
|
|
|
strolling = !strolling; |
|
|
|
} |
|
|
|
function initVictims() |
|
|
|
{ |
|
|
|
return { |
|
|
|
"Person": 0, |
|
|
|
"Car": 0, |
|
|
|
"Bus": 0, |
|
|
|
"Motorcycle": 0, |
|
|
|
"House": 0, |
|
|
|
"Train": 0, |
|
|
|
"Parking Garage": 0, |
|
|
|
"Overpass": 0 |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
function getOnePrey(area) |
|
|
|
{ |
|
|
|
@@ -50,13 +60,13 @@ function suburbPrey(area) |
|
|
|
return fill_area(area, {"Person": 0.5, "House": 0.5, "Car": 0.2}); |
|
|
|
} |
|
|
|
|
|
|
|
function updateVictims(prey) |
|
|
|
function updateVictims(type,prey) |
|
|
|
{ |
|
|
|
var sums = prey.sum(); |
|
|
|
|
|
|
|
for (var key in sums) { |
|
|
|
if (sums.hasOwnProperty(key)) { |
|
|
|
victims[key] += sums[key]; |
|
|
|
victims[type][key] += sums[key]; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -70,95 +80,159 @@ function scaleAddMass(scale, baseMass, mass) |
|
|
|
|
|
|
|
function feed() |
|
|
|
{ |
|
|
|
var log = document.getElementById("log"); |
|
|
|
var line = document.createElement('div'); |
|
|
|
|
|
|
|
var prey = getPrey("suburb", 0.5*scale*scale); |
|
|
|
updateVictims(prey); |
|
|
|
|
|
|
|
line.innerHTML = prey.eat(); |
|
|
|
log.appendChild(line); |
|
|
|
var line = prey.eat(); |
|
|
|
|
|
|
|
var preyMass = prey.sum_property("mass"); |
|
|
|
|
|
|
|
scale = scaleAddMass(scale, baseMass, preyMass); |
|
|
|
|
|
|
|
update(); |
|
|
|
updateVictims("stomach",prey); |
|
|
|
update([line]); |
|
|
|
} |
|
|
|
|
|
|
|
function stomp() |
|
|
|
{ |
|
|
|
var log = document.getElementById("log"); |
|
|
|
var line = document.createElement('div'); |
|
|
|
|
|
|
|
var prey = getPrey("suburb", 1.5*scale*scale); |
|
|
|
updateVictims(prey); |
|
|
|
|
|
|
|
line.innerHTML = prey.stomp(); |
|
|
|
log.appendChild(line); |
|
|
|
var line = prey.stomp(); |
|
|
|
|
|
|
|
var preyMass = prey.sum_property("mass"); |
|
|
|
|
|
|
|
scale = scaleAddMass(scale, baseMass, preyMass); |
|
|
|
|
|
|
|
update(); |
|
|
|
updateVictims("stomped",prey); |
|
|
|
update([line]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function anal_vore() |
|
|
|
{ |
|
|
|
var log = document.getElementById("log"); |
|
|
|
var line = document.createElement('div'); |
|
|
|
|
|
|
|
var prey = getOnePrey(scale*scale*2) |
|
|
|
updateVictims(prey); |
|
|
|
|
|
|
|
line.innerHTML = prey.anal_vore(); |
|
|
|
log.appendChild(line); |
|
|
|
var line = prey.anal_vore(); |
|
|
|
|
|
|
|
var preyMass = prey.sum_property("mass"); |
|
|
|
|
|
|
|
scale = scaleAddMass(scale, baseMass, preyMass); |
|
|
|
|
|
|
|
update(); |
|
|
|
updateVictims("bowels",prey); |
|
|
|
update([line]); |
|
|
|
} |
|
|
|
|
|
|
|
function update() |
|
|
|
function update(lines = []) |
|
|
|
{ |
|
|
|
var log = document.getElementById("log"); |
|
|
|
|
|
|
|
lines.forEach(function (x) { |
|
|
|
var line = document.createElement('div'); |
|
|
|
line.innerHTML = x; |
|
|
|
log.appendChild(line); |
|
|
|
}); |
|
|
|
|
|
|
|
log.scrollTop = log.scrollHeight; |
|
|
|
|
|
|
|
var height = baseHeight * scale; |
|
|
|
var mass = baseMass * Math.pow(scale, 3); |
|
|
|
|
|
|
|
document.getElementById("height").innerHTML = "Height: " + Math.round(height * 3) + " feet"; |
|
|
|
document.getElementById("mass").innerHTML = "Mass: " + Math.round(mass * 2.2) + " pounds"; |
|
|
|
|
|
|
|
for (var key in victims){ |
|
|
|
if (victims.hasOwnProperty(key)) { |
|
|
|
if (victims[key] > 0) |
|
|
|
document.getElementById(key).innerHTML = key + ": " + victims[key]; |
|
|
|
for (var type in victims) { |
|
|
|
if (victims.hasOwnProperty(type)) { |
|
|
|
for (var key in victims[type]){ |
|
|
|
if (victims[type].hasOwnProperty(key)) { |
|
|
|
if (document.getElementById("stats-" + type + "-" + key) == null) { |
|
|
|
if (victims[type][key] == 0) |
|
|
|
continue; |
|
|
|
child = document.createElement('div'); |
|
|
|
child.id = "stats-" + type + "-" + key; |
|
|
|
child.classList.add("stat-line"); |
|
|
|
document.getElementById("stats-" + type).appendChild(child); |
|
|
|
} |
|
|
|
document.getElementById("stats-" + type + "-" + key).innerHTML = key + ": " + victims[type][key]; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function pick_move() |
|
|
|
{ |
|
|
|
if (!strolling) { |
|
|
|
setTimeout(pick_move, 2000); |
|
|
|
return; |
|
|
|
} |
|
|
|
var choice = Math.random(); |
|
|
|
|
|
|
|
if (choice < 0.2) { |
|
|
|
anal_vore(); |
|
|
|
setTimeout(pick_move, 4000); |
|
|
|
setTimeout(pick_move, 2000); |
|
|
|
} else if (choice < 0.6) { |
|
|
|
stomp(); |
|
|
|
setTimeout(pick_move, 1500); |
|
|
|
setTimeout(pick_move, 2000); |
|
|
|
} else { |
|
|
|
feed(); |
|
|
|
setTimeout(pick_move, 2000); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function grow() |
|
|
|
{ |
|
|
|
scale *= 1.2; |
|
|
|
update(); |
|
|
|
} |
|
|
|
|
|
|
|
function digest() |
|
|
|
{ |
|
|
|
var newlyDigested = initVictims(); |
|
|
|
|
|
|
|
var stomach = victims["stomach"]; |
|
|
|
|
|
|
|
for (var key in stomach) { |
|
|
|
if (stomach.hasOwnProperty(key)) { |
|
|
|
var digested = Math.ceil(stomach[key] / 2); |
|
|
|
newlyDigested[key] += digested; |
|
|
|
victims["digested"][key] += digested; |
|
|
|
victims["stomach"][key] -= digested; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var bowels = victims["bowels"]; |
|
|
|
|
|
|
|
for (var key in bowels) { |
|
|
|
if (bowels.hasOwnProperty(key)) { |
|
|
|
var digested = Math.ceil(bowels[key] / 3); |
|
|
|
newlyDigested[key] += digested; |
|
|
|
victims["digested"][key] += digested; |
|
|
|
victims["bowels"][key] -= digested; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var melted = []; |
|
|
|
for (var key in newlyDigested) { |
|
|
|
if (newlyDigested.hasOwnProperty(key) && newlyDigested[key] > 0) { |
|
|
|
melted.push(new things[key](newlyDigested[key])); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var meltedTotal = new Container(melted); |
|
|
|
|
|
|
|
if (meltedTotal.count > 0) |
|
|
|
update(["Your stomach gurgles as it digests " + meltedTotal.describe()]); |
|
|
|
else |
|
|
|
update(); |
|
|
|
setTimeout(digest, 5000); |
|
|
|
} |
|
|
|
|
|
|
|
window.addEventListener('load', function(event) { |
|
|
|
victims["stomped"] = initVictims(); |
|
|
|
victims["digested"] = initVictims(); |
|
|
|
victims["stomach"] = initVictims(); |
|
|
|
victims["bowels"] = initVictims(); |
|
|
|
|
|
|
|
setTimeout(pick_move, 2000); |
|
|
|
setTimeout(digest, 5000); |
|
|
|
|
|
|
|
update(); |
|
|
|
}); |