def __getActiveBoosterByType(bType): criteria = REQ_CRITERIA.BOOSTER.ACTIVE | REQ_CRITERIA.BOOSTER.BOOSTER_TYPES([bType]) activeBoosters = g_goodiesCache.getBoosters(criteria=criteria).values() if activeBoosters: return max(activeBoosters, key=attrgetter('effectValue')) else: return None
def _buildList(self): result = [] activeBoosters = g_goodiesCache.getBoosters( criteria=REQ_CRITERIA.BOOSTER.ACTIVE) activeBoostersList = sorted(activeBoosters.values(), key=lambda b: b.getUsageLeftTime(), reverse=True) availableBoostersCount = len(self.__getAvailableBoosters()) activeBoostersCount = min(len(activeBoostersList), MAX_ACTIVE_BOOSTERS_COUNT) freeSlotsCount = MAX_ACTIVE_BOOSTERS_COUNT - min( activeBoostersCount, MAX_ACTIVE_BOOSTERS_COUNT) addBoostersSlotsCount = min(freeSlotsCount, availableBoostersCount) self._slotsMap = {} for idx in range(0, activeBoostersCount): booster = activeBoostersList[idx] self._slotsMap[idx] = booster.boosterID result.append(self.__makeBoosterVO(idx, booster)) icon = '' if not self._isPanelInactive: icon = RES_ICONS.MAPS_ICONS_ARTEFACT_EMPTYORDER addAndActiveBoostersCount = activeBoostersCount + addBoostersSlotsCount for idx in range(activeBoostersCount, MAX_ACTIVE_BOOSTERS_COUNT): self._slotsMap[idx], slotLinkage = self.getEmptySlotParams( idx, addAndActiveBoostersCount) result.append(self.__makeEmptyBoosterVO(idx, slotLinkage, icon)) self.as_setPanelPropsS(_GUI_SLOTS_PROPS) self.as_setSlotsS(result)
def __getActiveBoosterByType(bType): criteria = REQ_CRITERIA.BOOSTER.ACTIVE | REQ_CRITERIA.BOOSTER.BOOSTER_TYPES([bType]) activeBoosters = g_goodiesCache.getBoosters(criteria=criteria).values() if activeBoosters: return max(activeBoosters, key=attrgetter("effectValue")) else: return None
def __onUpdateBoosters(self, *args): for tab in self.__tabs.itervalues(): tab.update() self.__activeBoostersCount = len( g_goodiesCache.getBoosters( criteria=REQ_CRITERIA.BOOSTER.ACTIVE).values()) self.onTabsUpdate()
def init(self): self.__activeBoostersCount = len( g_goodiesCache.getBoosters( criteria=REQ_CRITERIA.BOOSTER.ACTIVE).values()) g_clientUpdateManager.addCallbacks({ 'goodies': self.__onUpdateBoosters, 'shop': self.__onUpdateBoosters, 'stats': self.__onStatsChanged }) g_eventsCache.onSyncCompleted += self.__onQuestsUpdate
def _processBoostersData(self): criteria = REQ_CRITERIA.BOOSTER.ENABLED | ~REQ_CRITERIA.HIDDEN boosters = sorted(g_goodiesCache.getBoosters(criteria=criteria).values(), self._sort) self._boosters = [] self._count = 0 self._totalCount = 0 for booster in boosters: self._totalCount += DEFAULT_SHOP_COUNT if self._isBoosterValid(booster): self._count += DEFAULT_SHOP_COUNT self._boosters.append(booster)
def _processBoostersData(self): criteria = REQ_CRITERIA.BOOSTER.IN_ACCOUNT | REQ_CRITERIA.BOOSTER.ENABLED boosters = sorted(g_goodiesCache.getBoosters(criteria=criteria).values(), self._sort) self._boosters = [] self._count = 0 self._totalCount = 0 for booster in boosters: self._totalCount += booster.count if self._isBoosterValid(booster): self._count += booster.count self._boosters.append(booster)
def __setClanInfo(self, clanInfo): name = BigWorld.player().name if clanInfo and len(clanInfo) > 1: clanAbbrev = clanInfo[1] else: clanAbbrev = None hasNew = not AccountSettings.getFilter(BOOSTERS)['wasShown'] hasActiveBooster = len(g_goodiesCache.getBoosters(criteria=REQ_CRITERIA.BOOSTER.ACTIVE)) > 0 self.as_nameResponseS(g_lobbyContext.getPlayerFullName(name, clanInfo=clanInfo), name, clanAbbrev, g_itemsCache.items.stats.isTeamKiller, g_clanCache.isInClan, hasNew, hasActiveBooster, TOOLTIPS.HEADER_ACCOUNT, TOOLTIP_TYPES.COMPLEX) if g_clanCache.clanDBID: self.requestClanEmblem32x32(g_clanCache.clanDBID)
def __startBoosterTimeNotifyCallback(self): self.__boostersForUpdate = [] activeBoosters = g_goodiesCache.getBoosters(REQ_CRITERIA.BOOSTER.ACTIVE).values() notificationList = [] for booster in activeBoosters: notificationList.append((booster.boosterID, booster.getUsageLeftTime() % time_utils.ONE_MINUTE)) if len(notificationList) > 0: _, nextBoosterNotification = min(notificationList, key=itemgetter(1)) for item in notificationList: if item[1] == nextBoosterNotification: self.__boostersForUpdate.append(item[0]) nextBoosterNotification = max(nextBoosterNotification, 1) else: return self.__boosterNotifyTimeCallback = BigWorld.callback(nextBoosterNotification, self.__notifyBoosterTime)
def __startBoosterTimeNotifyCallback(self): self.__boostersForUpdate = [] activeBoosters = g_goodiesCache.getBoosters( REQ_CRITERIA.BOOSTER.ACTIVE).values() notificationList = [] for booster in activeBoosters: notificationList.append( (booster.boosterID, booster.getUsageLeftTime() % time_utils.ONE_MINUTE)) if len(notificationList) > 0: _, nextBoosterNotification = min(notificationList, key=itemgetter(1)) for item in notificationList: if item[1] == nextBoosterNotification: self.__boostersForUpdate.append(item[0]) nextBoosterNotification = max(nextBoosterNotification, 1) else: return self.__boosterNotifyTimeCallback = BigWorld.callback( nextBoosterNotification, self.__notifyBoosterTime)
def _buildList(self): result = [] activeBoosters = g_goodiesCache.getBoosters(criteria=REQ_CRITERIA.BOOSTER.ACTIVE) activeBoostersList = sorted(activeBoosters.values(), key=lambda b: b.getUsageLeftTime(), reverse=True) availableBoostersCount = len(self.__getAvailableBoosters()) activeBoostersCount = min(len(activeBoostersList), MAX_ACTIVE_BOOSTERS_COUNT) freeSlotsCount = MAX_ACTIVE_BOOSTERS_COUNT - min(activeBoostersCount, MAX_ACTIVE_BOOSTERS_COUNT) addBoostersSlotsCount = min(freeSlotsCount, availableBoostersCount) self._slotsMap = {} for idx in range(0, activeBoostersCount): booster = activeBoostersList[idx] self._slotsMap[idx] = booster.boosterID result.append(self.__makeBoosterVO(idx, booster)) icon = "" if not self._isPanelInactive: icon = RES_ICONS.MAPS_ICONS_ARTEFACT_EMPTYORDER addAndActiveBoostersCount = activeBoostersCount + addBoostersSlotsCount for idx in range(activeBoostersCount, MAX_ACTIVE_BOOSTERS_COUNT): self._slotsMap[idx], slotLinkage = self.getEmptySlotParams(idx, addAndActiveBoostersCount) result.append(self.__makeEmptyBoosterVO(idx, slotLinkage, icon)) self.as_setPanelPropsS(_GUI_SLOTS_PROPS) self.as_setSlotsS(result)
def __getAvailableBoosters(self): criteria = REQ_CRITERIA.BOOSTER.IS_READY_TO_ACTIVATE return g_goodiesCache.getBoosters(criteria=criteria)
def __onUpdateBoosters(self, *args): for tab in self.__tabs.itervalues(): tab.update() self.__activeBoostersCount = len(g_goodiesCache.getBoosters(criteria=REQ_CRITERIA.BOOSTER.ACTIVE).values()) self.onTabsUpdate()
def init(self): self.__activeBoostersCount = len(g_goodiesCache.getBoosters(criteria=REQ_CRITERIA.BOOSTER.ACTIVE).values()) g_clientUpdateManager.addCallbacks( {"goodies": self.__onUpdateBoosters, "shop": self.__onUpdateBoosters, "stats": self.__onStatsChanged} ) g_eventsCache.onSyncCompleted += self.__onQuestsUpdate
def __getAvailableBoosters(self): criteria = REQ_CRITERIA.BOOSTER.IN_ACCOUNT return g_goodiesCache.getBoosters(criteria=criteria).values()
def __getActiveBoosters(self): return g_goodiesCache.getBoosters(criteria=REQ_CRITERIA.BOOSTER.ACTIVE).values()
def __getActiveBoosterByType(self, bType): criteria = REQ_CRITERIA.BOOSTER.ACTIVE | REQ_CRITERIA.BOOSTER.BOOSTER_TYPES([bType]) activeBoosters = g_goodiesCache.getBoosters(criteria=criteria).values() if len(activeBoosters) > 0: return max(activeBoosters, key=attrgetter('effectValue'))