88 lines
2.1 KiB
Python
88 lines
2.1 KiB
Python
|
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()
|