diff --git a/game.js b/game.js new file mode 100644 index 0000000..4b97357 --- /dev/null +++ b/game.js @@ -0,0 +1,99 @@ +var baseHeight = 3.65; +var baseMass = 1360; +var scale = 1; + +var people = 0; +var cars = 0; + +function scaleAddMass(scale, baseMass, mass) +{ + var startMass = Math.pow(scale, 3) * baseMass; + var newMass = startMass + mass; + return Math.pow(newMass / baseMass, 1/3) ; +} + +function feed() +{ + var log = document.getElementById("log"); + var line = document.createElement('div'); + + var prey = new Person(Math.round(scale * scale * (Math.random() / 5 + 1))); + + people += prey.count; + + line.innerHTML = prey.eat(); + log.appendChild(line); + + var preyMass = prey.sum_property("mass"); + + scale = scaleAddMass(scale, baseMass, preyMass); + + update(); + + setTimeout(feed, 2500); +} + +function stomp() +{ + var log = document.getElementById("log"); + var line = document.createElement('div'); + + var prey = new Person(Math.round(scale * scale * (Math.random() / 4 + 1))); + + people += prey.count; + + line.innerHTML = prey.stomp(); + log.appendChild(line); + + var preyMass = prey.sum_property("mass")/3; + + scale = scaleAddMass(scale, baseMass, preyMass); + + update(); + + setTimeout(stomp, 1500); +} + +function anal_vore() +{ + var log = document.getElementById("log"); + var line = document.createElement('div'); + + var prey = new Person(Math.round(scale * scale * 3 * (Math.random() / 3 + 1))); + + people += prey.count; + + line.innerHTML = prey.anal_vore(); + log.appendChild(line); + + var preyMass = prey.sum_property("mass"); + + scale = scaleAddMass(scale, baseMass, preyMass); + + update(); + + setTimeout(anal_vore, 4500); +} + +function update() +{ + var log = document.getElementById("log"); + + 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"; + + document.getElementById("people").innerHTML = "People: " + people; + document.getElementById("cars").innerHTML = "Cars: " + cars; +} + +window.addEventListener('load', function(event) { + setTimeout(feed, 2500); + setTimeout(stomp, 1500); + setTimeout(anal_vore, 4500); + + update(); +}); diff --git a/recursive-macro.js b/recursive-macro.js index 1cd8720..f2ed84c 100644 --- a/recursive-macro.js +++ b/recursive-macro.js @@ -83,14 +83,19 @@ function defaultEat(thing) { return function() { return "You scoop up " + thing.describe() + " and swallow " + (thing.count > 1 ? "them" : "it") + " whole."; } } -function defaultMassOne(thing) { - return 80; +function defaultAnalVore(thing) { + return function() { return "Your ass slams down on " + thing.describe() + ". " + (thing.count > 1 ? "They slide" : "It slides") + " inside with ease."; } +} + +function defaultArea(thing) { + return 1; } function defaultMass(thing) { - return function() { return thing.mass_one * thing.count; } + return 80; } + function defaultSum(thing) { return function() { var counts = {} @@ -113,14 +118,30 @@ function defaultSum(thing) { } } +function defaultSumProperty(thing) { + return function(prop) { + var total = 0; + + total += thing[prop] * thing.count; + + for (var key in thing.contents) { + if (thing.contents.hasOwnProperty(key)) { + total += thing.contents[key].sum_property(prop); + } + } + + return total; + } +} + function DefaultEntity() { this.stomp = defaultStomp; this.eat = defaultEat; this.kick = defaultKick; + this.anal_vore = defaultAnalVore; this.sum = defaultSum; - this.mass_one = defaultMassOne; this.mass = defaultMass; - + this.sum_property = defaultSumProperty; return this; } @@ -170,7 +191,8 @@ function EmptyCar(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 1000; + this.area = 4; + this.mass = 1000; this.describeOne = function() { color = random_desc(["black","black","gray","gray","blue","red","tan","white","white"]); @@ -198,7 +220,8 @@ function Car(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 1000; + this.area = 4; + this.mass = 1000; var amount = distribution(2,5,count); this.contents.person = new Person(amount); @@ -229,7 +252,8 @@ function Bus(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 3000; + this.area = 12; + this.mass = 3000; var amount = distribution(10,35,count); this.contents.person = new Person(amount); @@ -259,7 +283,8 @@ function Motorcycle(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 200; + this.area = 2; + this.mass = 200; var amount = distribution(1,2,count); this.contents.person = new Person(amount); @@ -271,7 +296,8 @@ function Train(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 10000; + this.area = 200; + this.mass = 10000; var amount = distribution(20,60,count); this.contents.person = new Person(amount); @@ -283,7 +309,8 @@ function House(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 20000; + this.area = 400; + this.mass = 20000; var amount = distribution(0,8,count); this.contents.person = new Person(amount); @@ -316,7 +343,8 @@ function ParkingGarage(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 2000000; + this.area = 20000; + this.mass = 2000000; var amount = distribution(10,200,count); this.contents.person = new Person(amount); @@ -348,7 +376,8 @@ function Overpass(count = 1) { this.count = count; this.contents = {}; - this.mass_one = 4000000; + this.area = 20000; + this.mass = 1000000; var amount = distribution(0,20,count); this.contents.person = new Person(amount); diff --git a/stroll.html b/stroll.html index f224e49..c90827d 100644 --- a/stroll.html +++ b/stroll.html @@ -5,8 +5,15 @@ Stroll + - vore +
+ It's a nice day for a walk. +
+
+
+
+
diff --git a/style.css b/style.css new file mode 100644 index 0000000..e69de29