From 58abdcfa221442040bb59028451c46c00e111618 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 22 Apr 2017 03:09:18 -0400 Subject: [PATCH] Add dependants tab for skills --- gui/itemStats.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gui/itemStats.py b/gui/itemStats.py index 41226464c..bb940c653 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -191,6 +191,10 @@ class ItemStatsContainer(wx.Panel): self.reqs = ItemRequirements(self.nbContainer, stuff, item) self.nbContainer.AddPage(self.reqs, "Requirements") + if context == "Skill": + self.dependants = ItemDependants(self.nbContainer, stuff, item) + self.nbContainer.AddPage(self.dependants, "Dependants") + self.effects = ItemEffects(self.nbContainer, stuff, item) self.nbContainer.AddPage(self.effects, "Effects") @@ -759,6 +763,55 @@ class ItemRequirements(wx.Panel): self.skillIdHistory.append(skill.ID) +class ItemDependants(wx.Panel): + def __init__(self, parent, stuff, item): + wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL) + + # itemId is set by the parent. + self.romanNb = ["0", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"] + self.skillIdHistory = [] + mainSizer = wx.BoxSizer(wx.VERTICAL) + + self.reqTree = wx.TreeCtrl(self, style=wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.NO_BORDER) + + mainSizer.Add(self.reqTree, 1, wx.ALL | wx.EXPAND, 0) + + self.SetSizer(mainSizer) + self.root = self.reqTree.AddRoot("WINRARZOR") + self.reqTree.SetPyData(self.root, None) + + self.imageList = wx.ImageList(16, 16) + self.reqTree.SetImageList(self.imageList) + skillBookId = self.imageList.Add(BitmapLoader.getBitmap("skill_small", "gui")) + + self.getFullSkillTree(item, self.root, skillBookId) + + self.Layout() + + def getFullSkillTree(self, parentSkill, parent, sbIconId): + levelToItems = {} + + for item, level in parentSkill.requiredFor.iteritems(): + if level not in levelToItems: + levelToItems[level] = [] + levelToItems[level].append(item) + + for x in sorted(levelToItems.keys()): + items = levelToItems[x] + items.sort(key=lambda x: x.name) + + child = self.reqTree.AppendItem(parent, "Level {}".format(self.romanNb[int(x)]), sbIconId) + for item in items: + + if item.icon: + bitmap = BitmapLoader.getBitmap(item.icon.iconFile, "icons") + itemIcon = self.imageList.Add(bitmap) if bitmap else -1 + else: + itemIcon = -1 + + grand = self.reqTree.AppendItem(child, "{}".format(item.name), itemIcon) + + class ItemEffects(wx.Panel): def __init__(self, parent, stuff, item): wx.Panel.__init__(self, parent)