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