@@ -766,16 +766,16 @@ function defaultDescribe(verbose=true, parent){  
		
	
		
			
			      for (var i = 0; i < parent.count; i++) {  
		
	
		
			
			        list.push(parent.describeOne(parent.count <= 2));  
		
	
		
			
			      }  
		
	
		
			
			      if (parent.contents == [] ){  
		
	
		
			
			      if (things[parent.name].contents.length <= 1 ){  
		
	
		
			
			        return merge_things(list);  
		
	
		
			
			      } else {  
		
	
		
			
			        return merge_things(list) + " with " + describe_all(parent.contents,verbose) + " inside";  
		
	
		
			
			        return merge_things(list) + " with " + describe_all(parent.contents,verbose) + " inside";           
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      if (parent.contents == [] ){  
		
	
		
			
			      if (things[parent.name].contents.length <= 1 ){  
		
	
		
			
			        return parent.count + " " + things[parent.name].descriptor[1];  
		
	
		
			
			      } else {  
		
	
		
			
			        return parent.count + " homes  with " + describe_all(parent.contents,verbose) + " inside";  
		
	
		
			
			        return parent.count + " " + things[parent.name].descriptor[1] +"  with " + describe_all(parent.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    }  
		
	
		
			
			  } else {//not verbose  
		
	
	
		
			
				
				
					 
			
			@@ -838,7 +838,7 @@ function Person(count = 1) {  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function Human(count = 1) {  
		
	
		
			
			  this.name = "Huma n";  
		
	
		
			
			  this.name = "Perso n";  
		
	
		
			
			 
		
	
		
			
			  copy_defaults(this,new DefaultEntity());  
		
	
		
			
			 
		
	
	
		
			
				
				
					 
			
			@@ -874,20 +874,8 @@ function Cow(count = 1) {  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (count <= 3) {  
		
	
		
			
			        var list = [];  
		
	
		
			
			        for (var i = 0; i < count; i++) {  
		
	
		
			
			          list.push(this.describeOne(this.count <= 2));  
		
	
		
			
			        }  
		
	
		
			
			        return merge_things(list);  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " cattle";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " cattle" : "a cow");  
		
	
		
			
			    }  
		
	
		
			
			  };  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  return this;  
		
	
		
			
			}  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -906,22 +894,9 @@ function EmptyCar(count = 1) {  
		
	
		
			
			    return merge_desc(["parked",adjective,color,type]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var list = [];  
		
	
		
			
			        for (var i = 0; i < this.count; i++) {  
		
	
		
			
			          list.push(this.describeOne());  
		
	
		
			
			        }  
		
	
		
			
			        return merge_things(list);  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " parked cars";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " parked cars" : "a parked car");  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function Car(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -938,22 +913,9 @@ function Car(count = 1) {  
		
	
		
			
			    return merge_desc([adjective,color,type]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var 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,verbose) + " inside";  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " cars with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " cars" : "a car");  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function Bus(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -970,22 +932,9 @@ function Bus(count = 1) {  
		
	
		
			
			    return merge_desc([adjective,color,type]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var 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,verbose) + " inside";  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " buses with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " buses" : "a bus");  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function Tram(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1002,21 +951,9 @@ function Tram(count = 1) {  
		
	
		
			
			    return merge_desc([adjective,color,type]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count == 1) {  
		
	
		
			
			        var list = [];  
		
	
		
			
			        for (var i = 0; i < this.count; i++) {  
		
	
		
			
			          list.push(this.describeOne(verbose));  
		
	
		
			
			        }  
		
	
		
			
			        return merge_things(list) + " with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " trams with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " trams" : "a tram");  
		
	
		
			
			    }  
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			 
		
	
		
			
			  this.anal_vore = function() {  
		
	
		
			
			    return "You slide " + this.describe() + " up your tight ass";  
		
	
	
		
			
				
				
					 
			
			@@ -1096,21 +1033,9 @@ function House(count = 1) {  
		
	
		
			
			    return merge_desc([size,color,name]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var 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,verbose) + " inside";  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " homes with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " houses" : "a house");  
		
	
		
			
			    }  
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			//might split this into a general business and resutrant categories  
		
	
		
			
			function Business(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1126,21 +1051,9 @@ function Business(count = 1) {  
		
	
		
			
			    return merge_desc([size,color,name]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var 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,verbose);  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " local business containing " + describe_all(this.contents,verbose);  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " buildings" : "a local business");  
		
	
		
			
			    }  
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function Barn(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1156,21 +1069,9 @@ function Barn(count = 1) {  
		
	
		
			
			    return merge_desc([size,color,name]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var 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,verbose) + " inside";  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " barns with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " barns" : "a barn");  
		
	
		
			
			    }  
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function SmallSkyscraper(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1185,22 +1086,9 @@ function SmallSkyscraper(count = 1) {  
		
	
		
			
			    return merge_desc([color,name]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var 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,verbose) + " inside";  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " small skyscrapers with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " small skyscrapers" : "a small skyscraper");  
		
	
		
			
			    }  
		
	
		
			
			 
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function LargeSkyscraper(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1215,21 +1103,9 @@ function LargeSkyscraper(count = 1) {  
		
	
		
			
			    return merge_desc(["towering",color,name]);  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      if (this.count <= 3) {  
		
	
		
			
			        var 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,verbose) + " inside";  
		
	
		
			
			      } else {  
		
	
		
			
			        return this.count + " large skyscrapers with " + describe_all(this.contents,verbose) + " inside";  
		
	
		
			
			      }  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count > 1 ? this.count + " large skyscrapers" : "a large skyscraper");  
		
	
		
			
			    }  
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function ParkingGarage(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1242,13 +1118,9 @@ function ParkingGarage(count = 1) {  
		
	
		
			
			    return "a parking garage";  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose = true) {  
		
	
		
			
			    if (verbose) {  
		
	
		
			
			      return (this.count == 1 ? "a parking garage" : this.count + " parking garages") + " with " + describe_all(this.contents, verbose);  
		
	
		
			
			    } else {  
		
	
		
			
			      return (this.count == 1 ? "a parking garage" : this.count + " parking garages");  
		
	
		
			
			    }  
		
	
		
			
			  };  
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			function Town(count = 1) {  
		
	
		
			
			  this.name = "Town";  
		
	
	
		
			
				
				
					 
			
			@@ -1473,9 +1345,9 @@ function Micro(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose  =  true) {  
		
	
		
			
			    return (this.count == 1 ? "a micro" : this.count + " micros" );  
		
	
		
			
			  };   
		
	
		
			
			  tt his.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this );  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function Macro(count = 1) {  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1485,9 +1357,9 @@ function Macro(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose  =  true) {  
		
	
		
			
			    return (this.count == 1 ? "a smaller macro" : this.count + " smaller macros" );  
		
	
		
			
			  };   
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this );  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function Squad(count = 1) {  
		
	
	
		
			
				
				
					 
			
			@@ -1645,7 +1517,6 @@ function Army(count = 1) {  
		
	
		
			
			 
		
	
		
			
			 
		
	
		
			
			  //todo  
		
	
		
			
			  //redo everything  
		
	
		
			
			  //airports  
		
	
		
			
			  //farms  
		
	
		
			
			  //racetracks