Ejemplo n.º 1
0
 def fillModel(self, model, dogtag):
     model.setPlayerName(dogtag.getNickName())
     model.setClanTag(dogtag.getClanTag())
     engravingId = dogtag.getComponentByType(ComponentViewType.ENGRAVING).compId
     backgroundId = dogtag.getComponentByType(ComponentViewType.BACKGROUND).compId
     self._fillComponentModel(componentConfig.getComponentById(backgroundId), model.background)
     self._fillComponentModel(componentConfig.getComponentById(engravingId), model.engraving)
 def __getUnlockThresholdForGrade(compId, grade):
     if compId not in componentConfig.getAllComponents():
         return NO_PROGRESS
     comp = componentConfig.getComponentById(compId)
     if not comp.grades:
         return NO_PROGRESS
     return NO_PROGRESS if grade >= len(comp.grades) else comp.grades[grade]
Ejemplo n.º 3
0
 def __getInfoTitle(componentId, grade, dogTagType):
     compTitle = dogTagComposer.getComponentTitle(componentId)
     viewType = cca.getComponentById(componentId).viewType.value.lower()
     strSource = R.strings.dogtags.postbattle.dyn(dogTagType).dyn(
         viewType).title()
     return backport.text(strSource).format(title=compTitle,
                                            level=grade + 1)
Ejemplo n.º 4
0
 def getComponentDescription(componentId):
     comp = componentConfig.getComponentById(componentId)
     descriptionRes = getResourceRoot(comp).dyn('description')
     if not descriptionRes.exists():
         _logger.error('Missing description string for dogtag component %d',
                       componentId)
         descriptionRes = -1
     return backport.text(descriptionRes())
Ejemplo n.º 5
0
 def getComponentTitleRes(componentId):
     comp = componentConfig.getComponentById(componentId)
     titleRes = getResourceRoot(comp).dyn('title')
     if not titleRes.exists():
         _logger.error('Missing title string for dogtag component %d',
                       componentId)
         return -1
     return titleRes()
Ejemplo n.º 6
0
 def getComponentImage(componentId, grade=0):
     if grade < 0:
         _logger.error(
             'Tried loading an image with incorrect grade: %d for component %d',
             grade, componentId)
         grade = 0
     return '{}_{}_{}'.format(
         componentConfig.getComponentById(
             componentId).viewType.value.lower(), componentId, grade)
Ejemplo n.º 7
0
 def getComponentImageFullPath(cls, size, componentId, grade=0):
     imageRes = R.images.gui.maps.icons.dogtags.dyn(size.value.lower()).dyn(
         ViewTypeToImageFolderMap[componentConfig.getComponentById(
             componentId).viewType]).dyn(
                 cls.getComponentImage(componentId, grade))
     if not imageRes.exists():
         _logger.error(
             'Missing image for dogtag component %d, grade %d, size %s',
             componentId, grade, size.value)
         return cls.getDefaultBackgroundImageFullPath(size)
     return backport.image(imageRes())
Ejemplo n.º 8
0
    def _getVisibleComponents(unlockedComponents):
        nonDeprecated = {}
        for compId, comp in componentConfig.getAllComponents(SourceData.NON_DEPRECATED_ONLY).iteritems():
            if not comp.isSecret or compId in unlockedComponents:
                nonDeprecated[compId] = comp

        unlockedBeforeDeprecation = {}
        for compId in unlockedComponents:
            comp = componentConfig.getComponentById(compId, SourceData.DEPRECATED_ONLY)
            if comp is not None:
                unlockedBeforeDeprecation[compId] = comp

        return DictIterator(nonDeprecated, unlockedBeforeDeprecation)
Ejemplo n.º 9
0
    def _preloadDTImages(self, usedDogTagsComponents, skipSameTeam=True):
        componentImages = set()
        for componentPacked in usedDogTagsComponents:
            compId, grade, teamId = unpack_component(componentPacked)
            if skipSameTeam and teamId == BigWorld.player().team:
                continue
            viewType = componentConfigAdapter.getComponentById(compId).viewType
            componentImages.add('{}_{}_{}'.format(viewType.value.lower(),
                                                  compId, grade))

        if componentImages:
            _logger.debug('PostmortemPanel preloading %s',
                          str(componentImages))
            self.as_preloadComponentsS(list(componentImages))
