def __fillTechnicalMaintenance(self, ammo, equipment):
        shellsLayout = []
        eqsLayout = []
        for shell in ammo:
            buyGoldShellForCredits = shell.goldShellsForCredits and shell.prices[
                1] > 0 and shell.currency == 'credits'
            shellsLayout.append(
                shell.compactDescr
                if not buyGoldShellForCredits else -shell.compactDescr)
            shellsLayout.append(int(shell.userCount))

        for ei in equipment:
            if ei is not None:
                item = getItemByCompact(ei.id)
                buyGoldEqForCredits = ei.goldEqsForCredits and ei.prices[
                    1] > 0 and ei.currency == 'credits'
                eqsLayout.append(item.compactDescr if not buyGoldEqForCredits
                                 else -item.compactDescr)
                eqsLayout.append(1)
            else:
                eqsLayout.append(0)
                eqsLayout.append(0)

        self.__setVehicleLayouts(g_currentVehicle.item, shellsLayout,
                                 eqsLayout)
        return
Beispiel #2
0
 def buyItem(self, data):
     dataCompactId = data.id
     item = getItemByCompact(dataCompactId)
     if ITEM_TYPE_INDICES[item.itemTypeName] == vehicles._VEHICLE:
         self.fireEvent(ShowWindowEvent(ShowWindowEvent.SHOW_VEHICLE_BUY_WINDOW, {'nationID': item.nation,
          'itemID': item.compactDescr}))
     else:
         self.__buyItem(item.compactDescr)
Beispiel #3
0
 def showVehicleInfo(self, pickleDump):
     vehicle = getItemByCompact(pickleDump)
     if vehicle is None:
         LOG_ERROR('There is error while attempting to show vehicle info window: ', str(pickleDump))
         return
     else:
         self.fireEvent(events.ShowWindowEvent(events.ShowWindowEvent.SHOW_VEHICLE_INFO_WINDOW, {'vehicleDescr': vehicle.descriptor}))
         return
Beispiel #4
0
def _convert4ToolTip(dump, price):
    item = getItemByCompact(dump)
    if isinstance(item, _ResearchItem):
        itemCD = item.compactDescr
        itemTypeID, nationID, itemID = vehicles.parseIntCompactDescr(itemCD)
        if itemTypeID == vehicles._VEHICLE:
            item = _makeShopVehicle(itemID, nationID, price)
        else:
            item = _makeShopItem(itemCD, itemTypeID, nationID, price)
    return item
Beispiel #5
0
def _convert4ToolTip(dump, price):
    item = getItemByCompact(dump)
    if isinstance(item, _ResearchItem):
        itemCD = item.compactDescr
        itemTypeID, nationID, itemID = vehicles.parseIntCompactDescr(itemCD)
        if itemTypeID == vehicles._VEHICLE:
            item = _makeShopVehicle(itemID, nationID, price)
        else:
            item = _makeShopItem(itemCD, itemTypeID, nationID, price)
    return item
    def getEquipment(self, eId1, currency1, eId2, currency2, eId3, currency3, slotIndex):
        eIdsCD = []
        for item in [ getItemByCompact(x) for x in (eId1, eId2, eId3) ]:
            if item is None:
                eIdsCD.append(None)
            else:
                eIdsCD.append(item.compactDescr)

        self.populateTechnicalMaintenanceEquipment(eIdsCD[0], currency1, eIdsCD[1], currency2, eIdsCD[2], currency3, slotIndex)
        return
Beispiel #7
0
 def onShowInfo(self, data):
     vehicleID = data.id
     vehicle = getItemByCompact(vehicleID)
     if vehicle is None:
         return LOG_ERROR('There is error while attempting to show vehicle info window: ', str(vehicleID))
     else:
         if ITEM_TYPE_INDICES[vehicle.itemTypeName] == vehicles._VEHICLE:
             self.fireEvent(events.ShowWindowEvent(events.ShowWindowEvent.SHOW_VEHICLE_INFO_WINDOW, {'vehicleDescr': vehicle.descriptor}))
         else:
             self.fireEvent(events.ShowWindowEvent(events.ShowWindowEvent.SHOW_MODULE_INFO_WINDOW, {'moduleId': vehicle.pack()}))
         return
Beispiel #8
0
 def buyItem(self, data):
     dataCompactId = data.id
     item = getItemByCompact(dataCompactId)
     if ITEM_TYPE_INDICES[item.itemTypeName] == vehicles._VEHICLE:
         self.fireEvent(
             ShowWindowEvent(ShowWindowEvent.SHOW_VEHICLE_BUY_WINDOW, {
                 'nationID': item.nation,
                 'itemID': item.compactDescr
             }))
     else:
         self.__buyItem(item.compactDescr)
Beispiel #9
0
 def dismissTankman(self, dataCompact):
     tmanOldItem = getItemByCompact(dataCompact)
     if tmanOldItem is None:
         LOG_ERROR('Attempt to dismiss tankman by invalid compact')
         return
     else:
         tankman = g_itemsCache.items.getTankman(tmanOldItem.inventoryId)
         result = yield TankmanDismiss(tankman).request()
         if len(result.userMsg):
             SystemMessages.g_instance.pushMessage(result.userMsg, type=result.sysMsgType)
         return
Beispiel #10
0
 def dismissTankman(self, dataCompact):
     tmanOldItem = getItemByCompact(dataCompact)
     if tmanOldItem is None:
         LOG_ERROR('Attempt to dismiss tankman by invalid compact')
         return
     else:
         tankman = g_itemsCache.items.getTankman(tmanOldItem.inventoryId)
         result = yield TankmanDismiss(tankman).request()
         if len(result.userMsg):
             SystemMessages.g_instance.pushMessage(result.userMsg,
                                                   type=result.sysMsgType)
         return
    def setRefillSettings(self, vehicleCompact, repair, shells, equipment):
        vcls = yield Requester('vehicle').getFromInventory()
        vehicle = getItemByCompact(vehicleCompact)
        for v in vcls:
            if v.inventoryId == vehicle.inventoryId:
                vehicle = v

        if vehicle.isAutoRepair != repair:
            yield vehicle.setAutoRepair(repair)
        if vehicle.isAutoLoad != shells:
            yield vehicle.setAutoLoad(shells)
        if vehicle.isAutoEquip != equipment:
            yield vehicle.setAutoEquip(equipment)
    def setRefillSettings(self, vehicleCompact, repair, shells, equipment):
        vcls = yield Requester('vehicle').getFromInventory()
        vehicle = getItemByCompact(vehicleCompact)
        for v in vcls:
            if v.inventoryId == vehicle.inventoryId:
                vehicle = v

        if vehicle.isAutoRepair != repair:
            yield vehicle.setAutoRepair(repair)
        if vehicle.isAutoLoad != shells:
            yield vehicle.setAutoLoad(shells)
        if vehicle.isAutoEquip != equipment:
            yield vehicle.setAutoEquip(equipment)
