diff --git a/massacre/massacre_settings.py b/massacre/massacre_settings.py index 9757006..a690ba5 100644 --- a/massacre/massacre_settings.py +++ b/massacre/massacre_settings.py @@ -63,6 +63,15 @@ def display_first_user_help(self): def display_first_user_help(self, value: bool): config.set(f"{self.plugin_name}.display_first_user_help", value) + ####################################### + @property + def display_mission_count(self): + return config.get_bool(f"{self.plugin_name}.display_mission_count", default=True) + + @display_mission_count.setter + def display_mission_count(self, value: bool): + config.set(f"{self.plugin_name}.display_mission_count", value) + ####################################### def __init__(self, plugin_name: str): self.plugin_name = plugin_name @@ -83,6 +92,8 @@ def notify_about_changes(self, data: dict[str, tk.Variable]): self.overlay_enabled = data["overlay_enabled"].get() if "overlay_ttl" in keys: self.overlay_ttl = data['overlay_ttl'].get() + if "display_mission_count" in keys: + self.display_mission_count = data['display_mission_count'].get() for listener in self.config_changed_listeners: listener(self) @@ -125,6 +136,9 @@ def build_settings_ui(root: nb.Notebook) -> tk.Frame: tk.IntVar(value=configuration.display_sum_row) __setting_changes["display_ratio_and_cr_per_kill_row"] = \ tk.IntVar(value=configuration.display_ratio_and_cr_per_kill_row) + __setting_changes["display_mission_count"] = \ + tk.IntVar(value=configuration.display_mission_count) + nb.Label(frame, text="UI Settings", pady=10).grid(sticky=tk.W, padx=title_offset) ui_settings_checkboxes = [ @@ -133,7 +147,9 @@ def build_settings_ui(root: nb.Notebook) -> tk.Frame: nb.Checkbutton(frame, text="Display Sum-Row", variable=__setting_changes["display_sum_row"]), nb.Checkbutton(frame, text="Display Summary-Row", - variable=__setting_changes["display_ratio_and_cr_per_kill_row"]) + variable=__setting_changes["display_ratio_and_cr_per_kill_row"]), + nb.Checkbutton(frame, text="Display Mission Count", + variable=__setting_changes["display_mission_count"]) ] for entry in ui_settings_checkboxes: entry.grid(columnspan=2, padx=checkbox_offset, sticky=tk.W) diff --git a/massacre/ui.py b/massacre/ui.py index 1ac0ab0..1cb661b 100644 --- a/massacre/ui.py +++ b/massacre/ui.py @@ -78,6 +78,10 @@ def __init__(self, massacre_state: dict[int, MassacreMission]): """ How much the player should expect in Wing-Missions """ + self.mission_count = len(massacre_state.values()) + """ + How many (massacre) missions does the user currently have. + """ for mission in massacre_state.values(): mission_giver = mission.source_faction @@ -143,6 +147,7 @@ def __init__(self, config: Configuration): self.sum = config.display_delta_column self.delta = config.display_delta_column self.summary = config.display_ratio_and_cr_per_kill_row + self.mission_count = config.display_mission_count def __get_row_width(settings: GridUiSettings) -> int: @@ -263,8 +268,11 @@ def _display_data(frame: tk.Frame, data: MassacreMissionData, settings: GridUiSe if settings.summary: __display_summary(frame, data, settings, row_pointer) row_pointer += 1 - full_width = __get_row_width(settings) + if settings.mission_count: + __display_mission_count(frame, data, full_width, row_pointer) + row_pointer += 1 + for warning in data.warnings: __display_warning(frame, warning, full_width, row_pointer) row_pointer += 1 @@ -272,6 +280,11 @@ def _display_data(frame: tk.Frame, data: MassacreMissionData, settings: GridUiSe return row_pointer +def __display_mission_count(frame: tk.Frame, data: MassacreMissionData, width: int, row: int): + label = tk.Label(frame, text=f"Mission Count: {data.mission_count}/20") + label.config(fg="white") + label.grid(column=0, columnspan=width, row=row, sticky=tk.W) + def _display_outdated_version(frame: tk.Frame, settings: GridUiSettings, row: int) -> int: sub_frame = tk.Frame(frame) sub_frame.grid(row=row, column=0, columnspan=__get_row_width(settings)) diff --git a/version b/version index 2165f8f..e010258 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.0.4 +2.0.5