offline-fantasy-name-generators

Offline version of www.fantasynamegenerators.com
git clone https://git.neptards.moe/neptards/offline-fantasy-name-generators.git
Log | Files | Refs | README

demonymGen.js (8085B)


      1 var nm1 = ["b", "c", "d", "f", "g", "h", "i", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z", "", "", "", "", ""];
      2 var nm2 = ["a", "e", "o", "u"];
      3 var nm3 = ["br", "cr", "dr", "fr", "gr", "pr", "str", "tr", "bl", "cl", "gl", "pl", "sl", "sc", "sk", "sm", "sn", "sp", "st", "sw", "ch", "sh", "th", "wh"];
      4 var nm4 = ["a", "e", "o", "u", "a", "e", "o", "u", "a", "e", "o", "u", "a", "e", "o", "u", "ae", "ai", "ao", "au", "a", "ay", "ea", "ei", "eo", "eu", "e", "ey", "ua", "ue", "ui", "uo", "u", "uy", "ia", "ie", "iu", "io", "iy", "oa", "oe", "ou", "oi", "o", "oy"];
      5 var nm5 = ["stan", "dor", "vania", "nia", "lor", "cor", "dal", "bar", "sal", "ra", "la", "lia", "jan", "rus", "ze", "tan", "wana", "sil", "so", "na", "le", "bia", "ca", "ji", "ce", "ton", "ssau", "sau", "sia", "ca", "ya", "ye", "yae", "tho", "stein", "ria", "nia", "burg", "nia", "gro", "que", "gua", "qua", "rhiel", "cia", "les", "dan", "nga"];
      6 var nm6 = ["ia", "a", "en", "ar", "istan", "aria", "ington", "ua", "ijan", "ain", "ium", "us", "esh", "os", "ana", "il", "ad", "or", "ea", "eau", "ax", "on", "ana", "ary", "ya", "ye", "yae", "ait", "ein", "urg", "al", "ines", "ela"];
      7 var vowel = ["a", "e", "i", "o", "u", "y"];
      8 var dVowel = ["aa", "ae", "ai", "ao", "ae", "ea", "ee", "ei", "eo", "eu", "ia", "ie", "ii", "io", "iu", "oa", "oe", "oi", "oo", "ou", "ua", "ue", "ui", "uo", "uu"];
      9 var ranNames = [];
     10 var br = "";
     11 var cust = "";
     12 
     13 function nameGen() {
     14     $('#placeholder').css('textTransform', 'capitalize');
     15     var endings = ["n", "an", "ian", "anian", "nian", "in", "ine", "ite", "r", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "lese", "vese", "nese", "i", "ic", "iot", "iote", "asque", "gian", "onian", "vian"];
     16     var endingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"];
     17     var endingNoSplice = ["nan", "nian", "nin", "no", "ne", "nsian", "lese", "vese", "nese", "gian", "vian", "lian"];
     18     var cEndingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"];
     19     var cEndingNoSplice = ["n", "an", "an", "anian", "nian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "lese", "vese", "nese", "i", "ic", "ot", "ote", "asque", "gian", "onian", "vian"];
     20     var vowelLast = "no";
     21     var dVowelLast = "no";
     22     var element = document.createElement("div");
     23     element.setAttribute("id", "result");
     24     for (j = 0; j < 10; j++) {
     25         if (j < 2) {
     26             rnd = (Math.random() * nm2.length | 0);
     27             rnd2 = (Math.random() * nm3.length | 0);
     28             rnd3 = (Math.random() * nm6.length | 0);
     29             ranNames[j] = nm2[rnd] + nm3[rnd2] + nm6[rnd3];
     30         } else if (j < 4) {
     31             rnd = (Math.random() * nm3.length | 0);
     32             rnd2 = (Math.random() * nm4.length | 0);
     33             rnd3 = (Math.random() * nm5.length | 0);
     34             ranNames[j] = nm3[rnd] + nm4[rnd2] + nm5[rnd3];
     35         } else if (j < 6) {
     36             rnd = (Math.random() * nm1.length | 0);
     37             rnd2 = (Math.random() * nm2.length | 0);
     38             rnd3 = (Math.random() * nm3.length | 0);
     39             rnd4 = (Math.random() * nm6.length | 0);
     40             ranNames[j] = nm1[rnd] + nm2[rnd2] + nm3[rnd3] + nm6[rnd4];
     41         } else if (j < 8) {
     42             rnd = (Math.random() * nm1.length | 0);
     43             rnd2 = (Math.random() * nm2.length | 0);
     44             rnd3 = (Math.random() * nm3.length | 0);
     45             rnd5 = (Math.random() * cEndingSplice.length | 0);
     46             ranNames[j] = nm1[rnd] + nm2[rnd2] + nm3[rnd3] + cEndingSplice[rnd5];
     47         } else {
     48             rnd = (Math.random() * nm3.length | 0);
     49             rnd2 = (Math.random() * nm4.length | 0);
     50             rnd3 = (Math.random() * nm1.length | 0);
     51             rnd4 = (Math.random() * cEndingSplice.length | 0);
     52             ranNames[j] = nm3[rnd] + nm4[rnd2] + nm1[rnd3] + cEndingSplice[rnd4];
     53         }
     54     }
     55     for (i = 0; i < 10; i++) {
     56         if ($('#custName').is(':checked')) {
     57             cust = $(".custName").val();
     58         } else {
     59             cust = ranNames[i];
     60         }
     61         custLast = cust.slice(-1);
     62         custLastTwo = cust.slice(-2);
     63         for (j = 0; j < vowel.length; j++) {
     64             if (custLast === vowel[j]) {
     65                 vowelLast = "yes";
     66                 cEndingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"];
     67                 cEndingNoSplice = ["n", "an", "an", "anian", "nian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "lese", "vese", "nese", "i", "ic", "ot", "ote", "asque", "gian", "onian", "vian"];
     68             } else {
     69                 vowelLast = "no";
     70             }
     71         }
     72         for (k = 0; k < dVowel.length; k++) {
     73             if (custLastTwo === dVowel[k]) {
     74                 dVowelLast = "yes";
     75                 endingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"];
     76                 endingNoSplice = ["nan", "nian", "nin", "no", "ne", "nsian", "lese", "vese", "nese", "gian", "vian", "lian"];
     77             } else {
     78                 dVowelLast = "no";
     79             }
     80         }
     81         var cRan = (Math.random() * cEndingNoSplice.length | 0);
     82         var ran = (Math.random() * endingNoSplice.length | 0);
     83         var csRan = (Math.random() * cEndingSplice.length | 0);
     84         var sran = (Math.random() * endingSplice.length | 0);
     85         if (vowelLast === "yes") {
     86             if (i < 5) {
     87                 names = cust.slice(0, -1) + endingSplice[sran];
     88                 endingSplice.splice(sran, 1);
     89             } else {
     90                 names = cust.slice(0, -1) + endingNoSplice[ran];
     91                 endingNoSplice.splice(ran, 1);
     92             }
     93         } else if (dVowelLast === "yes") {
     94             if (i < 5) {
     95                 if (cust.length < 5) {
     96                     names = cust.slice(0, -1) + endingSplice[cran];
     97                     endingSplice.splice(sran, 1);
     98                 } else {
     99                     names = cust.slice(0, -2) + cEndingSplice[csRan];
    100                     cEndingSplice.splice(csRan, 1);
    101                 }
    102             } else {
    103                 if (cust.length < 5) {
    104                     names = cust.slice(0, -1) + endingSplice[cran];
    105                     endingSplice.splice(sran, 1);
    106                 } else {
    107                     names = cust.slice(0, -2) + cEndingNoSplice[cRan];
    108                     cEndingNoSplice.splice(cRan, 1);
    109                 }
    110             }
    111         } else {
    112             if (i < 4) {
    113                 names = cust + endingSplice[sran];
    114                 endingSplice.splice(sran, 1);
    115             } else if (i < 6) {
    116                 names = cust.slice(0, -1) + endingSplice[sran];
    117                 endingSplice.splice(sran, 1);
    118             } else if (i < 8) {
    119                 if (cust.length < 5) {
    120                     names = cust.slice(0, -1) + endingSplice[sran];
    121                     endingSplice.splice(sran, 1);
    122                 } else {
    123                     names = cust.slice(0, -2) + endingSplice[sran];
    124                     endingSplice.splice(sran, 1);
    125                 }
    126             } else {
    127                 if (cust.length < 5) {
    128                     names = cust.slice(0, -1) + endingSplice[sran];
    129                     endingSplice.splice(sran, 1);
    130                 } else {
    131                     names = cust.slice(0, -3) + endingSplice[sran];
    132                     endingSplice.splice(sran, 1);
    133                 }
    134             }
    135         }
    136         br = document.createElement('br');
    137         element.appendChild(document.createTextNode(names));
    138         element.appendChild(br);
    139     }
    140     if (document.getElementById("result")) {
    141         document.getElementById("placeholder").removeChild(document.getElementById("result"));
    142     }
    143     document.getElementById("placeholder").appendChild(element);
    144 }