Beispiel #13
0
 def showVehicleInfo(self, pickleDump):
     vehicle = getItemByCompact(pickleDump)
     if vehicle is None:
         LOG_ERROR(
             'There is error while attempting to show vehicle info window: ',
             str(pickleDump))
         return
     else:
         self.fireEvent(
             events.ShowWindowEvent(
                 events.ShowWindowEvent.SHOW_VEHICLE_INFO_WINDOW,
                 {'vehicleDescr': vehicle.descriptor}))
         return
    def getEquipment(self, eId1, currency1, eId2, currency2, eId3, currency3,
                     slotIndex):
        eIdsCD = []
        for item in [getItemByCompact(x) for x in (eId1, eId2, eId3)]:
            if item is None:
                eIdsCD.append(None)
            else:
                eIdsCD.append(item.compactDescr)

        self.populateTechnicalMaintenanceEquipment(eIdsCD[0], currency1,
                                                   eIdsCD[1], currency2,
                                                   eIdsCD[2], currency3,
                                                   slotIndex)
        return
Beispiel #15
0
 def unloadTankman(self, dataCompact):
     tmanOldItem = getItemByCompact(dataCompact)
     if tmanOldItem is None:
         LOG_ERROR('Attempt to unload tankman by invalid compact')
         return
     else:
         tankman = g_itemsCache.items.getTankman(tmanOldItem.inventoryId)
         tmanVehile = g_itemsCache.items.getVehicle(tankman.vehicleInvID)
         if tmanVehile is None:
             LOG_ERROR("Target tankman's vehicle is not found in inventory", tankman, tankman.vehicleInvID)
             return
         result = yield TankmanUnload(tmanVehile, tankman.vehicleSlotIdx).request()
         if len(result.userMsg):
             SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType)
         return
Beispiel #16
0
 def unloadTankman(self, dataCompact):
     tmanOldItem = getItemByCompact(dataCompact)
     if tmanOldItem is None:
         LOG_ERROR('Attempt to unload tankman by invalid compact')
         return
     else:
         tankman = g_itemsCache.items.getTankman(tmanOldItem.inventoryId)
         tmanVehile = g_itemsCache.items.getVehicle(tankman.vehicleInvID)
         if tmanVehile is None:
             LOG_ERROR("Target tankman's vehicle is not found in inventory",
                       tankman, tankman.vehicleInvID)
             return
         result = yield TankmanUnload(tmanVehile,
                                      tankman.vehicleSlotIdx).request()
         if len(result.userMsg):
             SystemMessages.g_instance.pushI18nMessage(
                 result.userMsg, type=result.sysMsgType)
         return
    def __fillTechnicalMaintenance(self, ammo, equipment):
        shellsLayout = []
        eqsLayout = []
        for shell in ammo:
            buyGoldShellForCredits = shell.goldShellsForCredits and shell.prices[1] > 0 and shell.currency == 'credits'
            shellsLayout.append(shell.compactDescr if not buyGoldShellForCredits else -shell.compactDescr)
            shellsLayout.append(int(shell.userCount))

        for ei in equipment:
            if ei is not None:
                item = getItemByCompact(ei.id)
                buyGoldEqForCredits = ei.goldEqsForCredits and ei.prices[1] > 0 and ei.currency == 'credits'
                eqsLayout.append(item.compactDescr if not buyGoldEqForCredits else -item.compactDescr)
                eqsLayout.append(1)
            else:
                eqsLayout.append(0)
                eqsLayout.append(0)

        self.__setVehicleLayouts(g_currentVehicle.item, shellsLayout, eqsLayout)
        return
Beispiel #18
0
    def setVehicleModule(self, newId, slotIdx, oldId, isRemove):
        if isRemove:
            isUseGold = oldId is not None
            newComponent = gui_items.getItemByCompact(newId)
            newComponentItem = g_itemsCache.items.getItemByCD(newComponent.compactDescr)
            return newComponentItem is None and None
        else:
            oldComponentItem = None
            if oldId:
                oldComponent = gui_items.getItemByCompact(oldId)
                oldComponentItem = g_itemsCache.items.getItemByCD(oldComponent.compactDescr)
            if not isRemove and oldComponentItem and oldComponentItem.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE:
                result = yield getInstallerProcessor(g_currentVehicle.item, oldComponentItem, slotIdx, False, True).request()
                if result and result.auxData:
                    for m in result.auxData:
                        SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType)

                if result and len(result.userMsg):
                    SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType)
                if not result.success:
                    return
            iVehicles = yield Requester(ITEM_TYPE_NAMES[1]).getFromInventory()
            oldStyleVehicle = None
            for v in iVehicles:
                if v.inventoryId == g_currentVehicle.invID:
                    oldStyleVehicle = v
                    break

            conflictedEqs = findConflictedEquipmentForModule(newComponent, oldStyleVehicle)
            if isinstance(newComponent, gui_items.ShopItem):
                Waiting.show('buyItem')
                buyResult = yield ModuleBuyer(newComponentItem, count=1, buyForCredits=True, conflictedEqs=conflictedEqs, install=True).request()
                if len(buyResult.userMsg):
                    SystemMessages.g_instance.pushI18nMessage(buyResult.userMsg, type=buyResult.sysMsgType)
                if buyResult.success:
                    newComponentItem = g_itemsCache.items.getItemByCD(newComponent.compactDescr)
                Waiting.hide('buyItem')
                if not buyResult.success:
                    return
            Waiting.show('applyModule')
            result = yield getInstallerProcessor(g_currentVehicle.item, newComponentItem, slotIdx, not isRemove, isUseGold, conflictedEqs).request()
            if result and result.auxData:
                for m in result.auxData:
                    SystemMessages.g_instance.pushI18nMessage(m.userMsg, type=m.sysMsgType)

            if result and len(result.userMsg):
                SystemMessages.g_instance.pushI18nMessage(result.userMsg, type=result.sysMsgType)
            if result and result.success and newComponentItem.itemTypeID in (GUI_ITEM_TYPE.TURRET, GUI_ITEM_TYPE.GUN):
                iAmmo = yield Requester(ITEM_TYPE_NAMES[10]).getFromInventory()
                iVehicles = yield Requester(ITEM_TYPE_NAMES[1]).getFromInventory()
                for iVehicle in iVehicles:
                    if iVehicle.inventoryId == g_currentVehicle.invID:
                        installAmmoVehicle = iVehicle

                for shell in installAmmoVehicle.shells:
                    iCount = iAmmo[iAmmo.index(shell)].count if shell in iAmmo else 0
                    if shell.default > iCount:
                        success, message = False, '#system_messages:charge/inventory_error'
                        break
                else:
                    success, message = yield installAmmoVehicle.loadShells(None)

                SystemMessages.g_instance.pushI18nMessage(message, type=SystemMessages.SM_TYPE.Information if success else SystemMessages.SM_TYPE.Warning)
            Waiting.hide('applyModule')
            return
