|
@@ -27,10 +27,9 @@ class PanelUnits(wx.Panel):
|
|
|
-------
|
|
-------
|
|
|
populate_unit_list(event)
|
|
populate_unit_list(event)
|
|
|
Populates the unit list.
|
|
Populates the unit list.
|
|
|
-
|
|
|
|
|
"""
|
|
"""
|
|
|
|
|
|
|
|
- _selected_unit = None
|
|
|
|
|
|
|
+ _sel_unit = None
|
|
|
_unit_list = None
|
|
_unit_list = None
|
|
|
_filter_name_text = None
|
|
_filter_name_text = None
|
|
|
_filter_torage_check = None
|
|
_filter_torage_check = None
|
|
@@ -57,7 +56,6 @@ class PanelUnits(wx.Panel):
|
|
|
Panel parent.
|
|
Panel parent.
|
|
|
id : int, optional
|
|
id : int, optional
|
|
|
ID for the panel (default wx.ID_ANY).
|
|
ID for the panel (default wx.ID_ANY).
|
|
|
-
|
|
|
|
|
"""
|
|
"""
|
|
|
|
|
|
|
|
# Parent constructor
|
|
# Parent constructor
|
|
@@ -65,475 +63,251 @@ class PanelUnits(wx.Panel):
|
|
|
|
|
|
|
|
# Prepare some fonts
|
|
# Prepare some fonts
|
|
|
title_font = wx.Font(
|
|
title_font = wx.Font(
|
|
|
- pointSize=16, family=wx.FONTFAMILY_DEFAULT,
|
|
|
|
|
- style=wx.FONTSTYLE_NORMAL, weight=wx.FONTWEIGHT_BOLD
|
|
|
|
|
|
|
+ 16, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD
|
|
|
)
|
|
)
|
|
|
subtitle_font = wx.Font(
|
|
subtitle_font = wx.Font(
|
|
|
- pointSize=14, family=wx.FONTFAMILY_DEFAULT,
|
|
|
|
|
- style=wx.FONTSTYLE_NORMAL, weight=wx.FONTWEIGHT_BOLD
|
|
|
|
|
|
|
+ 12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD
|
|
|
)
|
|
)
|
|
|
bold_font = wx.Font(
|
|
bold_font = wx.Font(
|
|
|
- pointSize=10, family=wx.FONTFAMILY_DEFAULT,
|
|
|
|
|
- style=wx.FONTSTYLE_NORMAL, weight=wx.FONTWEIGHT_BOLD
|
|
|
|
|
|
|
+ 10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD
|
|
|
)
|
|
)
|
|
|
monospace_font = wx.Font(
|
|
monospace_font = wx.Font(
|
|
|
- pointSize=10, family=wx.FONTFAMILY_TELETYPE,
|
|
|
|
|
- style=wx.FONTSTYLE_NORMAL, weight=wx.FONTWEIGHT_NORMAL
|
|
|
|
|
|
|
+ 10, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL
|
|
|
)
|
|
)
|
|
|
monospace_font_bold = wx.Font(
|
|
monospace_font_bold = wx.Font(
|
|
|
- pointSize=10, family=wx.FONTFAMILY_TELETYPE,
|
|
|
|
|
- style=wx.FONTSTYLE_NORMAL, weight=wx.FONTWEIGHT_BOLD
|
|
|
|
|
|
|
+ 10, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD
|
|
|
)
|
|
)
|
|
|
monospace_font_italic = wx.Font(
|
|
monospace_font_italic = wx.Font(
|
|
|
- pointSize=10, family=wx.FONTFAMILY_TELETYPE,
|
|
|
|
|
- style=wx.FONTSTYLE_ITALIC, weight=wx.FONTWEIGHT_NORMAL
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ 10, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ # Sizer diagrams:
|
|
|
|
|
+ # panel_sizer (V)
|
|
|
|
|
+ # unit_list_sizer (V)
|
|
|
|
|
+ # unit_list_filter_sizer(V)
|
|
|
|
|
+ # unit_details_sizer (V)
|
|
|
|
|
+ # unit_info_sizer (H)
|
|
|
|
|
+ # unit_info_text_sizer (V)
|
|
|
|
|
+ # unit_runes_sizer (H)
|
|
|
|
|
+
|
|
|
|
|
+ # Create global sizer
|
|
|
|
|
+ panel_sizer = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
|
+ unit_list_sizer = wx.StaticBoxSizer(wx.VERTICAL, self, "Select unit:")
|
|
|
|
|
+ unit_list_filter_sizer = wx.StaticBoxSizer(
|
|
|
|
|
+ wx.VERTICAL, unit_list_sizer.GetStaticBox(), "Filers:"
|
|
|
|
|
+ )
|
|
|
|
|
+ self._unit_details_sizer = wx.BoxSizer(wx.VERTICAL)
|
|
|
|
|
+ unit_info_sizer = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
|
+ unit_info_text_sizer = wx.BoxSizer(wx.VERTICAL)
|
|
|
|
|
+ unit_runes_sizer = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
|
+ rune_sizer = wx.GridSizer(2, 3, (10, 10))
|
|
|
|
|
+
|
|
|
|
|
+ unit_runes_sizer.Add(rune_sizer, 1, wx.ALIGN_BOTTOM|wx.BOTTOM|wx.RIGHT, 10)
|
|
|
|
|
+ unit_info_sizer.Add(unit_info_text_sizer, 0)
|
|
|
|
|
+ self._unit_details_sizer.Add(unit_info_sizer, 0)
|
|
|
|
|
+ panel_sizer.Add(unit_list_sizer, 0, wx.EXPAND)
|
|
|
|
|
+ panel_sizer.Add(self._unit_details_sizer, 0, wx.LEFT, 20)
|
|
|
|
|
+ self.SetSizer(panel_sizer)
|
|
|
|
|
|
|
|
# Unit selectable list
|
|
# Unit selectable list
|
|
|
- unit_list_box = wx.StaticBox(
|
|
|
|
|
- self, label="Select unit:", id=wx.ID_ANY, pos=(0, 0), size=(210, 590)
|
|
|
|
|
- )
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=unit_list_box, id=wx.ID_ANY,
|
|
|
|
|
- label="Name Prio. Sto.",
|
|
|
|
|
- pos=(10, 10), size=(190, 20)
|
|
|
|
|
- ).SetFont(bold_font)
|
|
|
|
|
self._unit_list = wx.ListCtrl(
|
|
self._unit_list = wx.ListCtrl(
|
|
|
- parent=unit_list_box, id=wx.ID_ANY, pos=(10, 30), size=(190, 380),
|
|
|
|
|
- style=wx.LC_REPORT|wx.LC_NO_HEADER
|
|
|
|
|
|
|
+ unit_list_sizer.GetStaticBox(), style=wx.LC_REPORT, size=(220, 0)
|
|
|
)
|
|
)
|
|
|
- self._unit_list.InsertColumn(0, "Name", width=120)
|
|
|
|
|
- self._unit_list.InsertColumn(1, "Prio.", width=40)
|
|
|
|
|
|
|
+ unit_list_sizer.Add(self._unit_list, 1, wx.EXPAND)
|
|
|
|
|
+ self._unit_list.InsertColumn(0, "Name", width=110)
|
|
|
|
|
+ self._unit_list.InsertColumn(1, "Prio.", width=30)
|
|
|
self._unit_list.InsertColumn(2, "Sto.", width=30)
|
|
self._unit_list.InsertColumn(2, "Sto.", width=30)
|
|
|
|
|
+ self._unit_list.InsertColumn(3, "", width=0)
|
|
|
self._unit_list.Bind(wx.EVT_LIST_ITEM_SELECTED, self._unit_selected)
|
|
self._unit_list.Bind(wx.EVT_LIST_ITEM_SELECTED, self._unit_selected)
|
|
|
|
|
|
|
|
# List filters
|
|
# List filters
|
|
|
- filterBox = wx.StaticBox(
|
|
|
|
|
- parent=self, label="Filters:", id=wx.ID_ANY,
|
|
|
|
|
- pos=(10, 430), size=(190, 150)
|
|
|
|
|
- )
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=filterBox, label="Monster name", pos=(5, 5), size=(180, 20)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ unit_list_filter_sizer.Add(
|
|
|
|
|
+ wx.StaticText(
|
|
|
|
|
+ unit_list_filter_sizer.GetStaticBox(), label="Monster name"
|
|
|
|
|
+ ), 0, wx.LEFT, 5
|
|
|
)
|
|
)
|
|
|
self._filter_name_text = wx.TextCtrl(
|
|
self._filter_name_text = wx.TextCtrl(
|
|
|
- parent=filterBox, id=wx.ID_ANY, value="", pos=(5, 25),
|
|
|
|
|
- size=(177, 20), style=wx.TE_PROCESS_ENTER|wx.TE_PROCESS_TAB
|
|
|
|
|
|
|
+ unit_list_filter_sizer.GetStaticBox()
|
|
|
|
|
+ )
|
|
|
|
|
+ unit_list_filter_sizer.Add(
|
|
|
|
|
+ self._filter_name_text, 1, wx.EXPAND|wx.LEFT|wx.RIGHT, 5
|
|
|
)
|
|
)
|
|
|
self._filter_name_text.Bind(wx.EVT_TEXT, self.populate_unit_list)
|
|
self._filter_name_text.Bind(wx.EVT_TEXT, self.populate_unit_list)
|
|
|
self._filter_storage_check = wx.CheckBox(
|
|
self._filter_storage_check = wx.CheckBox(
|
|
|
- parent=filterBox, id=wx.ID_ANY,
|
|
|
|
|
- label="Monsters in storage", pos=(5, 55), size=(180, 20)
|
|
|
|
|
|
|
+ unit_list_filter_sizer.GetStaticBox(), label="Monsters in storage"
|
|
|
)
|
|
)
|
|
|
|
|
+ unit_list_filter_sizer.Add(self._filter_storage_check)
|
|
|
self._filter_storage_check.SetValue(True)
|
|
self._filter_storage_check.SetValue(True)
|
|
|
self._filter_storage_check.Bind(
|
|
self._filter_storage_check.Bind(
|
|
|
wx.EVT_CHECKBOX, self.populate_unit_list
|
|
wx.EVT_CHECKBOX, self.populate_unit_list
|
|
|
)
|
|
)
|
|
|
self.filterNoRunesCheck = wx.CheckBox(
|
|
self.filterNoRunesCheck = wx.CheckBox(
|
|
|
- parent=filterBox, id=wx.ID_ANY,
|
|
|
|
|
- label="Monsters without runes", pos=(5, 75), size=(180, 20)
|
|
|
|
|
|
|
+ unit_list_filter_sizer.GetStaticBox(), label="Monsters without runes"
|
|
|
)
|
|
)
|
|
|
|
|
+ unit_list_filter_sizer.Add(self.filterNoRunesCheck)
|
|
|
self.filterNoRunesCheck.SetValue(True)
|
|
self.filterNoRunesCheck.SetValue(True)
|
|
|
self.filterNoRunesCheck.Bind(
|
|
self.filterNoRunesCheck.Bind(
|
|
|
wx.EVT_CHECKBOX, self.populate_unit_list
|
|
wx.EVT_CHECKBOX, self.populate_unit_list
|
|
|
)
|
|
)
|
|
|
self._filter_no_teams_check = wx.CheckBox(
|
|
self._filter_no_teams_check = wx.CheckBox(
|
|
|
- parent=filterBox, id=wx.ID_ANY,
|
|
|
|
|
- label="Monsters not in teams", pos=(5, 95), size=(180, 20)
|
|
|
|
|
|
|
+ parent=unit_list_filter_sizer.GetStaticBox(),
|
|
|
|
|
+ label="Monsters not in teams"
|
|
|
)
|
|
)
|
|
|
|
|
+ unit_list_filter_sizer.Add(self._filter_no_teams_check)
|
|
|
self._filter_no_teams_check.SetValue(True)
|
|
self._filter_no_teams_check.SetValue(True)
|
|
|
self._filter_no_teams_check.Bind(
|
|
self._filter_no_teams_check.Bind(
|
|
|
wx.EVT_CHECKBOX, self.populate_unit_list
|
|
wx.EVT_CHECKBOX, self.populate_unit_list
|
|
|
)
|
|
)
|
|
|
self.populate_unit_list(None)
|
|
self.populate_unit_list(None)
|
|
|
-
|
|
|
|
|
- # Sizer for all the unit details. It will be hidden until a unit is
|
|
|
|
|
- # selected.
|
|
|
|
|
- self._details_sizer = wx.BoxSizer(wx.VERTICAL)
|
|
|
|
|
|
|
+ unit_list_sizer.Add(
|
|
|
|
|
+ unit_list_filter_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
# Unit name
|
|
# Unit name
|
|
|
- self._name_label = wx.StaticText(
|
|
|
|
|
- parent=self, label="", pos=(240, 0), size=(120, 30)
|
|
|
|
|
- )
|
|
|
|
|
- self._details_sizer.Add(self._name_label)
|
|
|
|
|
|
|
+ self._name_label = wx.StaticText(self, size=(170, 60))
|
|
|
self._name_label.SetFont(title_font)
|
|
self._name_label.SetFont(title_font)
|
|
|
|
|
+ unit_info_text_sizer.Add(self._name_label, 0, wx.EXPAND)
|
|
|
|
|
|
|
|
#Unit details
|
|
#Unit details
|
|
|
- self._stars_label = wx.StaticText(
|
|
|
|
|
- parent=self, label="", pos=(250, 30), size=(120, 100)
|
|
|
|
|
- )
|
|
|
|
|
- self._stars_label.SetFont(title_font)
|
|
|
|
|
- self._details_sizer.Add(self._stars_label)
|
|
|
|
|
- self._level_label = wx.StaticText(
|
|
|
|
|
- parent=self, label="", pos=(250, 60), size=(120, 100)
|
|
|
|
|
- )
|
|
|
|
|
- self._details_sizer.Add(self._level_label)
|
|
|
|
|
|
|
+ self._stars_label = wx.StaticText(self)
|
|
|
|
|
+ self._stars_label.SetFont(subtitle_font)
|
|
|
|
|
+ unit_info_text_sizer.Add(self._stars_label, 0, wx.LEFT, 10)
|
|
|
|
|
+ self._level_label = wx.StaticText(self)
|
|
|
|
|
+ unit_info_text_sizer.Add(self._level_label, 0, wx.LEFT, 10)
|
|
|
self._level_label.SetFont(subtitle_font)
|
|
self._level_label.SetFont(subtitle_font)
|
|
|
- self._priority_label = wx.StaticText(
|
|
|
|
|
- parent=self, label="", pos=(250, 90), size=(120, 100)
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ self._priority_label = wx.StaticText(self)
|
|
|
self._priority_label.SetFont(subtitle_font)
|
|
self._priority_label.SetFont(subtitle_font)
|
|
|
- self._details_sizer.Add(self._priority_label)
|
|
|
|
|
- self._id_label = wx.StaticText(
|
|
|
|
|
- parent=self, label="", pos=(250, 120), size=(120, 100)
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ unit_info_text_sizer.Add(self._priority_label, 0, wx.LEFT, 10)
|
|
|
|
|
+ self._id_label = wx.StaticText(parent=self)
|
|
|
self._id_label.SetFont(subtitle_font)
|
|
self._id_label.SetFont(subtitle_font)
|
|
|
- self._details_sizer.Add(self._id_label)
|
|
|
|
|
-
|
|
|
|
|
- # Button to go to the ptimizer
|
|
|
|
|
- optimize_button = wx.Button(
|
|
|
|
|
- parent=self, id=wx.ID_ANY, pos=(700, 520), size=(120, 50),
|
|
|
|
|
- style=wx.LC_REPORT, label="Optimize"
|
|
|
|
|
- )
|
|
|
|
|
- self._details_sizer.Add(optimize_button)
|
|
|
|
|
- optimize_button.Bind(wx.EVT_BUTTON, self._go_to_optimizer)
|
|
|
|
|
|
|
+ unit_info_text_sizer.Add(self._id_label, 0, wx.LEFT, 10)
|
|
|
|
|
|
|
|
# Stats table
|
|
# Stats table
|
|
|
- self._stat_grid = wx.grid.Grid(
|
|
|
|
|
- parent=self, id=wx.ID_ANY, pos=(520, 00), size=(195, 220)
|
|
|
|
|
- )
|
|
|
|
|
- self._details_sizer.Add(self._stat_grid)
|
|
|
|
|
- self._stat_grid.CreateGrid(
|
|
|
|
|
- numRows=10, numCols=2
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ self._stat_grid = wx.grid.Grid(self)
|
|
|
|
|
+ unit_info_sizer.Add(self._stat_grid, 0, wx.LEFT, 10)
|
|
|
|
|
+ self._stat_grid.CreateGrid(10, 2)
|
|
|
self._stat_grid.EnableEditing(False)
|
|
self._stat_grid.EnableEditing(False)
|
|
|
self._stat_grid.SetDefaultCellAlignment(
|
|
self._stat_grid.SetDefaultCellAlignment(
|
|
|
horiz=wx.ALIGN_RIGHT, vert=wx.ALIGN_CENTRE
|
|
horiz=wx.ALIGN_RIGHT, vert=wx.ALIGN_CENTRE
|
|
|
)
|
|
)
|
|
|
self._stat_grid.SetDefaultCellFont(monospace_font)
|
|
self._stat_grid.SetDefaultCellFont(monospace_font)
|
|
|
- self._stat_grid.SetColSize(col=0, width=80)
|
|
|
|
|
- self._stat_grid.SetColLabelValue(col=0, value="Base")
|
|
|
|
|
- self._stat_grid.SetColSize(col=1, width=80)
|
|
|
|
|
- self._stat_grid.SetColLabelValue(col=1, value="Current")
|
|
|
|
|
- self._stat_grid.SetRowLabelSize(width=35)
|
|
|
|
|
- self._stat_grid.SetColLabelSize(height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=0, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=1, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=2, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=3, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=4, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=5, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=6, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=7, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=8, height=20)
|
|
|
|
|
- self._stat_grid.SetRowSize(row=9, height=20)
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=0, value=" HP")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=1, value="ATK")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=2, value="DEF")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=3, value="SPD")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=4, value="CRR")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=5, value="CRD")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=6, value="RES")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=7, value="ACC")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=8, value="EHP")
|
|
|
|
|
- self._stat_grid.SetRowLabelValue(row=9, value="DMG")
|
|
|
|
|
|
|
+ self._stat_grid.SetColSize(0, 80)
|
|
|
|
|
+ self._stat_grid.SetColLabelValue(0, "Base")
|
|
|
|
|
+ self._stat_grid.SetColSize(1, 80)
|
|
|
|
|
+ self._stat_grid.SetColLabelValue(1, "Current")
|
|
|
|
|
+ self._stat_grid.SetRowLabelSize(35)
|
|
|
|
|
+ self._stat_grid.SetColLabelSize(20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(0, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(1, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(2, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(3, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(4, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(5, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(6, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(7, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(8, 20)
|
|
|
|
|
+ self._stat_grid.SetRowSize(9, 20)
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(0, " HP")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(1, "ATK")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(2, "DEF")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(3, "SPD")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(4, "CRR")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(5, "CRD")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(6, "RES")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(7, "ACC")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(8, "EHP")
|
|
|
|
|
+ self._stat_grid.SetRowLabelValue(9, "DMG")
|
|
|
|
|
|
|
|
# Team list
|
|
# Team list
|
|
|
- team_box = wx.StaticBox(
|
|
|
|
|
- parent=self, label="Teams:",id=wx.ID_ANY,
|
|
|
|
|
- pos=(730, 0), size=(160, 220)
|
|
|
|
|
- )
|
|
|
|
|
- self._details_sizer.Add(team_box)
|
|
|
|
|
|
|
+ team_box = wx.StaticBox(self, label="Teams:", size=(160, 220))
|
|
|
|
|
+ unit_info_sizer.Add(team_box, 0, wx.LEFT, 10)
|
|
|
self._teams_label = wx.StaticText(
|
|
self._teams_label = wx.StaticText(
|
|
|
- parent=team_box, label="", pos=(5, 5), size=(135, 190)
|
|
|
|
|
|
|
+ team_box, pos=(5, 15), size=(115, 190)
|
|
|
)
|
|
)
|
|
|
monospace_font.PointSize -= 2
|
|
monospace_font.PointSize -= 2
|
|
|
self._teams_label.SetFont(monospace_font)
|
|
self._teams_label.SetFont(monospace_font)
|
|
|
monospace_font.PointSize += 2
|
|
monospace_font.PointSize += 2
|
|
|
|
|
|
|
|
- # Rune list
|
|
|
|
|
- rune_box_list = [
|
|
|
|
|
- wx.StaticBox(
|
|
|
|
|
- parent=self, label="Slot1:",id=wx.ID_ANY,
|
|
|
|
|
- pos=(365, 225), size=(130, 170)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticBox(
|
|
|
|
|
- parent=self, label="Slot2:",id=wx.ID_ANY,
|
|
|
|
|
- pos=(510, 225), size=(130, 170)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticBox(
|
|
|
|
|
- parent=self, label="Slot3:",id=wx.ID_ANY,
|
|
|
|
|
- pos=(510, 400), size=(130, 170)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticBox(
|
|
|
|
|
- parent=self, label="Slot4:",id=wx.ID_ANY,
|
|
|
|
|
- pos=(365, 400), size=(130, 170)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticBox(
|
|
|
|
|
- parent=self, label="Slot5:",id=wx.ID_ANY,
|
|
|
|
|
- pos=(220, 400), size=(130, 170)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticBox(
|
|
|
|
|
- parent=self, label="Slot6:",id=wx.ID_ANY,
|
|
|
|
|
- pos=(220, 225), size=(130, 170)
|
|
|
|
|
- )
|
|
|
|
|
- ]
|
|
|
|
|
-
|
|
|
|
|
- self._set_label_list = [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 0), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 0), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 0), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 0), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 0), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 0), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- ]
|
|
|
|
|
-
|
|
|
|
|
- self._id_label_list = [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 15), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 15), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 15), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 15), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 15), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 15), size=(130, 10)
|
|
|
|
|
- )
|
|
|
|
|
- ]
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
- self._main_label_list = [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 35), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 35), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 35), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 35), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 35), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 35), size=(130, 10)
|
|
|
|
|
- )
|
|
|
|
|
- ]
|
|
|
|
|
-
|
|
|
|
|
- self._innate_label_list = [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 50), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 50), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 50), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 50), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 50), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 50), size=(130, 10)
|
|
|
|
|
- )
|
|
|
|
|
- ]
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- self._stat_label_list = [
|
|
|
|
|
- [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 70), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 85), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 100), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 115), size=(130, 10)
|
|
|
|
|
|
|
+ # Rune list
|
|
|
|
|
+ rune_box_list = []
|
|
|
|
|
+ for i in range(0, 6):
|
|
|
|
|
+ rune_box_list.append(
|
|
|
|
|
+ wx.StaticBoxSizer(wx.VERTICAL, self, "Slot" + str(i) + ":")
|
|
|
)
|
|
)
|
|
|
- ],
|
|
|
|
|
- [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 70), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 85), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 100), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 115), size=(130, 10)
|
|
|
|
|
|
|
+ rune_sizer.AddMany((
|
|
|
|
|
+ rune_box_list[5], rune_box_list[0], rune_box_list[1],
|
|
|
|
|
+ rune_box_list[4], rune_box_list[3], rune_box_list[2]
|
|
|
|
|
+ ))
|
|
|
|
|
+
|
|
|
|
|
+ self._set_label_list = []
|
|
|
|
|
+ self._id_label_list = []
|
|
|
|
|
+ self._main_label_list = []
|
|
|
|
|
+ self._innate_label_list = []
|
|
|
|
|
+ self._stat_label_list = [[], [], [], [], [], []]
|
|
|
|
|
+ self._eff_label_list = []
|
|
|
|
|
+ for i in range(0, 6):
|
|
|
|
|
+ self._set_label_list.append(
|
|
|
|
|
+ wx.StaticText(rune_box_list[i].GetStaticBox(), size=(130, 13))
|
|
|
)
|
|
)
|
|
|
- ],
|
|
|
|
|
- [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 70), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 85), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 100), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 115), size=(130, 10)
|
|
|
|
|
|
|
+ rune_box_list[i].Add(self._set_label_list[i], 0, wx.LEFT, 3)
|
|
|
|
|
+ self._id_label_list.append(
|
|
|
|
|
+ wx.StaticText(rune_box_list[i].GetStaticBox())
|
|
|
)
|
|
)
|
|
|
- ],
|
|
|
|
|
- [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 70), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 85), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 100), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 115), size=(130, 10)
|
|
|
|
|
|
|
+ rune_box_list[i].Add(self._id_label_list[i], 0, wx.LEFT, 5)
|
|
|
|
|
+ rune_box_list[i].Add(
|
|
|
|
|
+ wx.StaticLine(rune_box_list[i].GetStaticBox(), size=(130, 1)), 0
|
|
|
)
|
|
)
|
|
|
- ],
|
|
|
|
|
- [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 70), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 85), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 100), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 115), size=(130, 10)
|
|
|
|
|
|
|
+ self._main_label_list.append(
|
|
|
|
|
+ wx.StaticText(rune_box_list[i].GetStaticBox(), size=(130, 13))
|
|
|
)
|
|
)
|
|
|
- ],
|
|
|
|
|
- [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 70), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 85), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 100), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 115), size=(130, 10)
|
|
|
|
|
|
|
+ rune_box_list[i].Add(self._main_label_list[i], 0, wx.LEFT, 3)
|
|
|
|
|
+ self._innate_label_list.append(
|
|
|
|
|
+ wx.StaticText(rune_box_list[i].GetStaticBox(), size=(130, 13))
|
|
|
)
|
|
)
|
|
|
- ]
|
|
|
|
|
- ]
|
|
|
|
|
- self._eff_label_list = [
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[0], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 135), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[1], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 135), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[2], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 135), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[3], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 135), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[4], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 135), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- wx.StaticText(
|
|
|
|
|
- parent=rune_box_list[5], id=wx.ID_ANY, label="",
|
|
|
|
|
- pos=(5, 135), size=(130, 10)
|
|
|
|
|
- ),
|
|
|
|
|
- ]
|
|
|
|
|
- for i in range(0, 6):
|
|
|
|
|
- # Separators
|
|
|
|
|
- wx.StaticLine(
|
|
|
|
|
- parent=rune_box_list[i], id=wx.ID_ANY,
|
|
|
|
|
- pos=(0, 30), size=(130, 1), style=wx.LC_REPORT
|
|
|
|
|
|
|
+ rune_box_list[i].Add(
|
|
|
|
|
+ self._innate_label_list[i], 0, wx.LEFT|wx.BOTTOM, 3
|
|
|
|
|
+ )
|
|
|
|
|
+ for j in range(0, 4):
|
|
|
|
|
+ self._stat_label_list[i].append(wx.StaticText(
|
|
|
|
|
+ rune_box_list[i].GetStaticBox(), size=(130, 13)
|
|
|
|
|
+ ))
|
|
|
|
|
+ rune_box_list[i].Add(
|
|
|
|
|
+ self._stat_label_list[i][j], 0, wx.LEFT, 3
|
|
|
|
|
+ )
|
|
|
|
|
+ rune_box_list[i].Add(
|
|
|
|
|
+ wx.StaticLine(rune_box_list[i].GetStaticBox(), size=(130, 1)), 0
|
|
|
|
|
+ )
|
|
|
|
|
+ self._eff_label_list.append(
|
|
|
|
|
+ wx.StaticText(rune_box_list[i].GetStaticBox(), size=(130, 13))
|
|
|
)
|
|
)
|
|
|
- wx.StaticLine(
|
|
|
|
|
- parent=rune_box_list[i], id=wx.ID_ANY,
|
|
|
|
|
- pos=(0, 135), size=(130, 1), style=wx.LC_REPORT
|
|
|
|
|
|
|
+ rune_box_list[i].Add(
|
|
|
|
|
+ self._eff_label_list[i], 0, wx.LEFT|wx.BOTTOM, 3
|
|
|
)
|
|
)
|
|
|
|
|
+
|
|
|
# Set fonts
|
|
# Set fonts
|
|
|
- rune_box_list[i].SetFont(monospace_font)
|
|
|
|
|
|
|
+ rune_box_list[i].GetStaticBox().SetFont(monospace_font)
|
|
|
self._eff_label_list[i].SetFont(monospace_font_italic)
|
|
self._eff_label_list[i].SetFont(monospace_font_italic)
|
|
|
self._main_label_list[i].SetFont(monospace_font_bold)
|
|
self._main_label_list[i].SetFont(monospace_font_bold)
|
|
|
self._innate_label_list[i].SetFont(monospace_font_italic)
|
|
self._innate_label_list[i].SetFont(monospace_font_italic)
|
|
|
- # Add boxes to sizer
|
|
|
|
|
- self._details_sizer.Add(rune_box_list[i])
|
|
|
|
|
|
|
+
|
|
|
|
|
+ # Button to go to the ptimizer
|
|
|
|
|
+ #button_sizer = wx.BoxSizer(wx.VERTICAL)
|
|
|
|
|
+ optimize_button = wx.Button(self, size=(120, 50), label="Optimize")
|
|
|
|
|
+ #button_sizer.Add(0, 200, 1)
|
|
|
|
|
+ #button_sizer.Add(optimize_button, wx.ALIGN_BOTTOM|wx.RIGHT, 30)
|
|
|
|
|
+ #button_sizer.Add(0, 200, 1)
|
|
|
|
|
+ unit_runes_sizer.Add(optimize_button, 0, wx.ALIGN_BOTTOM|wx.BOTTOM, 30)
|
|
|
|
|
+ #unit_runes_sizer.Add(10, 0, 1)
|
|
|
|
|
+ optimize_button.Bind(wx.EVT_BUTTON, self._go_to_optimizer)
|
|
|
|
|
+ self._unit_details_sizer.Add(unit_runes_sizer, wx.EXPAND)
|
|
|
|
|
|
|
|
# By default, hide all optimization options
|
|
# By default, hide all optimization options
|
|
|
- self._details_sizer.ShowItems(False)
|
|
|
|
|
|
|
+ self._unit_details_sizer.ShowItems(False)
|
|
|
|
|
+ self.Layout()
|
|
|
|
|
|
|
|
|
|
|
|
|
def populate_unit_list(self, event=None):
|
|
def populate_unit_list(self, event=None):
|
|
@@ -571,9 +345,7 @@ class PanelUnits(wx.Panel):
|
|
|
self._unit_list.SetItem(i, 2, "X")
|
|
self._unit_list.SetItem(i, 2, "X")
|
|
|
else:
|
|
else:
|
|
|
self._unit_list.SetItem(i, 2, " ")
|
|
self._unit_list.SetItem(i, 2, " ")
|
|
|
- # TODO Items can't hold too much data in Windows, store the first
|
|
|
|
|
- # nine digits and rerieve it from database with LIKE
|
|
|
|
|
- self._unit_list.SetItemData(i, int(unit.id))
|
|
|
|
|
|
|
+ self._unit_list.SetItem(i, 3, unit.id)
|
|
|
i = i + 1
|
|
i = i + 1
|
|
|
|
|
|
|
|
def _go_to_optimizer(self, event = None):
|
|
def _go_to_optimizer(self, event = None):
|
|
@@ -586,7 +358,7 @@ class PanelUnits(wx.Panel):
|
|
|
|
|
|
|
|
"""
|
|
"""
|
|
|
self.GetParent().panel_optimizer.select_unit(
|
|
self.GetParent().panel_optimizer.select_unit(
|
|
|
- event=None, unit_id=self._selected_unit.id
|
|
|
|
|
|
|
+ None, self._sel_unit.id
|
|
|
)
|
|
)
|
|
|
self.GetParent().ChangeSelection(2)
|
|
self.GetParent().ChangeSelection(2)
|
|
|
|
|
|
|
@@ -601,134 +373,95 @@ class PanelUnits(wx.Panel):
|
|
|
The event that triggered the call (default is None).
|
|
The event that triggered the call (default is None).
|
|
|
|
|
|
|
|
"""
|
|
"""
|
|
|
- unit_id = \
|
|
|
|
|
- str(self._unit_list.GetItemData(self._unit_list.GetFirstSelected()))
|
|
|
|
|
|
|
|
|
|
- self._selected_unit = data.UNITS[unit_id]
|
|
|
|
|
|
|
+ unit_id = self._unit_list.GetItem(
|
|
|
|
|
+ self._unit_list.GetFirstSelected(), 3
|
|
|
|
|
+ ).GetText()
|
|
|
|
|
+
|
|
|
|
|
+ self._sel_unit = data.UNITS[unit_id]
|
|
|
|
|
|
|
|
# Set label
|
|
# Set label
|
|
|
- self._name_label.SetLabel(self._selected_unit.name)
|
|
|
|
|
|
|
+ self._name_label.SetLabel(self._sel_unit.name)
|
|
|
stars_label_text = ""
|
|
stars_label_text = ""
|
|
|
- for i in range(0, self._selected_unit.stars):
|
|
|
|
|
|
|
+ for i in range(0, self._sel_unit.stars):
|
|
|
stars_label_text += "\u272D"
|
|
stars_label_text += "\u272D"
|
|
|
self._stars_label.SetLabel(stars_label_text)
|
|
self._stars_label.SetLabel(stars_label_text)
|
|
|
- self._level_label.SetLabel("Lv. " + str(self._selected_unit.level))
|
|
|
|
|
|
|
+ self._level_label.SetLabel("Lv. " + str(self._sel_unit.level))
|
|
|
self._priority_label.SetLabel(
|
|
self._priority_label.SetLabel(
|
|
|
- "Priority: " + str(self._selected_unit.priority)
|
|
|
|
|
|
|
+ "Priority: " + str(self._sel_unit.priority)
|
|
|
)
|
|
)
|
|
|
- self._id_label.SetLabel("#" + self._selected_unit.id)
|
|
|
|
|
- self._details_sizer.ShowItems(True)
|
|
|
|
|
|
|
+ self._id_label.SetLabel("#" + self._sel_unit.id)
|
|
|
|
|
+ self._unit_details_sizer.ShowItems(True)
|
|
|
|
|
+ self.Layout()
|
|
|
|
|
+
|
|
|
|
|
|
|
|
# Populate stats
|
|
# Populate stats
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=0, col=0, s=str(self._selected_unit.base_stats.hp)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=0, col=1, s=str(self._selected_unit.stats.hp)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=1, col=0, s=str(self._selected_unit.base_stats.atk)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=1, col=1, s=str(self._selected_unit.stats.atk)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=2, col=0, s=str(self._selected_unit.base_stats.dfc)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=2, col=1, s=str(self._selected_unit.stats.dfc)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=3, col=0, s=str(self._selected_unit.base_stats.spd)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=3, col=1, s=str(self._selected_unit.stats.spd)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=4, col=0, s=str(self._selected_unit.base_stats.crr)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=4, col=1, s=str(self._selected_unit.stats.crr)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=5, col=0, s=str(self._selected_unit.base_stats.crd)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=5, col=1, s=str(self._selected_unit.stats.crd)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=6, col=0, s=str(self._selected_unit.base_stats.res)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=6, col=1, s=str(self._selected_unit.stats.res)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=7, col=0, s=str(self._selected_unit.base_stats.acc)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=7, col=1, s=str(self._selected_unit.stats.acc)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=8, col=0, s=str(self._selected_unit.base_stats.ehp)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=8, col=1, s=str(self._selected_unit.stats.ehp)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=9, col=0, s=str(self._selected_unit.base_stats.dmg)
|
|
|
|
|
- )
|
|
|
|
|
- self._stat_grid.SetCellValue(
|
|
|
|
|
- row=9, col=1, s=str(self._selected_unit.stats.dmg)
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ base_stats = self._sel_unit.base_stats.values()
|
|
|
|
|
+ curr_stats = self._sel_unit.stats.values()
|
|
|
|
|
+ for i in range(0, 10):
|
|
|
|
|
+ b_stat = str(base_stats[i])
|
|
|
|
|
+ c_stat = str(base_stats[i])
|
|
|
|
|
+ if i in [4, 5, 6, 7]:
|
|
|
|
|
+ b_stat += "%"
|
|
|
|
|
+ c_stat += "%"
|
|
|
|
|
+ else:
|
|
|
|
|
+ b_stat += " "
|
|
|
|
|
+ c_stat += " "
|
|
|
|
|
+ self._stat_grid.SetCellValue(i, 0, b_stat)
|
|
|
|
|
+ self._stat_grid.SetCellValue(i, 1, c_stat)
|
|
|
|
|
|
|
|
# Write the team list
|
|
# Write the team list
|
|
|
team_label_text = ""
|
|
team_label_text = ""
|
|
|
- for team in self._selected_unit.teams:
|
|
|
|
|
- team_label_text += "-" + team.name[0:16].ljust(16, " ")
|
|
|
|
|
|
|
+ for team in self._sel_unit.teams:
|
|
|
|
|
+ team_label_text += "-" + team.name[0:14].ljust(14, " ")
|
|
|
team_label_text += ("(#" + team.id + ")").rjust(6) + "\n"
|
|
team_label_text += ("(#" + team.id + ")").rjust(6) + "\n"
|
|
|
self._teams_label.SetLabel(team_label_text)
|
|
self._teams_label.SetLabel(team_label_text)
|
|
|
|
|
|
|
|
|
|
+ # Clear the rune labels
|
|
|
|
|
+ for i in range(0, 6):
|
|
|
|
|
+ self._set_label_list[i].SetLabel("")
|
|
|
|
|
+ self._id_label_list[i].SetLabel("")
|
|
|
|
|
+ self._eff_label_list[i].SetLabel("")
|
|
|
|
|
+ self._main_label_list[i].SetLabel("")
|
|
|
|
|
+ self._innate_label_list[i].SetLabel("")
|
|
|
|
|
+ for j in range(0, 4):
|
|
|
|
|
+ self._stat_label_list[i][j].SetLabel("")
|
|
|
|
|
+
|
|
|
# Populate the runes
|
|
# Populate the runes
|
|
|
i = 0
|
|
i = 0
|
|
|
- for rune in self._selected_unit.runes:
|
|
|
|
|
|
|
+ for rune in self._sel_unit.runes:
|
|
|
|
|
+ if rune is None:
|
|
|
|
|
+ continue
|
|
|
# Rows are 18 charactes width
|
|
# Rows are 18 charactes width
|
|
|
|
|
|
|
|
# First line: Set name, level
|
|
# First line: Set name, level
|
|
|
self._set_label_list[rune.slot - 1].SetLabel(
|
|
self._set_label_list[rune.slot - 1].SetLabel(
|
|
|
- rune.type_name[0:9].ljust(12, " ") + \
|
|
|
|
|
- "+" + str(rune.level).ljust(3, " ")
|
|
|
|
|
|
|
+ rune.type_name[0:9].ljust(12, " ")
|
|
|
|
|
+ + "+" + str(rune.level).ljust(3, " ")
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
# Second line: ID
|
|
# Second line: ID
|
|
|
- lvl_set_eff = rune.type_name[0:6].ljust(6, " ")
|
|
|
|
|
- effv = str(("{:.2f}".format(rune.efficiency)).rjust(5, " "))
|
|
|
|
|
- eff = (" Eff:" + str(effv) + "%")
|
|
|
|
|
- lvl_set_eff += eff
|
|
|
|
|
self._id_label_list[i].SetLabel(("#" + rune.id).rjust(15, " "))
|
|
self._id_label_list[i].SetLabel(("#" + rune.id).rjust(15, " "))
|
|
|
|
|
|
|
|
- # Efficiency
|
|
|
|
|
- label_eff_text = \
|
|
|
|
|
- "Eff.: " + ("{:.1f}".format(rune.efficiency)).rjust(4, " ") + \
|
|
|
|
|
- "/" + ("{:.1f}".format(rune.max_efficiency)).rjust(4, " ")
|
|
|
|
|
|
|
+ # Last line: Efficiencies
|
|
|
|
|
+ label_eff_text = (
|
|
|
|
|
+ "Eff.: " + ("{:.1f}".format(rune.efficiency)).rjust(4, " ")
|
|
|
|
|
+ + "/" + ("{:.1f}".format(rune.max_efficiency)).rjust(4, " ")
|
|
|
|
|
+ )
|
|
|
self._eff_label_list[rune.slot - 1].SetLabel(label_eff_text)
|
|
self._eff_label_list[rune.slot - 1].SetLabel(label_eff_text)
|
|
|
|
|
|
|
|
# Write all stats
|
|
# Write all stats
|
|
|
- innate_label = " "
|
|
|
|
|
for stat in rune.stats:
|
|
for stat in rune.stats:
|
|
|
if stat == None:
|
|
if stat == None:
|
|
|
continue
|
|
continue
|
|
|
slot = stat.slot
|
|
slot = stat.slot
|
|
|
if stat.is_enchanted:
|
|
if stat.is_enchanted:
|
|
|
name = (
|
|
name = (
|
|
|
- stat.name
|
|
|
|
|
- .replace("%", "").
|
|
|
|
|
- replace(" ", "") + "* "
|
|
|
|
|
|
|
+ stat.name.replace("%", "").replace(" ", "") + "* "
|
|
|
).rjust(5, " ")
|
|
).rjust(5, " ")
|
|
|
else:
|
|
else:
|
|
|
name = (
|
|
name = (
|
|
|
- stat.name
|
|
|
|
|
- .replace("%", "")
|
|
|
|
|
- .replace(" ", "") + " "
|
|
|
|
|
|
|
+ stat.name.replace("%", "").replace(" ", "") + " "
|
|
|
).rjust(5, " ")
|
|
).rjust(5, " ")
|
|
|
value = str(stat.value)
|
|
value = str(stat.value)
|
|
|
if stat.stat in [2, 4, 6, 9, 10, 11, 23]:
|
|
if stat.stat in [2, 4, 6, 9, 10, 11, 23]:
|
|
@@ -744,8 +477,8 @@ class PanelUnits(wx.Panel):
|
|
|
if slot == -1: # main
|
|
if slot == -1: # main
|
|
|
self._main_label_list[i].SetLabel(line)
|
|
self._main_label_list[i].SetLabel(line)
|
|
|
elif slot == 0: # innate
|
|
elif slot == 0: # innate
|
|
|
- innate_label = line
|
|
|
|
|
|
|
+ self._innate_label_list[i].SetLabel(line)
|
|
|
else: # normal stats
|
|
else: # normal stats
|
|
|
self._stat_label_list[i][slot - 1].SetLabel(line)
|
|
self._stat_label_list[i][slot - 1].SetLabel(line)
|
|
|
- self._innate_label_list[i].SetLabel(innate_label)
|
|
|
|
|
i = i + 1
|
|
i = i + 1
|
|
|
|
|
+ self.Layout()
|