This commit is contained in:
Azgaar 2019-09-18 21:30:48 +03:00
parent 7a9c431bb1
commit 5eb24252e1
7 changed files with 171 additions and 61 deletions

View file

@ -126,8 +126,9 @@
// exclude endings inappropriate for states name
if (name.includes(" ")) name = capitalize(name.replace(/ /g, "").toLowerCase()); // don't allow multiword state names
if (name.length > 6 && name.slice(-4) === "berg") name = name.slice(0,-4); // remove -berg for any
if (name.length > 5 && name.slice(-3) === "ton") name = name.slice(0,-3); // remove -ton for any
if (base === 5 && ["sk", "ev", "ov"].includes(name.slice(-2))) name = name.slice(0,-2); // remove -sk/-ev/-ov for Ruthenian
else if (base === 1 && name.length > 5 && name.slice(-3) === "ton") name = name.slice(0,-3); // remove -ton for English
else if (base === 12) return vowel(name.slice(-1)) ? name : name + "u"; // Japanese ends on any vowel or -u
else if (base === 18 && Math.random() < .4) name = vowel(name.slice(0,1).toLowerCase()) ? "Al" + name.toLowerCase() : "Al " + name; // Arabic starts with -Al
@ -139,25 +140,26 @@
} else if (Math.random() < .4) return name; // 60% for cc and vc
// define suffix
let suffix = "";
let suffix = "ia"; // standard suffix
const rnd = Math.random(), l = name.length;
if (base === 3) suffix = rnd < .03 && l < 7 ? "terra" : "ia"; // Italian
else if (base === 4) suffix = rnd < .03 && l < 7 ? "terra" : "ia"; // Spanish
else if (base === 13) suffix = rnd < .03 && l < 7 ? "terra" : "ia"; // Portuguese
else if (base === 2) suffix = rnd < .03 && l < 7 ? "terre" : "ia"; // French
else if (base === 0) suffix = rnd < .5 && l < 7 ? "land" : "ia"; // German
else if (base === 1) suffix = rnd < .4 && l < 7 ? "land" : "ia"; // English
else if (base === 6) suffix = rnd < .3 && l < 7 ? "land" : "ia"; // Nordic
else if (base === 7) suffix = rnd < .1 ? "eia" : "ia"; // Greek
else if (base === 9) suffix = rnd < .35 ? "maa" : "ia"; // Finnic
else if (base === 15) suffix = rnd < .6 && l < 6 ? "orszag" : "ia"; // Hungarian
if (base === 3 && rnd < .03 && l < 7) suffix = "terra"; // Italian
else if (base === 4 && rnd < .03 && l < 7) suffix = "terra"; // Spanish
else if (base === 13 && rnd < .03 && l < 7) suffix = "terra"; // Portuguese
else if (base === 2 && rnd < .03 && l < 7) suffix = "terre"; // French
else if (base === 0 && rnd < .5 && l < 7) suffix = "land"; // German
else if (base === 1 && rnd < .4 && l < 7 ) suffix = "land"; // English
else if (base === 6 && rnd < .3 && l < 7) suffix = "land"; // Nordic
else if (base === 7 && rnd < .1) suffix = "eia"; // Greek
else if (base === 9 && rnd < .35) suffix = "maa"; // Finnic
else if (base === 15 && rnd < .6 && l < 6) suffix = "orszag"; // Hungarian
else if (base === 16) suffix = rnd < .5 ? "stan" : "ya"; // Turkish
else if (base === 10) suffix = "guk"; // Korean
else if (base === 11) suffix = " Guo"; // Chinese
else if (base === 14) suffix = rnd < .6 && l < 7 ? "tlan" : "co"; // Nahuatl
else if (base === 17) suffix = rnd < .8 ? "a" : "ia"; // Berber
else if (base === 18) suffix = rnd < .8 ? "a" : "ia"; // Arabic
else suffix = "ia" // other
else if (base === 14) suffix = rnd < .6 && l < 6 ? "tlan" : "co"; // Nahuatl
else if (base === 17 && rnd < .8) suffix = "a"; // Berber
else if (base === 18 && rnd < .8) suffix = "a"; // Arabic
return validateSuffix(name, suffix);
}
@ -194,30 +196,30 @@
// name, min length, max length, letters to allow duplication, multi-word name rate
return [
{name: "German", min: 5, max: 12, d: "lt", m: 0},
{name: "English", min: 6, max: 11, d: "", m: 0.1},
{name: "French", min: 5, max: 13, d: "nlrs", m: 0.1},
{name: "Italian", min: 5, max: 12, d: "cltr", m: 0.1},
{name: "English", min: 6, max: 11, d: "", m: .1},
{name: "French", min: 5, max: 13, d: "nlrs", m: .1},
{name: "Italian", min: 5, max: 12, d: "cltr", m: .1},
{name: "Castillian", min: 5, max: 11, d: "lr", m: 0},
{name: "Ruthenian", min: 5, max: 10, d: "", m: 0},
{name: "Nordic", min: 6, max: 10, d: "kln", m: 0.1},
{name: "Greek", min: 5, max: 11, d: "s", m: 0.1},
{name: "Roman", min: 6, max: 11, d: "ln", m: 0.1},
{name: "Nordic", min: 6, max: 10, d: "kln", m: .1},
{name: "Greek", min: 5, max: 11, d: "s", m: .1},
{name: "Roman", min: 6, max: 11, d: "ln", m: .1},
{name: "Finnic", min: 5, max: 11, d: "akiut", m: 0},
{name: "Korean", min: 5, max: 11, d: "", m: 0},
{name: "Chinese", min: 5, max: 10, d: "", m: 0},
{name: "Japanese", min: 4, max: 10, d: "", m: 0},
{name: "Portuguese", min: 5, max: 11, d: "", m: 0.1},
{name: "Portuguese", min: 5, max: 11, d: "", m: .1},
{name: "Nahuatl", min: 6, max: 13, d: "l", m: 0},
{name: "Hungarian", min: 6, max: 13, d: "", m: 0.1},
{name: "Hungarian", min: 6, max: 13, d: "", m: .1},
{name: "Turkish", min: 4, max: 10, d: "", m: 0},
{name: "Berber", min: 4, max: 10, d: "s", m: 0.2},
{name: "Arabic", min: 4, max: 9, d: "ae", m: 0.2},
{name: "Berber", min: 4, max: 10, d: "s", m: .2},
{name: "Arabic", min: 4, max: 9, d: "ae", m: .2},
{name: "Inuit", min: 5, max: 15, d: "alutsn", m: 0},
{name: "Basque", min: 4, max: 11, d: "r", m: 0.1},
{name: "Nigerian", min: 4, max: 10, d: "", m: 0.3},
{name: "Basque", min: 4, max: 11, d: "r", m: .1},
{name: "Nigerian", min: 4, max: 10, d: "", m: .3},
{name: "Celtic", min: 4, max: 12, d: "nld", m: 0},
{name: "Mesopotamian", min: 4, max: 9, d: "srpl", m: 0.1},
{name: "Iranian", min: 5, max: 11, d: "", m: 0.1},
{name: "Mesopotamian", min: 4, max: 9, d: "srpl", m: .1},
{name: "Iranian", min: 5, max: 11, d: "", m: .1},
{name: "Hawaiian", min: 5, max: 10, d: "auo", m: 1},
{name: "Karnataka", min: 5, max: 11, d: "tnl", m: 0},
{name: "Quechua", min: 6, max: 12, d: "l", m: 0},