Beispiel #19
0
    def requestTableData(self, nation, type, filter):
        Waiting.show('updateShop')
        AccountSettings.setFilter('shop_current', (nation, type))
        AccountSettings.setFilter('shop_' + type, filter)
        nation = int(nation) if nation >= 0 else None
        if nation is not None:
            nation = getNationIndex(nation)
        filter = list(filter)
        requestType = [type]
        checkFits = None
        checkFitsArtefacts = None
        checkExtra = False
        modulesFits = {}
        vehicleFits = []
        extra = []
        modulesAllVehicle = []
        if type == self._MODULE:
            typeSize = int(filter.pop(0))
            requestType = filter[0:typeSize]
            filter = filter[typeSize:]
            fitsType = filter.pop(0)
            compact = filter.pop(0)
            if compact == '0':
                LOG_ERROR('compact value has invalid value: ', compact)
                Waiting.hide('updateShop')
                return
            fitsVehicle = getItemByCompact(compact)
            checkExtra = True
            extra = filter[:]
            checkFits = True if fitsType != 'otherVehicles' else None
            myVehicles = yield Requester(self._VEHICLE).getFromInventory()
            modulesAllVehicle = VehicleItemsRequester(myVehicles).getItems(requestType)
            if fitsType == 'myVehicle':
                for rType in requestType:
                    modulesFits.update(_getComponentsByType(fitsVehicle, ITEM_TYPE_INDICES[rType]))

            elif fitsType != 'otherVehicles':
                for vehicle in myVehicles:
                    for rType in requestType:
                        modulesFits.update(_getComponentsByType(vehicle, ITEM_TYPE_INDICES[rType]))

            filter = requestType
        elif type == self._SHELL:
            filterSize = int(filter.pop(0))
            fitsType = filter.pop(filterSize)
            compact = filter.pop(filterSize)
            if compact == '0':
                LOG_ERROR('compact value has invalid value: ', compact)
                Waiting.hide('updateShop')
                return
            fitsVehicle = getItemByCompact(compact)
            checkFits = True if fitsType != 'otherGuns' else None
            if fitsType == 'myVehicleGun':
                for shoot in fitsVehicle.descriptor.gun['shots']:
                    modulesFits[shoot[self._SHELL]['compactDescr']] = True

            elif fitsType == 'myInventoryGuns':
                myGuns = yield Requester('vehicleGun').getFromInventory()
                for gun in myGuns:
                    for shoot in gun.descriptor['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

            elif fitsType != 'otherGuns':
                myGuns = yield Requester('vehicleGun').getFromInventory()
                for gun in myGuns:
                    for shoot in gun.descriptor['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

                myVehicles = yield Requester(self._VEHICLE).getFromInventory()
                for vehicle in myVehicles:
                    for shoot in vehicle.descriptor.gun['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

        elif type == self._VEHICLE:
            filterSize = int(filter.pop(0))
            extra = filter[filterSize:]
            checkExtra = True
            filter = filter[0:filterSize]
        else:
            fitsType = filter.pop(0)
            compact = filter.pop(0)
            if compact == '0':
                LOG_ERROR('compact value has invalid value: ', compact)
                Waiting.hide('updateShop')
                return
            fitsVehicle = getItemByCompact(compact)
            extra = filter
            checkExtra = type in (self._OPTIONAL_DEVICE, self._EQUIPMENT)
            checkFitsArtefacts = True if fitsType != 'otherVehicles' else None
            myVehicles = yield Requester(self._VEHICLE).getFromInventory()
            modulesAllVehicle = VehicleItemsRequester(myVehicles).getItems(requestType)
            if fitsType == 'myVehicle':
                vehicleFits = [fitsVehicle]
            elif fitsType != 'otherVehicles':
                vehicleFits = [ v for v in myVehicles if v.nation == nation ] if nation != None else myVehicles
            filter = requestType
        filter = map(lambda w: w.lower(), filter)
        modulesAll = list()
        modulesAllInventory = list()
        for rType in requestType:
            inv = yield Requester(rType).getFromInventory()
            modulesAllInventory.extend(inv)
            shp = yield Requester(rType).getFromShop(nation=nation)
            modulesAll.extend(shp)

        unlocks = yield StatsRequester().getUnlocks()
        shopRqs = yield ShopRequester().request()
        self.__clearTableData()
        self.__tableData = [type]
        modulesAll.sort()
        for module in modulesAll:
            extraModuleInfo = None
            if module.hidden:
                continue
            if module.type.lower() not in filter:
                continue
            if checkFits is not None:
                if (module.compactDescr in modulesFits.keys()) != checkFits:
                    continue
            if checkFitsArtefacts is not None:
                for veh in vehicleFits:
                    if module.descriptor.checkCompatibilityWithVehicle(veh.descriptor)[0] == checkFitsArtefacts:
                        break
                else:
                    continue

            if module.isClipGun():
                extraModuleInfo = CLIP_ICON_PATH
            inventoryCount = 0
            vehicleCount = 0
            installedIn = ''
            if module in modulesAllInventory:
                inventoryCount = 1
                if type != self._VEHICLE:
                    inventoryModule = modulesAllInventory[modulesAllInventory.index(module)]
                    inventoryCount = inventoryModule.count
            if type in (self._MODULE, self._OPTIONAL_DEVICE, self._EQUIPMENT) and module in modulesAllVehicle:
                vehModule = modulesAllVehicle[modulesAllVehicle.index(module)]
                vehicleCount = vehModule.count
                installedIn = ', '.join([ v.shortName for v in vehModule.vehicles ])
            if checkExtra:
                if 'locked' not in extra:
                    if type == self._VEHICLE:
                        compdecs = module.descriptor.type.compactDescr
                        if compdecs not in unlocks:
                            continue
                    elif type not in (self._SHELL, self._OPTIONAL_DEVICE, self._EQUIPMENT) and module.compactDescr not in unlocks:
                        continue
                if 'inHangar' not in extra and type not in (self._OPTIONAL_DEVICE, self._EQUIPMENT):
                    if inventoryCount > 0:
                        continue
                if 'onVehicle' not in extra:
                    if vehicleCount > 0:
                        continue
            disabled = ''
            if type == self._VEHICLE:
                if BigWorld.player().isLongDisconnectedFromCenter:
                    disabled = MENU.SHOP_ERRORS_CENTERISDOWN
                if inventoryCount > 0:
                    disabled = MENU.SHOP_ERRORS_INHANGAR
                else:
                    compdecs = module.descriptor.type.compactDescr
                    if compdecs not in unlocks:
                        disabled = MENU.SHOP_ERRORS_UNLOCKNEEDED
            elif type not in (self._SHELL, self._OPTIONAL_DEVICE, self._EQUIPMENT) and module.compactDescr not in unlocks:
                disabled = MENU.SHOP_ERRORS_UNLOCKNEEDED
            if not (shopRqs.isEnabledBuyingGoldShellsForCredits and module.itemTypeName == 'shell'):
                goldAmmoForCredits = shopRqs.isEnabledBuyingGoldEqsForCredits and module.itemTypeName == 'equipment'
                module.priceOrder = goldAmmoForCredits and (module.priceOrder[0] + module.priceOrder[1] * shopRqs.exchangeRateForShellsAndEqs, module.priceOrder[1])
            valueElement = {'id': compactItem(module),
             'name': module.name if type in (self._OPTIONAL_DEVICE, self._EQUIPMENT) else module.longName,
             'desc': getShortDescr(module.tableName),
             'inventoryId': None,
             'inventoryCount': inventoryCount,
             'vehicleCount': vehicleCount,
             'credits': module.priceOrder[0],
             'gold': module.priceOrder[1],
             'price': module.priceOrder,
             'currency': 'credits' if module.priceOrder[1] == 0 else 'gold',
             'level': module.level,
             'nation': module.nation,
             'type': module.itemTypeName if type not in (self._VEHICLE,
                      self._OPTIONAL_DEVICE,
                      self._SHELL,
                      self._EQUIPMENT) else module.icon,
             'disabled': disabled,
             'statusLevel': InventoryVehicle.STATE_LEVEL.WARNING,
             'removable': module.descriptor['removable'] if type == self._OPTIONAL_DEVICE else True,
             'tankType': module.type if type == self._VEHICLE else type,
             'isPremium': module.isPremium if type == self._VEHICLE else False,
             'isElite': self.app.tooltipManager.isVehicleElite(module) if type == self._VEHICLE else False,
             'itemTypeName': module.itemTypeName,
             'goldShellsForCredits': shopRqs.isEnabledBuyingGoldShellsForCredits,
             'goldEqsForCredits': shopRqs.isEnabledBuyingGoldEqsForCredits,
             EXTRA_MODULE_INFO: extraModuleInfo}
            self.__tableData.append(valueElement)

        requester = yield StatsRequesterr().request()
        self._table.as_setGoldS(requester.gold)
        self._table.as_setCreditsS(requester.credits)
        self._table.as_setTableS(self.__tableData)
        Waiting.hide('updateShop')
        return
    def _populate(self):
        super(View, self)._populate()
        module = getItemByCompact(self.moduleId)
        description = ''
        if module.itemTypeName in (ITEM_TYPE_NAMES[9], ITEM_TYPE_NAMES[11]):
            description = stripShortDescrTags(module.description)
        if module.itemTypeName in (ITEM_TYPE_NAMES[9], ITEM_TYPE_NAMES[10], ITEM_TYPE_NAMES[11]):
            icon = module.icon
        else:
            icon = module.level
        extraModuleInfo = ''
        moduleData = {'name': module.longName,
         'windowTitle': ' '.join([module.longName, i18n.makeString(MENU.MODULEINFO_TITLE)]),
         'type': module.itemTypeName,
         'description': description,
         'level': icon,
         'params': [],
         'compatible': [],
         'effects': {}}
        params = ItemsParameters.g_instance.get(module.descriptor, self.__vehicleDescr)
        moduleParameters = params.get('parameters', tuple())
        isGun = module.itemTypeName == ITEM_TYPE_NAMES[4]
        excludedParametersNames = []
        if isGun:
            gunReloadingType = dict(moduleParameters)[GUN_RELOADING_TYPE]
            LOG_DEBUG('gunReloadingTypegunReloadingTypegunReloadingTypegunReloadingType', gunReloadingType)
            if gunReloadingType == GUN_NORMAL:
                excludedParametersNames.append(SHELLS_COUNT_PROP_NAME)
                excludedParametersNames.append(RELOAD_MAGAZINE_TIME_PROP_NAME)
                excludedParametersNames.append(SHELL_RELOADING_TIME_PROP_NAME)
            elif gunReloadingType == GUN_CLIP:
                description = i18n.makeString(MENU.MODULEINFO_CLIPGUNLABEL)
                excludedParametersNames.append(RELOAD_TIME_PROP_NAME)
                extraModuleInfo = CLIP_ICON_PATH
            elif gunReloadingType == GUN_CAN_BE_CLIP:
                excludedParametersNames.append(SHELLS_COUNT_PROP_NAME)
                excludedParametersNames.append(RELOAD_MAGAZINE_TIME_PROP_NAME)
                excludedParametersNames.append(SHELL_RELOADING_TIME_PROP_NAME)
                otherParamsInfoList = []
                for paramType, paramValue in moduleParameters:
                    if paramType in excludedParametersNames:
                        otherParamsInfoList.append({'type': i18n.makeString(MENU.moduleinfo_params(paramType)),
                         'value': paramValue})

                imgPathArr = CLIP_ICON_PATH.split('..')
                imgPath = 'img://gui' + imgPathArr[1]
                moduleData['otherParameters'] = {'headerText': i18n.makeString(MENU.MODULEINFO_PARAMETERSCLIPGUNLABEL, imgPath),
                 'params': otherParamsInfoList}
        moduleData['description'] = description
        excludedParametersNames.append(GUN_RELOADING_TYPE)
        paramsList = []
        for paramType, paramValue in moduleParameters:
            if paramType not in excludedParametersNames:
                paramsList.append({'type': i18n.makeString(MENU.moduleinfo_params(paramType)),
                 'value': paramValue})

        moduleData['parameters'] = {'headerText': i18n.makeString(MENU.MODULEINFO_PARAMETERSLABEL) if len(paramsList) > 0 else '',
         'params': paramsList}
        moduleData[EXTRA_MODULE_INFO] = extraModuleInfo
        moduleCompatibles = params.get('compatible', tuple())
        for paramType, paramValue in moduleCompatibles:
            compatible = moduleData.get('compatible')
            compatible.append({'type': i18n.makeString(MENU.moduleinfo_compatible(paramType)),
             'value': paramValue})

        if module.itemTypeName == ITEM_TYPE_NAMES[11]:
            effectsNametemplate = '#artefacts:%s/%s'
            moduleData['effects'] = {'effectOnUse': i18n.makeString(effectsNametemplate % (module.unicName, 'onUse')),
             'effectAlways': i18n.makeString(effectsNametemplate % (module.unicName, 'always')),
             'effectRestriction': i18n.makeString(effectsNametemplate % (module.unicName, 'restriction'))}
        self.as_setModuleInfoS(moduleData)
    def _populate(self):
        super(View, self)._populate()
        module = getItemByCompact(self.moduleId)
        description = ''
        if module.itemTypeName in (ITEM_TYPE_NAMES[9], ITEM_TYPE_NAMES[11]):
            description = stripShortDescrTags(module.description)
        if module.itemTypeName in (ITEM_TYPE_NAMES[9], ITEM_TYPE_NAMES[10],
                                   ITEM_TYPE_NAMES[11]):
            icon = module.icon
        else:
            icon = module.level
        extraModuleInfo = ''
        moduleData = {
            'name':
            module.longName,
            'windowTitle':
            ' '.join([module.longName,
                      i18n.makeString(MENU.MODULEINFO_TITLE)]),
            'type':
            module.itemTypeName,
            'description':
            description,
            'level':
            icon,
            'params': [],
            'compatible': [],
            'effects': {}
        }
        params = ItemsParameters.g_instance.get(module.descriptor,
                                                self.__vehicleDescr)
        moduleParameters = params.get('parameters', tuple())
        isGun = module.itemTypeName == ITEM_TYPE_NAMES[4]
        excludedParametersNames = []
        if isGun:
            gunReloadingType = dict(moduleParameters)[GUN_RELOADING_TYPE]
            LOG_DEBUG(
                'gunReloadingTypegunReloadingTypegunReloadingTypegunReloadingType',
                gunReloadingType)
            if gunReloadingType == GUN_NORMAL:
                excludedParametersNames.append(SHELLS_COUNT_PROP_NAME)
                excludedParametersNames.append(RELOAD_MAGAZINE_TIME_PROP_NAME)
                excludedParametersNames.append(SHELL_RELOADING_TIME_PROP_NAME)
            elif gunReloadingType == GUN_CLIP:
                description = i18n.makeString(MENU.MODULEINFO_CLIPGUNLABEL)
                excludedParametersNames.append(RELOAD_TIME_PROP_NAME)
                extraModuleInfo = CLIP_ICON_PATH
            elif gunReloadingType == GUN_CAN_BE_CLIP:
                excludedParametersNames.append(SHELLS_COUNT_PROP_NAME)
                excludedParametersNames.append(RELOAD_MAGAZINE_TIME_PROP_NAME)
                excludedParametersNames.append(SHELL_RELOADING_TIME_PROP_NAME)
                otherParamsInfoList = []
                for paramType, paramValue in moduleParameters:
                    if paramType in excludedParametersNames:
                        otherParamsInfoList.append({
                            'type':
                            i18n.makeString(MENU.moduleinfo_params(paramType)),
                            'value':
                            paramValue
                        })

                imgPathArr = CLIP_ICON_PATH.split('..')
                imgPath = 'img://gui' + imgPathArr[1]
                moduleData['otherParameters'] = {
                    'headerText':
                    i18n.makeString(MENU.MODULEINFO_PARAMETERSCLIPGUNLABEL,
                                    imgPath),
                    'params':
                    otherParamsInfoList
                }
        moduleData['description'] = description
        excludedParametersNames.append(GUN_RELOADING_TYPE)
        paramsList = []
        for paramType, paramValue in moduleParameters:
            if paramType not in excludedParametersNames:
                paramsList.append({
                    'type':
                    i18n.makeString(MENU.moduleinfo_params(paramType)),
                    'value':
                    paramValue
                })

        moduleData['parameters'] = {
            'headerText':
            i18n.makeString(MENU.MODULEINFO_PARAMETERSLABEL)
            if len(paramsList) > 0 else '',
            'params':
            paramsList
        }
        moduleData[EXTRA_MODULE_INFO] = extraModuleInfo
        moduleCompatibles = params.get('compatible', tuple())
        for paramType, paramValue in moduleCompatibles:
            compatible = moduleData.get('compatible')
            compatible.append({
                'type':
                i18n.makeString(MENU.moduleinfo_compatible(paramType)),
                'value':
                paramValue
            })

        if module.itemTypeName == ITEM_TYPE_NAMES[11]:
            effectsNametemplate = '#artefacts:%s/%s'
            moduleData['effects'] = {
                'effectOnUse':
                i18n.makeString(effectsNametemplate %
                                (module.unicName, 'onUse')),
                'effectAlways':
                i18n.makeString(effectsNametemplate %
                                (module.unicName, 'always')),
                'effectRestriction':
                i18n.makeString(effectsNametemplate %
                                (module.unicName, 'restriction'))
            }
        self.as_setModuleInfoS(moduleData)
Beispiel #22
0
    def requestTableData(self, nation, type, filter):
        Waiting.show('updateShop')
        AccountSettings.setFilter('shop_current', (nation, type))
        AccountSettings.setFilter('shop_' + type, filter)
        nation = int(nation) if nation >= 0 else None
        if nation is not None:
            nation = getNationIndex(nation)
        filter = list(filter)
        requestType = [type]
        checkFits = None
        checkFitsArtefacts = None
        checkExtra = False
        modulesFits = {}
        vehicleFits = []
        extra = []
        modulesAllVehicle = []
        if type == self._MODULE:
            typeSize = int(filter.pop(0))
            requestType = filter[0:typeSize]
            filter = filter[typeSize:]
            fitsType = filter.pop(0)
            compact = filter.pop(0)
            if compact == '0':
                LOG_ERROR('compact value has invalid value: ', compact)
                Waiting.hide('updateShop')
                return
            fitsVehicle = getItemByCompact(compact)
            checkExtra = True
            extra = filter[:]
            checkFits = True if fitsType != 'otherVehicles' else None
            myVehicles = yield Requester(self._VEHICLE).getFromInventory()
            modulesAllVehicle = VehicleItemsRequester(myVehicles).getItems(
                requestType)
            if fitsType == 'myVehicle':
                for rType in requestType:
                    modulesFits.update(
                        _getComponentsByType(fitsVehicle,
                                             ITEM_TYPE_INDICES[rType]))

            elif fitsType != 'otherVehicles':
                for vehicle in myVehicles:
                    for rType in requestType:
                        modulesFits.update(
                            _getComponentsByType(vehicle,
                                                 ITEM_TYPE_INDICES[rType]))

            filter = requestType
        elif type == self._SHELL:
            filterSize = int(filter.pop(0))
            fitsType = filter.pop(filterSize)
            compact = filter.pop(filterSize)
            if compact == '0':
                LOG_ERROR('compact value has invalid value: ', compact)
                Waiting.hide('updateShop')
                return
            fitsVehicle = getItemByCompact(compact)
            checkFits = True if fitsType != 'otherGuns' else None
            if fitsType == 'myVehicleGun':
                for shoot in fitsVehicle.descriptor.gun['shots']:
                    modulesFits[shoot[self._SHELL]['compactDescr']] = True

            elif fitsType == 'myInventoryGuns':
                myGuns = yield Requester('vehicleGun').getFromInventory()
                for gun in myGuns:
                    for shoot in gun.descriptor['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

            elif fitsType != 'otherGuns':
                myGuns = yield Requester('vehicleGun').getFromInventory()
                for gun in myGuns:
                    for shoot in gun.descriptor['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

                myVehicles = yield Requester(self._VEHICLE).getFromInventory()
                for vehicle in myVehicles:
                    for shoot in vehicle.descriptor.gun['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

        elif type == self._VEHICLE:
            filterSize = int(filter.pop(0))
            extra = filter[filterSize:]
            checkExtra = True
            filter = filter[0:filterSize]
        else:
            fitsType = filter.pop(0)
            compact = filter.pop(0)
            if compact == '0':
                LOG_ERROR('compact value has invalid value: ', compact)
                Waiting.hide('updateShop')
                return
            fitsVehicle = getItemByCompact(compact)
            extra = filter
            checkExtra = type in (self._OPTIONAL_DEVICE, self._EQUIPMENT)
            checkFitsArtefacts = True if fitsType != 'otherVehicles' else None
            myVehicles = yield Requester(self._VEHICLE).getFromInventory()
            modulesAllVehicle = VehicleItemsRequester(myVehicles).getItems(
                requestType)
            if fitsType == 'myVehicle':
                vehicleFits = [fitsVehicle]
            elif fitsType != 'otherVehicles':
                vehicleFits = [v for v in myVehicles if v.nation == nation
                               ] if nation != None else myVehicles
            filter = requestType
        filter = map(lambda w: w.lower(), filter)
        modulesAll = list()
        modulesAllInventory = list()
        for rType in requestType:
            inv = yield Requester(rType).getFromInventory()
            modulesAllInventory.extend(inv)
            shp = yield Requester(rType).getFromShop(nation=nation)
            modulesAll.extend(shp)

        unlocks = yield StatsRequester().getUnlocks()
        shopRqs = yield ShopRequester().request()
        self.__clearTableData()
        self.__tableData = [type]
        modulesAll.sort()
        for module in modulesAll:
            extraModuleInfo = None
            if module.hidden:
                continue
            if module.type.lower() not in filter:
                continue
            if checkFits is not None:
                if (module.compactDescr in modulesFits.keys()) != checkFits:
                    continue
            if checkFitsArtefacts is not None:
                for veh in vehicleFits:
                    if module.descriptor.checkCompatibilityWithVehicle(
                            veh.descriptor)[0] == checkFitsArtefacts:
                        break
                else:
                    continue

            if module.isClipGun():
                extraModuleInfo = CLIP_ICON_PATH
            inventoryCount = 0
            vehicleCount = 0
            installedIn = ''
            if module in modulesAllInventory:
                inventoryCount = 1
                if type != self._VEHICLE:
                    inventoryModule = modulesAllInventory[
                        modulesAllInventory.index(module)]
                    inventoryCount = inventoryModule.count
            if type in (self._MODULE, self._OPTIONAL_DEVICE,
                        self._EQUIPMENT) and module in modulesAllVehicle:
                vehModule = modulesAllVehicle[modulesAllVehicle.index(module)]
                vehicleCount = vehModule.count
                installedIn = ', '.join(
                    [v.shortName for v in vehModule.vehicles])
            if checkExtra:
                if 'locked' not in extra:
                    if type == self._VEHICLE:
                        compdecs = module.descriptor.type.compactDescr
                        if compdecs not in unlocks:
                            continue
                    elif type not in (self._SHELL, self._OPTIONAL_DEVICE,
                                      self._EQUIPMENT
                                      ) and module.compactDescr not in unlocks:
                        continue
                if 'inHangar' not in extra and type not in (
                        self._OPTIONAL_DEVICE, self._EQUIPMENT):
                    if inventoryCount > 0:
                        continue
                if 'onVehicle' not in extra:
                    if vehicleCount > 0:
                        continue
            disabled = ''
            if type == self._VEHICLE:
                if BigWorld.player().isLongDisconnectedFromCenter:
                    disabled = MENU.SHOP_ERRORS_CENTERISDOWN
                if inventoryCount > 0:
                    disabled = MENU.SHOP_ERRORS_INHANGAR
                else:
                    compdecs = module.descriptor.type.compactDescr
                    if compdecs not in unlocks:
                        disabled = MENU.SHOP_ERRORS_UNLOCKNEEDED
            elif type not in (
                    self._SHELL, self._OPTIONAL_DEVICE,
                    self._EQUIPMENT) and module.compactDescr not in unlocks:
                disabled = MENU.SHOP_ERRORS_UNLOCKNEEDED
            if not (shopRqs.isEnabledBuyingGoldShellsForCredits
                    and module.itemTypeName == 'shell'):
                goldAmmoForCredits = shopRqs.isEnabledBuyingGoldEqsForCredits and module.itemTypeName == 'equipment'
                module.priceOrder = goldAmmoForCredits and (
                    module.priceOrder[0] +
                    module.priceOrder[1] * shopRqs.exchangeRateForShellsAndEqs,
                    module.priceOrder[1])
            valueElement = {
                'id':
                compactItem(module),
                'name':
                module.name if type in (self._OPTIONAL_DEVICE,
                                        self._EQUIPMENT) else module.longName,
                'desc':
                getShortDescr(module.tableName),
                'inventoryId':
                None,
                'inventoryCount':
                inventoryCount,
                'vehicleCount':
                vehicleCount,
                'credits':
                module.priceOrder[0],
                'gold':
                module.priceOrder[1],
                'price':
                module.priceOrder,
                'currency':
                'credits' if module.priceOrder[1] == 0 else 'gold',
                'level':
                module.level,
                'nation':
                module.nation,
                'type':
                module.itemTypeName
                if type not in (self._VEHICLE, self._OPTIONAL_DEVICE,
                                self._SHELL, self._EQUIPMENT) else module.icon,
                'disabled':
                disabled,
                'statusLevel':
                InventoryVehicle.STATE_LEVEL.WARNING,
                'removable':
                module.descriptor['removable']
                if type == self._OPTIONAL_DEVICE else True,
                'tankType':
                module.type if type == self._VEHICLE else type,
                'isPremium':
                module.isPremium if type == self._VEHICLE else False,
                'isElite':
                self.app.tooltipManager.isVehicleElite(module)
                if type == self._VEHICLE else False,
                'itemTypeName':
                module.itemTypeName,
                'goldShellsForCredits':
                shopRqs.isEnabledBuyingGoldShellsForCredits,
                'goldEqsForCredits':
                shopRqs.isEnabledBuyingGoldEqsForCredits,
                EXTRA_MODULE_INFO:
                extraModuleInfo
            }
            self.__tableData.append(valueElement)

        requester = yield StatsRequesterr().request()
        self._table.as_setGoldS(requester.gold)
        self._table.as_setCreditsS(requester.credits)
        self._table.as_setTableS(self.__tableData)
        Waiting.hide('updateShop')
        return
Beispiel #23
0
    def requestTableData(self, nation, type, filter):
        Waiting.show('updateInventory')
        AccountSettings.setFilter('inventory_current', (nation, type))
        AccountSettings.setFilter('inventory_' + type, filter)
        nation = int(nation) if nation >= 0 else None
        if nation is not None:
            nation = getNationIndex(nation)
        filter = list(filter)
        requestType = [type]
        checkFits = None
        checkFitsArtefacts = None
        checkExtra = False
        modulesFits = {}
        vehicleFits = []
        extra = []
        modulesAllVehicle = []
        if type == self._MODULE:
            typeSize = int(filter.pop(0))
            requestType = filter[0:typeSize]
            filter = filter[typeSize:]
            fitsType = filter.pop(0)
            fitsVehicle = getItemByCompact(filter.pop(0))
            checkExtra = True
            extra = filter[:]
            checkFits = True if fitsType != 'otherVehicles' else False
            myVehicles = yield Requester(self._VEHICLE).getFromInventory()
            modulesAllVehicle = VehicleItemsRequester(myVehicles).getItems(requestType)
            if fitsType == 'myVehicle':
                if fitsVehicle:
                    for rType in requestType:
                        modulesFits.update(_getComponentsByType(fitsVehicle, ITEM_TYPE_INDICES[rType]))

            else:
                for vehicle in myVehicles:
                    for rType in requestType:
                        modulesFits.update(_getComponentsByType(vehicle, ITEM_TYPE_INDICES[rType]))

            filter = requestType
        elif type == self._SHELL:
            filterSize = int(filter.pop(0))
            fitsType = filter.pop(filterSize)
            fitsVehicle = getItemByCompact(filter.pop(filterSize))
            checkFits = True if fitsType != 'otherGuns' else False
            if fitsType == 'myVehicleGun':
                for shoot in fitsVehicle.descriptor.gun['shots']:
                    modulesFits[shoot[self._SHELL]['compactDescr']] = True

            elif fitsType == 'myInventoryGuns':
                myGuns = yield Requester('vehicleGun').getFromInventory()
                for gun in myGuns:
                    for shoot in gun.descriptor['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

            else:
                myGuns = yield Requester('vehicleGun').getFromInventory()
                for gun in myGuns:
                    for shoot in gun.descriptor['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

                myVehicles = yield Requester(self._VEHICLE).getFromInventory()
                for vehicle in myVehicles:
                    for shoot in vehicle.descriptor.gun['shots']:
                        modulesFits[shoot[self._SHELL]['compactDescr']] = True

        elif type == self._VEHICLE:
            filterSize = int(filter.pop(0))
            extra = filter[filterSize:]
            checkExtra = True
            filter = filter[0:filterSize]
        else:
            fitsType = filter.pop(0)
            compact = filter.pop(0)
            fitsVehicle = getItemByCompact(compact)
            extra = filter
            checkExtra = type in (self._OPTIONAL_DEVICE, self._EQUIPMENT)
            checkFitsArtefacts = True if fitsType != 'otherVehicles' else False
            myVehicles = yield Requester(self._VEHICLE).getFromInventory()
            modulesAllVehicle = VehicleItemsRequester(myVehicles).getItems(requestType)
            if fitsType == 'myVehicle':
                vehicleFits = [fitsVehicle]
            else:
                vehicleFits = myVehicles
            filter = requestType
        filter = map(lambda w: w.lower(), filter)
        modulesAll = list()
        modulesShop = list()
        for rType in requestType:
            inv = yield Requester(rType).getFromInventory()
            shp = yield Requester(rType).getFromShop()
            modulesShop.extend(shp)
            modulesAll.extend(inv)

        vehPrices = {}
        if type == self._VEHICLE:
            compactDescrs = [ v.compactDescr for v in modulesAll ]
            vehPrices = yield StatsRequester().getVehiclesPrices(compactDescrs)
            vehPrices = dict(zip(compactDescrs, vehPrices))
        if type in (self._MODULE, self._OPTIONAL_DEVICE, self._EQUIPMENT):
            for vehModule in modulesAllVehicle:
                if vehModule not in modulesAll:
                    if modulesShop.count(vehModule) != 0:
                        modulesAll.append(vehModule)

        self.__clearTableData()
        self.__tableData = [type]
        excludeModules = []
        for module in modulesAll:
            if modulesShop.count(module) != 0:
                module.priceOrder = modulesShop[modulesShop.index(module)].priceOrder
            elif constants.IS_DEVELOPMENT:
                excludeModules.append(module)
                LOG_ERROR("Not found module %s '%s' (%r) in shop." % (module.type, module.unicName, module.compactDescr))

        modulesAll.sort()
        shopRqs = yield ShopRequester().request()
        for module in modulesAll:
            extraModuleInfo = None
            if module in excludeModules:
                continue
            if nation is not None:
                if module.nation != nation and module.nation != nations.NONE_INDEX:
                    continue
                if module.type.lower() not in filter:
                    continue
                if checkFits is not None:
                    if (module.compactDescr in modulesFits.keys()) != checkFits:
                        continue
                if module.isClipGun():
                    extraModuleInfo = CLIP_ICON_PATH
                if checkFitsArtefacts is not None:
                    compatible = False
                    for veh in vehicleFits:
                        if nation is not None and veh.nation != nation:
                            continue
                        compatible |= module.descriptor.checkCompatibilityWithVehicle(veh.descriptor)[0]

                    if compatible != checkFitsArtefacts:
                        continue
                inventoryCount = 0
                vehicleCount = 0
                if isinstance(module, VehicleItem):
                    vehicleCount = module.count
                else:
                    inventoryCount = module.count
                    if type in (self._MODULE, self._OPTIONAL_DEVICE, self._EQUIPMENT) and module in modulesAllVehicle:
                        vehModule = modulesAllVehicle[modulesAllVehicle.index(module)]
                        vehicleCount = vehModule.count
                if checkExtra:
                    if type == self._VEHICLE and 'brocken' not in extra:
                        if module.repairCost > 0:
                            continue
                    if type == self._VEHICLE and 'locked' not in extra:
                        if module.lock != 0:
                            continue
                    if 'onVehicle' not in extra:
                        if vehicleCount > 0 and inventoryCount == 0:
                            continue
                disable = ''
                if type == self._VEHICLE and not module.canSell:
                    disable = makeString(MENU.tankcarousel_vehiclestates(module.getState()))
                elif type in (self._MODULE, self._OPTIONAL_DEVICE, self._EQUIPMENT) and isinstance(module, VehicleItem):
                    if type == self._OPTIONAL_DEVICE:
                        if not module.descriptor['removable']:
                            disable = makeString(MENU.INVENTORY_DEVICE_ERRORS_NOT_REMOVABLE)
                        else:
                            disable = makeString(MENU.INVENTORY_DEVICE_ERRORS_RESERVED)
                    else:
                        disable = makeString(MENU.INVENTORY_ERRORS_RESERVED)
                sellPrice = isinstance(module, InventoryVehicle) and vehPrices.get(module.compactDescr, (0, 0))
            else:
                sellPrice = (0, 0)
                item = g_itemsCache.items.getItemByCD(module.compactDescr)
                if item is not None:
                    sellPrice = item.sellPrice
            valueElement = {'id': compactItem(module),
             'name': module.name if type in (self._OPTIONAL_DEVICE, self._EQUIPMENT) else module.longName,
             'desc': getShortDescr(module.tableName),
             'inventoryId': module.inventoryId if isinstance(module, InventoryVehicle) else None,
             'inventoryCount': inventoryCount,
             'vehicleCount': vehicleCount,
             'credits': sellPrice[0],
             'gold': sellPrice[1],
             'price': sellPrice,
             'currency': 'credits' if sellPrice[1] == 0 else 'gold',
             'level': module.level,
             'nation': module.nation,
             'type': module.itemTypeName if type not in (self._VEHICLE,
                      self._OPTIONAL_DEVICE,
                      self._SHELL,
                      self._EQUIPMENT) else module.icon,
             'disabled': disable,
             'statusLevel': module.getStateLevel() if isinstance(module, InventoryVehicle) else InventoryVehicle.STATE_LEVEL.INFO,
             'removable': module.descriptor['removable'] if type == self._OPTIONAL_DEVICE else True,
             'tankType': module.type if type == self._VEHICLE else type,
             'isPremium': module.isPremium if type == self._VEHICLE else False,
             'isElite': self.app.tooltipManager.isVehicleElite(module) if type == self._VEHICLE else False,
             'itemTypeName': module.itemTypeName,
             'goldShellsForCredits': shopRqs.isEnabledBuyingGoldShellsForCredits,
             'goldEqsForCredits': shopRqs.isEnabledBuyingGoldEqsForCredits,
             EXTRA_MODULE_INFO: extraModuleInfo}
            self.__tableData.append(valueElement)

        requester = yield StatsRequesterr().request()
        self._table.as_setGoldS(requester.gold)
        self._table.as_setCreditsS(requester.credits)
        self._table.as_setTableS(self.__tableData)
        Waiting.hide('updateInventory')
        return
Beispiel #24
0
 def sellItem(self, data):
     item = getItemByCompact(data.id)
     if ITEM_TYPE_INDICES[item.itemTypeName] == vehicles._VEHICLE:
         self.fireEvent(ShowWindowEvent(ShowWindowEvent.SHOW_VEHICLE_SELL_DIALOG, {'vehInvID': int(item.inventoryId)}))
     else:
         self.__sellItem(item.compactDescr)