Browse Source

Cobbled together a frontend

tags/v0.7.0
Fen Dweller 7 years ago
parent
commit
c6a7926046
4 changed files with 149 additions and 14 deletions
  1. +99
    -0
      game.js
  2. +42
    -13
      recursive-macro.js
  3. +8
    -1
      stroll.html
  4. +0
    -0
      style.css

+ 99
- 0
game.js View File

@@ -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();
});

+ 42
- 13
recursive-macro.js View File

@@ -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);


+ 8
- 1
stroll.html View File

@@ -5,8 +5,15 @@
<title>Stroll</title>
<link rel="stylesheet" href="style.css">
<script src="recursive-macro.js"></script>
<script src="game.js"></script>
</head>
<body>
vore
<div id=log style="height:600px;width:600px;border:1px solid #ccc;overflow:auto;">
It's a nice day for a walk.
</div>
<div id=height></div>
<div id=mass></div>
<div id=people></div>
<div id=cars></div>
</body>
</html>

+ 0
- 0
style.css View File


Loading…
Cancel
Save