@@ -9,6 +9,7 @@ var things =  
		
	
		
			
			    clusters: 0,  
		
	
		
			
			    cluster_chances: 0,  
		
	
		
			
			    contents: [],  
		
	
		
			
			    descriptor: ["", ""]  
		
	
		
			
			    },  
		
	
		
			
			 
		
	
		
			
			//Creatures  
		
	
	
		
			
				
				
					 
			
			@@ -101,6 +102,7 @@ var things =  
		
	
		
			
			    clusters: 2,  
		
	
		
			
			    cluster_chances: .1,  
		
	
		
			
			    contents: [["Person",1,4,"engine"],["Train Car",2,10]],  
		
	
		
			
			    descriptor: ["a train", "trains"]  
		
	
		
			
			    },  
		
	
		
			
			  "Train Car": {  
		
	
		
			
			    "Train Car": TrainCar,  
		
	
	
		
			
				
				
					 
			
			@@ -228,6 +230,7 @@ var things =  
		
	
		
			
			    clusters: 1,  
		
	
		
			
			    cluster_chances: 1,  
		
	
		
			
			    contents: [],  
		
	
		
			
			    descriptor: ["a star", "stars"]  
		
	
		
			
			    },  
		
	
		
			
			  "Solar System": {  
		
	
		
			
			    "Solar System": SolarSystem,  
		
	
	
		
			
				
				
					 
			
			@@ -578,6 +581,10 @@ function defaultMass(thing) {  
		
	
		
			
			  return things[thing.name].mass;  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function defaultDescribeOne(thing) {  
		
	
		
			
			  return things[thing.name].descriptor[0];  
		
	
		
			
			}  
		
	
		
			
			 
		
	
		
			
			function defaultMerge(thing) { //this merges all objects into one containers  
		
	
		
			
			  return function(container) {  
		
	
		
			
			    var newCount = this.count + container.count;  
		
	
	
		
			
				
				
					 
			
			@@ -700,7 +707,7 @@ function DefaultEntity() {  
		
	
		
			
			  this.merge = defaultMerge;  
		
	
		
			
			  this.multiply = defaultMultiply;  
		
	
		
			
			  this.describeSimple = defaultDescribeSimple;  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = defaultDescribeOne;  
		
	
		
			
			  return this;  
		
	
		
			
			}  
		
	
		
			
			 
		
	
	
		
			
				
				
					 
			
			@@ -824,9 +831,20 @@ function defaultDescribe(verbose=true, parent, descAs){  
		
	
		
			
			        descriptorConjunction = pickString(" of "," of "," made up of "," comprised of "," containing ");  
		
	
		
			
			        descriptorEnd = "";  
		
	
		
			
			        break;  
		
	
		
			
			      case "generic vehicle":  
		
	
		
			
			        groupLessThan3 = true;  
		
	
		
			
			        descriptorEnd = pickString(" inside"," inside"," inside", " inside"," riding inside", " trapped inside", " sitting inside");  
		
	
		
			
			        break;  
		
	
		
			
			      
		
	
		
			
			    } if (verbose) {  
		
	
		
			
			    if (parent.count <= 3 && groupLessThan3 == false) {  
		
	
		
			
			    if (parent.count = 1 ) { //singular parent (specifying single to catch cases where groupLessThan3 = true, otherwise it would output "1 towns" instead of "a town"  
		
	
		
			
			      if (things[parent.name].contents.length > 0){  
		
	
		
			
			        return (things[parent.name].descriptor[0] + descriptorConjunction + describe_all(parent.contents,false) + descriptorEnd);  
		
	
		
			
			      } else {  
		
	
		
			
			        return parent.describeOne(verbose);  
		
	
		
			
			      }  
		
	
		
			
			    }  
		
	
		
			
			    else if (parent.count <= 3 && groupLessThan3 == false) { // less than 3 parents and an ojbect that has varety when described  
		
	
		
			
			      var list = [];  
		
	
		
			
			      for (var i = 0; i < parent.count; i++) {  
		
	
		
			
			        list.push(parent.describeOne(parent.count <= 2));  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -834,13 +852,13 @@ function defaultDescribe(verbose=true, parent, descAs){  
		
	
		
			
			      if (things[parent.name].contents.length > 0){  
		
	
		
			
			        return (merge_things(list) + descriptorConjunction + describe_all(parent.contents,false) + descriptorEnd);         
		
	
		
			
			      } else {  
		
	
		
			
			        return ( merge_things(list) );  
		
	
		
			
			        return merge_things(list);  
		
	
		
			
			      }  
		
	
		
			
			    } else {//if there are more than 3 of the object  
		
	
		
			
			      if (things[parent.name].contents.length > 0){  
		
	
		
			
			        return (parent.count + " " + things[parent.name].descriptor[1] + descriptorConjunction + describe_all(parent.contents,false) + descriptorEnd);  
		
	
		
			
			      } else {  
		
	
		
			
			        return (parent.count + " " + things[parent.name].descriptor[0 ]);  
		
	
		
			
			        return (parent.count + " " + things[parent.name].descriptor[1 ]);  
		
	
		
			
			      }  
		
	
		
			
			    }  
		
	
		
			
			  } else {//not verbose  
		
	
	
		
			
				
				
					 
			
			@@ -1213,10 +1231,6 @@ function ParkingGarage(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1229,10 +1243,6 @@ function Town(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "community");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1245,10 +1255,6 @@ function City(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "community");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1261,10 +1267,6 @@ function Continent(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "community");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1277,10 +1279,6 @@ function Planet(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "community");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1305,10 +1303,6 @@ function SolarSystem(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "celestial");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1321,10 +1315,6 @@ function Galaxy(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "celestial");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1337,10 +1327,6 @@ function Cluster(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "celestial");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1353,10 +1339,6 @@ function Universe(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "celestial");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1369,10 +1351,6 @@ function Multiverse(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "celestial");  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1385,12 +1363,8 @@ function Soldier(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			    return defaultDescribe(verbose, this, "military");  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1401,12 +1375,8 @@ function Tank(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "vehicle");  
		
	
		
			
			    return defaultDescribe(verbose, this, "generic vehicle");  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1417,12 +1387,8 @@ function Artillery(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			  };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "vehicle");  
		
	
		
			
			    return defaultDescribe(verbose, this, "generic vehicle");  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1433,12 +1399,8 @@ function Helicopter(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this, "vehicle");  
		
	
		
			
			    return defaultDescribe(verbose, this, "generic vehicle");  
		
	
		
			
			  }  
		
	
		
			
			}  
		
	
		
			
			 
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1449,10 +1411,6 @@ function Micro(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1465,10 +1423,6 @@ function Macro(count = 1) {  
		
	
		
			
			  this.count = count;  
		
	
		
			
			  this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			  this.describeOne = function(verbose=true) {  
		
	
		
			
			    return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			  this.describe = function(verbose=true) {  
		
	
		
			
			    return defaultDescribe(verbose, this);  
		
	
		
			
			  }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1480,10 +1434,6 @@ function Squad(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1495,10 +1445,6 @@ function Platoon(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1510,10 +1456,6 @@ function Company(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1525,10 +1467,6 @@ function Battalion(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1540,10 +1478,6 @@ function Brigade(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1555,10 +1489,6 @@ function Division(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1570,10 +1500,6 @@ function TankDivision(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }  
		
	
	
		
			
				
				
				
				
					 
			
			@@ -1585,10 +1511,6 @@ function Army(count = 1) {  
		
	
		
			
			    this.count = count;  
		
	
		
			
			    this.contents = initContents(this.name,this.count);  
		
	
		
			
			 
		
	
		
			
			    this.describeOne = function(verbose=true) {  
		
	
		
			
			      return things[this.name].descriptor[0];  
		
	
		
			
			    };  
		
	
		
			
			 
		
	
		
			
			    this.describe = function(verbose=true) {  
		
	
		
			
			      return defaultDescribe(verbose, this, "military");  
		
	
		
			
			    }