# # Petcard Application - v1.0 # Copyright (c) 2025 FreedTapestry21 # # Licensed under the MIT license # # # Importing libraries # import sys, json, machine, _thread, time, random # Import SYSTEM module import system # # Classes # # Main system & application controller class Application: def __init__(self, config_manager, logger, pet, display_driver, display, input_controller, ui, power): self.config_manager = config_manager self.logger = logger self.pet = pet self.display_driver = display_driver self.display = display self.input_controller = input_controller self.ui = ui self.power = power # Initializes all system components def initialize(self): self.logger.log("Initializing Petcard System...", 3) self.display.initialize() self.logger.log("Initializing Petcard health manager...", 3) _thread.start_new_thread(self._pet_health_manager, ()) self.logger.log("System initialization complete", 3) # Main system loop def run(self): try: self.initialize() # Create main menu main_menu_items = [ system.MenuItem("Food", self._action, "f"), system.MenuItem("Drinks", self._action, "d"), system.MenuItem("Play", self._action, "p"), system.MenuItem("Save", self._save), system.MenuItem("Sleep", self.power.sleep) ] main_menu = system.Menu(main_menu_items, self.logger) # Main menu loop while True: selected_item = self.ui.show_menu(main_menu) if selected_item: result = selected_item.execute() except Exception as e: self.logger.log(f"System error: {e}", 0) self.power.shutdown("System encountered an error") # Defines what to do when a certain action is triggered def _action(self, act): if act == "f": self.pet.nom("pancakes", 10) elif act == "d": self.pet.slurp("water", 10) elif act == "p": self.pet.play("petted", 10) else: self.logger.log(f"Invalid action {act}", 1) return def _save(self): self.logger.log("Saving game progression...", 4) self.config_manager.save_config() self.logger.log("Game progression has been saved!", 4) def _pet_health_manager(self): while True: time.sleep(random.randint(10, 60)) self.pet.wombicombi() # # End Of File (EOF) #