def __setLimits(self, rosters, teamLimits): settings = self.prbFunctional.getSettings() self.__selectedDivision = settings[PREBATTLE_SETTING_NAME.DIVISION] totalLimit = prb_getters.getTotalLevelLimits(teamLimits) totalLevel = 0 playersCount = 0 classesLimit = dict(map(lambda vehClass: (vehClass, [0, prb_getters.getClassLevelLimits(teamLimits, vehClass)]), VEHICLE_CLASS_TAGS)) invalidVehs = [] if PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1]: totalLevel += self.__validateVehicle(playerInfo, classesLimit, invalidVehs) if playerInfo.isReady(): playersCount += 1 maxPlayerCount = prb_getters.getMaxSizeLimits(teamLimits)[0] classesLimits = map(self.__makeClassLimitItem, classesLimit.iteritems()) mixMax = self.__makeMinMaxString(totalLevel, totalLimit) self.__makeHeaderData(classesLimits, mixMax, maxPlayerCount) self.as_setTotalLimitLabelsS(self.__makeTotalLevelString(totalLevel, totalLimit)) self.as_setMaxCountLimitLabelS(self.__makeMaxCountLimitLabel(playersCount, maxPlayerCount)) if PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1]: self.__validateVehicle(playerInfo, classesLimit, invalidVehs) self.as_setInvalidVehiclesS(invalidVehs)
def __setLimits(self, rosters, teamLimits): settings = self.prbEntity.getSettings() self.__selectedDivision = settings[PREBATTLE_SETTING_NAME.DIVISION] totalLimit = prb_getters.getTotalLevelLimits(teamLimits) totalLevel = 0 playersCount = 0 classesLimit = dict( map( lambda vehClass: (vehClass, [0, prb_getters.getClassLevelLimits(teamLimits, vehClass)]), VEHICLE_CLASS_TAGS)) invalidVehs = [] if PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1]: totalLevel += self.__validateVehicle(playerInfo, classesLimit, invalidVehs) if playerInfo.isReady(): playersCount += 1 maxPlayerCount = prb_getters.getMaxSizeLimits(teamLimits)[0] classesLimits = map(self.__makeClassLimitItem, classesLimit.iteritems()) mixMax = self.__makeMinMaxString(totalLevel, totalLimit) self.__makeHeaderData(classesLimits, mixMax, maxPlayerCount) self.as_setTotalLimitLabelsS( self.__makeTotalLevelString(totalLevel, totalLimit)) self.as_setMaxCountLimitLabelS( self.__makeMaxCountLimitLabel(playersCount, maxPlayerCount)) if PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1]: self.__validateVehicle(playerInfo, classesLimit, invalidVehs) self.as_setInvalidVehiclesS(invalidVehs)
def __updateCommonRequirements(self, teamLimits, rosters): minTotalLvl, maxTotalLvl = prb_getters.getTotalLevelLimits(teamLimits) playersMaxCount = prb_getters.getMaxSizeLimits(teamLimits)[0] totalLvl = 0 playersCount = 0 for roster, players in rosters.iteritems(): if roster ^ self.__team == PREBATTLE_ROSTER.ASSIGNED: for player in players: if player.isReady(): playersCount += 1 if player.isVehicleSpecified(): totalLvl += player.getVehicle().level if minTotalLvl <= totalLvl and totalLvl <= maxTotalLvl: teamLevelStr = text_styles.main(str(totalLvl)) else: teamLevelStr = text_styles.error(str(totalLvl)) self.as_setCommonLimitsS(teamLevelStr, playersMaxCount) self.as_setPlayersCountTextS( makeHtmlString('html_templates:lobby/prebattle', 'specBattlePlayersCount', { 'membersCount': playersCount, 'maxMembersCount': playersMaxCount })) playerTeam = len( self._makeAccountsData(rosters[self._getPlayerTeam() | PREBATTLE_ROSTER.ASSIGNED])) playersStyleFunc = text_styles.main if playerTeam < playersMaxCount else text_styles.error playersCountStr = playersStyleFunc('%d/%d' % (playerTeam, playersMaxCount)) self.as_setTotalPlayersCountS(playersCountStr)
def __setLimits(self, rosters, teamLimits): totalLimit = prb_getters.getTotalLevelLimits(teamLimits) totalLevel = 0 playersCount = 0 classesLimit = dict( map( lambda vehClass: (vehClass, [0, prb_getters.getClassLevelLimits(teamLimits, vehClass)]), VEHICLE_CLASS_TAGS)) invalidVehs = [] if PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1]: totalLevel += self.__validateVehicle(playerInfo, classesLimit, invalidVehs) if playerInfo.isReady(): playersCount += 1 self.as_setClassesLimitsS( map(self.__makeClassLimitItem, classesLimit.iteritems())) self.as_setTotalLimitLabelsS( self.__makeTotalLevelString(totalLevel, totalLimit), self.__makeMinMaxString(totalLevel, totalLimit)) self.as_setMaxCountLimitLabelS( self.__makeMaxCountLimitLabel( playersCount, prb_getters.getMaxSizeLimits(teamLimits)[0])) if PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1]: self.__validateVehicle(playerInfo, classesLimit, invalidVehs) self.as_setInvalidVehiclesS(invalidVehs)
def getTotalLevelLimitMessage4Team(teamLimits): minTotalLevel, maxTotalLevel = prb_getters.getTotalLevelLimits(teamLimits) return i18n.makeString( "#system_messages:prebattle/teamInvalid/limit/totalLevel", minTotalLevel=minTotalLevel, maxTotalLevel=maxTotalLevel, )
def getTotalLevelInvalidTooltip(teamsLimit, restriction): minLevel, maxLevel = prb_getters.getTotalLevelLimits(teamsLimit) return makeTooltip( i18n.makeString( '#tooltips:redButton/disabled/{0:>s}/header'.format(restriction)), i18n.makeString( '#tooltips:redButton/disabled/{0:>s}/body'.format(restriction), minLevel, maxLevel))
def __updateCommonRequirements(self, teamLimits, rosters): minTotalLvl, maxTotalLvl = prb_getters.getTotalLevelLimits(teamLimits) playersMaxCount = prb_getters.getMaxSizeLimits(teamLimits)[0] totalLvl = 0 playersCount = 0 for roster, players in rosters.iteritems(): if roster ^ self.__team == PREBATTLE_ROSTER.ASSIGNED: for player in players: if player.isReady(): playersCount += 1 if player.isVehicleSpecified(): totalLvl += player.getVehicle().level self.as_setCommonLimitsS(totalLvl, minTotalLvl, maxTotalLvl, playersMaxCount) self.as_setPlayersCountTextS(makeHtmlString('html_templates:lobby/prebattle', 'specBattlePlayersCount', {'membersCount': playersCount, 'maxMembersCount': playersMaxCount}))
def __setLimits(self, rosters, teamLimits): totalLimit = prb_getters.getTotalLevelLimits(teamLimits) totalLevel = 0 playersCount = 0 classesLimit = dict(map(lambda vehClass: (vehClass, [0, prb_getters.getClassLevelLimits(teamLimits, vehClass)]), VEHICLE_CLASS_TAGS)) invalidVehs = [] if PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1]: totalLevel += self.__validateVehicle(playerInfo, classesLimit, invalidVehs) if playerInfo.isReady(): playersCount += 1 self.as_setClassesLimitsS(map(self.__makeClassLimitItem, classesLimit.iteritems())) self.as_setTotalLimitLabelsS(self.__makeTotalLevelString(totalLevel, totalLimit), self.__makeMinMaxString(totalLevel, totalLimit)) self.as_setMaxCountLimitLabelS(self.__makeMaxCountLimitLabel(playersCount, prb_getters.getMaxSizeLimits(teamLimits)[0])) if PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1 in rosters: for playerInfo in rosters[PREBATTLE_ROSTER.UNASSIGNED_IN_TEAM1]: self.__validateVehicle(playerInfo, classesLimit, invalidVehs) self.as_setInvalidVehiclesS(invalidVehs)
def check(self, rosters, team, teamLimits): isValid, notValidReason = True, '' assignedRosters = rosters.get(team, {}) totalLevel, classLevels = self.__calculate(assignedRosters) for classTag in VEHICLE_CLASS_TAGS: minLevel, maxLevel = prb_getters.getClassLevelLimits(teamLimits, classTag) currentLevel = classLevels[classTag] vClassTags = PREBATTLE_RESTRICTION.getVehClassTags() if not (minLevel <= currentLevel <= maxLevel or currentLevel == 0): isValid = False if classTag in vClassTags: notValidReason = vClassTags[classTag] else: notValidReason = PREBATTLE_RESTRICTION.LIMIT_CLASSES if isValid: minLevel, maxLevel = prb_getters.getTotalLevelLimits(teamLimits) if not minLevel <= totalLevel <= maxLevel: isValid = False notValidReason = PREBATTLE_RESTRICTION.LIMIT_TOTAL_LEVEL return (isValid, notValidReason)
def __updateCommonRequirements(self, teamLimits, rosters): minTotalLvl, maxTotalLvl = prb_getters.getTotalLevelLimits(teamLimits) playersMaxCount = prb_getters.getMaxSizeLimits(teamLimits)[0] totalLvl = 0 playersCount = 0 for roster, players in rosters.iteritems(): if roster ^ self.__team == PREBATTLE_ROSTER.ASSIGNED: for player in players: if player.isReady(): playersCount += 1 if player.isVehicleSpecified(): totalLvl += player.getVehicle().level if minTotalLvl <= totalLvl and totalLvl <= maxTotalLvl: teamLevelStr = text_styles.main(str(totalLvl)) else: teamLevelStr = text_styles.error(str(totalLvl)) self.as_setCommonLimitsS(teamLevelStr, playersMaxCount) self.as_setPlayersCountTextS(makeHtmlString('html_templates:lobby/prebattle', 'specBattlePlayersCount', {'membersCount': playersCount, 'maxMembersCount': playersMaxCount})) playerTeam = len(self._makeAccountsData(rosters[self._getPlayerTeam() | PREBATTLE_ROSTER.ASSIGNED])) playersStyleFunc = text_styles.main if playerTeam < playersMaxCount else text_styles.error playersCountStr = playersStyleFunc('%d/%d' % (playerTeam, playersMaxCount)) self.as_setTotalPlayersCountS(playersCountStr)
def getTotalLevelInvalidTooltip(teamsLimit, restriction): minLevel, maxLevel = prb_getters.getTotalLevelLimits(teamsLimit) return makeTooltip(i18n.makeString('#tooltips:redButton/disabled/{0:>s}/header'.format(restriction)), i18n.makeString('#tooltips:redButton/disabled/{0:>s}/body'.format(restriction), minLevel, maxLevel))
def getTotalLevelLimitMessage4Team(teamLimits): minTotalLevel, maxTotalLevel = prb_getters.getTotalLevelLimits(teamLimits) return i18n.makeString( '#system_messages:prebattle/teamInvalid/limit/totalLevel', minTotalLevel=minTotalLevel, maxTotalLevel=maxTotalLevel)