//------------------------------// // GeodeScanner.py // Story: Overpowered // by gapty //------------------------------// from Sensors import sensors from Messenger import send_notification class GeodeScanner: """     A class for scanning and measuring the power levels of the different elements and their respective geodes.     Attributes:     - ELEMENTS: A list of the different elements to be scanned.     - sensors: A dictionary containing lists of sensors for each element.     - current_element: A string representing the currently scanned element.     - current_value: A list representing each of the current sensor values.     - geode_power: An integer representing the power level of the geode. """          ELEMENTS = ['Honesty', 'Kindness', 'Laughter', 'Generosity', 'Loyalty', 'Empathy', 'Magic']     def __init__(self):         self.sensors = {}         self.current_element = ""         self.current_value = {element: 0 for element in self.ELEMENTS}         self.geode_power = 0         self.start_scan = False                  # Initialize sensors for each element         for element in self.ELEMENTS:             self.sensors[element] = Sensors(element)     def stop_scanning(self):         # Stops start_scanning         self.start_scan = False     def start_scanning(self):         # Continuously scans geode elements for changes in power levels until stopped         self.start_scan = True         while self.start_scan:             for element in self.ELEMENTS:                 value = self.sensors[element].get_value()                 if value != self.current_value[element]:                     self.current_value[element] = value                     self.current_element = element                     self.measure_power()     def measure_power(self):         # Measures geode power level and calls function log_data()         self.geode_power = self.sensors[self.current_element].get_value()         self.log_data()     def log_data(self):         # Logs timestamp and geode’s power level to file. Sends notification to Element bearer         log_file = open("Element_logs/" + self.current_element + ".txt", "a")         timestamp = time.strftime("%Y-%m-%d %H:%M:%S")         log_file.write(timestamp + " Power: " + str(self.geode_power) + "\n")         log_file.close()         send_notification(self.current_element, "Your geode’s power level is now " + str(self.geode_power))         send_notification(self.current_element, "Please log your current action for analysis")