Beispiel #1
0
    def __onBuyFullCollection(self, *_):
        collectionStrID = YEARS_INFO.getCollectionSettingID(
            self._collectionType, self._collectionBuilder.YEAR_NAME)
        collectionID = YEARS_INFO.getCollectionIntID(collectionStrID)
        builder = AlbumCollectionDialogBuilder(collectionID)
        self.__confirmationWindow = builder.build(withBlur=True)
        result = yield BuyCollectionProcessor(
            collectionID, self.__confirmationWindow).request()
        self.__confirmationWindow = None
        if result.userMsg:
            SystemMessages.pushI18nMessage(
                result.userMsg,
                type=result.sysMsgType,
                priority=NotificationPriorityLevel.MEDIUM)
        if not self.isLoaded or not result.success:
            return
        else:
            with self.viewModel.transaction() as model:
                for toyRenderer in model.getToys():
                    if not toyRenderer.getIsInCollection():
                        toyRenderer.setIsNew(True)
                        toyRenderer.setIsInCollection(True)

                model.setCollectedToysCount(model.getTotalToysCount())
                model.setCurrentRankToysCount(model.getTotalRankToysCount())
                model.setIsCollectionFull(True)
                self.__updateShards()
            return
Beispiel #2
0
 def init(self, nofail=True):
     cfg = self.__cfg
     try:
         getToyCollectionID = getToySettingID
         ny18Toys = collectibles.g_cache.ny18.toys
         ny19Toys = collectibles.g_cache.ny19.toys
         ny20Toys = collectibles.g_cache.ny20.toys
         ny21Toys = collectibles.g_cache.ny21.toys
         ny22Toys = collectibles.g_cache.ny22.toys
         cfg['toys'] = ny22Toys
         collections = set((getToyCollectionID(toyDescr=toyDescr) for toyDescr in chain(ny22Toys.itervalues(), ny21Toys.itervalues(), ny20Toys.itervalues(), ny19Toys.itervalues(), ny18Toys.itervalues())))
         cfg['collections'] = {name:YEARS_INFO.getCollectionIntID(name) for name in collections}
         cfg['collectionStrIDs'] = sorted(cfg['collections'].keys(), key=YEARS_INFO.getCollectionIntID)
         cfg['slots'] = readSlots(CONSTS.COLLECTION2022_SLOTS_XML_PATH)
         cfg['levels'] = readLevelRewards(CONSTS.COLLECTION2022_LEVEL_REWARDS_XML_PATH)
         cfg['collectionRewardsByCollectionID'] = dict(chain(readCollectionRewards(CONSTS.COLLECTION2022_REWARDS_XML_PATH).iteritems(), readCollectionRewards(CONSTS.COLLECTION2021_REWARDS_XML_PATH).iteritems(), readCollectionRewards(CONSTS.COLLECTION2020_REWARDS_XML_PATH).iteritems(), readCollectionRewards(CONSTS.COLLECTION2019_REWARDS_XML_PATH).iteritems(), readCollectionRewards(CONSTS.COLLECTION2018_REWARDS_XML_PATH).iteritems()))
         cfg['toyCountByCollectionID'] = _countToysByCollection(chain(ny22Toys.itervalues(), ny21Toys.itervalues(), ny20Toys.itervalues(), ny19Toys.itervalues(), ny18Toys.itervalues()), collectingFunction=getToyCollectionID)
         cfg['variadicDiscounts'] = buildVariadicDiscountsCache(CONSTS.VARIADIC_DISCOUNTS_XML_PATH)
         if IS_CLIENT:
             cfg['toysTransformations'] = readToysTransformations(CONSTS.TOYS_TRANSFORMATIONS_XML_PATH)
         if IS_BASEAPP:
             cfg['collectionIDs'] = dictlike(getToyCollectionID)
             cfg['levelRewardsByID'] = dict(((lr.level, lid) for lid, lr in self.levels.iteritems()))
             cfg['toyGroups'] = _buildToyGroups(self.toys.itervalues())
     except Exception:
         self.ffini()
         if nofail:
             raise
         LOG_CURRENT_EXCEPTION()
Beispiel #3
0
    def getCollectionSettingsIDs(cls, useMega=False):
        result = []
        for settingName in YEARS_INFO.getCollectionTypesByYear(
                cls._YEAR, useMega=useMega):
            result.append(
                YEARS_INFO.getCollectionIntID(
                    YEARS_INFO.getCollectionSettingID(settingName, cls._YEAR)))

        return result
Beispiel #4
0
 def getCollectionLevelByName(cls, collectionName):
     config = getBonusConfig()
     requester = cls._itemsCache.items.festivity
     collectionDistrs = requester.getCollectionDistributions()
     collectionStrID = YEARS_INFO.getCollectionSettingID(
         collectionName, YEARS_INFO.CURRENT_YEAR_STR)
     collectionID = YEARS_INFO.getCollectionIntID(collectionStrID)
     return config.getCollectionLevel(
         collectionDistrs[collectionID]) if requester.isSynced() else 0
Beispiel #5
0
    def __setRewards(self, collectionStrID, rewards):
        rewards = self.__getRewards(rewards)
        collectionIntID = YEARS_INFO.getCollectionIntID(collectionStrID)
        with self.getViewModel().transaction() as model:
            year, collectionName = getCollectionByIntID(collectionIntID)
            model.setStyleStr('{}_{}'.format(collectionName, year))
            model.setIsMega(collectionName == ToySettings.MEGA_TOYS)
            rewardsList = model.getRewards()
            rewardsList.clear()
            for index, reward in enumerate(rewards):
                incIndex = index + 1
                formatter = getRewardRendererModelPresenter(reward)
                rewardRender = formatter.getModel(reward, incIndex)
                rewardsList.addViewModel(rewardRender)
                self.__tooltipData[incIndex] = createTooltipDataByDict(reward)

            rewardsList.invalidate()