Example #1
0
 def fetch(cls, **kwargs):
     ctxArgs = {'isInRandomQueue': isInRandomQueue(),
      'isInTutorialQueue': isInTutorialQueue(),
      'isInHistoricalQueue': isInHistoricalQueue(),
      'isInEventBattles': isInEventBattlesQueue(),
      'prebattleID': getPrebattleID()}
     ctxArgs.update(**kwargs)
     return StartDispatcherCtx(**ctxArgs)
Example #2
0
    def onQueueInfoReceived(self, randomsQueueInfo, companiesQueueInfo, historicalQueueInfo):
        if prb_control.isCompany():
            data = {'title': '#menu:prebattle/typesCompaniesTitle',
             'data': list()}
            self.flashObject.as_setPlayers(makeHtmlString('html_templates:lobby/queue/playersLabel', 'teams', {'count': sum(companiesQueueInfo['divisions'])}))
            vDivisions = companiesQueueInfo['divisions']
            if vDivisions is not None:
                vClassesLen = len(vDivisions)
                for vDivision in BattleQueue.DIVISIONS_ORDERED:
                    data['data'].append(('#menu:prebattle/CompaniesTitle/%s' % constants.PREBATTLE_COMPANY_DIVISION_NAMES[vDivision], vDivisions[vDivision] if vDivision < vClassesLen else 0))

                self.as_setListByTypeS(data)
            self.as_showStartS(constants.IS_DEVELOPMENT)
        elif prb_control.isInHistoricalQueue():
            battleID = self.preQueueFunctional.getSetting(PREQUEUE_SETTING_NAME.BATTLE_ID)
            battleData = historicalQueueInfo[battleID]
            battle = g_eventsCache.getHistoricalBattles(False)[battleID]
            teamA = battleData.get(HistoricalBattle.SIDES.A, {})
            teamB = battleData.get(HistoricalBattle.SIDES.B, {})
            countA = sum(teamA.get('by_class', {}).values())
            countB = sum(teamB.get('by_class', {}).values())
            self.flashObject.as_setPlayers(makeHtmlString('html_templates:lobby/queue/playersLabel', 'twoSides', {'sideA': battle.getSideUserName(HistoricalBattle.SIDES.A),
             'countA': countA,
             'sideB': battle.getSideUserName(HistoricalBattle.SIDES.B),
             'countB': countB}))
            data = {'title': '#menu:prebattle/typesTitle',
             'data': []}
            vClassesData = data['data']
            for vClass, message in BattleQueue.TYPES_ORDERED:
                byClassA = teamA.get('by_class', {}).get(vClass, 0)
                byClassB = teamB.get('by_class', {}).get(vClass, 0)
                vClassesData.append((message, byClassA + byClassB))

            self.as_setListByTypeS(data)
        else:
            info = dict(randomsQueueInfo)
            if 'classes' in info:
                vClasses = info['classes']
                vClassesLen = len(vClasses)
            else:
                vClasses = []
                vClassesLen = 0
            self.flashObject.as_setPlayers(makeHtmlString('html_templates:lobby/queue/playersLabel', 'players', {'count': sum(vClasses)}))
            if vClassesLen:
                data = {'title': '#menu:prebattle/typesTitle',
                 'data': []}
                vClassesData = data['data']
                for vClass, message in BattleQueue.TYPES_ORDERED:
                    idx = constants.VEHICLE_CLASS_INDICES[vClass]
                    vClassesData.append((message, vClasses[idx] if idx < vClassesLen else 0))

                self.as_setListByTypeS(data)
            self.as_showStartS(constants.IS_DEVELOPMENT and sum(vClasses) > 1)
        if not self.__inited:
            self.__inited = True
        return
Example #3
0
 def fetch(cls, **kwargs):
     ctxArgs = {
         'isInRandomQueue': isInRandomQueue(),
         'isInTutorialQueue': isInTutorialQueue(),
         'isInHistoricalQueue': isInHistoricalQueue(),
         'isInEventBattles': isInEventBattlesQueue(),
         'prebattleID': getPrebattleID()
     }
     ctxArgs.update(**kwargs)
     return StartDispatcherCtx(**ctxArgs)
Example #4
0
 def __updateQueueInfo(self):
     self.__queueCallback = None
     currPlayer = BigWorld.player()
     if currPlayer is not None and hasattr(currPlayer, 'requestQueueInfo'):
         if prb_control.isCompany():
             qType = constants.QUEUE_TYPE.COMPANIES
         elif prb_control.isInHistoricalQueue():
             qType = constants.QUEUE_TYPE.HISTORICAL
         else:
             qType = constants.QUEUE_TYPE.RANDOMS
         currPlayer.requestQueueInfo(qType)
         self.__queueCallback = BigWorld.callback(5, self.__updateQueueInfo)
 def _populate(self):
     super(HistoricalBattlesListWindow, self)._populate()
     g_clientUpdateManager.addCallbacks({'stats.credits': self.onMoneyChanged,
      'stats.gold': self.onMoneyChanged})
     g_itemsCache.onSyncCompleted += self.onCacheResync
     g_eventsCache.onSyncCompleted += self.onEventsCacheResync
     self.updateCarouselData()
     self.as_selectBattleS(self.selectedBattleID)
     if isInHistoricalQueue():
         self.as_setCarouselEnabledS(False)
         self.as_setListEnabledS(False)
         self.as_setPriceDDEnabledS(False)
         self.as_setCloseBtnEnabledS(False)
 def _populate(self):
     super(HistoricalBattlesListWindow, self)._populate()
     g_clientUpdateManager.addCallbacks({'stats.credits': self.onMoneyChanged,
      'stats.gold': self.onMoneyChanged})
     g_itemsCache.onSyncCompleted += self.onCacheResync
     g_eventsCache.onSyncCompleted += self.onEventsCacheResync
     self.updateCarouselData()
     self.as_selectBattleS(self.selectedBattleID)
     if isInHistoricalQueue():
         self.as_setCarouselEnabledS(False)
         self.as_setListEnabledS(False)
         self.as_setPriceDDEnabledS(False)
         self.as_setCloseBtnEnabledS(False)
Example #7
0
 def __updateQueueInfo(self):
     self.__queueCallback = None
     currPlayer = BigWorld.player()
     if currPlayer is not None and hasattr(currPlayer, 'requestQueueInfo'):
         if prb_control.isCompany():
             qType = constants.QUEUE_TYPE.COMPANIES
         elif prb_control.isInHistoricalQueue():
             qType = constants.QUEUE_TYPE.HISTORICAL
         elif prb_control.isInEventBattlesQueue():
             qType = constants.QUEUE_TYPE.EVENT_BATTLES
         else:
             qType = constants.QUEUE_TYPE.RANDOMS
         currPlayer.requestQueueInfo(qType)
         self.__queueCallback = BigWorld.callback(5, self.__updateQueueInfo)
Example #8
0
 def isInQueue(self):
     return isInHistoricalQueue()
Example #9
0
 def onEventsCacheResync(self):
     if isInHistoricalQueue():
         return
     self.__checkAvailability()
Example #10
0
    def onQueueInfoReceived(self, randomsQueueInfo, companiesQueueInfo, historicalQueueInfo, eventQueueInfo):
        if prb_control.isCompany():
            data = {'title': '#menu:prebattle/typesCompaniesTitle',
             'data': list()}
            self.flashObject.as_setPlayers(makeHtmlString('html_templates:lobby/queue/playersLabel', 'teams', {'count': sum(companiesQueueInfo['divisions'])}))
            vDivisions = companiesQueueInfo['divisions']
            if vDivisions is not None:
                vClassesLen = len(vDivisions)
                for vDivision in BattleQueue.DIVISIONS_ORDERED:
                    data['data'].append(('#menu:prebattle/CompaniesTitle/%s' % constants.PREBATTLE_COMPANY_DIVISION_NAMES[vDivision], vDivisions[vDivision] if vDivision < vClassesLen else 0))

                self.as_setListByTypeS(data)
            self.as_showStartS(constants.IS_DEVELOPMENT)
        elif prb_control.isInHistoricalQueue():
            battleID = self.preQueueFunctional.getSetting(PREQUEUE_SETTING_NAME.BATTLE_ID)
            battleData = historicalQueueInfo[battleID]
            battle = g_eventsCache.getHistoricalBattles(False)[battleID]
            teamA = battleData.get(HistoricalBattle.SIDES.A, {})
            teamB = battleData.get(HistoricalBattle.SIDES.B, {})
            countA = sum(teamA.get('by_class', {}).values())
            countB = sum(teamB.get('by_class', {}).values())
            self.flashObject.as_setPlayers(makeHtmlString('html_templates:lobby/queue/playersLabel', 'twoSides', {'sideA': battle.getSideUserName(HistoricalBattle.SIDES.A),
             'countA': countA,
             'sideB': battle.getSideUserName(HistoricalBattle.SIDES.B),
             'countB': countB}))
            data = {'title': '#menu:prebattle/typesTitle',
             'data': []}
            vClassesData = data['data']
            for vClass, message in BattleQueue.TYPES_ORDERED:
                byClassA = teamA.get('by_class', {}).get(vClass, 0)
                byClassB = teamB.get('by_class', {}).get(vClass, 0)
                vClassesData.append((message, byClassA + byClassB))

            self.as_setListByTypeS(data)
        elif prb_control.isInEventBattlesQueue():
            info = dict(eventQueueInfo)
            vClasses = info.get('classes', [])
            vClassesLen = len(vClasses)
            totalPlayers = info.get('players', 0)
            self.flashObject.as_setPlayers(makeHtmlString('html_templates:lobby/queue/playersLabel', 'players', {'count': totalPlayers}))
            if vClassesLen:
                data = {'title': '#menu:prebattle/typesTitle',
                 'data': []}
                vClassesData = data['data']
                for vClass, message in BattleQueue.TYPES_ORDERED:
                    idx = constants.VEHICLE_CLASS_INDICES[vClass]
                    vClassesData.append((message, vClasses[idx] if idx < vClassesLen else 0))

                self.as_setListByTypeS(data)
        else:
            info = dict(randomsQueueInfo)
            if 'classes' in info:
                vClasses = info['classes']
                vClassesLen = len(vClasses)
            else:
                vClasses = []
                vClassesLen = 0
            self.flashObject.as_setPlayers(makeHtmlString('html_templates:lobby/queue/playersLabel', 'players', {'count': sum(vClasses)}))
            if vClassesLen:
                data = {'title': '#menu:prebattle/typesTitle',
                 'data': []}
                vClassesData = data['data']
                for vClass, message in BattleQueue.TYPES_ORDERED:
                    idx = constants.VEHICLE_CLASS_INDICES[vClass]
                    vClassesData.append((message, vClasses[idx] if idx < vClassesLen else 0))

                self.as_setListByTypeS(data)
            self.as_showStartS(constants.IS_DEVELOPMENT and sum(vClasses) > 1)
        if not self.__inited:
            self.__inited = True
Example #11
0
 def isInQueue(self):
     return isInHistoricalQueue()
Example #12
0
 def onEventsCacheResync(self):
     if isInHistoricalQueue():
         return
     self.__checkAvailability()