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

female_prefix = [
    "ar",
    "bal",
    "bar",
    "bran",
    "dar",
    "dran",
    "feth",
    "gras",
    "har",
    "jaf",
    "kar",
    "krul",
    "mar",
    "nar",
    "par",
    "rak",
    "ras",
    "sar",
    "tar",
    "thas",
    "thul",
    "war",
    "yas",
    "zar",
]


female_suffix = [
    "a",
    "ah",
    "al",
    "an",
    "ar",
    "ara",
    "as",
    "ath",
    "aun",
    "aya",
    "az",
    "da",
    "dal",
    "dan",
    "dar",
    "de",
    "del",
    "din",
    "dra",
    "du",
    "dul",
    "e",
    "eh",
    "el",
    "en",
    "er",
    "eth",
    "i",
    "ia",
    "il",
    "in",
    "ir",
    "is",
    "ish",
    "ith",
    "l",
    "la",
    "le",
    "lin",
    "ma",
    "mal",
    "man",
    "mar",
    "na",
    "nah",
    "nal",
    "nan",
    "ne",
    "neh",
    "nir",
    "ra",
    "rah",
    "ral",
    "ran",
    "re",
    "reh",
    "ri",
    "rin",
    "sa",
    "sal",
    "san",
    "se",
    "sel",
    "sha",
    "shal",
    "shan",
    "she",
    "shen",
    "si",
    "sin",
    "ta",
    "tal",
    "tan",
    "te",
    "tel",
    "ti",
    "tin",
    "va",
    "val",
    "van",
    "ve",
    "vel",
    "vi",
    "vin",
    "ya",
    "yah",
    "yal",
    "yan",
    "ye",
    "yel",
    "yi",
    "yin",
    "za",
    "zal",
    "zan",
    "ze",
    "zel",
    "zi",
    "zin",
]

male_prefix = [
    "ba",
    "bal",
    "bek",
    "bo",
    "bor",
    "bro",
    "dar",
    "del",
    "dra",
    "en",
    "er",
    "far",
    "fel",
    "gol",
    "gra",
    "ha",
    "har",
    "ho",
    "hor",
    "kar",
    "kel",
    "kor",
    "ku",
    "kur",
    "lar",
    "lek",
    "lok",
    "ma",
    "mar",
    "mo",
    "mor",
    "nar",
    "nel",
    "nor",
    "o",
    "or",
    "ra",
    "ran",
    "ro",
    "ron",
    "sa",
    "sar",
    "so",
    "sor",
    "ta",
    "tar",
    "to",
    "tor",
    "ur",
    "us",
    "va",
    "var",
    "vo",
    "vor",
]

male_suffix = [
    "ak",
    "ar",
    "ek",
    "el",
    "en",
    "er",
    "ik",
    "ir",
    "is",
    "ith",
    "ok",
    "or",
    "os",
    "oth",
    "uk",
    "ul",
    "un",
    "ur",
    "us",
    "uth",
    "yk",
    "yr",
    "ys",
]


surname_prefix = [
    "an",
    "bak",
    "blak",
    "bol",
    "bran",
    "bruk",
    "dar",
    "del",
    "dor",
    "erik",
    "fel",
    "gol",
    "grak",
    "gul",
    "har",
    "hel",
    "hor",
    "jor",
    "kar",
    "kel",
    "kha",
    "kol",
    "kor",
    "krul",
    "kul",
    "lar",
    "lek",
    "mor",
    "mur",
    "nal",
    "nul",
    "phel",
    "por",
    "rak",
    "ruk",
    "sar",
    "sel",
    "sol",
    "tar",
    "tel",
    "thel",
    "tol",
    "tor",
    "ul",
    "vak",
    "val",
    "var",
    "ver",
    "vol",
    "vor",
    "wol",
    "yor",
    "zol",
]

