def fetch(cls, **kwargs): ctxArgs = {'isInRandomQueue': isInRandomQueue(), 'isInTutorialQueue': isInTutorialQueue(), 'isInHistoricalQueue': isInHistoricalQueue(), 'isInEventBattles': isInEventBattlesQueue(), 'prebattleID': getPrebattleID()} ctxArgs.update(**kwargs) return StartDispatcherCtx(**ctxArgs)
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
def fetch(cls, **kwargs): ctxArgs = { 'isInRandomQueue': isInRandomQueue(), 'isInTutorialQueue': isInTutorialQueue(), 'isInHistoricalQueue': isInHistoricalQueue(), 'isInEventBattles': isInEventBattlesQueue(), 'prebattleID': getPrebattleID() } ctxArgs.update(**kwargs) return StartDispatcherCtx(**ctxArgs)
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 __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)
def isInQueue(self): return isInHistoricalQueue()
def onEventsCacheResync(self): if isInHistoricalQueue(): return self.__checkAvailability()
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