Skip to content

Instantly share code, notes, and snippets.

@ericoporto
Last active November 9, 2019 01:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ericoporto/180cd3023e0f4ab81df06b22695efbf0 to your computer and use it in GitHub Desktop.
Save ericoporto/180cd3023e0f4ab81df06b22695efbf0 to your computer and use it in GitHub Desktop.
WIP
// Fantasy name generator AGS Module Script
#region CREATE_WORD_TABLES
//---- CREATE WORD TABLES -----------------------------
String _symbol_s[];
String _symbol_v[];
String _symbol_big_v[];
String _symbol_c[];
String _symbol_big_b[];
String _symbol_big_c[];
String _symbol_i[];
String _symbol_m[];
String _symbol_big_m[];
String _symbol_big_d[];
String _symbol_d[];
int _symbol_s_length = 115;
int _symbol_v_length = 6;
int _symbol_big_v_length = 22;
int _symbol_c_length = 21;
int _symbol_big_b_length = 43;
int _symbol_big_c_length = 36;
int _symbol_i_length = 47;
int _symbol_m_length = 43;
int _symbol_big_m_length = 23;
int _symbol_big_d_length = 21;
int _symbol_d_length = 36;
void _initialize_word_tables(){
_symbol_s = new String[_symbol_s_length];
_symbol_v = new String[_symbol_v_length];
_symbol_big_v = new String[_symbol_big_v_length];
_symbol_c = new String[_symbol_c_length];
_symbol_big_b = new String[_symbol_big_b_length];
_symbol_big_c = new String[_symbol_big_c_length];
_symbol_i = new String[_symbol_i_length];
_symbol_m = new String[_symbol_m_length];
_symbol_big_m = new String[_symbol_big_m_length];
_symbol_big_d = new String[_symbol_big_d_length];
_symbol_d = new String[_symbol_d_length];
_symbol_s[0] = "ach";
_symbol_s[1] = "ack";
_symbol_s[2] = "ad";
_symbol_s[3] = "age";
_symbol_s[4] = "ald";
_symbol_s[5] = "ale";
_symbol_s[6] = "an";
_symbol_s[7] = "ang";
_symbol_s[8] = "ar";
_symbol_s[9] = "ard";
_symbol_s[10] = "as";
_symbol_s[11] = "ash";
_symbol_s[12] = "at";
_symbol_s[13] = "ath";
_symbol_s[14] = "augh";
_symbol_s[15] = "aw";
_symbol_s[16] = "ban";
_symbol_s[17] = "bel";
_symbol_s[18] = "bur";
_symbol_s[19] = "cer";
_symbol_s[20] = "cha";
_symbol_s[21] = "che";
_symbol_s[22] = "dan";
_symbol_s[23] = "dar";
_symbol_s[24] = "del";
_symbol_s[25] = "den";
_symbol_s[26] = "dra";
_symbol_s[27] = "dyn";
_symbol_s[28] = "ech";
_symbol_s[29] = "eld";
_symbol_s[30] = "elm";
_symbol_s[31] = "em";
_symbol_s[32] = "en";
_symbol_s[33] = "end";
_symbol_s[34] = "eng";
_symbol_s[35] = "enth";
_symbol_s[36] = "er";
_symbol_s[37] = "ess";
_symbol_s[38] = "est";
_symbol_s[39] = "et";
_symbol_s[40] = "gar";
_symbol_s[41] = "gha";
_symbol_s[42] = "hat";
_symbol_s[43] = "hin";
_symbol_s[44] = "hon";
_symbol_s[45] = "ia";
_symbol_s[46] = "ight";
_symbol_s[47] = "ild";
_symbol_s[48] = "im";
_symbol_s[49] = "ina";
_symbol_s[50] = "ine";
_symbol_s[51] = "ing";
_symbol_s[52] = "ir";
_symbol_s[53] = "is";
_symbol_s[54] = "iss";
_symbol_s[55] = "it";
_symbol_s[56] = "kal";
_symbol_s[57] = "kel";
_symbol_s[58] = "kim";
_symbol_s[59] = "kin";
_symbol_s[60] = "ler";
_symbol_s[61] = "lor";
_symbol_s[62] = "lye";
_symbol_s[63] = "mor";
_symbol_s[64] = "mos";
_symbol_s[65] = "nal";
_symbol_s[66] = "ny";
_symbol_s[67] = "nys";
_symbol_s[68] = "old";
_symbol_s[69] = "om";
_symbol_s[70] = "on";
_symbol_s[71] = "or";
_symbol_s[72] = "orm";
_symbol_s[73] = "os";
_symbol_s[74] = "ough";
_symbol_s[75] = "per";
_symbol_s[76] = "pol";
_symbol_s[77] = "qua";
_symbol_s[78] = "que";
_symbol_s[79] = "rad";
_symbol_s[80] = "rak";
_symbol_s[81] = "ran";
_symbol_s[82] = "ray";
_symbol_s[83] = "ril";
_symbol_s[84] = "ris";
_symbol_s[85] = "rod";
_symbol_s[86] = "roth";
_symbol_s[87] = "ryn";
_symbol_s[88] = "sam";
_symbol_s[89] = "say";
_symbol_s[90] = "ser";
_symbol_s[91] = "shy";
_symbol_s[92] = "skel";
_symbol_s[93] = "sul";
_symbol_s[94] = "tai";
_symbol_s[95] = "tan";
_symbol_s[96] = "tas";
_symbol_s[97] = "ther";
_symbol_s[98] = "tia";
_symbol_s[99] = "tin";
_symbol_s[100] = "ton";
_symbol_s[101] = "tor";
_symbol_s[102] = "tur";
_symbol_s[103] = "um";
_symbol_s[104] = "und";
_symbol_s[105] = "unt";
_symbol_s[106] = "urn";
_symbol_s[107] = "usk";
_symbol_s[108] = "ust";
_symbol_s[109] = "ver";
_symbol_s[110] = "ves";
_symbol_s[111] = "vor";
_symbol_s[112] = "war";
_symbol_s[113] = "wor";
_symbol_s[114] = "yer";
_symbol_v[0] = "a";
_symbol_v[1] = "e";
_symbol_v[2] = "i";
_symbol_v[3] = "o";
_symbol_v[4] = "u";
_symbol_v[5] = "y";
_symbol_big_v[0] = "a";
_symbol_big_v[1] = "e";
_symbol_big_v[2] = "i";
_symbol_big_v[3] = "o";
_symbol_big_v[4] = "u";
_symbol_big_v[5] = "y";
_symbol_big_v[6] = "ae";
_symbol_big_v[7] = "ai";
_symbol_big_v[8] = "au";
_symbol_big_v[9] = "ay";
_symbol_big_v[10] = "ea";
_symbol_big_v[11] = "ee";
_symbol_big_v[12] = "ei";
_symbol_big_v[13] = "eu";
_symbol_big_v[14] = "ey";
_symbol_big_v[15] = "ia";
_symbol_big_v[16] = "ie";
_symbol_big_v[17] = "oe";
_symbol_big_v[18] = "oi";
_symbol_big_v[19] = "oo";
_symbol_big_v[20] = "ou";
_symbol_big_v[21] = "ui";
_symbol_c[0] = "b";
_symbol_c[1] = "c";
_symbol_c[2] = "d";
_symbol_c[3] = "f";
_symbol_c[4] = "g";
_symbol_c[5] = "h";
_symbol_c[6] = "j";
_symbol_c[7] = "k";
_symbol_c[8] = "l";
_symbol_c[9] = "m";
_symbol_c[10] = "n";
_symbol_c[11] = "p";
_symbol_c[12] = "q";
_symbol_c[13] = "r";
_symbol_c[14] = "s";
_symbol_c[15] = "t";
_symbol_c[16] = "v";
_symbol_c[17] = "w";
_symbol_c[18] = "x";
_symbol_c[19] = "y";
_symbol_c[20] = "z";
_symbol_big_b[0] = "b";
_symbol_big_b[1] = "bl";
_symbol_big_b[2] = "br";
_symbol_big_b[3] = "c";
_symbol_big_b[4] = "ch";
_symbol_big_b[5] = "chr";
_symbol_big_b[6] = "cl";
_symbol_big_b[7] = "cr";
_symbol_big_b[8] = "d";
_symbol_big_b[9] = "dr";
_symbol_big_b[10] = "f";
_symbol_big_b[11] = "g";
_symbol_big_b[12] = "h";
_symbol_big_b[13] = "j";
_symbol_big_b[14] = "k";
_symbol_big_b[15] = "l";
_symbol_big_b[16] = "ll";
_symbol_big_b[17] = "m";
_symbol_big_b[18] = "n";
_symbol_big_b[19] = "p";
_symbol_big_b[20] = "ph";
_symbol_big_b[21] = "qu";
_symbol_big_b[22] = "r";
_symbol_big_b[23] = "rh";
_symbol_big_b[24] = "s";
_symbol_big_b[25] = "sch";
_symbol_big_b[26] = "sh";
_symbol_big_b[27] = "sl";
_symbol_big_b[28] = "sm";
_symbol_big_b[29] = "sn";
_symbol_big_b[30] = "st";
_symbol_big_b[31] = "str";
_symbol_big_b[32] = "sw";
_symbol_big_b[33] = "t";
_symbol_big_b[34] = "th";
_symbol_big_b[35] = "thr";
_symbol_big_b[36] = "tr";
_symbol_big_b[37] = "v";
_symbol_big_b[38] = "w";
_symbol_big_b[39] = "wh";
_symbol_big_b[40] = "y";
_symbol_big_b[41] = "z";
_symbol_big_b[42] = "zh";
_symbol_big_c[0] = "b";
_symbol_big_c[1] = "c";
_symbol_big_c[2] = "ch";
_symbol_big_c[3] = "ck";
_symbol_big_c[4] = "d";
_symbol_big_c[5] = "f";
_symbol_big_c[6] = "g";
_symbol_big_c[7] = "gh";
_symbol_big_c[8] = "h";
_symbol_big_c[9] = "k";
_symbol_big_c[10] = "l";
_symbol_big_c[11] = "ld";
_symbol_big_c[12] = "ll";
_symbol_big_c[13] = "lt";
_symbol_big_c[14] = "m";
_symbol_big_c[15] = "n";
_symbol_big_c[16] = "nd";
_symbol_big_c[17] = "nn";
_symbol_big_c[18] = "nt";
_symbol_big_c[19] = "p";
_symbol_big_c[20] = "ph";
_symbol_big_c[21] = "q";
_symbol_big_c[22] = "r";
_symbol_big_c[23] = "rd";
_symbol_big_c[24] = "rr";
_symbol_big_c[25] = "rt";
_symbol_big_c[26] = "s";
_symbol_big_c[27] = "sh";
_symbol_big_c[28] = "ss";
_symbol_big_c[29] = "st";
_symbol_big_c[30] = "t";
_symbol_big_c[31] = "th";
_symbol_big_c[32] = "v";
_symbol_big_c[33] = "w";
_symbol_big_c[34] = "y";
_symbol_big_c[35] = "z";
_symbol_i[0] = "air";
_symbol_i[1] = "ankle";
_symbol_i[2] = "ball";
_symbol_i[3] = "beef";
_symbol_i[4] = "bone";
_symbol_i[5] = "bum";
_symbol_i[6] = "bumble";
_symbol_i[7] = "bump";
_symbol_i[8] = "cheese";
_symbol_i[9] = "clod";
_symbol_i[10] = "clot";
_symbol_i[11] = "clown";
_symbol_i[12] = "corn";
_symbol_i[13] = "dip";
_symbol_i[14] = "dolt";
_symbol_i[15] = "doof";
_symbol_i[16] = "dork";
_symbol_i[17] = "dumb";
_symbol_i[18] = "face";
_symbol_i[19] = "finger";
_symbol_i[20] = "foot";
_symbol_i[21] = "fumble";
_symbol_i[22] = "goof";
_symbol_i[23] = "grumble";
_symbol_i[24] = "head";
_symbol_i[25] = "knock";
_symbol_i[26] = "knocker";
_symbol_i[27] = "knuckle";
_symbol_i[28] = "loaf";
_symbol_i[29] = "lump";
_symbol_i[30] = "lunk";
_symbol_i[31] = "meat";
_symbol_i[32] = "muck";
_symbol_i[33] = "munch";
_symbol_i[34] = "nit";
_symbol_i[35] = "numb";
_symbol_i[36] = "pin";
_symbol_i[37] = "puff";
_symbol_i[38] = "skull";
_symbol_i[39] = "snark";
_symbol_i[40] = "sneeze";
_symbol_i[41] = "thimble";
_symbol_i[42] = "twerp";
_symbol_i[43] = "twit";
_symbol_i[44] = "wad";
_symbol_i[45] = "wimp";
_symbol_i[46] = "wipe";
_symbol_m[0] = "baby";
_symbol_m[1] = "booble";
_symbol_m[2] = "bunker";
_symbol_m[3] = "cuddle";
_symbol_m[4] = "cuddly";
_symbol_m[5] = "cutie";
_symbol_m[6] = "doodle";
_symbol_m[7] = "foofie";
_symbol_m[8] = "gooble";
_symbol_m[9] = "honey";
_symbol_m[10] = "kissie";
_symbol_m[11] = "lover";
_symbol_m[12] = "lovey";
_symbol_m[13] = "moofie";
_symbol_m[14] = "mooglie";
_symbol_m[15] = "moopie";
_symbol_m[16] = "moopsie";
_symbol_m[17] = "nookum";
_symbol_m[18] = "poochie";
_symbol_m[19] = "poof";
_symbol_m[20] = "poofie";
_symbol_m[21] = "pookie";
_symbol_m[22] = "schmoopie";
_symbol_m[23] = "schnoogle";
_symbol_m[24] = "schnookie";
_symbol_m[25] = "schnookum";
_symbol_m[26] = "smooch";
_symbol_m[27] = "smoochie";
_symbol_m[28] = "smoosh";
_symbol_m[29] = "snoogle";
_symbol_m[30] = "snoogy";
_symbol_m[31] = "snookie";
_symbol_m[32] = "snookum";
_symbol_m[33] = "snuggy";
_symbol_m[34] = "sweetie";
_symbol_m[35] = "woogle";
_symbol_m[36] = "woogy";
_symbol_m[37] = "wookie";
_symbol_m[38] = "wookum";
_symbol_m[39] = "wuddle";
_symbol_m[40] = "wuddly";
_symbol_m[41] = "wuggy";
_symbol_m[42] = "wunny";
_symbol_big_m[0] = "boo";
_symbol_big_m[1] = "bunch";
_symbol_big_m[2] = "bunny";
_symbol_big_m[3] = "cake";
_symbol_big_m[4] = "cakes";
_symbol_big_m[5] = "cute";
_symbol_big_m[6] = "darling";
_symbol_big_m[7] = "dumpling";
_symbol_big_m[8] = "dumplings";
_symbol_big_m[9] = "face";
_symbol_big_m[10] = "foof";
_symbol_big_m[11] = "goo";
_symbol_big_m[12] = "head";
_symbol_big_m[13] = "kin";
_symbol_big_m[14] = "kins";
_symbol_big_m[15] = "lips";
_symbol_big_m[16] = "love";
_symbol_big_m[17] = "mush";
_symbol_big_m[18] = "pie";
_symbol_big_m[19] = "poo";
_symbol_big_m[20] = "pooh";
_symbol_big_m[21] = "pook";
_symbol_big_m[22] = "pums";
_symbol_big_d[0] = "b";
_symbol_big_d[1] = "bl";
_symbol_big_d[2] = "br";
_symbol_big_d[3] = "cl";
_symbol_big_d[4] = "d";
_symbol_big_d[5] = "f";
_symbol_big_d[6] = "fl";
_symbol_big_d[7] = "fr";
_symbol_big_d[8] = "g";
_symbol_big_d[9] = "gh";
_symbol_big_d[10] = "gl";
_symbol_big_d[11] = "gr";
_symbol_big_d[12] = "h";
_symbol_big_d[13] = "j";
_symbol_big_d[14] = "k";
_symbol_big_d[15] = "kl";
_symbol_big_d[16] = "m";
_symbol_big_d[17] = "n";
_symbol_big_d[18] = "p";
_symbol_big_d[19] = "th";
_symbol_big_d[20] = "w";
_symbol_d[0] = "elch";
_symbol_d[1] = "idiot";
_symbol_d[2] = "ob";
_symbol_d[3] = "og";
_symbol_d[4] = "ok";
_symbol_d[5] = "olph";
_symbol_d[6] = "olt";
_symbol_d[7] = "omph";
_symbol_d[8] = "ong";
_symbol_d[9] = "onk";
_symbol_d[10] = "oo";
_symbol_d[11] = "oob";
_symbol_d[12] = "oof";
_symbol_d[13] = "oog";
_symbol_d[14] = "ook";
_symbol_d[15] = "ooz";
_symbol_d[16] = "org";
_symbol_d[17] = "ork";
_symbol_d[18] = "orm";
_symbol_d[19] = "oron";
_symbol_d[20] = "ub";
_symbol_d[21] = "uck";
_symbol_d[22] = "ug";
_symbol_d[23] = "ulf";
_symbol_d[24] = "ult";
_symbol_d[25] = "um";
_symbol_d[26] = "umb";
_symbol_d[27] = "ump";
_symbol_d[28] = "umph";
_symbol_d[29] = "un";
_symbol_d[30] = "unb";
_symbol_d[31] = "ung";
_symbol_d[32] = "unk";
_symbol_d[33] = "unph";
_symbol_d[34] = "unt";
_symbol_d[35] = "uzz";
}
//---- END CREATE WORD TABLES --------------------------
#endregion //CREATE_WORD_TABLES
int _generative_length(String achar){
if(achar == "s") return _symbol_s_length;
if(achar == "v") return _symbol_v_length;
if(achar == "V") return _symbol_big_v_length;
if(achar == "c") return _symbol_c_length;
if(achar == "B") return _symbol_big_b_length;
if(achar == "C") return _symbol_big_c_length;
if(achar == "i") return _symbol_i_length;
if(achar == "m") return _symbol_m_length;
if(achar == "M") return _symbol_big_m_length;
if(achar == "D") return _symbol_big_d_length;
if(achar == "d") return _symbol_d_length;
return 0;
}
String[] _generative(String achar){
if(achar == "s") return _symbol_s;
if(achar == "v") return _symbol_v;
if(achar == "V") return _symbol_big_v;
if(achar == "c") return _symbol_c;
if(achar == "B") return _symbol_big_b;
if(achar == "C") return _symbol_big_c;
if(achar == "i") return _symbol_i;
if(achar == "m") return _symbol_m;
if(achar == "M") return _symbol_big_m;
if(achar == "D") return _symbol_big_d;
if(achar == "d") return _symbol_d;
return null;
}
// Returns a new string with the first character capitalized.
String _capitalize(String strPiece){
if(strPiece.Length<1){
return "";
} else if(strPiece.Length==1){
return strPiece.UpperCase();
}
String first_letter = strPiece.Substring(0, 1);
String rest_of_string = strPiece.Substring(1, strPiece.Length - 1);
first_letter = first_letter.UpperCase();
return first_letter.Append(rest_of_string);
}
// Fantasy name generator AGS Module Header
// This is free and unencumbered software released into the public domain.
//
// The compile() function creates a name generator based on an input
// pattern. The letters s, v, V, c, B, C, i, m, M, D, and d represent
// different types of random replacements. Everything else is emitted
// literally.
//
// s - generic syllable
// v - vowel
// V - vowel or vowel combination
// c - consonant
// B - consonant or consonant combination suitable for beginning a word
// C - consonant or consonant combination suitable anywhere in a word
// i - insult
// m - mushy name
// M - mushy name ending
// D - consonant suited for a stupid person's name
// d - syllable suited for a stupid person's name (begins with a vowel)
//
// All characters between parenthesis () are emitted literally. For
// example, the pattern "s(dim)", emits a random generic syllable
// followed by "dim".
//
// Characters between angle brackets <> emit patterns from the table
// above. Imagine the entire pattern is wrapped in one of these.
//
// In both types of groupings, a vertical bar | denotes a random choice.
// Empty groups are allowed. For example, "(foo|bar)" emits either "foo"
// or "bar". The pattern "<c|v|>" emits a consonant, vowel, or nothing at
// all.
//
// An exclamation point ! means to capitalize the component that follows
// it. For example, "!(foo)" will emit "Foo" and "v!s" will emit a
// lowercase vowel followed by a capitalized syllable, like "eRod".
//
// This library is based on the RinkWorks Fantasy Name Generator.
// http://www.rinkworks.com/namegen/
//
// Return codes
enum NameGenReturnCodes {
eNameGenSuccess=0,
eNameGenTruncated, /* Output was truncated */
eNameGenInvalid, /* Pattern is invalid */
eNameGenTooDeep, /* Pattern exceeds maximum nesting depth */
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment