def _getRentData(self, vehicle, vehiclePricesActionData):
        result = []
        rentPackages = vehicle.rentPackages
        for rentPackage in rentPackages:
            days = rentPackage['days']
            actionRentPrice = None
            if rentPackage['rentPrice'] != rentPackage['defaultRentPrice']:
                actionRentPrice = packItemRentActionTooltipData(
                    vehicle, rentPackage)
            result.append({
                'itemId':
                days,
                'label':
                i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_DAYS, days=days),
                'price':
                rentPackage['rentPrice'].toMoneyTuple(),
                'enabled':
                vehicle.maxRentDuration - vehicle.rentLeftTime >=
                days * time_utils.ONE_DAY,
                'actionPrice':
                actionRentPrice
            })

        result = self._addPriceBlock(result, vehicle, vehiclePricesActionData)
        selectedId = -1
        for ddItem in result:
            if ddItem['enabled']:
                selectedId = ddItem['itemId']
                break

        return {'data': result, 'selectedId': selectedId}
示例#2
0
    def _getRentData(self, vehicle, vehiclePricesActionData):
        result = []
        rentPackages = vehicle.rentPackages
        for rentPackage in rentPackages:
            days = rentPackage['days']
            actionRentPrice = None
            if rentPackage['rentPrice'] != rentPackage['defaultRentPrice']:
                actionRentPrice = packItemRentActionTooltipData(vehicle, rentPackage)
            result.append({'itemId': days,
             'label': i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_DAYS, days=days),
             'price': rentPackage['rentPrice'],
             'enabled': vehicle.maxRentDuration - vehicle.rentLeftTime >= days * time_utils.ONE_DAY,
             'actionPrice': actionRentPrice})

        result.append({'itemId': -1,
         'label': i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_FOREVER),
         'price': vehicle.buyPrice,
         'enabled': not vehicle.isDisabledForBuy and not vehicle.isHidden,
         'actionPrice': vehiclePricesActionData})
        selectedId = -1
        for ddItem in result:
            if ddItem['enabled']:
                selectedId = ddItem['itemId']
                break

        return {'data': result,
         'selectedId': selectedId}
示例#3
0
 def _getVehicleData(self, node, item):
     nodeCD = node['id']
     tags = item.tags
     credits, gold = item.minRentPrice or item.buyPrice
     status, statusLevel = self._getRentStatus(item)
     action = None
     minRentPricePackage = item.getRentPackage()
     if item.buyPrice != item.defaultPrice and not minRentPricePackage:
         action = packItemActionTooltipData(item)
     elif minRentPricePackage:
         if minRentPricePackage['rentPrice'] != minRentPricePackage['defaultRentPrice']:
             action = packItemRentActionTooltipData(item, minRentPricePackage)
     return {'id': nodeCD,
      'state': node['state'],
      'type': item.itemTypeName,
      'nameString': item.shortUserName,
      'primaryClass': self._vClassInfo.getInfoByTags(tags),
      'level': item.level,
      'longName': item.longUserName,
      'iconPath': item.icon,
      'smallIconPath': item.iconSmall,
      'earnedXP': node['earnedXP'],
      'shopPrice': (credits, gold, action),
      'displayInfo': node['displayInfo'],
      'unlockProps': node['unlockProps']._makeTuple(),
      'status': status,
      'statusLevel': statusLevel,
      'isRemovable': item.isRented,
      'isPremiumIGR': item.isPremiumIGR}
示例#4
0
    def _getRentData(self, vehicle, vehiclePricesActionData):
        result = []
        rentPackages = vehicle.rentPackages
        for rentPackage in rentPackages:
            days = rentPackage['days']
            actionRentPrice = None
            if rentPackage['rentPrice'] != rentPackage['defaultRentPrice']:
                actionRentPrice = packItemRentActionTooltipData(vehicle, rentPackage)
            result.append({'itemId': days,
             'label': i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_DAYS, days=days),
             'price': rentPackage['rentPrice'],
             'enabled': vehicle.maxRentDuration - vehicle.rentLeftTime >= days * time_utils.ONE_DAY,
             'actionPrice': actionRentPrice})

        result.append({'itemId': -1,
         'label': i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_FOREVER),
         'price': vehicle.buyPrice,
         'enabled': not vehicle.isDisabledForBuy and not vehicle.isHidden,
         'actionPrice': vehiclePricesActionData})
        selectedId = -1
        for ddItem in result:
            if ddItem['enabled']:
                selectedId = ddItem['itemId']
                break

        return {'data': result,
         'selectedId': selectedId}
示例#5
0
 def _getVehicleData(self, node, item):
     nodeCD = node['id']
     tags = item.tags
     credits, gold = item.minRentPrice or item.buyPrice
     status, statusLevel = self._getRentStatus(item)
     action = None
     minRentPricePackage = item.getRentPackage()
     if item.buyPrice != item.defaultPrice and not minRentPricePackage:
         action = packItemActionTooltipData(item)
     elif minRentPricePackage:
         if minRentPricePackage['rentPrice'] != minRentPricePackage[
                 'defaultRentPrice']:
             action = packItemRentActionTooltipData(item,
                                                    minRentPricePackage)
     return {
         'id': nodeCD,
         'state': node['state'],
         'type': item.itemTypeName,
         'nameString': item.shortUserName,
         'primaryClass': self._vClassInfo.getInfoByTags(tags),
         'level': item.level,
         'longName': item.longUserName,
         'iconPath': item.icon,
         'smallIconPath': item.iconSmall,
         'earnedXP': node['earnedXP'],
         'shopPrice': (credits, gold, action),
         'displayInfo': node['displayInfo'],
         'unlockProps': node['unlockProps']._makeTuple(),
         'status': status,
         'statusLevel': statusLevel,
         'isRemovable': item.isRented,
         'isPremiumIGR': item.isPremiumIGR
     }
示例#6
0
 def _getItemData(self, node, item, rootItem):
     nodeCD = node['id']
     vClass = {'name': ''}
     extraInfo = None
     status = statusLevel = ''
     minRentPricePackage = None
     vehicleBtnLabel = ''
     if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE:
         vClass = self._vClassInfo.getInfoByTags(item.tags)
         status, statusLevel = self._getRentStatus(item)
         minRentPricePackage = item.getRentPackage()
         if item.isInInventory:
             vehicleBtnLabel = '#menu:research/labels/button/showInHangar'
         else:
             vehicleBtnLabel = '#menu:research/showInPreviewBtn/label'
     else:
         if item.itemTypeID == GUI_ITEM_TYPE.GUN and item.isClipGun(
                 rootItem.descriptor):
             extraInfo = CLIP_ICON_PATH
         vClass.update({'name': item.itemTypeName})
     credits, gold = item.minRentPrice or item.buyPrice
     action = None
     if item.buyPrice != item.defaultPrice and not minRentPricePackage:
         action = packItemActionTooltipData(item)
     elif minRentPricePackage:
         if minRentPricePackage['rentPrice'] != minRentPricePackage[
                 'defaultRentPrice']:
             action = packItemRentActionTooltipData(item,
                                                    minRentPricePackage)
     return {
         'id': nodeCD,
         'nameString': item.shortUserName,
         'primaryClass': vClass,
         'level': item.level,
         'longName': item.longUserName,
         'iconPath': item.icon,
         'smallIconPath': item.iconSmall,
         'earnedXP': node['earnedXP'],
         'state': node['state'],
         'shopPrice': (credits, gold, action),
         'displayInfo': node['displayInfo'],
         'unlockProps': node['unlockProps']._makeTuple(),
         'extraInfo': extraInfo,
         'status': status,
         'statusLevel': statusLevel,
         'isPremiumIGR': item.isPremiumIGR,
         'showVehicleBtnLabel': i18n.makeString(vehicleBtnLabel),
         'showVehicleBtnEnabled': item.isInInventory
         or item.isPreviewAllowed()
     }
