Add even more condensed tooltip version (not used yet)
This commit is contained in:
@@ -232,6 +232,8 @@ class CharacterSelection(wx.Panel):
|
||||
sCharacter = Character.getInstance()
|
||||
self.reqs = sCharacter.checkRequirements(fit)
|
||||
|
||||
|
||||
|
||||
sCharacter.skillReqsDict = {'charname': fit.character.name, 'skills': []}
|
||||
if len(self.reqs) == 0:
|
||||
self.needsSkills = False
|
||||
@@ -303,7 +305,6 @@ class CharacterSelection(wx.Panel):
|
||||
if tabulationLevel == 0:
|
||||
for item, subReqs in reqs.items():
|
||||
skillsMap = self._buildSkillsTooltipCondensed(subReqs, item.name, 1, skillsMap)
|
||||
sorted(skillsMap, key=skillsMap.get)
|
||||
else:
|
||||
for name, info in reqs.items():
|
||||
level, ID, more = info
|
||||
@@ -323,3 +324,25 @@ class CharacterSelection(wx.Panel):
|
||||
skillsMap = self._buildSkillsTooltipCondensed(more, currItem, tabulationLevel + 1, skillsMap)
|
||||
|
||||
return skillsMap
|
||||
|
||||
def _buildSkillsTooltipSuperCondensed(self, reqs, currItem="", tabulationLevel=0, skillsMap=None):
|
||||
allReqs = {}
|
||||
implicitReqs = {}
|
||||
|
||||
def traverseReqs(itemReqs, topLevel=True):
|
||||
for skillName, (skillLevel, skillTypeID, subReqs) in itemReqs.items():
|
||||
if (skillTypeID, skillName) not in allReqs or allReqs[(skillTypeID, skillName)] < skillLevel:
|
||||
allReqs[(skillTypeID, skillName)] = skillLevel
|
||||
if not topLevel and (skillTypeID not in implicitReqs or implicitReqs[skillTypeID] < skillLevel):
|
||||
implicitReqs[skillTypeID] = skillLevel
|
||||
traverseReqs(subReqs, topLevel=False)
|
||||
|
||||
for item, itemReqs in reqs.items():
|
||||
traverseReqs(itemReqs)
|
||||
|
||||
newReqs = {}
|
||||
for (skillTypeID, skillName), skillLevel in allReqs.items():
|
||||
if skillTypeID not in implicitReqs or implicitReqs[skillTypeID] < skillLevel:
|
||||
newReqs[skillName] = skillLevel, skillTypeID
|
||||
|
||||
return newReqs
|
||||
|
||||
@@ -442,13 +442,13 @@ class Character:
|
||||
if subThing is not None:
|
||||
if isinstance(thing, es_Fighter) and attr == "charge":
|
||||
continue
|
||||
self._checkRequirements(fit, fit.character, subThing, subReqs)
|
||||
self._checkRequirements(fit.character, subThing, subReqs)
|
||||
if subReqs:
|
||||
reqs[subThing] = subReqs
|
||||
|
||||
return reqs
|
||||
|
||||
def _checkRequirements(self, fit, char, subThing, reqs):
|
||||
def _checkRequirements(self, char, subThing, reqs):
|
||||
for req, level in subThing.requiredSkills.items():
|
||||
name = req.name
|
||||
ID = req.ID
|
||||
@@ -456,10 +456,20 @@ class Character:
|
||||
currLevel, subs = info if info is not None else 0, {}
|
||||
if level > currLevel and (char is None or char.getSkill(req).level < level):
|
||||
reqs[name] = (level, ID, subs)
|
||||
self._checkRequirements(fit, char, req, subs)
|
||||
self._checkRequirements(char, req, subs)
|
||||
|
||||
return reqs
|
||||
|
||||
def getShit(self, reqs, condensed=None):
|
||||
if condensed is None:
|
||||
condensed = {}
|
||||
for name, (level, ID, subs) in reqs:
|
||||
if name not in condensed or condensed[name] < level:
|
||||
condensed[name] = level
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class UpdateAPIThread(threading.Thread):
|
||||
def __init__(self, charID, callback):
|
||||
|
||||
Reference in New Issue
Block a user