Initial Commit
This commit is contained in:
commit
d25706163c
34 changed files with 1035 additions and 0 deletions
30
src/dnd_dm_toolkit/utils/languages.py
Normal file
30
src/dnd_dm_toolkit/utils/languages.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
from ..core.enums.game import LanguageRarity
|
||||
from ..core.stuctures.character import Language, Race
|
||||
|
||||
def get_available_languages(
|
||||
race: Race,
|
||||
exclude_secret: bool = True
|
||||
) -> list[Language]:
|
||||
"""
|
||||
Returns languages available for a character to learn.
|
||||
|
||||
Args:
|
||||
race: The character's race.
|
||||
exclude_secret: If True, excludes secret languages (Druidic, Thieves' Cant).
|
||||
|
||||
Returns:
|
||||
List of learnable languages.
|
||||
"""
|
||||
from ..entities.languages import ALL_LANGUAGES
|
||||
|
||||
# Already known languages
|
||||
known = set(race.languages)
|
||||
|
||||
# Available languages
|
||||
available = [
|
||||
lang for lang in ALL_LANGUAGES
|
||||
if lang not in known
|
||||
and (not exclude_secret or lang.rarity != LanguageRarity.SECRET)
|
||||
]
|
||||
|
||||
return available
|
||||
Loading…
Add table
Add a link
Reference in a new issue