@@ -9,6 +9,7 @@ var things =  
														
													
														
															
																  "Tram": Tram,   "Tram": Tram,  
														
													
														
															
																  "Motorcycle": Motorcycle,   "Motorcycle": Motorcycle,  
														
													
														
															
																  "House": House,   "House": House,  
														
													
														
															
																  "Small Skyscraper": SmallSkyscraper,  
														
													
														
															
																  "Train": Train,   "Train": Train,  
														
													
														
															
																  "Train Car": TrainCar,   "Train Car": TrainCar,  
														
													
														
															
																  "Parking Garage": ParkingGarage,   "Parking Garage": ParkingGarage,  
														
													
												
													
														
															
																
																	
																	
																	
																		 
																@@ -24,12 +25,29 @@ var areas =  
														
													
														
															
																  "Tram": 20,   "Tram": 20,  
														
													
														
															
																  "Motorcycle": 2,   "Motorcycle": 2,  
														
													
														
															
																  "House": 1000,   "House": 1000,  
														
													
														
															
																  "Small Skyscraper": 10000,  
														
													
														
															
																  "Train": 500,   "Train": 500,  
														
													
														
															
																  "TrainCar": 500,   "TrainCar": 500,  
														
													
														
															
																  "Parking Garage": 20 000,  
														
													
														
															
																  "Parking Garage": 5 000,  
														
													
														
															
																  "Overpass": 10000,   "Overpass": 10000,  
														
													
														
															
																}; };  
														
													
														
															
																 
														
													
														
															
																var masses =  
														
													
														
															
																{  
														
													
														
															
																  "Container": 0,  
														
													
														
															
																  "Person": 80,  
														
													
														
															
																  "Car": 1000,  
														
													
														
															
																  "Bus": 5000,  
														
													
														
															
																  "Tram": 10000,  
														
													
														
															
																  "Motorcycle": 200,  
														
													
														
															
																  "House": 10000,  
														
													
														
															
																  "Small Skyscraper": 100000,  
														
													
														
															
																  "Train": 5000,  
														
													
														
															
																  "Train Car": 5000,  
														
													
														
															
																  "Parking Garage": 100000,  
														
													
														
															
																  "Overpass": 100000,  
														
													
														
															
																};  
														
													
														
															
																 
														
													
														
															
																// general logic: each step fills in a fraction of the remaining space // general logic: each step fills in a fraction of the remaining space  
														
													
														
															
																 
														
													
														
															
																function fill_area2(area, weights = {"Person": 0.1, "Car": 0.05, "House": 0.1}) function fill_area2(area, weights = {"Person": 0.1, "Car": 0.05, "House": 0.1})  
														
													
												
													
														
															
																
																	
																		 
																@@ -127,21 +145,6 @@ function fill_area(area, weights = {"Person": 0.1})  
														
													
														
															
																    return new Person();     return new Person();  
														
													
														
															
																} }  
														
													
														
															
																 
														
													
														
															
																var masses =  
														
													
														
															
																{  
														
													
														
															
																  "Container": 0,  
														
													
														
															
																  "Person": 80,  
														
													
														
															
																  "Car": 1000,  
														
													
														
															
																  "Bus": 5000,  
														
													
														
															
																  "Tram": 10000,  
														
													
														
															
																  "Motorcycle": 200,  
														
													
														
															
																  "House": 10000,  
														
													
														
															
																  "Train": 5000,  
														
													
														
															
																  "Train Car": 5000,  
														
													
														
															
																  "Parking Garage": 100000,  
														
													
														
															
																  "Overpass": 100000,  
														
													
														
															
																};  
														
													
														
															
																 
														
													
														
															
																// describes everything in the container // describes everything in the container  
														
													
														
															
																 
														
													
														
															
																function describe_all(contents,verbose=true) { function describe_all(contents,verbose=true) {  
														
													
												
													
														
															
																
																	
																		 
																@@ -223,23 +226,23 @@ function distribution(min, max, samples) {  
														
													
														
															
																/* default actions */ /* default actions */  
														
													
														
															
																 
														
													
														
															
																function defaultStomp(thing) { function defaultStomp(thing) {  
														
													
														
															
																  return function () { return "You crush " + thing.describe() + " underfoot."};  
														
													
														
															
																  return function (height=10 ) { return "You crush " + thing.describe() + " underfoot."};  
														
													
														
															
																} }  
														
													
														
															
																 
														
													
														
															
																function defaultKick(thing) { function defaultKick(thing) {  
														
													
														
															
																  return function() { return "You punt " + thing.describe() + ", destroying " + (thing.count > 1 ? "them" : "it") + "."; }  
														
													
														
															
																  return function(height=10 ) { return "You punt " + thing.describe() + ", destroying " + (thing.count > 1 ? "them" : "it") + "."; }  
														
													
														
															
																} }  
														
													
														
															
																 
														
													
														
															
																function defaultEat(thing) { function defaultEat(thing) {  
														
													
														
															
																  return function() { return "You scoop up " + thing.describe() + " and swallow " + (thing.count > 1 ? "them" : "it") + " whole."; }  
														
													
														
															
																  return function(height=10 ) { return "You scoop up " + thing.describe() + " and swallow " + (thing.count > 1 ? "them" : "it") + " whole."; }  
														
													
														
															
																} }  
														
													
														
															
																 
														
													
														
															
																function defaultAnalVore(thing) { function defaultAnalVore(thing) {  
														
													
														
															
																  return function() { return "You sit yourself down on " + thing.describe() + ". " + (thing.count > 1 ? "They slide" : "It slides") + " inside with ease."; }  
														
													
														
															
																  return function(height=10 ) { return "You sit yourself down on " + thing.describe() + ". " + (thing.count > 1 ? "They slide" : "It slides") + " inside with ease."; }  
														
													
														
															
																} }  
														
													
														
															
																 
														
													
														
															
																function defaultButtcrush(thing) { function defaultButtcrush(thing) {  
														
													
														
															
																  return function() { return "Your heavy ass obliterates " + thing.describe() + ". "; }  
														
													
														
															
																  return function(height=10 ) { return "Your heavy ass obliterates " + thing.describe() + ". "; }  
														
													
														
															
																} }  
														
													
														
															
																 
														
													
														
															
																function defaultArea(thing) { function defaultArea(thing) {  
														
													
												
													
														
															
																
																	
																		 
																@@ -649,9 +652,6 @@ function House(count = 1) {  
														
													
														
															
																  this.count = count;   this.count = count;  
														
													
														
															
																  this.contents = {};   this.contents = {};  
														
													
														
															
																 
														
													
														
															
																 
														
													
														
															
																 
														
													
														
															
																 
														
													
														
															
																  var amount = distribution(0,8,count);   var amount = distribution(0,8,count);  
														
													
														
															
																  this.contents.person = new Person(amount);   this.contents.person = new Person(amount);  
														
													
														
															
																  amount = distribution(0,2,count);   amount = distribution(0,2,count);  
														
													
												
													
														
															
																
																	
																	
																	
																		 
																@@ -677,14 +677,49 @@ function House(count = 1) {  
														
													
														
															
																  }   }  
														
													
														
															
																} }  
														
													
														
															
																 
														
													
														
															
																function ParkingGarage (count = 1) {  
														
													
														
															
																  this.name = "Parking Garage ";  
														
													
														
															
																function SmallSkyscraper (count = 1) {  
														
													
														
															
																  this.name = "Small Skyscraper ";  
														
													
														
															
																  copy_defaults(this,new DefaultEntity());   copy_defaults(this,new DefaultEntity());  
														
													
														
															
																  this.count = count;   this.count = count;  
														
													
														
															
																  this.contents = {};   this.contents = {};  
														
													
														
															
																 
														
													
														
															
																  var amount = distribution(50,500,1);  
														
													
														
															
																  this.contents.person = new Person(amount);  
														
													
														
															
																  amount = distribution(10,50,count);  
														
													
														
															
																  this.contents.emptycar = new EmptyCar(amount);  
														
													
														
															
																 
														
													
														
															
																  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);  
														
													
														
															
																    return "a " + merge_desc([color,name]);  
														
													
														
															
																  }  
														
													
														
															
																 
														
													
														
															
																  this.describe = function(verbose = true) {  
														
													
														
															
																    if (this.count <= 3) {  
														
													
														
															
																      list = [];  
														
													
														
															
																      for (var i = 0; i < this.count; i++) {  
														
													
														
															
																        list.push(this.describeOne(this.count < 2));  
														
													
														
															
																      }  
														
													
														
															
																      return merge_things(list) + " with " + describe_all(this.contents,false) + " inside";  
														
													
														
															
																    } else {  
														
													
														
															
																      return this.count + " small skyscrapers with " + describe_all(this.contents,false) + " inside";  
														
													
														
															
																    }  
														
													
														
															
																  }  
														
													
														
															
																 
														
													
														
															
																  this.anal_vore = function(height=10) {  
														
													
														
															
																    var line = skyscraperAnalVore(this,height);  
														
													
														
															
																    if (line == "")  
														
													
														
															
																      return defaultAnalVore(this)();  
														
													
														
															
																    else  
														
													
														
															
																      return line;  
														
													
														
															
																  };  
														
													
														
															
																}  
														
													
														
															
																 
														
													
														
															
																function ParkingGarage(count = 1) {  
														
													
														
															
																  this.name = "Parking Garage";  
														
													
														
															
																  copy_defaults(this,new DefaultEntity());  
														
													
														
															
																  this.count = count;  
														
													
														
															
																  this.contents = {};  
														
													
														
															
																 
														
													
														
															
																  var amount = distribution(10,200,count);   var amount = distribution(10,200,count);  
														
													
														
															
																  this.contents.person = new Person(amount);   this.contents.person = new Person(amount);  
														
													
												
													
														
															
																
																	
																		 
																@@ -716,9 +751,6 @@ function Overpass(count = 1) {  
														
													
														
															
																  this.count = count;   this.count = count;  
														
													
														
															
																  this.contents = {};   this.contents = {};  
														
													
														
															
																 
														
													
														
															
																 
														
													
														
															
																 
														
													
														
															
																 
														
													
														
															
																  var amount = distribution(0,20,count);   var amount = distribution(0,20,count);  
														
													
														
															
																  this.contents.person = new Person(amount);   this.contents.person = new Person(amount);  
														
													
														
															
																  amount = distribution(25,100,count);   amount = distribution(25,100,count);