Initial Commit / Linux Combined Proof of Concept example

This commit is contained in:
John McCardle 2023-02-23 19:37:13 -05:00
commit d0d2eae762
935 changed files with 155947 additions and 0 deletions

View file

@ -0,0 +1,43 @@
myStruct "struct_name" {
//
bool_field=true
char_field='Z'
int_field=24
float_field=3.14
string_field="hello"
color_field="255,128,128"
dice_field="0.5x3d5+2"
// dynamically declared fields
bool bool_field2=false
char char_field2='@'
int int_field2=4
float float_field2=4.3
string string_field2="world"
color color_field2=#FF22CC
dice dice_field2="3d20"
bool_list=[true, false, true]
char_list=['a', 'b', 'z']
integer_list=[13,2,-3]
float_list=[5.0,2.0,-3.5]
string_list=["item one","time_two"]
color_list=["42,42,142","128,64,128"]
// dice_list=["3d4","2d4+2","0.75x4d6-1"]
// dynamically declared list fields
bool[] bool_list2=[true, false, true]
char[] char_list2=['a', 'b', 'z']
int[] integer_list2=[13,2,-3]
float[] float_list2=[5.0,2.0,-3.5]
string[] string_list2=["item one","time_two"]
color[] color_list2=["42,42,142","128,64,128"]
}
// a completely dynamic structure (not declared at compile time)
struct dynStruct {
int someVar=4
struct subStruct {
float anotherVar=4.3
}
}

View file

@ -0,0 +1,148 @@
/*
* Pyromancer ! configuration file, used for regression tests.
*/
config {
debug=true // enable some debug/cheat stuff
multithread=false // enable background threads
// uncomment to force the number of background threads
// threadPoolSize = 1
display {
wallColor=#ABABAB
groundColor=#E4E4E4
memoryWallColor=#331100
playerLightRange=15
playerLightColor=#FF7722 // player light at level 1
playerLightColorEnd=#990000 // player light at last level
// messages config
messageLife=5.0 // how many time a message is displayed
debugColor=#AAAAAA
infoColor=#FFFF72
warnColor=#FF9F00
criticalColor=#FF0000
fadeTime=0.8
fireSpeed=5.0 // for intro/end screen
corpseColor=#888888
// flash when the player is hit
hitFlashDelay=0.2
flashColor=#FF0000
// amulet light properties
treasureLightRange=15
treasureLightColor=#888844
treasureIntensityDelay=0.6
treasureIntensityPattern="979897989798"
finalExplosionTime=5.0
}
spells {
fireball {
lightColor=#FF7700
trailLength=1
speed=0.3 // cells per second
sparkLife=0.4 // in seconds
sparkleLife=1.4 // in seconds
sparkleSpeed=0.5 // cells/seconds
standardLife=1.2 // in seconds
baseRange=1.0
baseDamage=1
stunDelay=1.0 // in seconds
}
}
fog {
maxLevel=1.0
scale=5.0
octaves=3.0
speed=1.0
color=#000000
}
creatures {
burnDamage=1.0 // hp per second
pathDelay=1.0 // seconds between path computation for a creature
player {
char='@'
color=#FFFFFF
speed=8.0 // cells per second. x2 when sprinting
sprintLength=5.0 // in seconds
sprintRecovery=10.0 // in seconds
rangeAccommodation=5.0 // in seconds
maxPathFinding=20 // cancel pathfinding if path too long
healRate=2.0 // health points per second
healIntensityDelay=15.0
healIntensityPattern="noise"
longButtonDelay=0.3
longSpellDelay=1.0
// keyboard movement config. Only letter/number keys allowed.
// Arrows, numpad, vi-keys, WASD always work
moveUpKey='Z'
moveDownKey='S'
moveLeftKey='Q'
moveRightKey='D'
// quickslot shortcuts
// (should correspond to main keyboard 1-0 keys)
// qwerty layout
quickslot1='1'
quickslot2='2'
quickslot3='3'
quickslot4='4'
quickslot5='5'
quickslot6='6'
quickslot7='7'
quickslot8='8'
quickslot9='9'
quickslot10='0'
// azerty layout
/*
quickslot1='&'
quickslot2='<27>'
quickslot3='\"'
quickslot4='\''
quickslot5='('
quickslot6='-'
quickslot7='<27>'
quickslot8='_'
quickslot9='<27>'
quickslot10='<27>'
*/
}
minion {
char='m'
color=#BBFF55
life=10
speed=6.0 // cells per second
damage=2.0 // hp per second when at melee range
}
boss {
char='Z'
color=#FF8800
life=2500
speed=4.0 // cells per second
secureDist=16 // try to keep squared distance to player above this value
secureCoef=3.0
summonTime=10.0 // time to summon minions
minionCount=10 // how many minions are summoned
}
}
gameplay {
timeScale=1.0 // time scale. Increase to increase game speed
nbLevels=8 // number of levels
dungeonMinSize=80 // size of dungeon at level 1
dungeonMaxSize=200 // size of dungeon at last level
darknessLevel=50 // if light r+g+b < darknessLevel, creatures not seen
penumbraLevel=100 // if light r+g+b < penumbraLevel, creatures seen as ?
}
ai_director {
waveLength=30.0 // in seconds
lowLevel=0.2 // no creatures below this level
medLevel=0.8
medRate=20 // creatures per minute
highRate=50 // creatures per minute
hordeDelay=120 // horde attack every 2 minutes
maxCreatures=100
spawnSourceRange=10 // spawn source covers an area of 10x10
distReplace=40 // if creature is too far from player, move it closer
itemKillCount=30 // item dropped every 30 creatures
}
}

