Use RRR for name generation.
[ogre.git] / ogre.js
diff --git a/ogre.js b/ogre.js
index c670e93..9bc3211 100644 (file)
--- a/ogre.js
+++ b/ogre.js
@@ -57,64 +57,8 @@ var CHECK = "☒";
 var FIRST_EMPTY = /☐/;
 var LAST_TICKED = /☒([^☒]*)$/;
 
-function choice (a) {
-    return a[(Math.random() * a.length) | 0];
-}
-
-function cap (s) {
-    return s && s[0].toUpperCase() + s.slice(1);
-}
-
-function letters (n) {
-    var r = "";
-    n = n || 1;
-    while (n-- > 0)
-        r += choice("abcdefghijklmnopqrstuvwxyz");
-    return r;
-}
-
-function range (a, b) {
-    return a + (Math.random() * (b - a)) | 0;
-}
-
-function numerals (n) {
-    var r = "";
-    n = n || 1;
-    while (n-- > 0)
-        r += choice("0123456789");
-    return r;
-}
-
-function pid () {
-    return letters(range(1, 4)).toUpperCase()
-        + choice(["‑", "", ".", "/"])
-        + numerals(range(1, 4));
-}
-
-function roman () {
-    return choice(["I", "II", "III", "IV", "V", "VI",
-                   "VII", "VIII", "IX", "X", "XI", "XII",
-                   "XIV"]);
-}
-
-function oid () {
-    return choice([letters(1).toUpperCase() + choice("-./") + numerals(2)]);
-}
-
 function randomName (scheme) {
-    switch (scheme) {
-    case "id":
-        return choice([pid() + " " + cap(choice(NOUNS))],
-                      [cap(choice(NOUNS)) + " " + pid()]);
-    case "air":
-        return choice([
-            oid() + " " + cap(choice(ADJECTIVES)) + " " + cap(choice(BIRDS)),
-            cap(choice(ADJECTIVES)) + " " + cap(choice(BIRDS)) + " " + roman()]);
-    default:
-        return choice([
-            oid() + " " + cap(choice(ADJECTIVES)) + " " + cap(choice(NOUNS)),
-            cap(choice(ADJECTIVES)) + " " + cap(choice(NOUNS)) + " " + roman()]);
-    }
+    return G.expand(scheme);
 }
 
 var STATS = ["attack", "range", "defense", "aside"];