Mainloop+house

This commit is contained in:
2026-04-11 17:40:34 -04:00
parent f38fd535fb
commit 6b23548b26
3 changed files with 43 additions and 4 deletions

View File

@@ -1,5 +1,6 @@
import json import json
from data.cat import Cat from data.cat import Cat
import os
class SaveData: class SaveData:
@@ -9,7 +10,9 @@ class SaveData:
def save(cat): def save(cat):
with open(f"{cat.name}.kitten", "w") as f: if not os.path.exists("saves"):
os.mkdir("saves")
with open(f"saves/{cat.name}.kitten", "w") as f:
json.dump(cat.to_dict(), f) json.dump(cat.to_dict(), f)

28
game.py
View File

@@ -1,6 +1,6 @@
from data.cat import Cat from data.cat import Cat
from systems.ui import clear, title from systems.ui import clear, title
from systems.world import shelter from systems.world import shelter, house
import systems.ui as ui import systems.ui as ui
import data.save import data.save
@@ -17,8 +17,30 @@ class Game:
self.game_loop() self.game_loop()
def game_loop(self): def game_loop(self):
# TODO: make while True:
pass match ui.select("Please choose an option", ["Go to your house", "Options"]):
case "Go to your house":
house(self.cat)
case "Options":
while True:
match ui.select(
"Please choose an option",
["Save", "Save and quit", "Quit", "Back"],
):
case "Save":
data.save.save(self.cat)
case "Save and quit":
print("Goodbye!")
data.save.save(self.cat)
return
case "Quit":
if ui.confirm(
"Are you sure you want to quit without saving?"
):
print("Goodbye!")
return
case "Back":
break
def run(self): def run(self):
title() title()

View File

@@ -65,3 +65,17 @@ def shelter(include_welcome=True):
return shelter(include_welcome=False) return shelter(include_welcome=False)
print(f"You pick up {name}, {name} is ready to leave the shelter.") print(f"You pick up {name}, {name} is ready to leave the shelter.")
return Cat(name, traits) return Cat(name, traits)
def house(cat: Cat):
print("Welcome to your house!")
while True:
match ui.select(
"Please choose an option", ["Check on your cat", "Leave your house"]
):
case "Check on your cat":
print(
f"{cat.name} - a {cat.traits["size"]} {cat.traits["color"]} with {cat.traits["eyes"]} eyes"
)
case "Leave your house":
break