from random import choice
from .supportive_functions import (
    generate_female_name,
    generate_male_name,
    generate_surname,
    remove_duplicates,
)


female_prefix = [
    "bal",
    "da",
    "din",
    "dur",
    "fal",
    "gim",
    "gin",
    "gor",
    "hel",
    "in",
    "kil",
    "li",
    "mha",
    "na",
    "nin",
    "ran",
    "sha",
    "thor",
    "tha",
    "zin",
]

female_suffix = [
    "ǎ",
    "dǎ",
    "del",
    "dûr",
    "fa",
    "ga",
    "gal",
    "gan",
    "gard",
    "hild",
    "in",
    "kil",
    "la",
    "lda",
    "lin",
    "ma",
    "mi",
    "na",
    "ra",
    "ri",
    "sa",
    "thi",
    "thra",
    "zǎ",
]


male_prefix = [
    "az",
    "bal",
    "bor",
    "da",
    "dor",
    "du",
    "fa",
    "gar",
    "gim",
    "glo",
    "gra",
    "grom",
    "han",
    "hur",
    "kaz",
    "kil",
    "knar",
    "kri",
    "lur",
    "mak",
    "mor",
    "nar",
    "nor",
    "ri",
    "rok",
    "run",
    "thor",
    "thra",
    "thu",
    "ul",
    "ur",
    "var",
    "vōr",
]

male_suffix = [
    "ain",
    "ǎk",
    "ar",
    "bar",
    "bor",
    "dain",
    "dal",
    "din",
    "dûr",
    "fin",
    "gǎrn",
    "gar",
    "gim",
    "gorn",
    "grim",
    "gûn",
    "gûr",
    "in",
    "kil",
    "korn",
    "li",
    "lin",
    "mar",
    "mir",
    "nar",
    "nûr",
    "rik",
    "rim",
    "rin",
    "ron",
    "rum",
    "thōr",
    "thrin",
    "thûr",
    "um",
    "ûr",
    "var",
    "zin",
]


surname_syllables = [
    "bar",
    "bif",
    "bin",
    "bor",
    "bǎl",
    "dal",
    "dar",
    "dur",
    "fal",
    "fin",
    "gar",
    "gim",
    "gin",
    "gon",
    "gor",
    "grim",
    "gun",
    "gur",
    "har",
    "kar",
    "kaz",
    "khaz",
    "kil",
    "kin",
    "kram",
    "kōr",
    "lok",
    "lor",
    "mag",
    "mak",
    "mar",
    "mir",
    "mur",
    "nar",
    "nim",
    "nor",
    "nûr",
    "rag",
    "rig",
    "rik",
    "rim",
    "ror",
    "rum",
    "tar",
    "thar",
    "thor",
    "thrak",
    "thran",
    "thrur",
    "tor",
    "tur",
    "ur",
    "vol",
    "vor",
]

female_names = [
    "Adrelda",
    "Aldith",
    "Alfhilda",
    "Angrvadis",
    "Arlun",
    "Arvis",
    "Averi",
    "Azska",
    "Baldis",
    "Beldrith",
    "Berga",
    "Berna",
    "Bofri",
    "Brenna",
    "Brimja",
    "Brindis",
    "Brynva",
    "Dagna",
    "Dagnis",
    "Daira",
    "Dalfa",
    "Darrhild",
    "Disja",
    "Djorvi",
    "Dolvi",
    "Dorina",
    "Drenna",
    "Eikva",
    "Elinva",
    "Elma",
    "Embla",
    "Erlina",
    "Faldra",
    "Falja",
    "Firna",
    "Fliss",
    "Frisa",
    "Fylra",
    "Gilda",
    "Gimra",
    "Glindis",
    "Glira",
    "Gorva",
    "Grerda",
    "Grista",
    "Gundis",
    "Gurdis",
    "Gyla",
    "Hadra",
    "Halda",
    "Hamfa",
    "Hervis",
    "Hilda",
    "Hjordis",
    "Hulda",
    "Hulna",
    "Ilma",
    "Imara",
    "Inga",
    "Ingva",
    "Irdra",
    "Jarna",
    "Jofri",
    "Kadra",
    "Kara",
    "Kelda",
    "Kessa",
    "Kilda",
    "Lifa",
    "Lofa",
    "Lyra",
    "Mara",
    "Marni",
    "Milda",
    "Mundis",
    "Nessa",
    "Nidra",
    "Nistra",
    "Norva",
    "Nyra",
    "Odfri",
    "Odna",
    "Olfra",
    "Olva",
    "Orva",
    "Radra",
    "Ragna",
    "Raina",
    "Reinva",
    "Rika",
    "Rinda",
    "Risva",
    "Rivra",
    "Rofri",
    "Rohilda",
    "Runva",
    "Saga",
    "Sigdha",
    "Sigfrida",
    "Siguna",
    "Sindri",
    "Sofra",
    "Solva",
    "Svinva",
    "Synva",
    "Tarja",
    "Theldis",
    "Thelma",
    "Therda",
    "Theris",
    "Thilda",
    "Thora",
    "Threna",
    "Thrista",
    "Thrunva",
    "Tindra",
    "Torva",
    "Trisja",
    "Tryska",
    "Tulda",
    "Unna",
    "Urdra",
    "Valdra",
    "Valma",
    "Vanda",
    "Vangra",
    "Vanva",
    "Varda",
    "Vedra",
    "Veigdis",
    "Verna",
    "Vilda",
    "Vindra",
    "Vinva",
    "Viska",
    "Ylva",
    "Yndra",
    "Yrsa",
    "Ystris",
    "Yurga",
    "Yvinva",
    "Zadra",
    "Zelda",
    "Zessa",
    "Zilda",
    "Zorva",
    "Zyna",
]

