def getRosters(self, keys = None): rosters = prb_getters.getPrebattleRosters() prbRosters = PREBATTLE_ROSTER.getRange(self.getEntityType(), self.getPlayerTeam()) result = dict(((r, []) for r in prbRosters)) for roster in prbRosters: if roster in rosters: result[roster] = map(lambda accInfo: prb_items.PlayerPrbInfo(accInfo[0], functional=self, roster=roster, **accInfo[1]), rosters[roster].iteritems()) return result
def getPlayerInfoByDbID(self, dbID): rosters = prb_getters.getPrebattleRosters() rosterRange = PREBATTLE_ROSTER.getRange(self.getEntityType()) for roster in rosterRange: if roster in rosters: for pID, data in rosters[roster].iteritems(): if data['dbID'] == dbID: return prb_items.PlayerPrbInfo(pID, functional=self, roster=roster, **rosters[roster][pID]) return prb_items.PlayerPrbInfo(-1L)
def getRosterKey(self, pID = None): rosters = prb_getters.getPrebattleRosters() rosterRange = PREBATTLE_ROSTER.getRange(self.getEntityType()) if pID is None: pID = account_helpers.getPlayerID() for roster in rosterRange: if roster in rosters and pID in rosters[roster].keys(): return roster return PREBATTLE_ROSTER.UNKNOWN
def _getRoleByDatabaseID(self, dbID=None, team=None): if dbID is None: dbID = account_helpers.getAccountDatabaseID() rosters = prb_getters.getPrebattleRosters() possibleRosters = PREBATTLE_ROSTER.getRange(self.getEntityType(), team) for roster in possibleRosters: if roster in rosters: for data in rosters[roster].itervalues(): if data['dbID'] == dbID: return data.get('role', 0) return 0
def getPlayerInfo(self, pID = None, rosterKey = None): rosters = prb_getters.getPrebattleRosters() if pID is None: pID = account_helpers.getPlayerID() if rosterKey is not None: if rosterKey in rosters and pID in rosters[rosterKey].keys(): return prb_items.PlayerPrbInfo(pID, functional=self, roster=rosterKey, **rosters[rosterKey][pID]) else: rosterRange = PREBATTLE_ROSTER.getRange(self.getEntityType()) for roster in rosterRange: if roster in rosters and pID in rosters[roster].keys(): return prb_items.PlayerPrbInfo(pID, functional=self, roster=roster, **rosters[roster][pID]) return prb_items.PlayerPrbInfo(-1L)
def __init__(self, prbType): super(TeamNoPlayersInBattle, self).__init__() self.__range = PREBATTLE_ROSTER.getRange(prbType)