initial import

This commit is contained in:
evilchili
2023-11-24 08:48:03 -05:00
commit 45f4d6e401
66 changed files with 3601 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
### Halfling
Halfings speak a trilling, lilting language with meaning and inflection rooted
in meter. It has proven to be nearly impossisble for most non-Halflings to
master, to the point that most cosmopolitan Halfings choose a Common nickname
by which they are known.
*Siheme'li'ba'e lo'neno'ne'o, mo'tepa'ga'i wezyropi'a lo'se'ni'metyo zevypiwee vyta'mo'a, da'na'jo'lee ti'soe fe'soe!*
**Halfling Names:**
* Hi'rina'pa'no'y Nylao Pe'lawyle'lo'a "Temperate"
* Jo'la'rogi'o Mi'li're'ne'pe'y Terinite've'e "Wise"
* Sa'la're'ta'je'o Re'dya Fetobo'a "Meritorious"
+7
View File
@@ -0,0 +1,7 @@
"""
Halfling
"""
from .base import Language
from .names import Name, NobleName
__all__ = [Language, Name, NobleName]
+54
View File
@@ -0,0 +1,54 @@
from language import types
from .rules import rules
vowels = types.equal_weights(["a'", "e'", "i'", "o'"], 1.0, blank=False) + types.equal_weights(
["a", "e", "i", "o", "y"], 0.5, blank=False
)
consonants = types.WeightedSet(
("b", 0.5),
("d", 0.5),
("f", 0.3),
("g", 0.3),
("h", 0.5),
("j", 0.2),
("l", 1.0),
("m", 0.5),
("n", 1.0),
("p", 0.5),
("r", 1.0),
("s", 1.0),
("t", 1.0),
("v", 0.3),
("w", 0.2),
("z", 0.1),
)
suffixes = types.equal_weights(
[
"a",
"e",
"i",
"o",
"y",
],
1.0,
blank=False,
)
Language = types.Language(
name="halfling",
vowels=vowels,
consonants=consonants,
prefixes=None,
suffixes=suffixes,
syllables=types.SyllableSet(
(types.Syllable(template="consonant,vowel") * 2, 0.5),
(types.Syllable(template="consonant,vowel") * 3, 0.75),
(types.Syllable(template="consonant,vowel") * 4, 1.0),
(types.Syllable(template="consonant,vowel") * 5, 1.0),
),
rules=rules,
minimum_grapheme_count=2,
)
+17
View File
@@ -0,0 +1,17 @@
from language import defaults, types
from language.languages.halfling import Language
class HalflingNameGenerator(types.NameGenerator):
def get_name(self) -> str:
return super().get_name().lower().capitalize()
Name = HalflingNameGenerator(
language=Language,
nicknames=defaults.positive_adjectives,
templates=types.NameSet(
(types.NameTemplate("name,name,name,nickname"), 1.0),
),
)
NobleName = Name
+7
View File
@@ -0,0 +1,7 @@
import logging
from language.rules import default_rules
logger = logging.getLogger()
rules = default_rules