Skip to content

Commit

Permalink
Merge pull request #19 from CMDR-WDX/18-mission-count
Browse files Browse the repository at this point in the history
Resolve #18 — Add Optional Mission Counter to UI
  • Loading branch information
CMDR-WDX authored Apr 15, 2023
2 parents 27dbe5c + b7721fe commit 7a106f3
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 3 deletions.
18 changes: 17 additions & 1 deletion massacre/massacre_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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 = [
Expand All @@ -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)
Expand Down
15 changes: 14 additions & 1 deletion massacre/ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -263,15 +268,23 @@ 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

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))
Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.0.4
2.0.5

0 comments on commit 7a106f3

Please sign in to comment.