Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 15
0
    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()
Ejemplo n.º 16
0
 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
Ejemplo n.º 17
0
 def __getAvailableBoosters(self):
     criteria = REQ_CRITERIA.BOOSTER.IS_READY_TO_ACTIVATE
     return g_goodiesCache.getBoosters(criteria=criteria)
Ejemplo n.º 18
0
 def __getAvailableBoosters(self):
     criteria = REQ_CRITERIA.BOOSTER.IN_ACCOUNT
     return g_goodiesCache.getBoosters(criteria=criteria).values()
Ejemplo n.º 19
0
 def __getActiveBoosters(self):
     return g_goodiesCache.getBoosters(criteria=REQ_CRITERIA.BOOSTER.ACTIVE).values()
Ejemplo n.º 20
0
 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'))