When learning skill in character editor, learn all the prerequisites
This commit is contained in:
@@ -232,8 +232,6 @@ class CharacterSelection(wx.Panel):
|
|||||||
sCharacter = Character.getInstance()
|
sCharacter = Character.getInstance()
|
||||||
self.reqs = sCharacter.checkRequirements(fit)
|
self.reqs = sCharacter.checkRequirements(fit)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sCharacter.skillReqsDict = {'charname': fit.character.name, 'skills': []}
|
sCharacter.skillReqsDict = {'charname': fit.character.name, 'skills': []}
|
||||||
if len(self.reqs) == 0:
|
if len(self.reqs) == 0:
|
||||||
self.needsSkills = False
|
self.needsSkills = False
|
||||||
|
|||||||
@@ -376,8 +376,8 @@ class Character:
|
|||||||
char.apiUpdateCharSheet(skills, securitystatus)
|
char.apiUpdateCharSheet(skills, securitystatus)
|
||||||
eos.db.commit()
|
eos.db.commit()
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def changeLevel(charID, skillID, level, persist=False, ifHigher=False):
|
def changeLevel(cls, charID, skillID, level, persist=False, ifHigher=False):
|
||||||
char = eos.db.getCharacter(charID)
|
char = eos.db.getCharacter(charID)
|
||||||
skill = char.getSkill(skillID)
|
skill = char.getSkill(skillID)
|
||||||
|
|
||||||
@@ -386,10 +386,19 @@ class Character:
|
|||||||
|
|
||||||
if isinstance(level, str) or level > 5 or level < 0:
|
if isinstance(level, str) or level > 5 or level < 0:
|
||||||
skill.setLevel(None, persist)
|
skill.setLevel(None, persist)
|
||||||
else:
|
eos.db.commit()
|
||||||
|
elif skill.level != level:
|
||||||
|
cls._trainSkillReqs(char, skill, persist)
|
||||||
skill.setLevel(level, persist)
|
skill.setLevel(level, persist)
|
||||||
|
eos.db.commit()
|
||||||
|
|
||||||
eos.db.commit()
|
@classmethod
|
||||||
|
def _trainSkillReqs(cls, char, skill, persist):
|
||||||
|
for childSkillItem, neededSkillLevel in skill.item.requiredSkills.items():
|
||||||
|
childSkill = char.getSkill(childSkillItem.ID)
|
||||||
|
if childSkill.level < neededSkillLevel:
|
||||||
|
childSkill.setLevel(neededSkillLevel, persist)
|
||||||
|
cls._trainSkillReqs(char, childSkill, persist)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def revertLevel(charID, skillID):
|
def revertLevel(charID, skillID):
|
||||||
@@ -457,19 +466,8 @@ class Character:
|
|||||||
if level > currLevel and (char is None or char.getSkill(req).level < level):
|
if level > currLevel and (char is None or char.getSkill(req).level < level):
|
||||||
reqs[name] = (level, ID, subs)
|
reqs[name] = (level, ID, subs)
|
||||||
self._checkRequirements(char, req, subs)
|
self._checkRequirements(char, req, subs)
|
||||||
|
|
||||||
return reqs
|
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):
|
class UpdateAPIThread(threading.Thread):
|
||||||
def __init__(self, charID, callback):
|
def __init__(self, charID, callback):
|
||||||
|
|||||||
Reference in New Issue
Block a user