@@ -113,24 +113,60 @@ var things =
contents: [["Person",10,40]],
descriptor: ["a train car", "train cars"]
},
"Business Jet": {
"Business Jet": BusinessJet,
"Helicopter": {
"Helicopter": Helicopter,
mass: 1500,
area: 12,
clusters: 0,
cluster_chances: 0,
contents: [["Person",4,16]],
descriptor: ["a helicopter", "helicopters"]
},
"Empty Helicopter": {
"Empty Helicopter": EmptyHelicopter,
mass: 1500,
area: 12,
clusters: 3,
cluster_chances: 0.05,
contents: [],
descriptor: ["a parked helicopter", "parked helicopters"]
},
"Plane": {
"Plane": Plane,
mass: 6500,
area: 50,
clusters: 1,
cluster_chances: .05,
contents: [],
descriptor: ["a small plane", "small planes"]
},
"Empty Plane": {
"Empty Plane": EmptyPlane,
mass: 6500,
area: 50,
clusters: 1,
cluster_chances: .05,
contents: [["Person",2,9]],
descriptor: ["a business jet", "business jets"]
descriptor: ["a parked plane", "parked aircraft "]
},
"Airliner": {
"Airliner": Airliner,
mass: 6500,
area: 50,
area: 12 50,
clusters: 1,
cluster_chances: .05,
contents: [["Person",5,300]],
descriptor: ["an airliner", "airliners"]
},
"Empty Airliner": {
"Empty Airliner": EmptyAirliner,
mass: 6500,
area: 1250,
clusters: 1,
cluster_chances: .05,
contents: [],
descriptor: ["a parked airliner", "parked airliners"]
},
//Buildings
"House": {
"House": House,
@@ -159,6 +195,33 @@ var things =
contents: [["Person",0,2],["Cow",30,70]],
descriptor: ["a barn", "barns"]
},
"Small Hangar": {
"Small Hangar": SmallHangar,
mass: 5e5,
area: 2500,
clusters: 1,
cluster_chances: .1,
contents: [["Person",0,3],["Plane",0,1],["Empty Plane",2,6]],
descriptor: ["a small hangar", "small hangars"]
},
"Helicopter Hangar": {
"Helicopter Hangar": HelicopterHangar,
mass: 5e5,
area: 2000,
clusters: 1,
cluster_chances: .1,
contents: [["Person",0,3],["Helicopter",0,1],["Helicopter",2,6]],
descriptor: ["a helicopter hangar", "helicopter hangar"]
},
"Large Hangar": {
"Large Hangar": LargeHangar,
mass: 5e6,
area: 8000,
clusters: 1,
cluster_chances: .1,
contents: [["Person",0,5],["Airliner",0,1],["Empty Airliner",1,2]],
descriptor: ["an aircraft hangar", "hangars"]
},
"Small Skyscraper": {
"Small Skyscraper": SmallSkyscraper,
mass: 1e7,
@@ -187,6 +250,33 @@ var things =
descriptor: ["a parking garage", "parking garages"]
},
//Places
"Ranch": {
"Ranch": Ranch,
mass: 2e7,
area: 4e4,
clusters: 0,
cluster_chances: 0,
contents: [["Person",10,50],["House",1,3],["Barn",1,2]],
descriptor: ["a ranch", "ranchs"]
},
"Airstrip": {
"Airstrip": Airstrip,
mass: 2e7,
area: 9e5,
clusters: 0,
cluster_chances: 0,
contents: [["Person",10,50],["Small Hangar",1,3],["Plane",0,2],["Helicopter",0,1],["Helicopter Hangar",0,1],["Car",0,5],["Empty Car",0,20]],
descriptor: ["an airstrip", "airstrips"]
},
"Airport": {
"Airport": Airport,
mass: 1.5e8,
area: 6e6,
clusters: 0,
cluster_chances: 0,
contents: [["Person",1500,4000],["Small Hangar",4,12],["Plane",2,5],["Helicopter",1,3],["Helicopter Hangar",2,6],["Airliner",1,3],["Large Hangar",2,6],["Car",20,75],["Empty Car",400,1000]],
descriptor: ["an airport", "airports"]
},
"Town": {
"Town": Town,
mass: 1,
@@ -214,6 +304,7 @@ var things =
contents: [["Person",1000000,15000000],["House",2500,10000],["Car",25000,375000],["Train",50,500],["Town",500,1000],["City",50,250],["Business",250,1000]],
descriptor: ["a continent", "continents"]
},
//Celestial Bodies
"Planet": {
"Planet": Planet,
mass: 5.972e24,
@@ -305,14 +396,14 @@ var things =
contents: [["Soldier",4,6]],
descriptor: ["an artillery tank", "artillery tanks"]
},
"Helicopter": {
"Helicopter": Helicopter,
"Military Helicopter": {
"Military Helicopter": Military Helicopter,
mass: 1500,
area: 12,
clusters: 0,
cluster_chances: 0,
contents: [["Soldier",4,16]],
descriptor: ["a helicoptor", "helicopto rs"]
descriptor: ["a helicopter", "helicopte rs"]
},
"Squad": {
"Squad": Squad,
@@ -582,7 +673,9 @@ function defaultMass(thing) {
}
function defaultDescribeOne(thing) {
return function(verbose){ //verbose doesn't matter for this case, becasue it handles things with no extra text to use when being verbose
return things[thing.name].descriptor[0];
}
}
function defaultMerge(thing) { //this merges all objects into one containers
@@ -951,9 +1044,9 @@ function Cow(count = 1) {
this.contents = initContents(this.name,this.count);
this.describeOne = function (verbose=true) {
var body = random_desc(["skinny","fat","tall","short","stocky","spindly"], (verbose ? 0.6 : 0));
var sex = random_desc(["male", "female "], (verbose ? 1 : 0));
return merge_desc([body,sex,"cow" ]);
var body = random_desc(["skinny","fat","tall","short","stocky","spindly","brown" ], (verbose ? 0.6 : 0));
var sex = random_desc(["bull","steer","cow","cow","cow","heifer "], (verbose ? 1 : 0));
return merge_desc([body,sex]);
};
this.describe = function(verbose=true) {
@@ -978,7 +1071,7 @@ function EmptyCar(count = 1) {
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this);
return defaultDescribe(verbose, this, "vehicle" );
}
}
@@ -1043,8 +1136,44 @@ function Tram(count = 1) {
};
}
function BusinessJet(count = 1) {
this.name = "Business Jet";
function EmptyHelicopter(count = 1) {
this.name = "Empty Helicopter";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var color = random_desc(["blue","white","white","red","black","gold","yellow"], (verbose ? 0.6 : 0));
var type = random_desc(["bubble coptor","helicopter","helicopter","news chopper","police helicopter","chopper"]);
return merge_desc([adjective,color,type]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this, "vehicle");
}
}
function Helicopter(count = 1) {
this.name = "Helicopter";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var color = random_desc(["blue","white","white","red","black","gold","yellow"], (verbose ? 0.6 : 0));
var type = random_desc(["bubble coptor","helicopter","helicopter","news chopper","police helicopter","chopper"]);
return merge_desc([adjective,color,type]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this, "vehicle");
}
}
function EmptyPlane(count = 1) {
this.name = "Empty Plane";
copy_defaults(this,new DefaultEntity());
this.count = count;
@@ -1062,6 +1191,44 @@ function BusinessJet(count = 1) {
}
}
function Plane(count = 1) {
this.name = "Plane";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var adjective = random_desc(["brand-new","aging","modern"], (verbose ? 0.2 : 0));
var color = random_desc(["blue","white","white","blue and white","red and white","black","gold"], (verbose ? 0.9 : 0));
var type = random_desc(["luxury jet","business jet","single-engine plane","light aircraft"]);
return merge_desc([adjective,color,type]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this, "vehicle");
}
}
function EmptyAirliner(count = 1) {
this.name = "Empty Airliner";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var adjective = random_desc(["brand-new","aging","modern"], (verbose ? 0.2 : 0));
var color = random_desc(["blue","white","white","blue and white"], (verbose ? 0.9 : 0));
var type = random_desc(["airliner","twin-engine jet","trijet","four engine jet","double-decker airliner","widebody airliner","passenger jet","airliner"]);
return merge_desc([adjective,color,type]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this, "vehicle");
}
}
function Airliner(count = 1) {
this.name = "Airliner";
@@ -1191,6 +1358,60 @@ function Barn(count = 1) {
}
}
function SmallHangar(count = 1) {
this.name = "Small Hangar";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var size = random_desc(["weathered","aging","new"], (verbose ? 0.5 : 0));
var color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
var name = random_desc(["hangar","hangar","hangar","aircraft hangar"], 1);
return merge_desc([size,color,name]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this);
}
}
function HelicopterHangar(count = 1) {
this.name = "Helicopter Hangar";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var size = random_desc(["weathered","aging","new"], (verbose ? 0.5 : 0));
var color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
var name = random_desc(["hangar","hangar","hangar","helicopter hangar"], 1);
return merge_desc([size,color,name]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this);
}
}
function LargeHangar(count = 1) {
this.name = "Large Hangar";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var size = random_desc(["weathered","aging","new"], (verbose ? 0.5 : 0));
var color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
var name = random_desc(["hangar","hangar","hangar","large hangar","spacious hangar"], 1);
return merge_desc([size,color,name]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this);
}
}
function SmallSkyscraper(count = 1) {
this.name = "Small Skyscraper";
copy_defaults(this,new DefaultEntity());
@@ -1236,6 +1457,47 @@ function ParkingGarage(count = 1) {
}
}
function Ranch(count = 1) {
this.name = "Ranch";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describeOne = function(verbose=true) {
var size = random_desc(["little","large","prosperous","run-down"], (verbose ? 0.5 : 0));
var name = random_desc(["ranch","farm","ranch","dairy farm","cattle farm","ranch","farm"], 1);
return merge_desc([size,name]);
};
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this);
}
}
function Airstrip(count = 1) {
this.name = "Airstrip";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this, "community");
}
}
function Airport(count = 1) {
this.name = "Airport";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = initContents(this.name,this.count);
this.describe = function(verbose=true) {
return defaultDescribe(verbose, this, "community");
}
}
function Town(count = 1) {
this.name = "Town";
@@ -1392,8 +1654,8 @@ function Artillery(count = 1) {
}
}
function Helicopter(count = 1) {
this.name = "Helicopter";
function Military Helicopter(count = 1) {
this.name = "Military Helicopter";
copy_defaults(this,new DefaultEntity());
this.count = count;
@@ -1519,12 +1781,13 @@ function Army(count = 1) {
//todo
//airports
//farms
//factories
//racetracks
//more building types
//cranes and other construction equipment
//nebula
//biome magic also set it so that you can't roll your existing biome
//chemical factory
//grand army
//armada