View file

@ -0,0 +1,56 @@
# Libtcod font examples
This directory contains some example fonts for libtcod.
These fonts are generally free to use, but the license for the `terminal` tilesets has not been accounted for correctly.
## Tilesets
Tilesets are a smaller collection of glyphs arranged in a specific layout, usually [Code Page 437](https://en.wikipedia.org/wiki/Code_page_437).
All standard Code Page 437 tilesets are loaded with the following call:
```cpp
auto tileset = tcod::load_tilesheet("path/to/tileset.png", {32, 32}, tcod::CHARMAP_CP437);
```
Libtcod is able to load tilesets from the [Dwarf Fortress Tileset Repository](https://dwarffortresswiki.org/Tileset_repository) with the above extra configuration.
It also supports all the tilesets from [this tileset browser](https://extended-ascii-viewer.herokuapp.com/).
The file names in this directory are composed with:
```
<font_name><font_size>_<type>_<layout>.png
<type> : gs 8-bit or less greyscale PNG
<layout> : ro standard Code Page 437 layout in standard row-major order
tc Deprecated TCOD layout
```
## BDF
Libtcod also supports BDF files.
These fonts usually have decent Unicode support.
BDF files can be loaded in libtcod with the following call:
```cpp
auto tileset = tcod::load_bdf("path/to/font.bdf");
```
You can find BDF's in various places.
Recommended fonts are:
[Unicode fonts for X11](https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html),
[Cozette](https://github.com/slavfox/Cozette),
[Tamzen](https://github.com/sunaku/tamzen-font),
and [Envypn](https://github.com/Sorixelle/envypn-powerline).
## TrueType Font
TrueType font files are aliased and have good Unicode support.
Tilesets can be generated from TTF files using a tool like [Typesheet](https://github.com/graysonchao/typesheet).
There is limited support for loading TTF files in libtcod.
*This experimental function is provisional and may change in the future:*
```cpp
TCOD_Tileset* tileset = TCOD_load_truetype_font_("path/to/font.ttf", 20, 10); // 20 pixels high, half-width glyphs.
TCOD_Tileset* tileset = TCOD_load_truetype_font_("path/to/font.ttf", 20, 20); // 20 pixels high, monospaced glyphs.
```
To get the most of a TTF you should regenerate the tileset with a size closely matching your tile size whenever the window is resized.
Otherwise you'll get scaling artifacts from the font being rendered at a low resolution and then scaled up.

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,70 @@
/*
* Collections of syllables and other data used for name generation.
*
* All the strings must be enclosed between quotation marks, with no semicolon
* at the end.
*
* SYLLABLE SETS:
* Please use only latin characters, apostrophes and dashes for syllables. All
* other characters will be treated as separators between syllables, eg. "ish"
* and "is'h" are syllables, but "|sh" and "ish!" aren't (the erroneous
* syllables will be read as "sh" and "ish", respectively). If you wish to use
* a special character, please write it after a slash, eg. a semicolon will need
* to be written as "/;" in order to be correctly parsed. Beware: a slash at the
* end of a string will not trigger an error whatsoever, but the final syllable
* will not be added to the list at all. Spaces are a special case: they can be
* triggered either with the above method, or with a single underscore: "\ " and
* "_" are both valid and will produce a space.
*
* PHONEME SETS:
* Phoneme sets should be single characters or digraphs. Please use lowercase
* characters only. "ch" and "tz" are valid consonants, but "Ch" or "trz" are
* not. They will be rejected upon generating phoneme lists.
*
* RULES:
* These denote how a word is generated. A rule is a string consisting of
* normal characters [a-z,A-Z,',-], special characters preceded by a slash (see
* the notes concerning syllables), underscores to denote spaces and wildcards.
* Wildcards are preceded by a dollar sign. Here's the full list:
* "$P" - a random Pre syllable
* "$s" - a random Start syllable
* "$m" - a random Middle syllable
* "$e" - a random End syllable
* "$p" - a random Post syllable
* "$v" - a random vocal
* "$c" - a random consonant
* "$?" - a random phoneme
* So, if we hav the following data:
* syllablesStart = "Ivan"
* syllablesEnd = "Terrible"
* rules = "$s_the_$e"
* the generator will output "Ivan the Terrible".
* The wildcards may also include an integer number. This number marks the per
* cent chance of actually appearing the related wildcard has. The number is
* placed after the asterisk, but before the corresponding character. For
* instance, "*50m" means "50% chance of adding a Middle syllable".
* If multiple rules are specified, they should be separated by characters that
* are not special character or wildcard indicators. A comma is a legible
* separator.
* A rule may be preceded by a special wildcard consisting of a per cent sign
* "%" and an integer number. This means the per cent chance of picking this
* rule should the RNG encounter it. For instance, if two rules are specified,
* each will have 50% chance of being chosen. However, if one of them is
* preceded by the "%50" sign, it will actually have a 100/2*50% = 25% chance of
* being selected (100/2 is the initial chance any single rule from a set of two
* will be picked, for five rules this would be 100/5, etc.).
* The rules are a mandatory field. Also, any field thai it references are to be
* included as well, lest it produce errors or, in the best of cases, generate
* an empty syllable as output.
*
* Don't get paranoid about controlling whether the syllables are repeated. The
* program will ignore repeated entries anyway. This applies to phonemes too.
*
* Please make sure you have enough syllables specified to ensure variety in the
* generated names. A string with 512 characters should be sufficient in most
* cases. Anything below that is a risk of making the names predictable.
*
* I hope this little tool is both fun and useful for you. Take care!
*
* -Mingos
*/

View file

@ -0,0 +1,15 @@
//Celtic names from Jice's "The Cave"
name "Celtic male" {
syllablesStart = "Aen, Agno, All, Ba, Beo, Brig, Ci, Cre, Dan, Del, Ela, Eo, En, Er, Et, In, Io, Morr, Nem, Nu, Og, Or, Ta"
syllablesMiddle = "a, ar, ba, bo, ch, d, ig"
syllablesEnd = "aid, ain, an, and, th, ed, eth, gus, lam, lor, man, od, t, thach"
rules = "$s$m$e, $s$e"
}
name "Celtic female" {
syllablesStart = "Aen, Agno, All, Ba, Beo, Brig, Ci, Cre, Dan, Del, Ela, Eo, En, Er, Et, In, Io, Morr, Nem, Nu, Og, Or, Ta"
syllablesMiddle = "a, ar, ba, bo, ch, d, ig"
syllablesEnd = "ai, an, da, id, iu, ma, me, na, ne, tha"
rules = "$s$m$e, $s$e"
}

View file

@ -0,0 +1,17 @@
//Fantasy names from Jice's "The Cave"
name "Fantasy male" {
syllablesStart = "Aer, An, Ar, Ban, Bar, Ber, Beth, Bett, Cut, Dan, Dar, Dell, Der, Edr, Er, Eth, Ett, Fin, Ian, Iarr, Ill, Jed, Kan, Kar, Ker, Kurr, Kyr, Man, Mar, Mer, Mir, Tsal, Tser, Tsir, Van, Var, Yur, Yyr"
syllablesMiddle = "al, an, ar, el, en, ess, ian, onn, or"
syllablesEnd = "ai, an, ar, ath, en, eo, ian, is, u, or"
illegal = "orar, arrar"
rules = "$s$m$e, $s$e"
}
name "Fantasy female" {
syllablesStart = "Aer, An, Ar, Ban, Bar, Ber, Beth, Bett, Cut, Dan, Dar, Dell, Der, Edr, Er, Eth, Ett, Fin, Ian, Iarr, Ill, Jed, Kan, Kar, Ker, Kurr, Kyr, Man, Mar, Mer, Mir, Tsal, Tser, Tsir, Van, Var, Yur, Yyr"
syllablesMiddle = "al, an, ar, el, en, ess, ian, onn, or"
syllablesEnd = "a, ae, aelle, ai, ea, i, ia, u, wen, wyn"
illegal = "arrar"
rules = "$s$m$e, $s$e"
}

View file

@ -0,0 +1,17 @@
//Mesopotamian names from Jice's "The Cave"
name "Mesopotamian male" {
syllablesStart = "A, Ann, Ash, E', En, Er, Gil, In, Ir, Ish, Mar, Ni, Nin, Re, Ti, Ur"
syllablesMiddle = "am, an, du, esh, gam, gir, ka, ki, li, un, ur, ta"
syllablesEnd = "aki, al, ar, at, du, eph, esh, il, im, ki, nu, uk, ur, uz"
illegal = "aa, e'e"
rules = "$s$m$e, $s$e"
}
name "Mesopotamian female" {
syllablesStart = "A, Ann, Ash, E', En, Er, Gil, In, Ir, Ish, Mar, Ni, Nin, Re, Ti, Ur"
syllablesMiddle = "am, an, du, esh, gam, gir, ka, ki, li, un, ur, ta"
syllablesEnd = "ag, il, la, na, sag, su, ta"
illegal = "aa, e'e"
rules = "$s$m$e, $s$e"
}

View file

@ -0,0 +1,17 @@
//Norse names from Jice's "The Cave"
name "Norse male" {
syllablesStart = "Al, Ae, As, Bi, Fen, Ha, Hag, Ho, Hu, Iv, Jot, Ma, Mio, Mu, Nid, Ors, Ra, Sta, Svar, Tys, Vae, Van, Vol, Y, Ygg"
syllablesMiddle = "an, ar, ba, da, dra, gar, na, tal"
syllablesEnd = "ad, ald, agr, ar, ard, eyr, far, frost, heim, hogg, in, mir, nar, nir, or, osk, rir, sil, sir, ttir, urd"
illegal = "yor, yar, yad, yin"
rules = "$s$m$e, $s$e"
}
name "Norse female" {
syllablesStart = "Al, Ae, As, Bi, Fen, Ha, Hag, Ho, Hu, Iv, Jot, Ma, Mio, Mu, Nid, Ors, Ra, Sta, Svar, Tys, Vae, Van, Vol, Y, Ygg"
syllablesMiddle = "an, ar, ba, da, dra, gar, na, tal"
syllablesEnd = "a, la, li, va"
illegal = "raa, ya, aea, aea"
rules = "$s$m$e, $s$e"
}

View file

@ -0,0 +1,7 @@
//Region names from Jice's "The Cave"
name "region" {
syllablesStart = "Act, Afr, Ag, Agr, Alb, Am, An, Angl, Ant, As, Asys, Asis, At, Atl, Brund, Cath, Cor, Dan, Eb, Eg, Er, Esc, Esp, Est, Eth, Eur, Flor, It, Lyr, Mal, Mir, Myr, Nor, Pel, Rom, Seg, Sib, Sylv, Terr, Tir, Tr, Tyr, Xan"
syllablesMiddle = "ad, ag, al, an, and, ant, anth, ar, ard, as, at, atr, eg, en, ent, ern, et, ian, in, itr, on, op, ov, ur, ymn, yr"
syllablesEnd = "a, aia, ana, as, ea, ene, eos, esia, ia, iad, ias, is, ium, ius, on, ona, or, ova, um, us, ya"
rules = "$s$m$e, $s$e"
}

View file

@ -0,0 +1,6 @@
//Town names from Jice's "The Cave"
name "town" {
syllablesStart = "Ael, Ash, Barrow, Bel, Black, Clear, Cold, Crystal, Deep, Edge, Falcon, Fair, Fall, Glass, Gold, Ice, Iron, Mill, Moon, Mor, Ray, Red, Rock, Rose, Shadow, Silver, Spell, Spring, Stone, Strong, Summer, Swyn, Wester, Winter"
syllablesEnd = "ash, burn, barrow, bridge, castle, cliff, coast, crest, dale, dell, dor, fall, field, ford, fort, gate, haven, hill, hold, hollow, iron, lake, marsh, mill, mist, mount, moor, pond, shade, shore, summer, town, wick"
rules = "$s$e"
}

View file

@ -0,0 +1,16 @@
//Demon names
name "demon male" {
phonemesVocals = "a, e, i, o, u"
syllablesStart = "Aam, Ab, Ad, Ahr, Alas, Al-A'w, All, Al-M, Ap, As, Ast, Az, Bal, Bal S, Bag, Balb, Ban, Bansh, Baph, Barb, Bath, Bazt, Be'L, Beel, Beelz, Bel, Belph, Ber, Bh, Bifr, Biul, Bush, Caac, Cagn, Caim, Chalk, Char, Chem, Coal, Dag, Dant, Decer, Demog, Dev, Dj, Dragh, Elig, Emp, Errt, Etr, Ett, Eur, Euryn, Gorg, Graph, Grig, Haag, Halph, Haur, Hoeth, Ifr, Inc, Ibl, Ith, Kabh, Kas, Kokb', Kray, Lab, Lam, Lech, Leg, Lil, Lioth, Lix, Luc, Mal, Malph, Mamm, March, Mast, Math, Meph, Merm, Mol, Murm, Naam, Naph, Nek, Neph, Neq, Nix, Noud, Onom, Onos, Orc, Orob, Oul, Paim, Phen, Pont, Proc, Rah, Rak, Raksh, Ram, Rang, Raum, Raz, Rimm, Rub, Rus, Sabn, Salps, Sam, Sat, Sc, Scarm, Seer, Sem, Set, Shait, Shax, Shed, Shez, Sidr, Sitr, Sth, Succ, Surg, Tann, Tart, Tch, Teer, Thamm, Thub, Tlal, Tsab, Val, Vap, Vass, Vep, Verr, Vin, Vol, Vual, Xaph, Xiph, Xitr, Zaeb, Zim, Ziz, Zaln"
syllablesMiddle = "b'ae, ba, be, chi, dra, du, ga, ghi, go, lia, ma, mba, mu, n'e, na, nti, nzu, phe, pho, r'e, rba, rgo, ssa, thi, tryu, ttu, tzi, v-e, vna, xra, ya"
syllablesEnd = "b'ael, bel, bub, bur, bus, ces, chus, dai, ddon, des, dhaka, el, fer, flas, gion, gon, gor, klet, kor, ksha, kuth, laas, lech, les, lion, lith, loch, lsu, mael, math, mejes, meus, mon, moth, mmut, mosh, nai, nar, neus, nex, nias, nnin, nomos, phas, r'el, raal, rept, res, rgon, riax, rith, rius, rous, rus, ruth, sias, stor, swath, tath, than, the, thra, tryus, tura, vart, ztuk"
rules = "$s$v$35m$10m$e"
}
name "demon female" {
phonemesVocals = "a, e, i, o, u"
syllablesStart = "Aam, Ab, Ad, Ahr, Alas, Al-A'w, All, Al-M, Ap, As, Ast, Az, Bal, Bal S, Bag, Balb, Ban, Bansh, Baph, Barb, Bath, Bazt, Be'L, Beel, Beelz, Bel, Belph, Ber, Bh, Bifr, Biul, Bush, Caac, Cagn, Caim, Chalk, Char, Chem, Coal, Dag, Dant, Decer, Demog, Dev, Dj, Dragh, Elig, Emp, Errt, Etr, Ett, Eur, Euryn, Gorg, Graph, Grig, Haag, Halph, Haur, Hoeth, Ifr, Inc, Ibl, Ith, Kabh, Kas, Kokb', Kray, Lab, Lam, Lech, Leg, Lil, Lioth, Lix, Luc, Mal, Malph, Mamm, March, Mast, Math, Meph, Merm, Mol, Murm, Naam, Naph, Nek, Neph, Neq, Nix, Noud, Onom, Onos, Orc, Orob, Oul, Paim, Phen, Pont, Proc, Rah, Rak, Raksh, Ram, Rang, Raum, Raz, Rimm, Rub, Rus, Sabn, Salps, Sam, Sat, Sc, Scarm, Seer, Sem, Set, Shait, Shax, Shed, Shez, Sidr, Sitr, Sth, Succ, Surg, Tann, Tart, Tch, Teer, Thamm, Thub, Tlal, Tsab, Val, Vap, Vass, Vep, Verr, Vin, Vol, Vual, Xaph, Xiph, Xitr, Zaeb, Zim, Ziz, Zaln"
syllablesMiddle = "b'ae, ba, be, chi, dra, du, ga, ghi, go, lia, ma, mba, mu, n'e, na, nti, nzu, phe, pho, r'e, rba, rgo, ssa, thi, tryu, ttu, tzi, v-e, vna, xra, ya"
syllablesEnd = "b'a, bel, bua, bure, buth, cess, chia, dai, ddea, dea, dhaka, el, fea, fla, gia, goa, gora, klath, kore, ksha, kua, laal, lexa, less, lia, lith, loth, lsa, mara, math, maja, mea, moa, moth, mmuth, mosh, na, nai, neuth, nex, nia, nnine, nomoa, pha, r'el, raala, repte, reshe, rgona, riaxe, rith, rish, rothe, rushe, ruth, sia, stora, swath, tath, thann, the, thra, trya, tura, varte, ztura"
rules = "$s$v$35m$10m$e"
}

View file

@ -0,0 +1,29 @@
//dwarf names
name "dwarf male" {
syllablesStart = "A, An, Ba, Bi, Bo, Bom, Da, Dar, De, Do, Du, Due, Duer, Dwa, Fa, Fal, Fi, Fre, Fun, Ga, Gar, Gim, Glo, Go, Gom, Gro, Gwar, Ib, Jor, Ka, Ki, Kil, Lo, Mar, Na, Nal, O, Ras, Ren, Ro, Ta, Tar, Tel, Thi, Tho, Thon, Thra, Tor, Von, We, Wer, Yen, Yur"
syllablesEnd = "bil, bin, bur, char, den, dir, dur, fri, fur, in, li, lin, mil, mur, ni, nur, ran, ri, ril, rimm, rin, thur, tri, ulf, un, ur, vi, vil, vim, vin, vri"
rules = "$s$e"
illegal = "rur, ueu"
}
name "dwarf female" {
syllablesStart = "A, An, Ba, Bi, Bo, Bom, Da, Dar, De, Do, Du, Due, Duer, Dwa, Fa, Fal, Fi, Fre, Fun, Ga, Gar, Gim, Glo, Go, Gom, Gro, Gwar, Ib, Jor, Ka, Ki, Kil, Lo, Mar, Na, Nal, O, Ras, Ren, Ro, Ta, Tar, Tel, Thi, Tho, Thon, Thra, Tor, Von, We, Wer, Yen, Yur"
syllablesEnd = "al, ali, ba, bida, bra, da, deth, di, fra, gret, hild, iess, kala, la, laani, li, lona, ma, mae, mala, na, nuda, ra, ta, tala, tu, tuna, vada, vara, ya"
rules = "$s$e"
illegal = "dueal, frefra, grogret"
}
//surnames have semantic information. Here, they're separated into three
//somewhat coherent sets and either is chosen
name "dwarf surname" {
//1st set - smith & Mr.Muscle surnames
syllablesPre = "Boulder, Bronze, Coal, Copper, Gem, Granite, Hammer, Iron, Marble, Metal, Rock, Steel, Stone, Thunder"
syllablesPost = "bender, breaker, carver, club, crusher, cutter, digger, fist, foot, forger, heart, smasher, smith"
//2nd set - warrior surnames
syllablesStart = "Bear, Boar, Dragon, Giant, Goblin, Elf, Ettin, Foe, Kobold, Ogre, Orc,Spider, Troll, Wolf"
syllablesEnd = "bane, basher, _Battler, _Beheader, boxer, _Butcher, choker, cleaver, crusher, cutter, doom, eater, _Executioner, _Fighter, _Garrotter, grapple, _Gutter, hammer, killer, mauler, masher, ripper, slasher, slayer, slicer, smasher, _Strangler, striker, _Wrestler"
//3rd set - heroic and general
phonemesVocals = "Black, Blood, Bronze, Fire, Firm, Grey, Hard, Ice, Iron, Moon, Oak, Onyx, Red, Steel, Stone, Strong, Thunder, White"
phonemesConsonants = "axe, beard, blade, brand, cheek, fist, foot, hair, hammer, hand, head, heart, pick, shield, spear, spike, sword"
rules = "$P$p, $s$e, $v$c"
}

View file

@ -0,0 +1,19 @@
//Norse names. Most of them are syllables extracted from names that
//actually appear in Norse written texts. Norse names consist of two parts,
//which is easy to reflect in a generator such as this one.
name "Mingos Norse male" {
//these are ready-made names
syllablesPre = "Aunn, Bjoern, Bjolfr, Bjorr, Boltr, Byulfr, Erik, Erpr, Eykr, Feitr, Fotr, Froekn, Gaukr, Gauss, Gils, Gimp, Griss, Gyi, Haegwin, Haengr, Hakon, Hand, Harekr, Hattr, Haukr, Helf, Hjalli, Hjaerne, Hjarrandi, Hnaki, Hneitr, Hrafn, Jarl, Karl, Kar-Toki, Kaun, Kilfisr, Kiuli, Knut, Knutr, Krakr, Leifr, Lokki, Manni, Mar, Moegr, Naemr, Nagli, Nef-Bjoern, Njall, Oelfun, Oenn, Oern, Rafn, Roki, Skjalf, Skog, Spjall, Sveinn, Tannr, Trani, Trjonn, Utryggr, Vagn, Varg, Ve-Finnr, Voettr, Vragi, Vrai"
//and these are syllables to stick together
syllablesStart = "Ab, Adal, Adi, Alf, An, And, Ans, Arn, Arm, Ask, Au, Audh, Ba, Bae, Bag, Bal, Bar, Bas, Bein, Berg, Bern, Bjad, Bjarn, Bjart, Boan, Boed, Boerk, Bogg, Bor, Bot, Bram, Bran, Bratt, Brei, Bro, Brunn, Bukk, Dag, Djur, Dor, Duf, Dun, Ed, Ei, Ein, Ekk, Ey, Fa, Fad, Fal, Far, Fast, Fen, Finn, Fjall, Fjoel, Flae, Fol, Folk, Foest, Frey, Frid, Frost, Ful, Fuld, Gaes, Geir, Gag, Gal, Gam, Gar, Gaut, Geir, Ginn, Gis, Gjaf, Gjal, God, Gnaudi, Gny, Gret, Grim, Grom, Grum, Gud, Gull, Gunn, Gutt, Gyll, Gyr, Ha, Haf, Hag, Hagn, Half, Hall, Ham, Har, Haur, Hedin, Hef, Heg, Heil, Hein, Hel, Hildi, Hjall, Hjalm, Hjoer, Hlif, Hloed, Hoeg, Hoegg, Hoer, Hoes, Hol, Holm, Hord, Horn, Hrad, Hrafn, Hring, Hroeng, Hross, Hug, Hul, Hum, Hus, Hvit, Hyr, Igul, Illu, In, Ingi, Is, Ja, Jar, Jarn, Jat, Jo, Joefur, Kjoet, Kol, Kon, Lamb, Lids, Lik, Ljot, Lyd, Nadd, Nef, Odal, Odd, Oeg, Oel, Oen, Oeng, Oes, Rad, Rafn, Ragn, Rask, Reid, Reyr, Roegn, Rok, Run, Sae, Sig, Skae, Skjald, Skjoeld, Skol, Slag, Snae, Soel, Soend, Spjall, Stafn, Stark, Stein, Stig, Stod, Stygg, Styr, Sunn, Svein, Svart, Svarta, Tid, Tindr, Tjoer, Trygg, Tyr, Thyr, Ud, Ulf, Yngv, Vae, Val, Varg, Ve, Ved, Vest, Vetr, Vid, Vig, Vik"
syllablesEnd = "adr, afr, all, andi, arfr, arr, astr, autr, bi, beinn, bert, bjoern, bodi, bodr, bori, brandr, burinn, burt, daenni, dan, di, din, diarfr, dinn, dr, dridr, dur, eifr, eirr, fast, fasti, fastr, fidr, fill, fing, fingr, finnr, fli, fri, frimr, fuss, gall, geir, geirr, gils, gir, gisl, glir, glumr, grimr, gripr, gur, guri, haldr, hegn, hjalmr, hjoefr, hjofr, hoefdi, hoess, hofdi, horir, horr, hoess, hvatr, ilir, ill, ingr, inn, jadr, jarn, jarr, jartan, jartr, joern, jofr, karl, kell, ketill, kirr, kuldr, kull, kundr, kunnr, laugr, lan, leifr, leikr, li, lidi, lidr, lingr, madr, maer, mann, marr, mingr, modr, mr, mund, mundr, nall, narr, nefr, nir, niutr, olfr, ormr, phorr, pli, r, raeifr, radr, rik, rikr, ring, rinn, rir, roedr, rudr, rukr, si, sir, skegg, skeggi, sjall, steinn, styrr, sur, tir, tyr, utr, ulf, ulfr, undr, ungr, urd, urdr, valdr, vandi, vandill, veinr, ver, vett, vi, vidr, vifr, vind, vindr, vi, vini, vir, visl"
rules = "$s$e, %10$P"
illegal = "bjarnbj, gp, vv, aea, aee, aeo, drd"
}
name "Mingos Norse female" {
syllablesStart = "A, Aer, Aerin, Aes, Aet, Afri, Agaer, Ager, Al, Alf, Alm, Arinn, Arn, As, Au, Aud, Bau, Be, Beg, Berg, Bir, Bjol, Bod, Bol, Bor, Borg, Bot, Bri, Brun, Bryn, Bus, Dag, Dis, Dom, Dor, Dot, Dri, Dyr, Ed, Ei, Em, Emb, Engil, Er, Es, Ev, Ey, Fal, Fast, Fin, Fjol, Fjor, Fjot, Folk, Frey, Frid, Frost, Gaut, Geir, Ger, Gil, Ginn, Gis, Gjaf, Gre, Grim, Gud, Gy, Gyd, Haf, Hall, Haur, Hedin, Heil, Heim, Hel, Her, Hidin, Hil, Hildi, Hjalm, Hjor, Hlad, Hlif, Holm, Hrim, Hrod, Hun, Igul, In, Ingi, Ingil, Is, Jar, Jo, Jofur, Jor, Jut, Ljuf, Lofn, Mal, Malm, Mar, Mat, Matt, Mund, Nid, Odd, Ol, Olm, Ot, Rad, Ragn, Rand, Rann, Regin, Run, Sal, Sae, Sig, Skjald, Sol, Stein, Svan, Svein, Tid, Ulf, Vet, Val, Ve, Vig, Vil, Yng"
syllablesEnd = "bjorg, borg, da, dis, disa, disla, dora, eida, erna, fasta, finna, frida, frosta, fura, ga, gard, gauta, geid, gerda, gida, gret, grid, grima, gudr, gunn, gunna, heidr, hilda, ja, la, laug, lina, linn, ma, maer, rida, run, ta, trid, trida, truda, unn, ve, velda, vi, vilda, vina"
illegal = "ii, iei, edeid, tg, ee, vev"
rules = "$s$e"
}

View file

@ -0,0 +1,17 @@
//Names based on syllables from J.R.R. Tolkien's and David Eddings' novels.
name "male" {
phonemesVocals = "a, e, i, o, u, y"
phonemesConsonants = "b, c, ch, ck, cz, d, dh, f, g, gh, h, j, k, kh, l, m, n, p, ph, q, r, rh, s, sh, t, th, ts, tz, v, w, x, z, zh"
syllablesStart = "Aer, Al, Am, An, Ar, Arm, Arth, B, Bal, Bar, Be, Bel, Ber, Bok, Bor, Bran, Breg, Bren, Brod, Cam, Chal, Cham, Ch, Cuth, Dag, Daim, Dair, Del, Dr, Dur, Duv, Ear, Elen, Er, Erel, Erem, Fal, Ful, Gal, G, Get, Gil, Gor, Grin, Gun, H, Hal, Han, Har, Hath, Hett, Hur, Iss, Khel, K, Kor, Lel, Lor, M, Mal, Man, Mard, N, Ol, Radh, Rag, Relg, Rh, Run, Sam, Tarr, T, Tor, Tul, Tur, Ul, Ulf, Unr, Ur, Urth, Yar, Z, Zan, Zer"
syllablesMiddle = "de, do, dra, du, duna, ga, go, hara, kaltho, la, latha, le, ma, nari, ra, re, rego, ro, rodda, romi, rui, sa, to, ya, zila"
syllablesEnd = "bar, bers, blek, chak, chik, dan, dar, das, dig, dil, din, dir, dor, dur, fang, fast, gar, gas, gen, gorn, grim, gund, had, hek, hell, hir, hor, kan, kath, khad, kor, lach, lar, ldil, ldir, leg, len, lin, mas, mnir, ndil, ndur, neg, nik, ntir, rab, rach, rain, rak, ran, rand, rath, rek, rig, rim, rin, rion, sin, sta, stir, sus, tar, thad, thel, tir, von, vor, yon, zor"
rules = "$s$v$35m$10m$e"
}
name "female" {
phonemesVocals = "a, e, i, o, u, y"
syllablesStart = "Ad, Aer, Ar, Bel, Bet, Beth, Ce'N, Cyr, Eilin, El, Em, Emel, G, Gl, Glor, Is, Isl, Iv, Lay, Lis, May, Ner, Pol, Por, Sal, Sil, Vel, Vor, X, Xan, Xer, Yv, Zub"
syllablesMiddle = "bre, da, dhe, ga, lda, le, lra, mi, ra, ri, ria, re, se, ya"
syllablesEnd = "ba, beth, da, kira, laith, lle, ma, mina, mira, na, nn, nne, nor, ra, rin, ssra, ta, th, tha, thra, tira, tta, vea, vena, we, wen, wyn"
rules = "$s$v$35m$10m$e"
}

View file

@ -0,0 +1,9 @@
//Town names. The town name construction is based on real British town names,
//although many starting syllables are made up.
name "Mingos town" {
syllablesPre = "East, Fort, Great, High, Lower, Middle, Mount, New, North, Old, Royal, Saint, South, Upper, West"
syllablesStart = "Ales, Apple, Ash, Bald, Bay, Bed, Bell, Birdling, Black, Blue, Bow, Bran, Brass, Bright, Brown, Bruns, Bulls, Camp, Cherry, Clark, Clarks, Clay, Clear, Copper, Corn, Cross, Crystal, Dark, Deep, Deer, Drac, Eagle, Earth, Elk, Elles, Elm, Ester, Ewes, Fair, Falcon, Ferry, Fire, Fleet, Fox, Gold, Grand, Green, Grey, Guild, Hammer, Hart, Hawks, Hay, Haze, Hazel, Hemlock, Ice, Iron, Kent, Kings, Knox, Layne, Lint, Lor, Mable, Maple, Marble, Mare, Marsh, Mist, Mor, Mud, Nor, Oak, Orms, Ox, Oxen, Pear, Pine, Pitts, Port, Purple, Red, Rich, Roch, Rock, Rose, Ross, Rye, Salis, Salt, Shadow, Silver, Skeg, Smith, Snow, Sows, Spring, Spruce, Staff, Star, Steel, Still, Stock, Stone, Strong, Summer, Swan, Swine, Sword, Yellow, Val, Wart, Water, Well, Wheat, White, Wild, Winter, Wolf, Wool, Wor"
syllablesEnd = "bank, borne, borough, brook, burg, burgh, bury, castle, cester, cliff, crest, croft, dale, dam, dorf, edge, field, ford, gate, grad, hall, ham, hollow, holm, hurst, keep, kirk, land, ley, lyn, mere, mill, minster, mont, moor, mouth, ness, pool, river, shire, shore, side, stead, stoke, ston, thorpe, ton, town, vale, ville, way, wich, wick, wood, worth"
syllablesPost = "Annex, Barrens, Barrow, Corner, Cove, Crossing, Dell, Dales, Estates, Forest, Furnace, Grove, Haven, Heath, Hill, Junction, Landing, Meadow, Park, Plain, Point, Reserve, Retreat, Ridge, Springs, View, Village, Wells, Woods"
rules = "$15P_$s$e_$15p"
}