Added Pet class and made a final demo

This commit is contained in:
Bo⋆˚✿˖° 2025-09-24 13:25:21 +02:00
parent faf0b2973c
commit b2470eac16
Signed by: FreedTapestry21
GPG key ID: 5E19D8C7E935C480
3 changed files with 71 additions and 21 deletions

View file

@ -9,7 +9,7 @@
# Importing libraries
#
import sys, json, machine
import sys, json, machine, _thread, time, random
# Import SYSTEM module
import system
@ -20,9 +20,10 @@ import system
# Main system & application controller
class Application:
def __init__(self, config_manager, logger, display_driver, display, input_controller, ui, power):
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
@ -33,10 +34,12 @@ class Application:
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):
def run(self):
try:
self.initialize()
@ -45,6 +48,7 @@ class Application:
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)
]
@ -55,25 +59,32 @@ class Application:
selected_item = self.ui.show_menu(main_menu)
if selected_item:
result = selected_item.execute()
if result == "exit":
break
except Exception as e:
self.logger.log(f"System error: {e}", 0)
self.power.exit_system("System encountered an error")
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.logger.log("Food!", 3)
self.pet.nom("pancakes", 10)
elif act == "d":
self.logger.log("Drink!", 3)
self.pet.slurp("water", 10)
elif act == "p":
self.logger.log("Play!", 3)
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)
#