예제 #1
0
 def _validateItem(self, item, slotId, season):
     errors = []
     if isItemLimitReached(item, self._modifiedOutfits, self):
         error = partial(SystemMessages.pushI18nMessage,
                         key=SYSTEM_MESSAGES.CUSTOMIZATION_PROHIBITED,
                         type=SystemMessages.SM_TYPE.Warning,
                         itemName=item.userName)
         errors.append(error)
     return errors
    def getNextItem(self, reverse):
        if self.__selectedItem.idx == -1:
            return None
        else:
            outfits = self.__ctx.mode.getModifiedOutfits()
            shift = -1 if reverse else 1
            itemsCount = len(self.collection)
            idx = self.__selectedItem.idx + shift
            while 0 <= idx < itemsCount:
                intCD = self.collection[idx]
                item = self.__service.getItemByCD(intCD)
                if not isItemLimitReached(item, outfits) or item.isStyleOnly:
                    return item
                idx += shift

            return None
예제 #3
0
    def installItem(self, intCD, slotId, season=None, component=None):
        item = self._service.getItemByCD(intCD)
        errors = self._validateItem(item, slotId, season)
        if errors:
            for error in errors:
                error()

            return False
        elif not self._installItem(intCD, slotId, season, component):
            return False
        else:
            self._ctx.refreshOutfit(season)
            component = self.getComponentFromSlot(slotId, season)
            if isItemLimitReached(item, self._modifiedOutfits, self):
                if component is None or component.isFilled():
                    self._events.onItemLimitReached(item)
            self._events.onItemInstalled(item, slotId, season, component)
            return True