from data.cat import Cat from systems.ui import clear, title from systems.world import shelter, house import systems.ui as ui import data.save import os class Game: def __init__(self): self.cat = None def settings(self): while True: match ui.select( "Please choose an option", ["Prepare for savefile transfer", "Back"] ): case "Back": return False case "Prepare for savefile transfer": print( "This tool is for transfering your savefile to another device without causing the tamper detection." ) print( "If you confirm, the game will save and then exit, at this point you will copy your game files and saves folder over." ) print( "DO NOT RELAUNCH THE GAME before copying or it will undo this tool" ) if ui.confirm(): data.save.save(self.cat) return True return False def options_menu(self): while True: match ui.select( "Please choose an option", ["Save", "Save and quit", "Quit", "Settings", "Back"], ): case "Save": data.save.save(self.cat) print("Saved") case "Save and quit": print("Goodbye!") data.save.save(self.cat) return True case "Quit": if ui.confirm("Are you sure you want to quit without saving?"): print("Goodbye!") return True case "Settings": if self.settings(): return True case "Back": return False def new_game(self): self.cat = shelter() print("Saving...") data.save.save(self.cat) print("Save complete.") self.game_loop() def game_loop(self): while True: match ui.select("Please choose an option", ["Go to your house", "Options"]): case "Go to your house": house(self.cat) case "Options": if self.options_menu(): return def run(self): if os.path.exists("ENABLE DEBUG"): with open("ENABLE DEBUG", "r") as f: file = f.read().strip() if file: self.cat = data.save.load(file) self.game_loop() print(f"{self.cat.name} says bye") return title() options = ["New Game", "Quit"] if os.path.exists("saves"): options.insert(0, "Load Game") print("Welcome to Whiskerbound!") choice = ui.select("Please choose an option", choices=options) if choice == "New Game": self.new_game() elif choice == "Load Game": save = "saves/" + ui.select( "Please choose a savefile to load", os.listdir("saves") ) self.cat = data.save.load(save) self.game_loop() elif choice == "Quit": quit() if __name__ == "__main__": game = Game() game.run()