def _populate(self): super(VehicleCompareAddVehiclePopover, self)._populate() self.__initControls() self._vehDP = VehiclesDataProvider() self._vehDP.setFlashObject(self.as_getTableDPS()) getVehicleComparisonBasketCtrl().onSwitchChange += self.onWindowClose self.updateData() self.updateAddButtonLabel()
def _dispose(self): getVehicleComparisonBasketCtrl().onSwitchChange -= self.onWindowClose self.__vehicle = None self.__modulesInstaller.dispose() self.__modulesInstaller = None if self.__nodeDataGenerator: self.__nodeDataGenerator.clear(True) self.__nodeDataGenerator = None super(VehicleModulesWindow, self)._dispose() return
def _populate(self): super(VehicleModulesWindow, self)._populate() basketVehicle = getVehicleComparisonBasketCtrl().getVehicleAt(self.__vehIndex) self.__initialize(basketVehicle.getVehicleStrCD(), basketVehicle.getModulesType()) self.as_setAttentionVisibleS(basketVehicle.isInInventory() and not basketVehicle.isActualModules()) stockVehicle = Vehicle(basketVehicle.getStockVehStrCD()) self.__modulesInstaller = _ModulesInstaller(getInstalledModulesCDs(stockVehicle)) getVehicleComparisonBasketCtrl().onSwitchChange += self.onWindowClose self.as_setInitDataS({'windowTitle': _ms(VEH_COMPARE.MODULESVIEW_WINDOWTITLE, vehName=stockVehicle.userName), 'description': text_styles.main(_ms(VEH_COMPARE.MODULESVIEW_DESCRIPTION)), 'resetBtnLabel': VEH_COMPARE.MODULESVIEW_RESETBTNLABEL, 'closeBtnLabel': VEH_COMPARE.MODULESVIEW_CLOSEBTNLABEL, 'compareBtnLabel': VEH_COMPARE.MODULESVIEW_COMPAREBTNLABEL, 'resetBtnTooltip': VEH_COMPARE.MODULESVIEW_RESETBTNLABEL_TOOLTIP, 'closeBtnTooltip': VEH_COMPARE.MODULESVIEW_CLOSEBTNLABEL_TOOLTIP, 'compareBtnTooltip': VEH_COMPARE.MODULESVIEW_COMPAREBTNLABEL_TOOLTIP})
def __getVehCompareData(self, vehicle): comparisonBasket = getVehicleComparisonBasketCtrl() state, tooltip = resolveStateTooltip(comparisonBasket, vehicle, enabledTooltip=None, fullTooltip=VEH_COMPARE.STORE_COMPAREVEHICLEBTN_TOOLTIPS_DISABLED) return {'modeAvailable': comparisonBasket.isEnabled(), 'btnEnabled': state, 'btnTooltip': tooltip, 'label': text_styles.main(VEH_COMPARE.VEHPREVIEW_COMPAREINFO_ADDTOCOMPARE)}
def _getTechniqueListVehicles(self, targetData, addVehiclesThatInHangarOnly = False): result = [] for intCD, (battlesCount, wins, markOfMastery, xp) in targetData.getVehicles().iteritems(): avgXP = xp / battlesCount if battlesCount else 0 vehicle = g_itemsCache.items.getItemByCD(intCD) if vehicle is not None: isInHangar = vehicle.invID > 0 if addVehiclesThatInHangarOnly and not isInHangar: continue if self._battlesType == PROFILE_DROPDOWN_KEYS.FALLOUT: winsEfficiency = wins winsEfficiencyStr = BigWorld.wg_getIntegralFormat(winsEfficiency) else: winsEfficiency = 100.0 * wins / battlesCount if battlesCount else 0 winsEfficiencyStr = BigWorld.wg_getIntegralFormat(round(winsEfficiency)) + '%' result.append({'id': intCD, 'inventoryID': vehicle.invID, 'shortUserName': vehicle.shortUserName, 'battlesCount': battlesCount, 'winsEfficiency': winsEfficiency, 'winsEfficiencyStr': winsEfficiencyStr, 'avgExperience': avgXP, 'userName': vehicle.userName, 'typeIndex': VEHICLE_TABLE_TYPES_ORDER_INDICES_REVERSED[vehicle.type], 'nationIndex': GUI_NATIONS_ORDER_INDEX[NAMES[vehicle.nationID]], 'nationID': vehicle.nationID, 'level': vehicle.level, 'markOfMastery': self.__getMarkOfMasteryVal(markOfMastery), 'markOfMasteryBlock': ACHIEVEMENT_BLOCK.TOTAL, 'tankIconPath': vehicle.iconSmall, 'typeIconPath': '../maps/icons/filters/tanks/%s.png' % vehicle.type, 'isInHangar': isInHangar, 'compareModeAvailable': getVehicleComparisonBasketCtrl().isEnabled()}) return result
def __updateModulesType(self, modulesType): self.__currentModulesType = modulesType basketVehicle = getVehicleComparisonBasketCtrl().getVehicleAt(self.__vehIndex) if basketVehicle.isInInventory(): btnEnabled = modulesType != MODULES_TYPES.CURRENT else: btnEnabled = modulesType != MODULES_TYPES.BASIC self.as_setStateS(stateText=text_styles.neutral(_ms('#veh_compare:modulesView/moduleSet/{}'.format(modulesType))), stateEnabled=btnEnabled)
def _manageVehCompareItem(self, optionsRef, vehicle): """ :param vehicle: instance of gui.shared.gui_items.Vehicle.Vehicle :param optionsRef: reference to Context Menu items list """ comparisonBasket = getVehicleComparisonBasketCtrl() if comparisonBasket.isEnabled(): optionsRef.append(self._makeItem(VEHICLE.COMPARE, MENU.contextmenu(VEHICLE.COMPARE), {'enabled': comparisonBasket.isReadyToAdd(vehicle)}))
def dispose(self): comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange -= self.__onChanged comparisonBasket.onSwitchChange -= self.__updateBtnVisibility self.__getContainerManager().onViewAddedToContainer -= self.__onViewAddedToContainer self.__view = None self.__clearCartPopover() return
def _populate(self): super(ResearchPanel, self)._populate() g_clientUpdateManager.addCallbacks({'stats.vehTypeXP': self.onVehicleTypeXPChanged, 'stats.eliteVehicles': self.onVehicleBecomeElite}) self.onCurrentVehicleChanged() comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onCompareBasketChanged comparisonBasket.onSwitchChange += self.onCurrentVehicleChanged
def stopListen(self): g_clientUpdateManager.removeObjectCallbacks(self) g_itemsCache.onSyncCompleted -= self.__items_onSyncCompleted g_playerEvents.onCenterIsLongDisconnected -= self.__center_onIsLongDisconnected comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange -= self.__onVehCompareBasketChanged comparisonBasket.onSwitchChange -= self.__onVehCompareBasketSwitchChange super(_ItemsCacheListener, self).stopListen()
def startListen(self, page): super(_ItemsCacheListener, self).startListen(page) g_clientUpdateManager.addCallbacks({INVENTORY_DIFF_KEY: self.__onInventoryUpdate, CACHE_DIFF_KEY: self.__onCacheUpdate}) g_itemsCache.onSyncCompleted += self.__items_onSyncCompleted g_playerEvents.onCenterIsLongDisconnected += self.__center_onIsLongDisconnected comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onVehCompareBasketChanged comparisonBasket.onSwitchChange += self.__onVehCompareBasketSwitchChange
def _generateOptions(self, ctx = None): vehicle = g_itemsCache.items.getItemByCD(self.__vehCD) options = [] if not vehicle.isSecret or vehicle.isInInventory: options.append(self._makeItem(PROFILE.VEHICLE_INFO, MENU.CONTEXTMENU_VEHICLEINFOEX)) comparisonBasket = getVehicleComparisonBasketCtrl() if comparisonBasket.isEnabled(): options.append(self._makeItem(PROFILE.VEHICLE_COMPARE, MENU.contextmenu(PROFILE.VEHICLE_COMPARE), {'enabled': comparisonBasket.isReadyToAdd(vehicle)})) return options
def dispose(self): comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange -= self.__onChanged comparisonBasket.onSwitchChange -= self.__updateBtnVisibility self.__getContainerManager( ).onViewAddedToContainer -= self.__onViewAddedToContainer self.__view = None self.__clearCartPopover() return
def __init__(self, view): super(_CompareBasketListener, self).__init__() self.__currentCartPopover = None self.__view = view comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onChanged comparisonBasket.onSwitchChange += self.__updateBtnVisibility self.__getContainerManager().onViewAddedToContainer += self.__onViewAddedToContainer self.__updateBtnVisibility(comparisonBasket) return
def _dispose(self): super(VehicleCompareView, self)._dispose() comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange -= self.__updateUI comparisonBasket.onSwitchChange -= self.__onComparingDisabled self.__paramsCache.dispose() self.__paramsCache = None self.__vehDP.fini() self.__vehDP = None return
def dispose(self): self.__view = None while self.__cache: self.__cache.pop().dispose() self.__cache = None comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange -= self.__onVehCountChanged comparisonBasket.onParametersChange -= self.__onVehParamsChanged return
def __init__(self, view): super(VehCompareBasketParamsCache, self).__init__() self.__cache = [] self.__view = view comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onVehCountChanged comparisonBasket.onParametersChange += self.__onVehParamsChanged for vehInd in range(comparisonBasket.getVehiclesCount()): self.__addParamData(vehInd) self.__rebuildList()
def __updateModulesType(self, modulesType): self.__currentModulesType = modulesType basketVehicle = getVehicleComparisonBasketCtrl().getVehicleAt( self.__vehIndex) if basketVehicle.isInInventory(): btnEnabled = modulesType != MODULES_TYPES.CURRENT else: btnEnabled = modulesType != MODULES_TYPES.BASIC self.as_setStateS(stateText=text_styles.neutral( _ms('#veh_compare:modulesView/moduleSet/{}'.format(modulesType))), stateEnabled=btnEnabled)
def _dispose(self): super(VehiclePreview, self)._dispose() g_clientUpdateManager.removeObjectCallbacks(self) g_currentPreviewVehicle.onComponentInstalled -= self.__updateStatus g_currentPreviewVehicle.onVehicleUnlocked -= self.__updateBtnState g_currentPreviewVehicle.onVehicleInventoryChanged -= self.__onInventoryChanged g_currentPreviewVehicle.onChanged -= self.__onVehicleChanged comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange -= self.__onCompareBasketChanged comparisonBasket.onSwitchChange -= self.__updateHeaderData g_currentPreviewVehicle.selectNoVehicle()
def _populate(self): super(VehicleCompareView, self)._populate() self.as_setStaticDataS({'header': self.__getHeaderData()}) self.as_setVehicleParamsDataS(getAllParametersTitles()) self.__vehDP = VehiclesDataProvider() self.__vehDP.setFlashObject(self.as_getVehiclesDPS()) self.__paramsCache = VehCompareBasketParamsCache(self.__vehDP) self.__updateUI() comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__updateUI comparisonBasket.onSwitchChange += self.__onComparingDisabled
def __init__(self, view): super(_CompareBasketListener, self).__init__() self.__currentCartPopover = None self.__view = view comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onChanged comparisonBasket.onSwitchChange += self.__updateBtnVisibility self.__getContainerManager( ).onViewAddedToContainer += self.__onViewAddedToContainer self.__updateBtnVisibility(comparisonBasket) return
def _manageVehCompareOptions(self, options): comparisonBasket = getVehicleComparisonBasketCtrl() if comparisonBasket.isEnabled(): options.insert( 2, self._makeItem( _EXTENDED_OPT_IDS.VEHICLE_COMPARE, MENU.contextmenu(_EXTENDED_OPT_IDS.VEHICLE_COMPARE), { 'enabled': comparisonBasket.isReadyToAdd( g_itemsCache.items.getItemByCD(self._vehicleCD)) }))
def _populate(self): super(ResearchPanel, self)._populate() g_clientUpdateManager.addCallbacks({ 'stats.vehTypeXP': self.onVehicleTypeXPChanged, 'stats.eliteVehicles': self.onVehicleBecomeElite }) self.onCurrentVehicleChanged() comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onCompareBasketChanged comparisonBasket.onSwitchChange += self.onCurrentVehicleChanged
def _manageStartOptions(self, options, vehicle): options.append( self._makeItem( _OPT_IDS.COPY, VEH_COMPARE.MENU_CLONEFORCOMPARE, {'enabled': not getVehicleComparisonBasketCtrl().isFull()})) if vehicle.isInInventory: options.append( self._makeItem(VEHICLE.SELECT, VEH_COMPARE.VEHICLECOMPAREVIEW_TOHANGAR)) else: options.append( self._makeItem(VEHICLE.PREVIEW, MENU.CONTEXTMENU_SHOWVEHICLEPREVIEW))
def _getBtnVehCompareData(vehicle): comparisonBasket = getVehicleComparisonBasketCtrl() state, tooltip = resolveStateTooltip( comparisonBasket, vehicle, enabledTooltip=VEH_COMPARE. STORE_COMPAREVEHICLEBTN_TOOLTIPS_ADDTOCOMPARE, fullTooltip=VEH_COMPARE.STORE_COMPAREVEHICLEBTN_TOOLTIPS_DISABLED) return { 'modeAvailable': comparisonBasket.isEnabled(), 'btnEnabled': state, 'btnTooltip': tooltip }
def _manageStartOptions(self, options, vehicle): options.append( self._makeItem(VEHICLE.INFO, MENU.contextmenu(VEHICLE.INFO))) super(VehicleContextMenuHandler, self)._manageStartOptions(options, vehicle) basket = getVehicleComparisonBasketCtrl() if basket.isEnabled(): options.append( self._makeItem( VEHICLE.COMPARE, MENU.contextmenu(VEHICLE.COMPARE), { 'enabled': basket.isReadyToAdd( g_itemsCache.items.getItemByCD(self.vehCD)) }))
def getBtnCompareData(vehicle): raise vehicle or AssertionError comparisonBasket = getVehicleComparisonBasketCtrl() state, tooltip = resolveStateTooltip( comparisonBasket, vehicle, enabledTooltip=TOOLTIPS.RESEARCHPAGE_VEHICLE_BUTTON_COMPARE_ADD, fullTooltip=TOOLTIPS.RESEARCHPAGE_VEHICLE_BUTTON_COMPARE_DISABLED) return { 'modeAvailable': comparisonBasket.isEnabled(), 'btnLabel': MENU.RESEARCH_LABELS_BUTTON_ADDTOCOMPARE, 'btnEnabled': state, 'btnTooltip': tooltip }
def __onVehParamsChanged(self, data): isBestScoreInvalid = False for index in data: basketVehData = getVehicleComparisonBasketCtrl().getVehicleAt(index) paramsVehData = self.__cache[index] paramsVehData.setIsInInventory(basketVehData.isInInventory()) paramsVehData.setModulesType(basketVehData.getModulesType()) isBestScoreInvalid = isBestScoreInvalid or paramsVehData.setCrewLvl(basketVehData.getCrewLevel()) isBestScoreInvalid = isBestScoreInvalid or paramsVehData.setVehicleStrCD(basketVehData.getVehicleStrCD()) if self.__cache: bestParams = _reCalcBestParameters(self.__cache) if isBestScoreInvalid else None params = map(lambda paramData: paramData.getFormattedParameters(bestParams), self.__cache) self.__view.updateItems(params) return
def updateAddButtonLabel(self): selectedCount = len(self._vehDP.getSelected()) if getVehicleComparisonBasketCtrl().getVehiclesCount() + selectedCount > MAX_VEHICLES_TO_COMPARE_COUNT: tooltip = VEH_COMPARE.ADDVEHPOPOVER_TOOLTIPS_ADDTOCOMPAREDISABLED icon = RES_ICONS.MAPS_ICONS_LIBRARY_ALERTICON isEnabled = False else: tooltip = VEH_COMPARE.ADDVEHPOPOVER_TOOLTIPS_ADDTOCOMPARE icon = None isEnabled = selectedCount > 0 self.as_setAddButtonStateS({'btnLabel': _ms(VEH_COMPARE.ADDVEHPOPOVER_BTNADD, count=selectedCount), 'btnTooltip': tooltip, 'btnIcon': icon, 'btnEnabled': isEnabled}) return
def _populate(self): """ Prepare and set init data into Flash Subscribe on account updates """ super(StoreComponent, self)._populate() self.__setNations() g_clientUpdateManager.addCallbacks( {'inventory': self.__onInventoryUpdate}) comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onVehCompareBasketChanged comparisonBasket.onSwitchChange += self.__onVehCompareBasketSwitchChange g_itemsCache.onSyncCompleted += self._update g_instance.rentals.onRentChangeNotify += self._onTableUpdate g_instance.restore.onRestoreChangeNotify += self._onTableUpdate self.__populateFilters()
def onModuleClick(self, moduleId): moduleId = int(moduleId) newComponentItem = _getModule(moduleId) isMainFit, mainReason = newComponentItem.mayInstall(self.__vehicle) if isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() conflictedModules = self.__modulesInstaller.getConflictedModules() if self.__modulesInstaller.hasConflicted(): for modulesByType in conflictedModules: for moduleCD in modulesByType: conflictedModule = _getModule(moduleCD) yield getPreviewInstallerProcessor(self.__vehicle, conflictedModule).request() if not isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() self.__updateChangedSlots() self.__updateModulesType(getVehicleComparisonBasketCtrl().getVehicleAt(self.__vehIndex).getModulesType(strCD=self.__vehicle.descriptor.makeCompactDescr()))
def _populate(self): super(VehiclePreview, self)._populate() g_clientUpdateManager.addCallbacks({'stats.credits': self.__updateBtnState, 'stats.gold': self.__updateBtnState, 'stats.freeXP': self.__updateBtnState}) g_currentPreviewVehicle.onComponentInstalled += self.__updateStatus g_currentPreviewVehicle.onVehicleUnlocked += self.__updateBtnState g_currentPreviewVehicle.onVehicleInventoryChanged += self.__onInventoryChanged g_currentPreviewVehicle.onChanged += self.__onVehicleChanged comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onCompareBasketChanged comparisonBasket.onSwitchChange += self.__updateHeaderData if g_currentPreviewVehicle.isPresent(): self.__updateHeaderData() self.__fullUpdate() else: event_dispatcher.showHangar()
def __getVehCompareData(self, vehicle): comparisonBasket = getVehicleComparisonBasketCtrl() state, tooltip = resolveStateTooltip( comparisonBasket, vehicle, enabledTooltip=None, fullTooltip=VEH_COMPARE.STORE_COMPAREVEHICLEBTN_TOOLTIPS_DISABLED) return { 'modeAvailable': comparisonBasket.isEnabled(), 'btnEnabled': state, 'btnTooltip': tooltip, 'label': text_styles.main(VEH_COMPARE.VEHPREVIEW_COMPAREINFO_ADDTOCOMPARE) }
def __updateCompareButtonState(self): comparisonBasket = getVehicleComparisonBasketCtrl() if not comparisonBasket.isAvailable(): tooltip = VEH_COMPARE.COMPAREVEHICLEBTN_TOOLTIPS_MINICLIENT elif comparisonBasket.isFull(): tooltip = MENU.VEHICLEINFO_COMPAREBTN_TOOLTIP else: tooltip = '' self.as_setCompareButtonDataS({ 'visible': comparisonBasket.isEnabled(), 'enabled': comparisonBasket.isReadyToAdd( g_itemsCache.items.getItemByCD(self.vehicleCompactDescr)), 'label': MENU.VEHICLEINFO_COMPAREBTN_LABEL, 'tooltip': tooltip })
def __onChanged(self, changedData): """ gui.game_control.VehComparisonBasket.onChange event handler :param changedData: instance of gui.game_control.veh_comparison_basket._ChangedData """ comparisonBasket = getVehicleComparisonBasketCtrl() if changedData.addedCDs: cMgr = self.__getContainerManager() if not cMgr.isViewAvailable(ViewTypes.LOBBY_SUB, {POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.VEHICLE_COMPARE}): if comparisonBasket.getVehiclesCount() == 1: self.__view.as_openVehicleCompareCartPopoverS(True) else: vehicle = g_itemsCache.items.getItemByCD(changedData.addedCDs[-1]) vehName = ' '.join([int2roman(vehicle.level), vehicle.shortUserName]) vehTypeIcon = RES_ICONS.maps_icons_vehicletypes_gold(vehicle.type + '.png') self.__view.as_showAddVehicleCompareAnimS({'vehName': vehName, 'vehType': vehTypeIcon}) if changedData.addedCDs or changedData.removedCDs: self.__updateBtnVisibility(comparisonBasket)
def _makeVO(self, vehicleCD, index): vehicle = g_itemsCache.items.getItemByCD(vehicleCD) if vehicle.isPremium: moduleType = 'premium' else: moduleType = getVehicleComparisonBasketCtrl().getVehicleAt( index).getModulesType() complectation = _ms(VEH_COMPARE.cartpopover_moduletype(moduleType)) return { 'id': vehicleCD, 'index': index, 'vehicleName': text_styles.main(vehicle.shortUserName), 'complectation': complectation, 'nation': getNationsFilterAssetPath(AVAILABLE_NAMES[vehicle.nationID]), 'level': vehicle.level, 'typeStr': vehicle.type, 'smallIconPath': vehicle.iconSmall, 'removeBtnTooltip': VEH_COMPARE.CARTPOPOVER_REMOVEBTN_TOOLTIP }
def __onVehParamsChanged(self, data): isBestScoreInvalid = False for index in data: basketVehData = getVehicleComparisonBasketCtrl().getVehicleAt( index) paramsVehData = self.__cache[index] paramsVehData.setIsInInventory(basketVehData.isInInventory()) paramsVehData.setModulesType(basketVehData.getModulesType()) isBestScoreInvalid = isBestScoreInvalid or paramsVehData.setCrewLvl( basketVehData.getCrewLevel()) isBestScoreInvalid = isBestScoreInvalid or paramsVehData.setVehicleStrCD( basketVehData.getVehicleStrCD()) if self.__cache: bestParams = _reCalcBestParameters( self.__cache) if isBestScoreInvalid else None params = map( lambda paramData: paramData.getFormattedParameters(bestParams), self.__cache) self.__view.updateItems(params) return
def onResetBtnBtnClick(self): def __logModuleWarning(): LOG_WARNING('Unable to apply the following modules type: {}'.format(self.__currentModulesType)) def __logModuleError(): LOG_ERROR('Attempt to apply unsupported modules type: {}'.format(self.__currentModulesType)) basketVehicle = getVehicleComparisonBasketCtrl().getVehicleAt(self.__vehIndex) if basketVehicle.isInInventory(): if self.__currentModulesType == MODULES_TYPES.CUSTOM or self.__currentModulesType == MODULES_TYPES.BASIC: self.__initialize(basketVehicle.getInvVehStrCD(), MODULES_TYPES.CURRENT) elif self.__currentModulesType == MODULES_TYPES.CURRENT: __logModuleWarning() else: __logModuleError() elif self.__currentModulesType == MODULES_TYPES.CUSTOM: self.__initialize(basketVehicle.getStockVehStrCD(), MODULES_TYPES.BASIC) elif self.__currentModulesType == MODULES_TYPES.BASIC: __logModuleWarning() else: __logModuleError()
def updateAddButtonLabel(self): selectedCount = len(self._vehDP.getSelected()) if getVehicleComparisonBasketCtrl().getVehiclesCount( ) + selectedCount > MAX_VEHICLES_TO_COMPARE_COUNT: tooltip = VEH_COMPARE.ADDVEHPOPOVER_TOOLTIPS_ADDTOCOMPAREDISABLED icon = RES_ICONS.MAPS_ICONS_LIBRARY_ALERTICON isEnabled = False else: tooltip = VEH_COMPARE.ADDVEHPOPOVER_TOOLTIPS_ADDTOCOMPARE icon = None isEnabled = selectedCount > 0 self.as_setAddButtonStateS({ 'btnLabel': _ms(VEH_COMPARE.ADDVEHPOPOVER_BTNADD, count=selectedCount), 'btnTooltip': tooltip, 'btnIcon': icon, 'btnEnabled': isEnabled }) return
def _populate(self): super(VehiclePreview, self)._populate() g_clientUpdateManager.addCallbacks({ 'stats.credits': self.__updateBtnState, 'stats.gold': self.__updateBtnState, 'stats.freeXP': self.__updateBtnState }) g_currentPreviewVehicle.onComponentInstalled += self.__updateStatus g_currentPreviewVehicle.onVehicleUnlocked += self.__updateBtnState g_currentPreviewVehicle.onVehicleInventoryChanged += self.__onInventoryChanged g_currentPreviewVehicle.onChanged += self.__onVehicleChanged comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange += self.__onCompareBasketChanged comparisonBasket.onSwitchChange += self.__updateHeaderData if g_currentPreviewVehicle.isPresent(): self.__updateHeaderData() self.__fullUpdate() else: event_dispatcher.showHangar()
def onModuleClick(self, moduleId): moduleId = int(moduleId) newComponentItem = _getModule(moduleId) isMainFit, mainReason = newComponentItem.mayInstall(self.__vehicle) if isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() conflictedModules = self.__modulesInstaller.getConflictedModules() if self.__modulesInstaller.hasConflicted(): for modulesByType in conflictedModules: for moduleCD in modulesByType: conflictedModule = _getModule(moduleCD) yield getPreviewInstallerProcessor( self.__vehicle, conflictedModule).request() if not isMainFit: yield getPreviewInstallerProcessor(self.__vehicle, newComponentItem).request() self.__updateChangedSlots() self.__updateModulesType(getVehicleComparisonBasketCtrl().getVehicleAt( self.__vehIndex).getModulesType( strCD=self.__vehicle.descriptor.makeCompactDescr()))
def _dispose(self): """ Clear attrs and subscriptions """ super(StoreComponent, self)._dispose() self.__clearTableData() while len(self.__nations): self.__nations.pop() self.__nations = None self._currentTab = None self.__filterHash.clear() self.__filterHash = None self.__invVehicles = None self.__clearSubFilter() self._table = None g_itemsCache.onSyncCompleted -= self._update g_instance.rentals.onRentChangeNotify -= self._onTableUpdate g_instance.restore.onRestoreChangeNotify -= self._onTableUpdate comparisonBasket = getVehicleComparisonBasketCtrl() comparisonBasket.onChange -= self.__onVehCompareBasketChanged comparisonBasket.onSwitchChange -= self.__onVehCompareBasketSwitchChange g_clientUpdateManager.removeObjectCallbacks(self) return
def onCompareClick(self): """ Add to compare button click handler """ getVehicleComparisonBasketCtrl().addVehicle(self.__vehicleCD)
def compareVehicle(self, itemCD): getVehicleComparisonBasketCtrl().addVehicle(int(itemCD))
def onAddVehToCompare(self, itemCD): getVehicleComparisonBasketCtrl().addVehicle(int(itemCD))
def request4VehCompare(self, vehCD): """ :param vehCD: float """ getVehicleComparisonBasketCtrl().addVehicle(int(vehCD))
def _getBtnVehCompareData(vehicle): comparisonBasket = getVehicleComparisonBasketCtrl() state, tooltip = resolveStateTooltip(comparisonBasket, vehicle, enabledTooltip=VEH_COMPARE.STORE_COMPAREVEHICLEBTN_TOOLTIPS_ADDTOCOMPARE, fullTooltip=VEH_COMPARE.STORE_COMPAREVEHICLEBTN_TOOLTIPS_DISABLED) return {'modeAvailable': comparisonBasket.isEnabled(), 'btnEnabled': state, 'btnTooltip': tooltip}
def _update(self, *args): self.as_updateS() self.as_setVehicleCompareAvailableS( getVehicleComparisonBasketCtrl().isEnabled())
def removeAll(self): getVehicleComparisonBasketCtrl().removeAllVehicles()
def compareVehicle(self): getVehicleComparisonBasketCtrl().addVehicle(self._vehicleCD)
def __onComparisonVehsChanged(self, changedData): """ gui.game_control.VehComparisonBasket.onChange event handler :param changedData: instance of gui.game_control.veh_comparison_basket._ChangedData """ self.rebuildList(getVehicleComparisonBasketCtrl().getVehiclesCDs())
def remove(self, vehId): getVehicleComparisonBasketCtrl().removeVehicleByIdx(int(vehId))
def _manageVehCompareOptions(self, options): comparisonBasket = getVehicleComparisonBasketCtrl() if comparisonBasket.isEnabled(): options.insert(2, self._makeItem(_EXTENDED_OPT_IDS.VEHICLE_COMPARE, MENU.contextmenu(_EXTENDED_OPT_IDS.VEHICLE_COMPARE), {'enabled': comparisonBasket.isReadyToAdd(g_itemsCache.items.getItemByCD(self._vehicleCD))}))
def setFlashObject(self, movieClip, autoPopulate=True, setScript=True): getVehicleComparisonBasketCtrl( ).onChange += self.__onComparisonVehsChanged return super(_VehicleCompareCartDataProvider, self).setFlashObject(movieClip, autoPopulate, setScript)
def fini(self): getVehicleComparisonBasketCtrl( ).onChange -= self.__onComparisonVehsChanged self.clear() self._dispose()