示例#1
0
 def _carouseItemWrapper(self, itemCD):
     item = self.service.getItemByCD(itemCD)
     inventoryCount = self.__ctx.mode.getItemInventoryCount(item)
     purchaseLimit = self.__ctx.mode.getPurchaseLimit(item)
     isApplied = itemCD in self._carouselDP.getAppliedItems()
     isBaseStyleItem = itemCD in self._carouselDP.getBaseStyleItems()
     if item.isStyleOnly or isBaseStyleItem:
         isDarked = isUsedUp = False
     else:
         isDarked = purchaseLimit <= 0 and inventoryCount <= 0
         isUsedUp = isItemUsedUp(item)
     showEditableHint = False
     showEditBtnHint = False
     if self.__ctx.modeId == CustomizationModes.STYLED:
         autoRentEnabled = self.__ctx.mode.isAutoRentEnabled()
         if item.isProgressionRequired:
             showEditableHint = not bool(
                 self.__serverSettings.getOnceOnlyHintsSetting(
                     OnceOnlyHints.C11N_PROGRESSION_REQUIRED_STYLE_SLOT_HINT
                 ))
             showEditBtnHint = not bool(
                 self.__serverSettings.getOnceOnlyHintsSetting(
                     OnceOnlyHints.
                     C11N_PROGRESSION_REQUIRED_STYLE_SLOT_BUTTON_HINT))
         elif item.isEditable:
             showEditableHint = not bool(
                 self.__serverSettings.getOnceOnlyHintsSetting(
                     OnceOnlyHints.C11N_EDITABLE_STYLE_SLOT_HINT))
             showEditBtnHint = not bool(
                 self.__serverSettings.getOnceOnlyHintsSetting(
                     OnceOnlyHints.C11N_EDITABLE_STYLE_SLOT_BUTTON_HINT))
     else:
         autoRentEnabled = False
     isChained, isUnsuitable = self._carouselDP.processDependentParams(item)
     return buildCustomizationItemDataVO(item=item,
                                         count=inventoryCount,
                                         isApplied=isApplied,
                                         isDarked=isDarked,
                                         isUsedUp=isUsedUp,
                                         autoRentEnabled=autoRentEnabled,
                                         vehicle=g_currentVehicle.item,
                                         showEditableHint=showEditableHint,
                                         showEditBtnHint=showEditBtnHint,
                                         isChained=isChained,
                                         isUnsuitable=isUnsuitable)
示例#2
0
 def __initFilters(self):
     self.__carouselFilters[
         FilterTypes.HISTORIC] = DisjunctionCarouselFilter(
             criteria={
                 FilterAliases.HISTORIC:
                 REQ_CRITERIA.CUSTOMIZATION.HISTORICAL,
                 FilterAliases.NON_HISTORIC:
                 REQ_CRITERIA.CUSTOMIZATION.NON_HISTORICAL,
                 FilterAliases.FANTASTICAL:
                 REQ_CRITERIA.CUSTOMIZATION.FANTASTICAL
             })
     self.__carouselFilters[FilterTypes.INVENTORY] = SimpleCarouselFilter(
         criteria=REQ_CRITERIA.CUSTOM(
             lambda item: self.__ctx.mode.getItemInventoryCount(item) > 0))
     self.__carouselFilters[FilterTypes.APPLIED] = SimpleCarouselFilter(
         criteria=REQ_CRITERIA.CUSTOM(
             lambda item: item.intCD in self.__ctx.mode.getAppliedItems(
                 isOriginal=False)))
     self.__carouselFilters[FilterTypes.USED_UP] = SimpleCarouselFilter(
         criteria=REQ_CRITERIA.CUSTOM(lambda item: not isItemUsedUp(item)),
         requirements=lambda: self.__ctx.isItemsOnAnotherVeh,
         inverse=True)
     self.__carouselFilters[
         FilterTypes.EDITABLE_STYLES] = DisjunctionCarouselFilter(
             criteria={
                 FilterAliases.EDITABLE_STYLES:
                 REQ_CRITERIA.CUSTOM(
                     lambda item: item.canBeEditedForVehicle(
                         g_currentVehicle.item.intCD)),
                 FilterAliases.NON_EDITABLE_STYLES:
                 REQ_CRITERIA.CUSTOM(
                     lambda item: not item.canBeEditedForVehicle(
                         g_currentVehicle.item.intCD))
             },
             requirements=lambda: self.__ctx.mode.tabId == CustomizationTabs
             .STYLES)
     self.__carouselFilters[FilterTypes.PROGRESSION] = SimpleCarouselFilter(
         criteria=REQ_CRITERIA.CUSTOM(lambda item: item.isProgressive),
         requirements=lambda: self.__ctx.isProgressiveItemsExist)
     self.__carouselFilters[
         FilterTypes.FORMFACTORS] = FormfactorsCarouselFilter(
             requirements=lambda: self.__ctx.mode.tabId == CustomizationTabs
             .PROJECTION_DECALS)
示例#3
0
 def hasUsedUpItems(self):
     return any((isItemUsedUp(item) for item in self.items))