41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from untitled import PACKAGE_ROOT, generation, model, namegen, rules, ui
|
|
|
|
|
|
def adoption():
|
|
names = []
|
|
with open(PACKAGE_ROOT / "assets" / "cat_names.txt") as f:
|
|
for i in f.readlines():
|
|
names.append(i.strip())
|
|
name_generator = namegen.NameGenerator(names, rules.validate_cat_name)
|
|
print("Welcome to the shelter!")
|
|
while True:
|
|
auto_name = ""
|
|
choice = "Reroll"
|
|
while choice == "Reroll":
|
|
choices = generation.generate_cat_choices()
|
|
choice = ui.select(
|
|
"Please choose a cat to adopt:",
|
|
[ui.Choice(cat[0], cat[1]) for cat in choices] + ["Reroll"],
|
|
)
|
|
|
|
while True:
|
|
name = ui.text(
|
|
'Please choose a name for your cat or type "idk" to autofill a generated one:',
|
|
auto_name,
|
|
)
|
|
if name.lower() != "idk":
|
|
auto_name = ""
|
|
error = rules.validate_cat_name(name)
|
|
if not error:
|
|
break
|
|
print(error)
|
|
else:
|
|
auto_name = name_generator.generate_name().capitalize()
|
|
|
|
if ui.confirm(
|
|
f"Do you want to adopt {name}, {generation.generate_trait_sentence(choice).lower()}?"
|
|
):
|
|
break
|
|
|
|
return model.Cat(name, choice)
|