initial import
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
### Infernal
|
||||
|
||||
The language of devils is a collection of gutteral barks that is unmistakable,
|
||||
and unmistakably terrifying, to the ear of common folk. Traditional names
|
||||
typically begin with the name of the ruler of whatever circle of Hell the devil
|
||||
calls home, but some Tieflings (and others of Infernal origin) reject their
|
||||
Infernal legacies and choose less noble names.
|
||||
|
||||
*Z'zait cocf k'd z'xz t'ugoo! Yipd k'j x'euy, z'edu k'oczu!*
|
||||
|
||||
**Infernal Names:**
|
||||
* P'Utufus
|
||||
* Golden Bdaeus
|
||||
* Timeless Ujius
|
||||
|
||||
**Noble Infernal Names:**
|
||||
* Mephistopheles T'Xieis
|
||||
* Asmodeus T'Opakan
|
||||
* Mammon K'Nusan
|
||||
@@ -0,0 +1,7 @@
|
||||
"""
|
||||
Infernal
|
||||
"""
|
||||
from .base import Language
|
||||
from .names import Name, NobleName
|
||||
|
||||
__all__ = [Language, Name, NobleName]
|
||||
@@ -0,0 +1,52 @@
|
||||
from language import defaults, types
|
||||
|
||||
from .rules import rules
|
||||
|
||||
consonants = types.WeightedSet(
|
||||
("b", 1.0),
|
||||
("c", 1.0),
|
||||
("d", 1.0),
|
||||
("f", 0.5),
|
||||
("g", 0.5),
|
||||
("j", 1.0),
|
||||
("k", 1.0),
|
||||
("l", 0.3),
|
||||
("m", 0.3),
|
||||
("n", 0.3),
|
||||
("p", 1.0),
|
||||
("r", 0.2),
|
||||
("s", 0.1),
|
||||
("t", 1.0),
|
||||
("v", 1.0),
|
||||
("x", 1.0),
|
||||
("y", 1.0),
|
||||
("z", 1.0),
|
||||
)
|
||||
|
||||
prefixes = types.equal_weights(
|
||||
[
|
||||
"t'",
|
||||
"x'",
|
||||
"k'",
|
||||
"p'",
|
||||
"z'",
|
||||
],
|
||||
0.5,
|
||||
)
|
||||
|
||||
Language = types.Language(
|
||||
name="infernal",
|
||||
vowels=defaults.vowels,
|
||||
consonants=consonants,
|
||||
prefixes=prefixes,
|
||||
suffixes=None,
|
||||
syllables=types.SyllableSet(
|
||||
(types.Syllable(template="consonant|vowel") * 2, 0.05),
|
||||
(types.Syllable(template="consonant|vowel") * 3, 1.0),
|
||||
(types.Syllable(template="consonant|vowel") * 4, 0.75),
|
||||
(types.Syllable(template="consonant|vowel") * 5, 0.5),
|
||||
(types.Syllable(template="consonant|vowel") * 6, 0.25),
|
||||
),
|
||||
rules=rules,
|
||||
minimum_grapheme_count=2,
|
||||
)
|
||||
@@ -0,0 +1,87 @@
|
||||
from language import types
|
||||
from language.languages.infernal import Language
|
||||
|
||||
adjectives = types.equal_weights(
|
||||
[
|
||||
"eternal",
|
||||
"wondrous",
|
||||
"luminous",
|
||||
"perfect",
|
||||
"essential",
|
||||
"golden",
|
||||
"unfailing",
|
||||
"perpetual",
|
||||
"infinite",
|
||||
"exquisite",
|
||||
"sinless",
|
||||
"ultimate",
|
||||
"flawless",
|
||||
"timeless",
|
||||
"glorious",
|
||||
"absolute",
|
||||
"boundless",
|
||||
"true",
|
||||
"incredible",
|
||||
"virtuous",
|
||||
"supreme",
|
||||
"enchanted",
|
||||
"magnificent",
|
||||
"superior",
|
||||
"spectacular",
|
||||
"divine",
|
||||
],
|
||||
0.25,
|
||||
)
|
||||
|
||||
bloodlines = types.equal_weights(
|
||||
[
|
||||
"Asmodeus",
|
||||
"Baalzebul",
|
||||
"Rimmon",
|
||||
"Dispater",
|
||||
"Fierna",
|
||||
"Glasya",
|
||||
"Levistus",
|
||||
"Mammon",
|
||||
"Mephistopheles",
|
||||
"Zariel",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
class InfernalNameGenerator(types.NameGenerator):
|
||||
def __init__(self):
|
||||
super().__init__(
|
||||
language=Language,
|
||||
templates=types.NameSet(
|
||||
# (types.NameTemplate("adjective,name,nickname,surname"), 1.0),
|
||||
(types.NameTemplate("name"), 0.25),
|
||||
(types.NameTemplate("adjective,name"), 0.25),
|
||||
),
|
||||
adjectives=adjectives,
|
||||
)
|
||||
self.language.minimum_grapheme_count = 2
|
||||
self.suffixes = types.equal_weights(["us", "ius", "eus", "a", "an", "is"], 1.0, blank=False)
|
||||
|
||||
def get_name(self) -> str:
|
||||
return super().get_name() + self.suffixes.random()
|
||||
|
||||
|
||||
class NobleInfernalNameGenerator(types.NameGenerator):
|
||||
def __init__(self):
|
||||
super().__init__(
|
||||
language=Language,
|
||||
templates=types.NameSet(
|
||||
(types.NameTemplate("adjective,name"), 1.0),
|
||||
),
|
||||
adjectives=bloodlines,
|
||||
)
|
||||
self.language.minimum_grapheme_count = 2
|
||||
self.suffixes = types.equal_weights(["us", "ius", "to", "tro", "eus", "a", "an", "is"], 1.0, blank=False)
|
||||
|
||||
def get_name(self) -> str:
|
||||
return super().get_name() + self.suffixes.random()
|
||||
|
||||
|
||||
Name = InfernalNameGenerator()
|
||||
NobleName = NobleInfernalNameGenerator()
|
||||
@@ -0,0 +1,7 @@
|
||||
import logging
|
||||
|
||||
from language.rules import default_rules
|
||||
|
||||
logger = logging.getLogger("infernal-rules")
|
||||
|
||||
rules = default_rules
|
||||
Reference in New Issue
Block a user