示例#7
0
    def _getRentData(self, vehicle, vehiclePricesActionData):
        result = []
        rentPackages = vehicle.rentPackages
        for rentPackage in rentPackages:
            rentID = rentPackage['rentID']
            rentType, packageID = parseRentID(rentID)
            if rentType == constants.RentType.TIME_RENT:
                label = i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_DAYS,
                                        days=packageID)
                enabled = isWithinMaxRentTime(vehicle.maxRentDuration,
                                              vehicle.rentLeftTime, packageID)
            elif rentType == constants.RentType.SEASON_RENT:
                seasonType = rentPackage['seasonType']
                label = i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_SEASON,
                                        season=packageID,
                                        seasonType=seasonType)
                enabled = True
            elif rentType == constants.RentType.SEASON_CYCLE_RENT:
                seasonType = rentPackage['seasonType']
                label = i18n.makeString(MENU.SHOP_MENU_VEHICLE_RENT_CYCLE,
                                        cycle=packageID,
                                        seasonType=seasonType)
                enabled = True
            else:
                raise SoftException(
                    'Unknown rentType=[{}] in rentPackages ID [{}]!'.format(
                        rentType, rentID))
            actionRentPrice = None
            if rentPackage['rentPrice'] != rentPackage['defaultRentPrice']:
                actionRentPrice = packItemRentActionTooltipData(
                    vehicle, rentPackage)
            result.append({
                'itemId': rentID,
                'label': label,
                'price': rentPackage['rentPrice'].toMoneyTuple(),
                'enabled': enabled,
                'actionPrice': actionRentPrice
            })

        result = self._addPriceBlock(result, vehicle, vehiclePricesActionData)
        selectedId = -1
        for ddItem in result:
            if ddItem['enabled']:
                selectedId = ddItem['itemId']
                break

        return {'data': result, 'selectedId': selectedId}
示例#8
0
 def _getItemData(self, node, item, rootItem):
     nodeCD = node['id']
     vClass = {'name': ''}
     extraInfo = None
     status = statusLevel = ''
     minRentPricePackage = None
     vehicleBtnLabel = ''
     if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE:
         vClass = self._vClassInfo.getInfoByTags(item.tags)
         status, statusLevel = self._getRentStatus(item)
         minRentPricePackage = item.getRentPackage()
         if item.isInInventory:
             vehicleBtnLabel = '#menu:research/labels/button/showInHangar'
         else:
             vehicleBtnLabel = '#menu:research/showInPreviewBtn/label'
     else:
         if item.itemTypeID == GUI_ITEM_TYPE.GUN and item.isClipGun(rootItem.descriptor):
             extraInfo = CLIP_ICON_PATH
         vClass.update({'name': item.itemTypeName})
     credits, gold = item.minRentPrice or item.buyPrice
     action = None
     if item.buyPrice != item.defaultPrice and not minRentPricePackage:
         action = packItemActionTooltipData(item)
     elif minRentPricePackage:
         if minRentPricePackage['rentPrice'] != minRentPricePackage['defaultRentPrice']:
             action = packItemRentActionTooltipData(item, minRentPricePackage)
     return {'id': nodeCD,
      'nameString': item.shortUserName,
      'primaryClass': vClass,
      'level': item.level,
      'longName': item.longUserName,
      'iconPath': item.icon,
      'smallIconPath': item.iconSmall,
      'earnedXP': node['earnedXP'],
      'state': node['state'],
      'shopPrice': (credits, gold, action),
      'displayInfo': node['displayInfo'],
      'unlockProps': node['unlockProps']._makeTuple(),
      'extraInfo': extraInfo,
      'status': status,
      'statusLevel': statusLevel,
      'isPremiumIGR': item.isPremiumIGR,
      'showVehicleBtnLabel': i18n.makeString(vehicleBtnLabel),
      'showVehicleBtnEnabled': item.isInInventory or item.isPreviewAllowed()}