Example #1
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)
Example #2
0
    def getRosters(self, keys=None):
        rosters = prb_getters.getPrebattleRosters()
        if keys is None:
            result = {
                PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1: [],
                PREBATTLE_ROSTER.ASSIGNED_IN_TEAM2: [],
                PREBATTLE_ROSTER.UNASSIGNED: []
            }
        else:
            result = {}
            for key in keys:
                if PREBATTLE_ROSTER.UNASSIGNED & key != 0:
                    result[PREBATTLE_ROSTER.UNASSIGNED] = []
                result[key] = []

        hasTeam1 = PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1 in result
        hasTeam2 = PREBATTLE_ROSTER.ASSIGNED_IN_TEAM2 in result
        hasUnassigned = PREBATTLE_ROSTER.UNASSIGNED in result
        for key, roster in rosters.iteritems():
            accounts = map(
                lambda accInfo: prb_items.PlayerPrbInfo(
                    accInfo[0], entity=self, roster=key, **accInfo[1]),
                roster.iteritems())
            team, assigned = decodeRoster(key)
            if assigned:
                if hasTeam1 and team == 1:
                    result[PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1] = accounts
                elif hasTeam2 and team == 2:
                    result[PREBATTLE_ROSTER.ASSIGNED_IN_TEAM2] = accounts
            if hasUnassigned:
                result[PREBATTLE_ROSTER.UNASSIGNED].extend(accounts)

        return result
Example #3
0
 def prb_onPlayerRemoved(self, pID, roster, name):
     LOG_DEBUG('prb_onPlayerRemoved', pID, roster, name)
     rosters = self.getRosters(keys=[roster])
     playerInfo = prb_items.PlayerPrbInfo(pID, name=name)
     for listener in self.getListenersIterator():
         listener.onPlayerRemoved(self, playerInfo)
         listener.onRostersChanged(self, rosters, False)
Example #4
0
    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
Example #5
0
    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)
Example #6
0
    def getRosters(self, keys=None):
        rosters = getPrebattleRosters()
        if keys is None:
            result = {
                PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1: [],
                PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1: []
            }
        else:
            result = {}
            for key in keys:
                if key in [
                        PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1,
                        PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1
                ]:
                    result[key] = []

        for key, roster in rosters.iteritems():
            if key in result:
                result[key] = map(
                    lambda accInfo: prb_items.PlayerPrbInfo(
                        accInfo[0], functional=self, roster=key, **accInfo[1]),
                    roster.iteritems())

        return result