Add rrr to appcache.
[ogre.git] / units.js
index 984b6fd..30f0841 100644 (file)
--- a/units.js
+++ b/units.js
@@ -9,79 +9,96 @@
    See https://creativecommons.org/publicdomain/zero/1.0/ for details.
 */
 
-var ADJECTIVES = [
-    "angry",
-    "cold",
-    "deadly",
-    "easy",
-    "faithful",
-    "fatal",
-    "fiery",
-    "harsh",
-    "lost",
-    "mean",
-    "mighty",
-    "noisy",
-    "old",
-    "proud",
-    "pure",
-    "quiet",
-    "sharp",
-    "slow",
-    "strong",
-    "true",
-    "",
-    "",
-    "",
-];
+var G = new rrr.Grammar({
 
-var BIRDS = [
-    "angel",
-    "arrow",
-    "cloud",
-    "eagle",
-    "falcon",
-    "owl",
-    "raptor",
-    "storm",
-    "swan",
-    "swarm",
-];
+    Model: ["<Oid> <Adjective> <noun>", "<Adjective> <noun> <roman>"],
+    Flying: ["<Oid> <Adjective> <bird>", "<Adjective> <bird> <roman>"],
+    Id: ["<Pid> <noun>", "<noun> <Pid>"],
 
-var NOUNS = [
-    "axe",
-    "boar",
-    "brute",
-    "claw",
-    "cobra",
-    "dagger",
-    "demon",
-    "fox",
-    "hyena",
-    "knife",
-    "lion",
-    "lynx",
-    "saber",
-    "scout",
-    "snake",
-    "spear",
-    "spire",
-    "stone",
-    "stream",
-    "sword",
-    "talon",
-    "thorn",
-    "tide",
-    "tooth",
-    "tower",
-    "tusk",
-    "venom",
-    "viper",
-    "wall",
-    "wave",
-    "wolf",
-    "worker",
-];
+    Adjective: { "<adjective>": 0.9, "": 0.1 },
+    Separator: { "<separator>": 1, "": 0.25 },
+    Oid: ["<letter><separator><digit>{2}"],
+    Pid: ["<letter>{1,4}<Separator><digit>{1,4}"],
+
+    adjective: [
+        "Angry",
+        "Cold",
+        "Deadly",
+        "Easy",
+        "Faithful",
+        "Fatal",
+        "Fiery",
+        "Harsh",
+        "Lost",
+        "Mean",
+        "Mighty",
+        "Noisy",
+        "Old",
+        "Proud",
+        "Pure",
+        "Quiet",
+        "Sharp",
+        "Slow",
+        "Strong",
+        "True",
+    ],
+
+    bird: [
+        "Angel",
+        "Arrow",
+        "Cloud",
+        "Eagle",
+        "Falcon",
+        "Owl",
+        "Raptor",
+        "Storm",
+        "Swan",
+        "Swarm",
+    ],
+
+    noun: [
+        "Axe",
+        "Boar",
+        "Brute",
+        "Claw",
+        "Cobra",
+        "Dagger",
+        "Demon",
+        "Fox",
+        "Hyena",
+        "Knife",
+        "Lion",
+        "Lynx",
+        "Saber",
+        "Scout",
+        "Snake",
+        "Spear",
+        "Spire",
+        "Stone",
+        "Stream",
+        "Sword",
+        "Talon",
+        "Thorn",
+        "Tide",
+        "Tooth",
+        "Tower",
+        "Tusk",
+        "Venom",
+        "Viper",
+        "Wall",
+        "Wave",
+        "Wolf",
+        "Worker",
+    ],
+
+    roman: ["I", "II", "III", "IV", "V", "VI",
+            "VII", "VIII", "IX", "X", "XI", "XII",
+            "XIV"],
+
+    letter: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
+    digit: "0123456789",
+    separator: "-./",
+}, "<Model>");
 
 // Most game data in this file based on
 // http://www.sjgames.com/ogre/kickstarter/ogre-rec-sheets.pdf
@@ -115,7 +132,7 @@ var WEAPONS = {
 var UNITS = {
     "Superheavy Tank": {
         weapons: ["3 Main Guns", "3 Antipersonnel"],
-        nameScheme: "id",
+        nameScheme: "<Id>",
         tread: 18,
         size: 5,
         au: 3
@@ -184,7 +201,6 @@ var UNITS = {
         au: 25
     },
     "Ogre Mk. VI": {
-        nameScheme: "grand",
         weapons: [
             "3 Main Battery",
             "6 Secondary Battery",
@@ -224,7 +240,6 @@ var UNITS = {
         au: "25+"
     },
     "Doppelsoldner": {
-        nameScheme: "grand",
         weapons: [
             "2 Main Battery",
             "8 Secondary Battery",
@@ -266,7 +281,7 @@ var UNITS = {
     },
     // http://www.sjgames.com/ogre/articles/csa.html
     "CSA-10 (Magi)": {
-        nameScheme: "air",
+        nameScheme: "<Flying>",
         weapons: [
             "2 Bombloads",
             "1 Air-to-Air Missile",
@@ -278,7 +293,7 @@ var UNITS = {
         propulsion: 48,
     },
     "CSA-15 (Magi)": {
-        nameScheme: "air",
+        nameScheme: "<Flying>",
         weapons: [
             "4 Bombloads",
             "3 Air-to-Air Missiles",