Merge pull request #1170 from pyfa-org/bug/char_fixes

Various character fixes
This commit is contained in:
Ryan Holmes
2017-05-14 23:05:18 -04:00
committed by GitHub
4 changed files with 13 additions and 12 deletions

View File

@@ -49,7 +49,7 @@ class Character(object):
if initSkills:
for item in self.getSkillList():
self.addSkill(Skill(item.ID, self.defaultLevel))
self.addSkill(Skill(self, item.ID, self.defaultLevel))
self.__implants = HandledImplantBoosterList()
self.apiKey = None
@@ -123,7 +123,7 @@ class Character(object):
del self.__skills[:]
self.__skillIdMap.clear()
for skillRow in skills:
self.addSkill(Skill(skillRow["typeID"], skillRow["level"]))
self.addSkill(Skill(self, skillRow["typeID"], skillRow["level"]))
self.secStatus = secStatus
@property
@@ -190,7 +190,6 @@ class Character(object):
else:
return
self.__skills.append(skill)
self.__skillIdMap[skill.itemID] = skill
def removeSkill(self, skill):
@@ -206,7 +205,7 @@ class Character(object):
skill = self.__skillIdMap.get(item.ID)
if skill is None:
skill = Skill(item, self.defaultLevel, False, True)
skill = Skill(self, item, self.defaultLevel, False, True)
self.addSkill(skill)
return skill
@@ -220,7 +219,7 @@ class Character(object):
return len(self.dirtySkills) > 0
def saveLevels(self):
if self == self.getAll5() or self == self.getAll0():
if self.ro:
raise ReadOnlyException("This character is read-only")
for skill in self.dirtySkills.copy():
@@ -272,7 +271,7 @@ class Character(object):
copy.apiID = self.apiID
for skill in self.skills:
copy.addSkill(Skill(skill.itemID, skill.level, False, skill.learned))
copy.addSkill(Skill(copy, skill.itemID, skill.level, False, skill.learned))
return copy
@@ -297,7 +296,8 @@ class Character(object):
class Skill(HandledItem):
def __init__(self, item, level=0, ro=False, learned=True):
def __init__(self, character, item, level=0, ro=False, learned=True):
self.character = character
self.__item = item if not isinstance(item, int) else None
self.itemID = item.ID if not isinstance(item, int) else item
self.__level = level if learned else None
@@ -321,7 +321,7 @@ class Skill(HandledItem):
self.character.dirtySkills.remove(self)
def revert(self):
self.level = self.__level
self.activeLevel = self.__level
@property
def isDirty(self):
@@ -431,7 +431,7 @@ class Skill(HandledItem):
return val
def __deepcopy__(self, memo):
copy = Skill(self.item, self.level, self.__ro)
copy = Skill(self.character, self.item, self.level, self.__ro)
return copy
def __repr__(self):

View File

@@ -93,7 +93,7 @@ class CharacterEntityEditor(EntityEditor):
def getEntitiesFromContext(self):
sChar = Character.getInstance()
charList = sorted(sChar.getCharacterList(), key=lambda c: c.name)
charList = sorted(sChar.getCharacterList(), key=lambda c: (not c.ro, c.name))
# Do some processing to ensure that we have All 0 and All 5 at the top
all5 = sChar.all5()

View File

@@ -125,7 +125,7 @@ class CharacterSelection(wx.Panel):
activeChar = self.getActiveCharacter()
choice.Clear()
charList = sChar.getCharacterList()
charList = sorted(sChar.getCharacterList(), key=lambda c: (not c.ro, c.name))
picked = False
for char in charList:

View File

@@ -705,7 +705,8 @@ class MainFrame(wx.Frame, IPortUser):
def ItemSelect(self, event):
selItem = self.itemSelect.index(event.GetId())
if selItem < len(self.marketBrowser.itemView.active):
activeListing = getattr(self.marketBrowser.itemView, 'active', None)
if activeListing and selItem < len(activeListing):
wx.PostEvent(self, ItemSelected(itemID=self.marketBrowser.itemView.active[selItem].ID))
def CTabNext(self, event):