def __init__(self, carouselFilter, itemsCache, currentVehicle, filterCallback): super(BlueprintsStorageCarouselDataProvider, self).__init__(carouselFilter, itemsCache, currentVehicle) g_techTreeDP.load() self._baseCriteria = _BlueprintsCriteriesGroup.getGroupCriteria() self.__filterCallback = filterCallback
def load(self, nationID, override=None): self.clear() g_techTreeDP.setOverride(override) g_techTreeDP.load() getItem = self.getItem selectedID = ResearchItemsData.getRootCD() unlockStats = self.getUnlockStats() for node, displayInfo in g_techTreeDP.getNationTreeIterator(nationID): nodeCD = node.nodeCD if node.isAnnouncement: self._addNode(nodeCD, self._makeAnnouncementNode(node, displayInfo)) item = getItem(nodeCD) if item.isHidden: continue index = self._addNode( nodeCD, self._makeRealExposedNode(node, item, unlockStats, displayInfo)) if nodeCD == selectedID: self._scrollIndex = index ResearchItemsData.clearRootCD() self._findSelectedNode(nationID) if self._scrollIndex < 0: self._findActionNode(nationID)
def __init__(self, skipConfirm=False): super(VehiclePreviewBuyingPanel, self).__init__() heroTankCD = self._heroTanks.getCurrentTankCD() self._vehicleCD = g_currentPreviewVehicle.item.intCD self._vehicleLevel = g_currentPreviewVehicle.item.level self._actionType = None self._skipConfirm = skipConfirm self._disableBuyButton = False self._marathonEvent = None self.__previewDP = DefaultVehPreviewDataProvider() self.__isHeroTank = heroTankCD and heroTankCD == self._vehicleCD self.__price = None self.__title = None self.__description = None self.__items = None self.__offers = None self.__currentOffer = None self.__styleByGroup = {} self.__vehicleByGroup = {} self.__endTime = None self.__oldPrice = MONEY_UNDEFINED self.__buyParams = None self.__backAlias = None self.__timeCallbackID = None self.__timeLeftIcon = icons.makeImageTag( RES_ICONS.MAPS_ICONS_LIBRARY_TIME_ICON, 16, 16) self.__cachedVehiclesVOs = None self.__cachedItemsVOs = None self.__cachedCollapsedItemsVOs = None self.__couponInfo = None self.__hasSSEDiscount = False g_techTreeDP.load() return
def load(self, nationID, override=None): self.clear() vehicleList = sorted(vehicles.g_list.getList(nationID).values(), key=lambda item: item['level']) g_techTreeDP.setOverride(override) g_techTreeDP.load() getDisplayInfo = g_techTreeDP.getDisplayInfo getItem = self.getItem selectedID = ResearchItemsData.getRootCD() unlockStats = self.getUnlockStats() for item in vehicleList: nodeCD = item['compactDescr'] displayInfo = getDisplayInfo(nodeCD) if displayInfo is not None: item = getItem(nodeCD) if item.isHidden: continue index = self._addNode( nodeCD, self._getNodeData(nodeCD, item, unlockStats, displayInfo)) if nodeCD == selectedID: self._scrollIndex = index ResearchItemsData.clearRootCD() self._findSelectedNode(nationID) return
def __handleReloadData(self, event): """ Redraw nation tree. """ if event.key is Keys.KEY_R: g_techTreeDP.load(isReload=True) self.redraw()
def load(self, nationID, override = None): """ Loads data of nation tree by nationID. :param nationID: ID of nation. Index in nations.NAMES. """ self.clear() vehicleList = sorted(vehicles.g_list.getList(nationID).values(), key=lambda item: item['level']) g_techTreeDP.setOverride(override) g_techTreeDP.load() getDisplayInfo = g_techTreeDP.getDisplayInfo getItem = self.getItem selectedID = ResearchItemsData.getRootCD() unlockStats = self.getUnlockStats() for item in vehicleList: nodeCD = item['compactDescr'] displayInfo = getDisplayInfo(nodeCD) if displayInfo is not None: item = getItem(nodeCD) if item.isHidden: continue index = self._addNode(nodeCD, self._getNodeData(nodeCD, item, unlockStats, displayInfo)) if nodeCD == selectedID: self._scrollIndex = index ResearchItemsData.clearRootCD() self._findSelectedNode(nationID) return
def __handleReloadData(self, event): """ Redraw nation tree. """ if event.key is Keys.KEY_R: g_techTreeDP.load(isReload=True) self.redraw()
def getUnlockPrice(compactDescr, parentCD=None, vehicleLevel=UNKNOWN_VEHICLE_LEVEL, itemsCache=None): itemTypeId, _, _ = vehicles.parseIntCompactDescr(compactDescr) freeXP = itemsCache.items.stats.actualFreeXP unlocks = itemsCache.items.stats.unlocks xpVehs = itemsCache.items.stats.vehiclesXPs g_techTreeDP.load() pricesDict = g_techTreeDP.getUnlockPrices(compactDescr) def getUnlockProps(isAvailable, vehCompDescr, unlockProps=None): if unlockProps is not None: unlockPrice = unlockProps.xpCost elif vehCompDescr in pricesDict: unlockPrice = pricesDict[vehCompDescr] else: vehicle = itemsCache.items.getItemByCD(parentCD) _, unlockPrice, _ = vehicle.getUnlockDescrByIntCD(compactDescr) oldPrice = unlockProps.xpFullCost if unlockProps is not None else unlockPrice discount = unlockProps.discount if unlockProps is not None else 0 pVehXp = xpVehs.get(vehCompDescr, 0) need = unlockPrice - pVehXp needWithFreeXP = need - freeXP return (isAvailable, unlockPrice, min(need, needWithFreeXP), oldPrice, discount) if itemTypeId == vehicles._VEHICLE: isAvailable, unlockProps = g_techTreeDP.isNext2Unlock( compactDescr, unlocks, xpVehs, freeXP, vehicleLevel) if parentCD is not None and parentCD == unlockProps.parentID: return getUnlockProps(isAvailable, parentCD, unlockProps) xpCost = pricesDict.get(parentCD, 0) discount, newCost = g_techTreeDP.getBlueprintDiscountData( compactDescr, vehicleLevel, xpCost) unlockProps = UnlockProps(parentCD, -1, newCost, None, discount, xpCost) return getUnlockProps(isAvailable, unlockProps.parentID, unlockProps) else: isAvailable = compactDescr in unlocks if parentCD is not None: return getUnlockProps(isAvailable, parentCD) vehsCompDescrs = [ compDescr for compDescr in pricesDict.keys() if compDescr in unlocks ] if not vehsCompDescrs: vehsCompDescrs = pricesDict.keys() minUnlockPrice = sys.maxint minUnlockPriceVehCD = None for vcd in vehsCompDescrs: if pricesDict[vcd] <= minUnlockPrice: minUnlockPrice = pricesDict[vcd] minUnlockPriceVehCD = vcd if minUnlockPriceVehCD is None: return (isAvailable, 0, 0, 0, 0) return getUnlockProps(isAvailable, minUnlockPriceVehCD) return
def load(self): g_techTreeDP.load() self.clear() rootItem = self.getRootItem() unlockStats = self.getUnlockStats() self.__loadRoot(rootItem, unlockStats) self.__loadAutoUnlockItems(rootItem, unlockStats) self.__loadItems(rootItem, unlockStats) self.__loadTopLevel(rootItem, unlockStats)
def load(self): g_techTreeDP.load() self.clear() rootItem = self.getRootItem() unlockStats = self.getUnlockStats() self.__loadRoot(rootItem, unlockStats) self.__loadAutoUnlockItems(rootItem, unlockStats) self.__loadItems(rootItem, unlockStats) self.__loadTopLevel(rootItem, unlockStats)
def __init__(self, vehicle): super(TopModulesChecker, self).__init__() self.__vehicle = vehicle self._requestCriteria = _COMMON_CRITERIA | REQ_CRITERIA.VEHICLE.SUITABLE([self.__vehicle]) self._comparators = [ChassisComparator(self._requestCriteria, self.__vehicle), TurretComparator(self._requestCriteria, self.__vehicle), GunComparator(self._requestCriteria, self.__vehicle), EngineComparator(self._requestCriteria, self.__vehicle), RadioComparator(self._requestCriteria, self.__vehicle)] g_techTreeDP.load()
def __init__(self, contentResId, *args, **kwargs): settings = ViewSettings(contentResId) settings.model = ProgressiveRewardAwardModel() settings.args = args settings.kwargs = kwargs super(ProgressiveRewardAwardView, self).__init__(settings) self.__items = {} self.__bonuses = [] self.__specialRewardType = '' self.__currentStep = 0 g_techTreeDP.load()
def load(self): """ Loads data of research items for given vehicle (root). """ g_techTreeDP.load() self.clear() rootItem = self.getRootItem() unlockStats = self.getUnlockStats() self._loadRoot(rootItem, unlockStats) self._loadAutoUnlockItems(rootItem, unlockStats) self._loadItems(rootItem, unlockStats) self._loadTopLevel(rootItem, unlockStats)
def load(self): """ Loads data of research items for given vehicle (root). """ g_techTreeDP.load() self.clear() rootItem = self.getRootItem() unlockStats = self.getUnlockStats() self._loadRoot(rootItem, unlockStats) self._loadAutoUnlockItems(rootItem, unlockStats) self._loadItems(rootItem, unlockStats) self._loadTopLevel(rootItem, unlockStats)
def load(self, nationID): self._nodes = [] self._nodesIdx = {} self._scrollIndex = -1 vehicleList = sorted(vehicles.g_list.getList(nationID).values(), key=lambda item: item['level']) g_techTreeDP.load() self._displaySettings = g_techTreeDP.getDisplaySettings(nationID) invCDs = self._invItems.keys() getDisplayInfo = g_techTreeDP.getDisplayInfo selectedID = ResearchItemsData.getRootCD() hidden = self._hidden for item in vehicleList: nodeCD = item['compactDescr'] displayInfo = getDisplayInfo(nodeCD) if displayInfo is not None: index = len(self._nodes) if nodeCD in hidden: continue if nodeCD == selectedID: self._scrollIndex = index self._nodesIdx[nodeCD] = index self._nodes.append( self._getNodeData(nodeCD, displayInfo, invCDs)) ResearchItemsData.clearRootCD() if g_currentVehicle.isPresent(): vehicle = g_currentVehicle.item if nationID == vehicle.nationID: nodeCD = vehicle.intCD if nodeCD in self._nodesIdx.keys(): index = self._nodesIdx[nodeCD] node = self._nodes[index] if self._scrollIndex < 0: self._scrollIndex = index if nodeCD in self._invItems.keys(): node['state'] |= NODE_STATE.SELECTED else: LOG_ERROR('Current vehicle not found in inventory', nodeCD) else: _, _, itemID = vehicles.parseIntCompactDescr(nodeCD) if itemID in hidden: LOG_DEBUG( 'Current vehicle is hidden. Is it define in nation tree:', nodeCD, getDisplayInfo(nodeCD) is not None) else: LOG_ERROR('Current vehicle not found in nation tree', nodeCD) return
def __getBtnDataLockedVehicle(self, vehicle): stats = self.itemsCache.items.stats tooltip = '' nodeCD = vehicle.intCD isAvailableToUnlock, xpCost, _ = g_techTreeDP.isVehicleAvailableToUnlock(nodeCD) if not isAvailableToUnlock: g_techTreeDP.load() unlocks = self.itemsCache.items.stats.unlocks next2Unlock, _ = g_techTreeDP.isNext2Unlock(nodeCD, unlocked=set(unlocks), xps=stats.vehiclesXPs, freeXP=stats.freeXP) if next2Unlock: tooltip = _buildBuyButtonTooltip('notEnoughXp') elif any((bool(cd in unlocks) for cd in g_techTreeDP.getTopLevel(nodeCD))): tooltip = _buildBuyButtonTooltip('parentModuleIsLocked') else: tooltip = _buildBuyButtonTooltip('parentVehicleIsLocked') return _ButtonState(isAvailableToUnlock, ['xp', xpCost], VEHICLE_PREVIEW.BUYINGPANEL_BUYBTN_LABEL_RESEARCH, None, tooltip, self.__packTitle)
def getUnlockPrice(compactDescr, parentCD=None): item_type_id, _, _ = vehicles.parseIntCompactDescr(compactDescr) itemsCache = dependency.instance(IItemsCache) freeXP = itemsCache.items.stats.actualFreeXP unlocks = itemsCache.items.stats.unlocks xpVehs = itemsCache.items.stats.vehiclesXPs g_techTreeDP.load() pricesDict = g_techTreeDP.getUnlockPrices(compactDescr) def getUnlockProps(isAvailable, vehCompDescr): unlockPrice = pricesDict.get(vehCompDescr, 0) pVehXp = xpVehs.get(vehCompDescr, 0) need = unlockPrice - pVehXp needWithFreeXP = need - freeXP return (isAvailable, unlockPrice, min(need, needWithFreeXP)) if item_type_id == vehicles._VEHICLE: isAvailable, props = g_techTreeDP.isNext2Unlock( compactDescr, unlocks, xpVehs, freeXP) if parentCD is not None: return getUnlockProps(isAvailable, parentCD) return getUnlockProps(isAvailable, props.parentID) else: isAvailable = compactDescr in unlocks if not pricesDict: return (isAvailable, 0, 0) if parentCD is not None: return getUnlockProps(isAvailable, parentCD) vehsCompDescrs = [ compDescr for compDescr in pricesDict.keys() if compDescr in unlocks ] if not vehsCompDescrs: vehsCompDescrs = pricesDict.keys() minUnlockPrice = sys.maxint minUnlockPriceVehCD = None for vcd in vehsCompDescrs: if pricesDict[vcd] <= minUnlockPrice: minUnlockPrice = pricesDict[vcd] minUnlockPriceVehCD = vcd if minUnlockPriceVehCD is None: return (isAvailable, 0, 0) return getUnlockProps(isAvailable, minUnlockPriceVehCD) return
def load(self): vTypeCD = self.getRootCD() raise vTypeCD is not None or AssertionError g_techTreeDP.load() while len(self._nodes): self._nodes.pop().clear() self._nodesIdx.clear() root = vehicles.getVehicleType(vTypeCD) unlocksDs = root.unlocksDescrs vTypeCD = root.compactDescr self._earnedXP = self._xps.get(vTypeCD, 0) hasFakeTurrets = len(root.hull.get('fakeTurrets', {}).get('lobby', ())) != 0 and root.tags & set(['SPG', 'AT-SPG']) self.__loadRoot(vTypeCD) self.__loadAutoUnlockItems(vTypeCD, root.autounlockedItems, hasFakeTurrets) self.__loadItems(vTypeCD, unlocksDs) self.__loadTopLevel(vTypeCD) return
def load(self, nationID): self._nodes = [] self._nodesIdx = {} self._scrollIndex = -1 vehicleList = sorted(vehicles.g_list.getList(nationID).values(), key=lambda item: item['level']) g_techTreeDP.load() self._displaySettings = g_techTreeDP.getDisplaySettings(nationID) invCDs = self._invItems.keys() getDisplayInfo = g_techTreeDP.getDisplayInfo selectedID = ResearchItemsData.getRootCD() hidden = self._hidden for item in vehicleList: nodeCD = item['compactDescr'] displayInfo = getDisplayInfo(nodeCD) if displayInfo is not None: index = len(self._nodes) if nodeCD in hidden: continue if nodeCD == selectedID: self._scrollIndex = index self._nodesIdx[nodeCD] = index self._nodes.append(self._getNodeData(nodeCD, displayInfo, invCDs)) ResearchItemsData.clearRootCD() if g_currentVehicle.isPresent(): vehicle = g_currentVehicle.item if nationID == vehicle.nationID: nodeCD = vehicle.intCD if nodeCD in self._nodesIdx.keys(): index = self._nodesIdx[nodeCD] node = self._nodes[index] if self._scrollIndex < 0: self._scrollIndex = index if nodeCD in self._invItems.keys(): node['state'] |= NODE_STATE.SELECTED else: LOG_ERROR('Current vehicle not found in inventory', nodeCD) else: _, _, itemID = vehicles.parseIntCompactDescr(nodeCD) if itemID in hidden: LOG_DEBUG('Current vehicle is hidden. Is it define in nation tree:', nodeCD, getDisplayInfo(nodeCD) is not None) else: LOG_ERROR('Current vehicle not found in nation tree', nodeCD) return
def getUnlockPrice(compactDescr, parentCD = None): item_type_id, _, _ = vehicles.parseIntCompactDescr(compactDescr) freeXP = g_itemsCache.items.stats.actualFreeXP unlocks = g_itemsCache.items.stats.unlocks xpVehs = g_itemsCache.items.stats.vehiclesXPs g_techTreeDP.load() pricesDict = g_techTreeDP.getUnlockPrices(compactDescr) def getUnlockProps(isAvailable, vehCompDescr): unlockPrice = pricesDict.get(vehCompDescr, 0) pVehXp = xpVehs.get(vehCompDescr, 0) need = unlockPrice - pVehXp needWithFreeXP = need - freeXP return (isAvailable, unlockPrice, min(need, needWithFreeXP)) if item_type_id == vehicles._VEHICLE: g_techTreeDP.load() isAvailable, props = g_techTreeDP.isNext2Unlock(compactDescr, unlocks, xpVehs, freeXP) if parentCD is not None: return getUnlockProps(isAvailable, parentCD) return getUnlockProps(isAvailable, props.parentID) else: isAvailable = compactDescr in unlocks if not pricesDict: return (isAvailable, 0, 0) if parentCD is not None: return getUnlockProps(isAvailable, parentCD) vehsCompDescrs = [ compDescr for compDescr in pricesDict.keys() if compDescr in unlocks ] if not vehsCompDescrs: vehsCompDescrs = pricesDict.keys() minUnlockPrice = sys.maxint minUnlockPriceVehCD = None for vcd in vehsCompDescrs: if pricesDict[vcd] <= minUnlockPrice: minUnlockPrice = pricesDict[vcd] minUnlockPriceVehCD = vcd if minUnlockPriceVehCD is None: return (isAvailable, 0, 0) return getUnlockProps(isAvailable, minUnlockPriceVehCD) return
def load(self): vTypeCD = self.getRootCD() raise vTypeCD is not None or AssertionError g_techTreeDP.load() while len(self._nodes): self._nodes.pop().clear() self._nodesIdx.clear() root = vehicles.getVehicleType(vTypeCD) unlocksDs = root.unlocksDescrs vTypeCD = root.compactDescr self._earnedXP = self._xps.get(vTypeCD, 0) hasFakeTurrets = len( root.hull.get('fakeTurrets', {}).get( 'lobby', ())) != 0 and root.tags & set(['SPG', 'AT-SPG']) self.__loadRoot(vTypeCD) self.__loadAutoUnlockItems(vTypeCD, root.autounlockedItems, hasFakeTurrets) self.__loadItems(vTypeCD, unlocksDs) self.__loadTopLevel(vTypeCD) return
def __onUpdateStage(self): g_techTreeDP.setOverride(self._getOverride()) if g_techTreeDP.load(): self.as_refreshNationTreeDataS(SelectedNation.getName())
def __handleReloadData(self, event): if event.key is Keys.KEY_R: g_techTreeDP.load(isReload=True) self.as_refreshNationTreeDataS(SelectedNation.getName())
def __onUpdateStage(self): g_techTreeDP.setOverride(self._getOverride()) if g_techTreeDP.load(): self.as_refreshNationTreeDataS(SelectedNation.getName())
def __onUpdateStage(self): g_techTreeDP.setOverride(self._getOverride()) if g_techTreeDP.load(): self.redraw()
def __onUpdateStage(self): g_techTreeDP.setOverride(self._getOverride()) if g_techTreeDP.load(): self.redraw()
def __handleReloadData(self, event): if event.key is Keys.KEY_R: g_techTreeDP.load(isReload=True) self.as_refreshNationTreeDataS(SelectedNation.getName())