Files
Untitled-Cat-Game/untitled/screens/house.py

74 lines
3.0 KiB
Python

import time
from untitled import generation, model, persistence, rules, ui
from untitled.screens import inventory, pet
from untitled.screens.common import go_to, options
def house(save: model.Save):
print("Welcome to your house!")
if save.cat.sick or save.cat.depressed:
print(
f"Your cat is {"sick" if save.cat.sick else ""}{" and " if save.cat.sick and save.cat.depressed else ""}{"depressed" if save.cat.depressed else ""}. "
)
while True:
match ui.select(
"What do you want to do?",
[
"Check on your cat",
"View your inventory",
"Feed your cat",
"Pet your cat",
"Go to...",
"Menu",
],
):
case "Check on your cat":
rules.reconcile(save.cat, time.time())
if save.cat.sick or save.cat.depressed:
print(
f"{save.cat.name}: a {"sick" if save.cat.sick else ""}{" and " if save.cat.sick and save.cat.depressed else ""}{"depressed" if save.cat.depressed else ""} cat."
)
else:
print(
f"{save.cat.name}, {generation.generate_trait_sentence(save.cat.traits).lower()}.\nFullness: {round(save.cat.fullness,1)}\nHappiness: {round(save.cat.happiness,1)}"
)
case "View your inventory":
print(f"Money: {save.player.money}")
if any(amount > 0 for amount in save.player.inventory.values()):
inventory.inventory(save)
else:
print("You have no items!")
case "Feed your cat":
if not save.cat.sick:
rules.reconcile(save.cat, time.time())
if rules.feed(save.player, save.cat):
print(
f"You feed {save.cat.name}, {save.cat.name} is now {round(save.cat.fullness,1)}% full."
)
else:
print("You don't have any food!")
else:
print(f"{save.cat.name} is sick!")
case "Pet your cat":
if not save.cat.depressed:
rules.reconcile(save.cat, time.time())
pet.pet(save.cat)
else:
print(f"{save.cat.name} is depressed!")
case "Go to...":
go_to(save)
case "Menu":
result = options()
match result:
case "save":
print("Saving...")
persistence.save(save)
print("Done")
case "savequit":
if ui.confirm("Are you sure you want to quit?"):
print("Saving...")
persistence.save(save)
print("Done")
break