When learning skill in character editor, learn all the prerequisites

This commit is contained in:
DarkPhoenix
2020-01-27 11:44:20 +03:00
parent 38c8be995b
commit cfc47cf483
2 changed files with 13 additions and 17 deletions

View File

@@ -232,8 +232,6 @@ 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

View File

@@ -376,8 +376,8 @@ class Character:
char.apiUpdateCharSheet(skills, securitystatus)
eos.db.commit()
@staticmethod
def changeLevel(charID, skillID, level, persist=False, ifHigher=False):
@classmethod
def changeLevel(cls, charID, skillID, level, persist=False, ifHigher=False):
char = eos.db.getCharacter(charID)
skill = char.getSkill(skillID)
@@ -386,10 +386,19 @@ class Character:
if isinstance(level, str) or level > 5 or level < 0:
skill.setLevel(None, persist)
else:
eos.db.commit()
elif skill.level != level:
cls._trainSkillReqs(char, skill, 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
def revertLevel(charID, skillID):
@@ -457,19 +466,8 @@ class Character:
if level > currLevel and (char is None or char.getSkill(req).level < level):
reqs[name] = (level, ID, 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):