Try a different approach to temp skill levels

This commit is contained in:
blitzmann
2015-09-13 16:51:36 -04:00
parent 1402ceec63
commit 1584586fd2
3 changed files with 17 additions and 41 deletions

View File

@@ -144,13 +144,13 @@ def getUser(lookfor, eager=None):
def getCharacter(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
character = character_session.query(Character).get(lookfor)
character = saveddata_session.query(Character).get(lookfor)
else:
eager = processEager(eager)
character = character_session.query(Character).options(*eager).filter(Character.ID == lookfor).first()
character = saveddata_session.query(Character).options(*eager).filter(Character.ID == lookfor).first()
elif isinstance(lookfor, basestring):
eager = processEager(eager)
character = character_session.query(Character).options(*eager).filter(Character.name == lookfor).first()
character = saveddata_session.query(Character).options(*eager).filter(Character.name == lookfor).first()
else:
raise TypeError("Need integer or string as argument")
return character
@@ -158,14 +158,14 @@ def getCharacter(lookfor, eager=None):
def getCharacterList(eager=None):
eager = processEager(eager)
with sd_lock:
characters = character_session.query(Character).options(*eager).all()
characters = saveddata_session.query(Character).options(*eager).all()
return characters
def getCharactersForUser(lookfor, eager=None):
if isinstance(lookfor, int):
eager = processEager(eager)
with sd_lock:
characters = character_session.query(Character).options(*eager).filter(Character.ownerID == lookfor).all()
characters = saveddata_session.query(Character).options(*eager).filter(Character.ownerID == lookfor).all()
else:
raise TypeError("Need integer as argument")
return characters

View File

@@ -154,6 +154,12 @@ class Character(object):
def isDirty(self):
return getattr(self, "dirty", False)
def saveLevels(self):
for skill in self.skills:
skill.__level = skill.level
self.dirty = False
eos.db.commit()
def filteredSkillIncrease(self, filter, *args, **kwargs):
for element in self.skills:
if filter(element):
@@ -204,6 +210,7 @@ class Skill(HandledItem):
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
self.activeLevel = self.__level
self.commandBonus = 0
self.build(ro)
@@ -222,7 +229,7 @@ class Skill(HandledItem):
@property
def level(self):
return self.__level or 0
return self.activeLevel or 0
@level.setter
def level(self, level):
@@ -232,7 +239,8 @@ class Skill(HandledItem):
if hasattr(self, "_Skill__ro") and self.__ro == True:
raise ReadOnlyException()
self.__level = level
self.activeLevel = level
self.character.dirty = True
@property
def item(self):