Ejemplo n.º 10
0
 def createDogTagInfo(componentId, dogTagType):
     compGrade = BigWorld.player().dogTags.getComponentProgress(
         componentId).grade
     return {
         'title':
         DogTagsProgressBlock.__getInfoTitle(componentId, compGrade,
                                             dogTagType),
         'description':
         DogTagsProgressBlock.__getInfoDescription(componentId, dogTagType),
         'dogTagType':
         dogTagType,
         'componentId':
         componentId,
         'imageSrc':
         dogTagComposer.getComponentImage(componentId, compGrade),
         'unlockType':
         cca.getComponentById(componentId).viewType.value.lower()
     }
    def __updateNotificationCounters(self, model):
        unseenComps = self._dogTagsHelper.getUnseenComps()
        counters = {
            viewType: defaultdict(int)
            for viewType in ComponentViewType
        }
        for compId in unseenComps:
            comp = componentConfigAdapter.getComponentById(compId)
            counters[comp.viewType][comp.purpose] += 1

        model.setNewBackgroundComponentCount(
            sum(counters[ComponentViewType.BACKGROUND].values()))
        model.setNewEngravingComponentCount(
            sum(counters[ComponentViewType.ENGRAVING].values()))
        model.setNewEngravingDedicationCount(
            counters[ComponentViewType.ENGRAVING][ComponentPurpose.DEDICATION])
        model.setNewEngravingTriumphCount(
            counters[ComponentViewType.ENGRAVING][ComponentPurpose.TRIUMPH])
        model.setNewEngravingSkillCount(
            counters[ComponentViewType.ENGRAVING][ComponentPurpose.SKILL])
 def updateComponentModel(self, viewModel, compId):
     comp = componentConfig.getComponentById(compId)
     componentModel = self._getCorrespondingCompModel(viewModel, comp)
     self._fillComponentModel(
         comp, componentModel, comp.componentId
         in self._dtHelper.getUnlockedComps())
 def _packBlocks(self, compId, userID=None):
     items = super(DogTagInfoTooltip, self)._packBlocks()
     comp = cca.getComponentById(compId)
     if userID is None:
         componentProgress = BigWorld.player().dogTags.getComponentProgress(
             compId)
     else:
         dogTag = PlayerDogTag.fromDict(
             self.itemsCache.items.getDogTag(int(userID)))
         componentProgress = dogTag.getComponentByType(comp.viewType)
     items.append(
         formatters.packTextBlockData(text_styles.middleTitle(
             dogTagComposer.getComponentTitle(compId)),
                                      padding=self.__titlePadding))
     typeLevelBlock = [
         text_styles.main(dogTagComposer.getComponentType(compId))
     ]
     valueBlock = list()
     if comp.viewType == ComponentViewType.ENGRAVING:
         typeLevelBlock.append(text_styles.main(', '))
         typeLevelBlock.append(
             text_styles.neutral('{} {}'.format(
                 backport.text(
                     R.strings.dogtags.customization.tooltip.level()),
                 componentProgress.grade + 1)))
         valueBlock.append(
             text_styles.main('{}: '.format(
                 backport.text(
                     R.strings.dogtags.customization.tooltip.value()))))
         statValue = componentProgress.value
         statStr = formatComponentValue(getLanguageCode(),
                                        statValue,
                                        comp.numberType,
                                        specialReplacements=False)
         valueBlock.append(text_styles.neutral(statStr))
     items.append(
         formatters.packTextBlockData(
             text_styles.concatStylesToSingleLine(*typeLevelBlock),
             padding=self.__levelPadding))
     items.append(
         formatters.packTextBlockData(
             text_styles.concatStylesToSingleLine(*valueBlock)))
     if comp.viewType == ComponentViewType.BACKGROUND:
         items.append(
             formatters.packImageBlockData(
                 dogTagComposer.getComponentImageFullPath(
                     AssetSize.SMALL, compId),
                 padding=formatters.packPadding(
                     top=self.__imagePaddingTop,
                     bottom=self.__imagePaddingBottom)))
     else:
         images = [
             formatters.packImageBlockData(
                 dogTagComposer.getDefaultBackgroundImageFullPath(
                     AssetSize.SMALL),
                 padding=formatters.packPadding(
                     top=self.__imagePaddingTop)),
             formatters.packImageBlockData(
                 dogTagComposer.getComponentImageFullPath(
                     AssetSize.SMALL, compId, componentProgress.grade),
                 padding=formatters.packPadding(
                     top=self.__imageNegativeHeight,
                     bottom=self.__imagePaddingBottom))
         ]
         items.append(formatters.packBuildUpBlockData(blocks=images))
     items.append(
         formatters.packTextBlockData(text=text_styles.main(
             dogTagComposer.getComponentDescription(compId)),
                                      padding=self.__descriptionPadding))
     return [formatters.packBuildUpBlockData(blocks=items)]
Ejemplo n.º 14
0
 def getComponentType(componentId):
     comp = componentConfig.getComponentById(componentId)
     return backport.text(
         R.strings.dogtags.customization.tab.dyn(
             comp.viewType.value.lower())())
 def __getComponentTabIdx(compId):
     if compId == -1:
         return None
     else:
         highComp = componentConfigAdapter.getComponentById(compId)
         return None if highComp is None else highComp.viewType.getTabIdx()
Ejemplo n.º 16
0
 def __getInfoDescription(componentId, dogTagType):
     viewType = cca.getComponentById(componentId).viewType.value.lower()
     strSource = R.strings.dogtags.postbattle.dyn(dogTagType).dyn(
         viewType).description()
     return backport.text(strSource)
 def __init__(self, compId, value, grade):
     self._componentDefinition = componentConfigAdapter.getComponentById(compId)
     self._value = value
     self._grade = grade