# Harry Potter-based surname suffixes
surname_suffix = [
    "aak",
    "ak",
    "an",
    "ar",
    "ek",
    "en",
    "er",
    "ik",
    "in",
    "ir",
    "ok",
    "on",
    "ong",
    "or",
    "uk",
    "un",
    "ur",
]
female_names = [
    "Agthar",
    "Akkrona",
    "Aldrava",
    "Algrima",
    "Andra",
    "Aragrima",
    "Balgrava",
    "Balvara",
    "Baronda",
    "Beldra",
    "Bolgrima",
    "Boltha",
    "Brudella",
    "Brundella",
    "Calgrava",
    "Cragara",
    "Dandrella",
    "Dargonda",
    "Delgara",
    "Dolgonda",
    "Dorgrima",
    "Drivara",
    "Droglima",
    "Drombella",
    "Dugrana",
    "Eldra",
    "Eldraga",
    "Elgrima",
    "Elgrona",
    "Endra",
    "Ergrima",
    "Ertharra",
    "Fagrima",
    "Falvara",
    "Fimvara",
    "Folgrima",
    "Folgronda",
    "Frandra",
    "Frogrima",
    "Frundella",
    "Gagonda",
    "Galdra",
    "Galgrana",
    "Galgrima",
    "Garvara",
    "Geldra",
    "Globarra",
    "Golgrima",
    "Gondra",
    "Gorgrima",
    "Grigara",
    "Gromvara",
    "Grondra",
    "Grundra",
    "Haldra",
    "Halgrava",
    "Halgrima",
    "Haronda",
    "Heldra",
    "Holgara",
    "Holgonda",
    "Hugrava",
    "Hurgrima",
    "Hurvara",
    "Igdra",
    "Ignarra",
    "Ilgara",
    "Ilgrima",
    "Ingoldra",
    "Jalgrima",
    "Jalgronda",
    "Jogara",
    "Jurgara",
    "Kalgonda",
    "Kalgrava",
    "Kalgrima",
    "Kargrima",
    "Kelgrima",
    "Kolgara",
    "Kolvara",
    "Krugonda",
    "Lagrima",
    "Lalgrima",
    "Landra",
    "Lodrava",
    "Logrima",
    "Lugrana",
    "Magonda",
    "Maldra",
    "Malgrava",
    "Malgrima",
    "Meldra",
    "Mogara",
    "Molvara",
    "Naldrava",
    "Nalgronda",
    "Nargara",
    "Nargrima",
    "Nelgronda",
    "Noldra",
    "Nolgara",
    "Ogonda",
    "Olgara",
    "Olgrima",
    "Otharra",
    "Pandrella",
    "Peldra",
    "Polgrima",
    "Prundra",
    "Qalgrima",
    "Quogara",
    "Ragonda",
    "Ragrima",
    "Raldra",
    "Ralgrima",
    "Relgrima",
    "Roganda",
    "Rogvara",
    "Rugrana",
    "Rugrima",
    "Sagrima",
    "Saldra",
    "Salgara",
    "Sildra",
    "Sogara",
    "Solgrima",
    "Sorvara",
    "Tagonda",
    "Talgrava",
    "Talgrima",
    "Tandrella",
    "Telgrima",
    "Togonda",
    "Tolgara",
    "Tugrava",
    "Uldra",
    "Ulgrima",
    "Urgara",
    "Vagrima",
    "Valgronda",
    "Vandrella",
    "Veldra",
    "Vilgrima",
    "Voldra",
    "Wagrima",
    "Waldra",
    "Walvara",
    "Wolgara",
    "Wolgrana",
    "Xalgrima",
    "Xandra",
    "Xolgonda",
    "Yalgrima",
    "Yalgronda",
    "Yoldra",
    "Yolgara",
    "Zagrima",
    "Zalgrima",
    "Zeldra",
    "Zogara",
    "Zolgonda",
    "Zugrava",
]