male_names = [
    "Adrik",
    "Adrok",
    "Agnor",
    "Aldon",
    "Alrik",
    "Amgar",
    "Angrim",
    "Anvid",
    "Ardon",
    "Argor",
    "Argrin",
    "Arin",
    "Aurin",
    "Axur",
    "Azag",
    "Balder",
    "Balin",
    "Balrik",
    "Barag",
    "Bardin",
    "Barin",
    "Beldor",
    "Belgin",
    "Bofur",
    "Borin",
    "Bralin",
    "Brannar",
    "Brogan",
    "Brogar",
    "Burgur",
    "Burin",
    "Dagin",
    "Dain",
    "Daldor",
    "Dalin",
    "Dargor",
    "Dargur",
    "Deknar",
    "Delgar",
    "Delin",
    "Dolgar",
    "Dolrik",
    "Dorgrim",
    "Dorin",
    "Dragnar",
    "Drar",
    "Dromir",
    "Dror",
    "Dugrim",
    "Dugur",
    "Durin",
    "Dwalin",
    "Edrik",
    "Einar",
    "Eldor",
    "Eldrak",
    "Eldrin",
    "Elrik",
    "Elrin",
    "Eramir",
    "Erdin",
    "Faldin",
    "Faldor",
    "Fardin",
    "Farin",
    "Fili",
    "Folgar",
    "Forin",
    "Frar",
    "Frodin",
    "Frorin",
    "Galar",
    "Gandalf",
    "Gandor",
    "Garor",
    "Gildor",
    "Gimlar",
    "Gimli",
    "Gorim",
    "Gorin",
    "Goror",
    "Gragnar",
    "Grimbur",
    "Grimrik",
    "Gror",
    "Grorin",
    "Gundin",
    "Gunin",
    "Harin",
    "Harinor",
    "Hofar",
    "Hornar",
    "Hugin",
    "Hurgar",
    "Hurin",
    "Ingmar",
    "Ingold",
    "Ironar",
    "Ironin",
    "Kagor",
    "Kagrim",
    "Kalin",
    "Kalinor",
    "Kilin",
    "Kilinor",
    "Kragar",
    "Kragin",
    "Kromar",
    "Kromir",
    "Lodin",
    "Lofar",
    "Lorag",
    "Lorin",
    "Magnar",
    "Mardin",
    "Mardinor",
    "Morgrim",
    "Morin",
    "Nain",
    "Narag",
    "Nardor",
    "Nargor",
    "Nildor",
    "Noldar",
    "Nordin",
    "Nordinor",
    "Norin",
    "Norinor",
    "Ogdar",
    "Ogmar",
    "Orgrim",
    "Orin",
    "Orinor",
    "Othgar",
    "Ragnar",
    "Ragnor",
    "Ralgar",
    "Ramir",
    "Rogar",
    "Rogrim",
    "Rorim",
    "Rorin",
    "Sagor",
    "Sagrim",
    "Thaldin",
    "Thalgur",
    "Tharag",
    "Thardin",
    "Tharin",
    "Thoran",
    "Thorgar",
    "Thorin",
    "Thorinor",
    "Thralin",
    "Thromir",
    "Thror",
    "Thurim",
    "Thurin",
    "Torag",
    "Torin",
    "Ulfgar",
    "Ulrik",
    "Urdin",
    "Urdor",
    "Uthgar",
    "Uthor",
    "Varag",
    "Varin",
    "Vorag",
    "Vorin",
    "Yagor",
    "Yaldir",
    "Yamin",
    "Yaminor",
    "Yodrin",
    "Yorag",
    "Yorin",
    "Zagin",
    "Zagor",
    "Zangar",
    "Zangrim",
    "Zodrin",
    "Zogar",
    "Zogrim",
    "Zorin",
    "Zurgar",
]

