text: var generatorOf = require('../../generator-of');
  
  module.exports = generatorOf(function generator$descriptions$coat_of_arms() {
  	var nm1 = ["large", "fairly large", "great", "grand", "broad", "fairly small", "not too large", "standard sized", "modest", "regular sized"];
  	var nm2 = ["a symmetrical", "a symmetrical", "an asymmetrical"];
  	var nm3 = ["double inward curving", "double outward curving", "downwards curving", "heart shaped", "long pointed", "podium-like", "pointed", "rounded", "short pointed", "squared", "straight", "tower-like", "zig-zagged", "angular shaped", "upwards curving", "horn-like cornered", "inward curving cornered", "inward curving sided", "outward curving cornered", "outward curving sided", "sharp, inwards curving cornered", "sharp, inwards pointing cornered", "sharp, outwards curving cornered", "sharp, outwards pointing cornered", "talon-like cornered"];
  	var nm4 = ["broad curved", "bullet shaped", "diamond shaped", "downwards curving", "droplet shaped", "long pointed", "narrow curved", "pointed", "round", "short pointed", "squared", "straight", "angular shaped", "upwards curving", "double downwards curving", "double inwards curving"];
  	var nm5 = ["a bear", "a bird of paradise", "a boar", "a cat", "a centaur", "a column", "a dark pillar", "a deer", "a demon", "a dog", "a dragon", "a dryad", "a fish", "a flag pole", "a fox", "a griffon", "a harp", "a hawk", "a hippogriff", "a horse", "a knight", "a leopard", "a lighthouse", "a lion", "a mage", "a maiden", "a mammoth", "a man", "a marble pillar", "a mermaid", "a minotaur", "a moose", "a palm", "a parrot", "a peacock", "a pegasus", "a pelican", "a phoenix", "a pine", "a rabbit", "a ram", "a rhino", "a saint", "a shark", "a snake", "a songbird", "a swan", "a tiger", "a tower", "a treant", "a turtle", "a unicorn", "a vine", "a whale", "a white stag", "a wolf", "a woman", "an angel", "an ape", "an elephant", "an owl"];
  	var nm6 = ["and", "on either side", "on either side"];
  	var nm7 = ["boulder field", "boulder surrounded by water", "cloud", "desert landscape", "field of wheat", "flower field", "forest landscape", "golden platform", "grassy mount", "hilly landscape", "monolith", "mound of gems", "mound of ores", "mound of petals", "mountainous landscape", "path with grass on either side", "pedestal", "small island surrounded by ocean", "snowy landscape", "temple top"];
  	var nm8 = ["considerable", "fairly large", "fairly small", "grand", "humble", "large", "lavish", "modest", "simple", "small"];
  	var nm9 = ["acanthus leaves", "broad tines", "clover leaves", "crosses", "fleurs-de-lis", "gems raised on stalks", "golden arches", "heraldic roses", "narrow tines", "pearls raised on stalks", "raised crescents", "raised leaves", "raised snowflakes", "raised stars", "tines with pearls"];
  	var nm10 = ["", "", "", "", "", "", "cashmere", "felt", "lace", "satin", "silk", "suede", "velour", "velvet", "woolen"];
  	var nm11 = ["an abundance of different gems", "rows of similar gems", "two rows of various gems", "two rows of similar gems", "an abundance of similar gems", "rows of various gems", "rows of precious gems", "two rows of precious gems", "an abundance of precious gems", "a modest amount of different gems", "a modest amount of similar gems", "a modest amount of precious gems"];
  	var nm12 = ["a great", "a frog-mouth", "an armet", "a coppergate", "a coventry sallet", "a sallet", "a horned", "a bascinet", "a barbute", "a hounskull"];
  	var nm13 = ["a classic", "a common", "a gilded", "a glamorous", "a grand", "a great", "a large", "a lavish", "a masterfully made", "a modest", "a simple", "a small", "a traditional", "a well crafted", "an adorned", "an ornamented", "an ornate"];
  	var nm14 = ["anchor", "anvil", "armored hand", "bat", "bear", "bear's head", "boar", "boar's head", "boat", "bull", "bull's head", "carriage", "cat", "crescent moon", "cross", "crow", "deer", "deer's head", "dog", "dove", "dragon", "dragon's head", "eagle", "eagle with closed wings", "eagle with spread wings", "fish", "fleurs-de-lis", "fox", "grapevine", "griffon", "griffon's head", "harp", "hawk with closed wings", "hawk with spread wings", "horse", "horse's head", "hunting horn", "key", "lamb", "lion", "lion's head", "mermaid", "owl with closed wings", "owl with spread wings", "pair of antlers", "pair of intertwining snakes", "pair of large antlers", "pair of wings", "phoenix with closed wings", "phoenix with spread wings", "row of feathers", "row of leaves", "scale", "set of arrows", "swan with closed wings", "swan with spread wings", "tiger", "tiger's head", "tower", "tree", "two headed eagle", "unicorn", "wheat sheaf", "wheel", "wolf", "wolf's head"];
  	var nm15 = ["a large", "an enormous", "a fairly large", "a not too large", "a fairly small", "an average sized", "a modest", "an elegant", "a luxurious", "a lavish", "a grand", "an ornate"];
  	var nm16 = ["large flowers", "small flowers", "delicate ribbons", "simple leaves", "intricate leaves", "leaf-like patterns", "simple ribbons", "intricate ribbons", "large leaves", "floral patterns", "normal drapes", "a large cloak", "large stage curtains", "small stage curtains", "a small cloak"];
  	var nm17 = ["2", "3", "4", "5", "6"];
  	var nm18 = ["a bevilled", "a bordure", "a chevron", "a dancetty", "a diagonal cross", "a diagonal, asymmetrically striped", "a diagonal, symmetrically striped", "a dovetailed", "a fret", "a gore", "a horizontal, asymmetrically striped", "a horizontal, symmetrically striped", "a nebuly", "a nowy", "a pall", "a potenty", "a rayonn�", "a saltire", "a straight cross", "a vertical, assymetrically striped", "a vertical, symmetrically striped", "a wavy", "an angled", "an embattled", "an embattled grady", "an embowed", "an engrailed", "an indented", "an invected", "an orle", "an upside down chevron", "an urdy"];
  	var nm19 = ["1", "1", "2", "2", "3", "4"];
  	var nm20 = ["anchor", "angel wing set", "antler", "antler set", "anvil", "apple", "arrow", "axe", "axe set", "badger", "badger head", "bat", "bear", "bear head", "bird", "boar", "boar head", "book", "bow", "bow and arrow set", "bull", "bull head", "cannon", "castle", "chain", "circle", "clover", "cow", "cow head", "crab", "crescent moon", "cross set", "crow", "crown", "dagger", "dagger set", "deer head", "diamond", "dove", "dragon", "dragon head", "eagle", "eagle head", "elephant", "elephant head", "fan", "feather", "flame", "flower", "footprint", "goat", "goat head", "grapevine", "griffin", "hammer", "hammer set", "hand", "harp", "hatchet", "heart", "helmet", "horn", "horse", "horse head", "key", "knight", "lantern", "leave", "lightning bolt", "lily flower", "lion", "lion head", "lizard", "mace", "mace set", "mermaid", "moon", "moon and star set", "owl", "palm tree", "peacock", "petal", "pig", "pig head", "pitchfork", "ram", "ram head", "rising sun", "rose", "scale", "scorpion", "scythe", "sickel", "skull", "snake", "snake head", "spear", "spear set", "square", "stag", "star", "sun", "swan", "sword", "sword set", "temple", "thistle", "tower", "tree", "tree stump", "triangle", "tusk", "unicorn", "vine", "water droplet", "wheat garb", "wheel", "wing pair", "wolf head"];
  	var nm22 = ["and", "", ""];
  	var nm23 = ["a delicate", "a fancy", "a graceful", "a large", "a long", "a luxurious", "a majestic", "a modest", "a simple", "a small", "an elegant", "an ornate"];
  	var nm24 = ["partially wrapped around the supporters", "reaching from supporter to supporter", "positioned just below the supporters", "positioned just below the shield", "partially covering the bottom of the shield", "partially covered by the shield", "wrapped around the sides of the shield", "hanging above the crest"];
  	var nm25 = ["Formed from many, now as one", "God is great, god is just", "One nation, one people", "For the people, for the realm", "United we stand, united we conquer", "In unity and freedom", "Justice, honesty, integrity", "Pride and honor", "In service of god", "Work, love, play", "Peace, justice, progress", "Truth prevails", "God, king, country", "Peace, equality, unity", "Friends, family, fatherland", "Peace, progress, prosperity", "One struggle, one people, one destiny", "Reap what you sow", "Spirits guide us, spirits watch over us", "Let there be eternal light", "United we stand, united we stay", "We will persevere", "Pride, honor, justice", "Without god we are nothing", "Strength, prosperity, perseverance"];
  
  	var rnd1 = Math.floor(this.random() * nm1.length);
  	var rnd2 = Math.floor(this.random() * nm2.length);
  	var rnd2b = Math.floor(this.random() * nm2.length);
  	var rnd3 = Math.floor(this.random() * nm3.length);
  	var rnd4 = Math.floor(this.random() * nm4.length);
  	var rnd5 = Math.floor(this.random() * nm5.length);
  	var rnd6 = Math.floor(this.random() * nm6.length);
  	if (rnd6 === 0) {
  		var rnd5b = Math.floor(this.random() * nm5.length);
  		while (rnd5b === rnd5) {
  			rnd5b = Math.floor(this.random() * nm5.length);
  		}
  		rn6 = nm5[rnd5] + " " + nm6[rnd6] + " " + nm5[rnd5b];
  	} else {
  		rn6 = nm5[rnd5] + " " + nm6[rnd6]
  	}
  	var rnd7 = Math.floor(this.random() * nm7.length);
  	var rnd8 = Math.floor(this.random() * nm8.length);
  	var rnd9 = Math.floor(this.random() * nm9.length);
  	var rnd10 = Math.floor(this.random() * nm10.length);
  	if (rnd10 < 6) {
  		rn10 = ""
  	} else {
  		rn10 = ", it has a " + nm10[rnd10] + " cap";
  	}
  	var rnd11 = Math.floor(this.random() * nm11.length);
  	var rnd12 = Math.floor(this.random() * nm12.length);
  	var rnd13 = Math.floor(this.random() * nm13.length);
  	var rnd14 = Math.floor(this.random() * nm14.length);
  	var rnd15 = Math.floor(this.random() * nm15.length);
  	var rnd16 = Math.floor(this.random() * nm16.length);
  	var rnd17 = Math.floor(this.random() * nm17.length);
  	var rnd18 = Math.floor(this.random() * nm18.length);
  	var rnd19 = Math.floor(this.random() * nm19.length);
  	var rnd20 = Math.floor(this.random() * nm20.length);
  	var rnd22 = Math.floor(this.random() * nm22.length);
  	if (rnd22 === 0) {
  		rnd19b = Math.floor(this.random() * nm19.length);
  		rnd20b = Math.floor(this.random() * nm20.length);
  		if (rnd19 < 2) {
  			if (rnd19b < 2) {
  				rn20 = nm19[rnd19] + " " + nm20[rnd20] + " and " + nm19[rnd19b] + " " + nm20[rnd20b] + " serve";
  			} else {
  				rn20 = nm19[rnd19] + " " + nm20[rnd20] + " and " + nm19[rnd19b] + " " + nm20[rnd20b] + "s serve";
  			}
  		} else {
  			if (rnd19b < 2) {
  				rn20 = nm19[rnd19] + " " + nm20[rnd20] + "s and " + nm19[rnd19b] + " " + nm20[rnd20b] + " serve";
  			} else {
  				rn20 = nm19[rnd19] + " " + nm20[rnd20] + "s and " + nm19[rnd19b] + " " + nm20[rnd20b] + "s serve";
  			}
  		}
  	} else {
  		if (rnd19 < 2) {
  			rn20 = nm19[rnd19] + " " + nm20[rnd20] + " serves";
  		} else {
  			rn20 = nm19[rnd19] + " " + nm20[rnd20] + "s serve";
  		}
  	}
  	var rnd23 = Math.floor(this.random() * nm23.length);
  	var rnd24 = Math.floor(this.random() * nm24.length);
  	var rnd25 = Math.floor(this.random() * nm25.length);
  
  
  	var name = "A " + nm1[rnd1] + " shield with " + nm2[rnd2] + " " + nm3[rnd3] + " top and " + nm2[rnd2b] + " " + nm4[rnd4] + " bottom is supported by " + rn6 + ". All of which rests on a " + nm7[rnd7] + ".";
  	var name2 = "A " + nm8[rnd8] + " crown, or coronet, rests atop the shield, it's a crown of " + nm9[rnd9] + rn10 + " and " + nm11[rnd11] + " decorate the outer sides.";
  
  	var name3 = "On top of the coronet sits " + nm12[rnd12] + " helm, which itself supports the crest, in this case " + nm13[rnd13] + " " + nm14[rnd14] + ". The coronet and crest are decoratively bound by a roll of fabric, or torse, which carries the main colors used on the shield.";
  	var name4 = "Lastly, tied to the helmet is " + nm15[rnd15] + " drapery, or mantling, in the shape of " + nm16[rnd16] + " and colored in the main colors, just like the torse.";
  
  	var name5 = "The shield itself has " + nm17[rnd17] + " colors which are painted in " + nm18[rnd18] + " pattern. " + rn20 + " as the emblem, or charge, and " + nm23[rnd23] + " ribbon, " + nm24[rnd24] + ", carries the motto, which reads: \"" + nm25[rnd25] + ".\".";
  	var result = "";
  	result += name;
  	result += "\n";
  	result += name2;
  	result += "\n";
  	result += "\n";
  	result += name3;
  	result += "\n";
  	result += name4;
  	result += "\n";
  	result += "\n";
  	result += name5;
  	return result;
  })