male_names = [
    "Aggron",
    "Aldrek",
    "Argrim",
    "Avalg",
    "Avalk",
    "Baelgor",
    "Baldrum",
    "Barak",
    "Barkul",
    "Bjorn",
    "Bolgor",
    "Bolthar",
    "Borak",
    "Bromar",
    "Bromir",
    "Brondar",
    "Bronn",
    "Burgul",
    "Colbrand",
    "Dagrund",
    "Dakkor",
    "Dargul",
    "Dorgul",
    "Drokmar",
    "Drokthar",
    "Dromgar",
    "Dromir",
    "Dromm",
    "Eitri",
    "Eldgrim",
    "Eldor",
    "Eldrim",
    "Eldur",
    "Elgrim",
    "Eltan",
    "Elvar",
    "Fargrim",
    "Fellgor",
    "Flintrock",
    "Forgrim",
    "Fornir",
    "Forok",
    "Forrik",
    "Fragnar",
    "Gargul",
    "Garrak",
    "Garruk",
    "Garthok",
    "Garvik",
    "Gathok",
    "Gorkon",
    "Grenthar",
    "Hakkar",
    "Haldor",
    "Harkon",
    "Harok",
    "Harvar",
    "Havok",
    "Heldor",
    "Hrimnir",
    "Ingar",
    "Ingrum",
    "Ingvar",
    "Ivor",
    "Ivrek",
    "Ivrik",
    "Jarn",
    "Jarnok",
    "Jorrin",
    "Jotgar",
    "Jotnar",
    "Jotrik",
    "Jotunn",
    "Karok",
    "Karrok",
    "Karvik",
    "Korak",
    "Korgrim",
    "Kragh",
    "Kraghmar",
    "Kraglok",
    "Kragthor",
    "Kromm",
    "Lodur",
    "Lokgar",
    "Loknir",
    "Lokthar",
    "Lokur",
    "Lugnar",
    "Lugnur",
    "Lugrik",
    "Lurak",
    "Maulgar",
    "Mogrund",
    "Molgar",
    "Molgrim",
    "Molrik",
    "Molthar",
    "Morgon",
    "Morgrom",
    "Morkul",
    "Nargul",
    "Narvok",
    "Narzug",
    "Nordak",
    "Norgar",
    "Norin",
    "Norkar",
    "Norkul",
    "Norn",
    "Ogmund",
    "Orgron",
    "Orin",
    "Orvak",
    "Orvar",
    "Othgar",
    "Othok",
    "Othrik",
    "Polaris",
    "Ragnik",
    "Ragnor",
    "Rathgar",
    "Rathok",
    "Ravagor",
    "Rokar",
    "Skalm",
    "Skarr",
    "Skorgul",
    "Skuldir",
    "Skullgrim",
    "Thokk",
    "Thorgar",
    "Thorgon",
    "Thorgrak",
    "Thorgrim",
    "Thorngrim",
    "Thragor",
    "Threk",
    "Ulfar",
    "Ulfgar",
    "Urthak",
    "Urtok",
    "Uthok",
    "Uthrik",
    "Uthrok",
    "Uthvar",
    "Valkur",
    "Valnor",
    "Vargrim",
    "Vargul",
    "Varnok",
    "Vorag",
    "Vorak",
    "Vorgrim",
    "Vorlok",
    "Vorn",
    "Ymir",
    "Zanril",
    "Zarkor",
    "Zarvik",
    "Zogrim",
    "Zorgar",
    "Zorgrim",
    "Zugrim",
    "Zugthor",
    "Zulgar",
    "Zulgrim",
]

surnames = [
    "the Abomination",
    "the Annihilator",
    "the Behemoth",
    "the Berserker",
    "the Blade",
    "the Bloodthirsty",
    "the Breaker",
    "the Brutal",
    "the Brute",
    "the Butcher",
    "the Cataclysm",
    "the Chaos",
    "the Colossus",
    "the Conqueror",
    "the Corruptor",
    "the Cruel",
    "the Crusher",
    "the Dark",
    "the Deathbringer",
    "the Demolisher",
    "the Desecrator",
    "the Desolator",
    "the Despoiler",
    "the Destroyer",
    "the Devastator",
    "the Devourer",
    "the Diabolical",
    "the Dire",
    "the Dominator",
    "the Dread",
    "the Executioner",
    "the Ferocious",
    "the Fierce",
    "the Formidable",
    "the Fury",
    "the Goliath",
    "the Grim",
    "the Hateful",
    "the Havoc",
    "the Impaler",
    "the Implacable",
    "the Indomitable",
    "the Insatiable",
    "the Intimidator",
    "the Invincible",
    "the Juggernaut",
    "the Maleficent",
    "the Malevolent",
    "the Malicious",
    "the Malignant",
    "the Marauder",
    "the Mauler",
    "the Menace",
    "the Menacer",
    "the Merciless",
    "the Nefarious",
    "the Nightmare",
    "the Obliterator",
    "the Oblivion",
    "the Oppressor",
    "the Overlord",
    "the Pounder",
    "the Ravager",
    "the Reaper",
    "the Reaver",
    "the Relentless",
    "the Ruiner",
    "the Ruler",
    "the Ruthless",
    "the Savage",
    "the Scourge",
    "the Sinister",
    "the Slammer",
    "the Slasher",
    "the Slayer",
    "the Smasher",
    "the Stomper",
    "the Storm",
    "the Terror",
    "the Thunder",
    "the Treacherous",
    "the Twisted",
    "the Tyrant",
    "the Unrelenting",
    "the Unstoppable",
    "the Unyielding",
    "the Vanquisher",
    "the Venomous",
    "the Vicious",
    "the Vile",
    "the Warbringer",
    "the Warlord",
    "the Wicked",
]

female = generate_female_name(female_prefix, female_suffix, min=0, max=1)
male = generate_male_name(male_prefix, male_suffix, min=0, max=1)
surname = generate_surname_less(surname_prefix, surname_suffix)

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