Merge pull request #1170 from pyfa-org/bug/char_fixes
Various character fixes
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user