surnames = [
    "Amberheart",
    "Amberstone",
    "Ashenbrow",
    "Ashenmantle",
    "Ashenshield",
    "Ashenstone",
    "Ashenvein",
    "Axbasher",
    "Axebringer",
    "Axeforge",
    "Axeheart",
    "Bitterpick",
    "Blackbranch",
    "Blackforge",
    "Blackhand",
    "Blacklock",
    "Blackmantle",
    "Blackrock",
    "Blackstone",
    "Blackvein",
    "Bouldershield",
    "Boulderstone",
    "Coalforge",
    "Cragmail",
    "Cragspine",
    "Cragstone",
    "Darkhammer",
    "Deepdelve",
    "Deepdelver",
    "Deepforge",
    "Deepminer",
    "Deepstone",
    "Doomhelm",
    "Dragonforge",
    "Dragonheart",
    "Earthbreaker",
    "Earthshaker",
    "Earthshaper",
    "Earthshard",
    "Earthsmith",
    "Earthstone",
    "Earthward",
    "Earthwhisper",
    "Emberbeard",
    "Emberspark",
    "Emberstone",
    "Firebrand",
    "Fireforge",
    "Fireheart",
    "Firestrike",
    "Firethane",
    "Fireward",
    "Flamebeard",
    "Flameforge",
    "Frostbeard",
    "Frostbranch",
    "Frostmane",
    "Gemsunder",
    "Gemsunderer",
    "Gemtamer",
    "Gildedhelm",
    "Glimmerbeard",
    "Glowforge",
    "Goldengrip",
    "Goldenmantle",
    "Goldenshaper",
    "Goldenshield",
    "Goldenstrike",
    "Hammersong",
    "Hammerstone",
    "Hammerstrike",
    "Honedblade",
    "Honorbound",
    "Honorforge",
    "Honorforged",
    "Honorshaper",
    "Honorstone",
    "Honorthane",
    "Ironbrew",
    "Ironfist",
    "Ironheart",
    "Ironhelm",
    "Ironshield",
    "Ironthane",
    "Ironvein",
    "Ironward",
    "Ironweaver",
    "Ironwhisper",
    "Ironwind",
    "Jadebeard",
    "Jadegrip",
    "Jadegrove",
    "Jadehelm",
    "Jadestar",
    "Jadestone",
    "Jadethane",
    "Jadetide",
    "Jewelsmith",
    "Jewelstrike",
    "Keenaxe",
    "Keeneye",
    "Kingshaper",
    "Kingshield",
    "Kingsmith",
    "Kingsong",
    "Kingsword",
    "Lightfoot",
    "Lionmantle",
    "Lionroar",
    "Longbeard",
    "Longstride",
    "Lorebeard",
    "Lorehammer",
    "Lorekeeper",
    "Loreward",
    "Loreweaver",
    "Lorewood",
    "Mithrilhelm",
    "Mithrilsmith",
    "Moltenheart",
    "Mountainbrow",
    "Mountainfall",
    "Mountainguard",
    "Mountainhelm",
    "Mountainsmith",
    "Mountainstone",
    "Mountainward",
    "Oakenforge",
    "Oakenshaper",
    "Oakenshield",
    "Oakensong",
    "Oakenstone",
    "Oathbearer",
    "Oathbound",
    "Oathkeeper",
    "Oathsworn",
    "Pikebeard",
    "Pinebranch",
    "Pinegrove",
    "Pinehammer",
    "Pineheart",
    "Pinehewer",
    "Pinerunner",
    "Pinetide",
    "Pinevein",
    "Proudbeard",
    "Proudhammer",
    "Quicksteel",
    "Quickstride",
    "Quickstrike",
    "Rockbreaker",
    "Rockcrusher",
    "Rockjaw",
    "Rocksplitter",
    "Runebeard",
    "Runebearer",
    "Runebinder",
    "Runeforge",
    "Runeguard",
    "Runehammer",
    "Runesmith",
    "Starkstone",
    "Stoneborn",
    "Stonehammer",
    "Stonehelm",
    "Stoneshaper",
    "Stoneshield",
    "Stonestorm",
    "Stonestrike",
    "Stonevein",
    "Stonewhisper",
    "Stoutbeard",
    "Thundereye",
    "Thunderfoot",
    "Thunderforge",
    "Thundershard",
    "Thundershield",
    "Thunderstone",
    "Thunderstorm",
    "Thundertide",
    "Thunderward",
    "Truesteel",
    "Truestrike",
    "Whisperbeard",
    "Whitestone",
    "Whitewind",
    "Whitewood",
    "Wildheart",
    "Wildstone",
    "Wildthane",
    "Wildward",
    "Wildwind",
    "Windgrip",
    "Windhelm",
    "Yewbark",
    "Yewblade",
    "Yewbranch",
    "Yewheart",
    "Yewhelm",
    "Yewmane",
    "Yewshield",
    "Yewstrike",
]

female = generate_female_name(female_prefix, female_suffix, min=1, max=2)
male = generate_male_name(male_prefix, male_suffix, min=1, max=1)
surname = generate_surname(surname_syllables, min=1, max=3)

female_lbr = choice(female_names)
male_lbr = choice(male_names)
surname_lbr = choice(surnames)
