def __addListeners(self): model = self.viewModel model.onBuyClick += self.__onBuyClick model.onAboutClick += self.__onAboutClick model.onViewLoaded += self.__showViewCallback model.onClose += self.__onClose model.intro.onClose += self.__onIntroCloseClick model.intro.onVideo += self.__showIntroVideo model.onGoToChapter += self.__onGoToChapter model.widget3dStyle.onPreviewClick += self.__onPreviewClick model.widget3dStyle.onSelectStyle += self.__onSelectStyle model.onTakeClick += self.__onTakeClick model.onTakeAllClick += self.__onTakeAllClick model.onOpenShopClick += self.__onOpenShopClick model.onPointsInfoClick += self.__onPointsInfoClick model.onFinishedAnimation += self.__resetReplaceRewardAnimations model.onLevelsAnimationFinished += self.__resetLevelAnimations self.__battlePassController.onPointsUpdated += self.__onPointsUpdated self.__battlePassController.onBattlePassIsBought += self.__onBattlePassBought self.__battlePassController.onBattlePassSettingsChange += self.__onBattlePassSettingsChange self.__battlePassController.onRewardSelectChange += self.__onRewardSelectChange self.__battlePassController.onOffersUpdated += self.__onOffersUpdated self.__battlePassController.onSeasonStateChange += self.__updateProgressData self.__wallet.onWalletStatusChanged += self.__updateWalletAvailability g_clientUpdateManager.addCurrencyCallback(Currency.BPCOIN, self.__updateBalance) g_eventBus.addListener(events.MissionsEvent.ON_TAB_CHANGED, self.__onMissionsTabChanged, EVENT_BUS_SCOPE.LOBBY) g_eventBus.addListener(events.FocusEvent.COMPONENT_FOCUSED, self.__onFocus) g_eventBus.addListener(events.BattlePassEvent.ON_PURCHASE_LEVELS, self.__onPurchaseLevels, EVENT_BUS_SCOPE.LOBBY)
def __init__(self, itemCD, parentCD, xpCost): super(ExchangeXpMeta, self).__init__((_SingleExchangeItem(itemCD), parentCD, xpCost), key='confirmExchangeDialog/exchangeXp') g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self._onStatsChanged) g_clientUpdateManager.addCallbacks({'shop.freeXPConversion': self._onStatsChanged, 'inventory.1': self._onStatsChanged, 'stats.vehTypeXP': self._onStatsChanged, 'stats.freeXP': self._onStatsChanged, 'stats.unlocks': self.__checkUnlocks})
def __addListeners(self): self.viewModel.onActionClick += self.__onClick self.__tenYearsCountdown.onEventBlockChanged += self.__initNotifier self.__tenYearsCountdown.onEventBlockChanged += self.__updateModel self.__tenYearsCountdown.onActivePhasesDatesChanged += self.__updateTimer self.__tenYearsCountdown.onEventFinishChanged += self.__updateTimer self.__wallet.onWalletStatusChanged += self.__updateBalance g_clientUpdateManager.addCurrencyCallback(Currency.EVENT_COIN, self.__updateBalance)
def _populate(self): super(VehicleBuyWindow, self)._populate() self._initData() self.itemsCache.onSyncCompleted += self._initData self.rentals.onRentChangeNotify += self.__onRentChange g_clientUpdateManager.addCurrencyCallback(Currency.CREDITS, self.__setCreditsCallBack) g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.__setGoldCallBack) self.addListener(VehicleBuyEvent.VEHICLE_SELECTED, self.__setTradeOffVehicle)
def _populate(self): View._populate(self) self.__getInitialData() if self._currentVehicleInvId != -1: g_clientUpdateManager.addCallbacks({'inventory': self.onInventoryChanged}) g_clientUpdateManager.addCurrencyCallback(Currency.CREDITS, self.onCreditsChange) g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.onGoldChange) g_clientUpdateManager.addCallbacks({'cache.mayConsumeWalletResources': self.onGoldChange})
def __subscribe(self): g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.__onSetGoldHandler) g_clientUpdateManager.addCurrencyCallback(Currency.CRYSTAL, self.__onSetCrystalHandler) g_clientUpdateManager.addCallback('goodies', self.__onSetGoodiesHandler) self.__itemsCache.onSyncCompleted += self.__shopResyncHandler
def _subscribe(self): g_clientUpdateManager.addCurrencyCallback(Currency.CREDITS, self.__setCreditsCallBack) g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self._setGoldCallBack) g_clientUpdateManager.addCallbacks( {'shop.exchangeRate': self.__setExchangeRateCallBack}) self.wallet.onWalletStatusChanged += self.__setWalletCallback self.itemsCache.onSyncCompleted += self.__setExchangeRateCallBack
def _populate(self): super(PremiumWindow, self)._populate() g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.__onUpdateHandler) g_clientUpdateManager.addCallbacks({'stats.unlocks': self.__onUpdateHandler, 'cache.mayConsumeWalletResources': self.__onUpdateHandler, 'goodies': self.__onUpdateHandler}) self.gameSession.onPremiumNotify += self.__onUpdateHandler self.itemsCache.onSyncCompleted += self.__onUpdateHandler self.__populateData()
def __init__(self, ctx = None): super(RoleChangeWindow, self).__init__() self.__tankman = self.itemsCache.items.getTankman(ctx.get('tankmanID', None)) self.__nativeVehicleCD = self.__tankman.vehicleNativeDescr.type.compactDescr self.__selectedVehicleCD = self.__nativeVehicleCD self.__currentVehicleCD = None if self.__tankman.vehicleDescr is not None: self.__currentVehicleCD = self.__tankman.vehicleDescr.type.compactDescr g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self._onMoneyUpdate) g_clientUpdateManager.addCallbacks({'stats.unlock': self._onStatsUpdate, 'stats.inventory': self._onStatsUpdate}) return
def _populate(self): super(SkillDropWindow, self)._populate() self.__setData() self.itemsCache.onSyncCompleted += self.__setData g_clientUpdateManager.addCurrencyCallback(Currency.CREDITS, self.__setData) g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.__setData) g_clientUpdateManager.addCallbacks({ 'inventory.8.compDescr': self.onTankmanChanged, 'cache.mayConsumeWalletResources': self.__setData })
def _populate(self): super(TechnicalMaintenance, self)._populate() self.itemsCache.onSyncCompleted += self._onShopResync self.addListener(events.TechnicalMaintenanceEvent.RESET_EQUIPMENT, self.__resetEquipment, scope=EVENT_BUS_SCOPE.LOBBY) g_clientUpdateManager.addCurrencyCallback(Currency.CREDITS, self.onCreditsChange) g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.onGoldChange) g_clientUpdateManager.addCallbacks({'cache.mayConsumeWalletResources': self.onGoldChange, 'cache.vehsLock': self.__onCurrentVehicleChanged}) g_currentVehicle.onChanged += self.__onCurrentVehicleChanged if g_currentVehicle.isPresent(): self.__currentVehicleId = g_currentVehicle.item.intCD self.populateTechnicalMaintenance() self.populateTechnicalMaintenanceEquipmentDefaults() self.setupContextHints(TUTORIAL.TECHNICAL_MAINTENANCE)
def _subscribe(self): g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self._setGoldCallBack) g_clientUpdateManager.addCallbacks({ 'shop.freeXPConversion': self.__setXPConversationCallBack, 'shop.goodies': self.__discountChangedCallback, 'goodies.4': self.__discountChangedCallback, 'inventory.1': self.__vehiclesDataChangedCallBack, 'stats.vehTypeXP': self.__vehiclesDataChangedCallBack, 'stats.freeXP': self.__setFreeXPCallBack }) self.wallet.onWalletStatusChanged += self.__setWalletCallback self.itemsCache.onSyncCompleted += self.__setXPConversationCallBack
def _populate(self): super(VehicleSellDialog, self)._populate() g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.onSetGoldHndlr) self.itemsCache.onSyncCompleted += self.__shopResyncHandler items = self.itemsCache.items vehicle = items.getVehicle(self.__vehInvID) sellPrice = vehicle.sellPrices.itemPrice.price sellCurrency = sellPrice.getCurrency(byWeight=True) sellForGold = sellCurrency == Currency.GOLD priceTextColor = CURRENCIES_CONSTANTS.GOLD_COLOR if sellForGold else CURRENCIES_CONSTANTS.CREDITS_COLOR priceTextValue = _ms(DIALOGS.VEHICLESELLDIALOG_PRICE_SIGN_ADD) + _ms( BigWorld.wg_getIntegralFormat( sellPrice.getSignValue(sellCurrency))) currencyIcon = CURRENCIES_CONSTANTS.GOLD if sellForGold else CURRENCIES_CONSTANTS.CREDITS invVehs = items.getVehicles(REQ_CRITERIA.INVENTORY) self.checkControlQuestion(self.__checkUsefulTankman) modules = items.getItems( criteria=REQ_CRITERIA.VEHICLE.SUITABLE([vehicle]) | REQ_CRITERIA.INVENTORY).values() shells = items.getItems(criteria=REQ_CRITERIA.VEHICLE.SUITABLE( [vehicle], [GUI_ITEM_TYPE.SHELL]) | REQ_CRITERIA.INVENTORY).values() otherVehsShells = set() for invVeh in invVehs.itervalues(): if invVeh.invID != self.__vehInvID: for shot in invVeh.descriptor.gun.shots: otherVehsShells.add(shot.shell.compactDescr) vehicleAction = None if vehicle.sellPrices.itemPrice.isActionPrice(): vehicleAction = packItemActionTooltipData(vehicle, False) if vehicle.isElite: description = TOOLTIPS.tankcaruseltooltip_vehicletype_elite( vehicle.type) else: description = DIALOGS.vehicleselldialog_vehicletype(vehicle.type) levelStr = text_styles.concatStylesWithSpace( text_styles.stats(int2roman(vehicle.level)), text_styles.main(_ms(DIALOGS.VEHICLESELLDIALOG_VEHICLE_LEVEL))) tankmenGoingToBuffer, deletedTankmen = self.restore.getTankmenDeletedBySelling( vehicle) deletedCount = len(deletedTankmen) if deletedCount > 0: deletedStr = formatDeletedTankmanStr(deletedTankmen[0]) maxCount = self.restore.getMaxTankmenBufferLength() currCount = len(self.restore.getDismissedTankmen()) if deletedCount == 1: crewTooltip = text_styles.concatStylesToMultiLine( text_styles.middleTitle( _ms(TOOLTIPS. VEHICLESELLDIALOG_CREW_ALERTICON_RECOVERY_HEADER)), text_styles.main( _ms(TOOLTIPS. VEHICLESELLDIALOG_CREW_ALERTICON_RECOVERY_BODY, maxVal=maxCount, curVal=currCount, sourceName=tankmenGoingToBuffer[-1].fullUserName, targetInfo=deletedStr))) else: crewTooltip = text_styles.concatStylesToMultiLine( text_styles.middleTitle( _ms(TOOLTIPS. VEHICLESELLDIALOG_CREW_ALERTICON_RECOVERY_HEADER)), text_styles.main( _ms(TOOLTIPS. DISMISSTANKMANDIALOG_BUFFERISFULLMULTIPLE_BODY, deletedStr=deletedStr, extraCount=deletedCount - 1, maxCount=maxCount, currCount=currCount))) else: crewTooltip = None if vehicle.isCrewLocked: hasCrew = False else: hasCrew = vehicle.hasCrew barracksDropDownData = [{ 'label': _ms(MENU.BARRACKS_BTNUNLOAD) }, { 'label': _ms(MENU.BARRACKS_BTNDISSMISS) }] sellVehicleData = { 'intCD': vehicle.intCD, 'userName': vehicle.userName, 'icon': vehicle.icon, 'level': vehicle.level, 'isElite': vehicle.isElite, 'isPremium': vehicle.isPremium, 'type': vehicle.type, 'nationID': vehicle.nationID, 'sellPrice': sellPrice.toMoneyTuple(), 'priceTextValue': priceTextValue, 'priceTextColor': priceTextColor, 'currencyIcon': currencyIcon, 'action': vehicleAction, 'hasCrew': hasCrew, 'isRented': vehicle.isRented, 'description': description, 'levelStr': levelStr, 'priceLabel': _ms(DIALOGS.VEHICLESELLDIALOG_VEHICLE_EMPTYSELLPRICE), 'crewLabel': _ms(DIALOGS.VEHICLESELLDIALOG_CREW_LABEL), 'crewTooltip': crewTooltip, 'barracksDropDownData': barracksDropDownData } currentGoldBalance = self.itemsCache.items.stats.money.get( Currency.GOLD, 0) onVehicleOptionalDevices = [] for o in vehicle.optDevices: if o is not None: itemPrice = o.sellPrices.itemPrice action = None if itemPrice.isActionPrice(): action = packItemActionTooltipData(o, False) removalPrice = o.getRemovalPrice(items) removeAction = None if removalPrice.isActionPrice(): removeAction = packActionTooltipData( ACTION_TOOLTIPS_TYPE.ECONOMICS, 'paidRemovalCost', True, removalPrice.price, removalPrice.defPrice) removalPriceInGold = removalPrice.price.get(Currency.GOLD, 0) enoughGold = currentGoldBalance >= removalPriceInGold if enoughGold: currentGoldBalance -= removalPriceInGold data = { 'intCD': o.intCD, 'isRemovable': o.isRemovable, 'userName': o.userName, 'sellPrice': itemPrice.price.toMoneyTuple(), 'toInventory': enoughGold, 'action': action, 'removePrice': removalPrice.price.toMoneyTuple(), 'removeActionPrice': removeAction } onVehicleOptionalDevices.append(data) onVehicleoShells = [] for shell in vehicle.shells: if shell is not None: itemPrice = shell.sellPrices.itemPrice action = None if itemPrice.isActionPrice(): action = packItemActionTooltipData(shell, False) data = { 'intCD': shell.intCD, 'count': shell.count, 'sellPrice': itemPrice.price.toMoneyTuple(), 'userName': shell.userName, 'kind': shell.type, 'toInventory': shell in otherVehsShells or shell.isPremium, 'action': action } onVehicleoShells.append(data) onVehicleEquipments = [] for equipmnent in vehicle.equipment.regularConsumables.getInstalledItems( ): action = None if equipmnent.sellPrices.itemPrice.isActionPrice(): action = packItemActionTooltipData(equipmnent, False) data = { 'intCD': equipmnent.intCD, 'userName': equipmnent.userName, 'sellPrice': equipmnent.sellPrices.itemPrice.price.toMoneyTuple(), 'toInventory': True, 'action': action } onVehicleEquipments.append(data) onVehicleBattleBoosters = [] for booster in vehicle.equipment.battleBoosterConsumables.getInstalledItems( ): data = { 'intCD': booster.intCD, 'userName': booster.userName, 'sellPrice': MONEY_UNDEFINED.toMoneyTuple(), 'onlyToInventory': True } onVehicleBattleBoosters.append(data) inInventoryModules = [] for m in modules: inInventoryModules.append({ 'intCD': m.intCD, 'inventoryCount': m.inventoryCount, 'toInventory': True, 'sellPrice': m.sellPrices.itemPrice.price.toMoneyTuple() }) inInventoryShells = [] for s in shells: action = None itemPrice = s.sellPrices.itemPrice if itemPrice.isActionPrice(): action = packItemActionTooltipData(s, False) inInventoryShells.append({ 'intCD': s.intCD, 'count': s.inventoryCount, 'sellPrice': itemPrice.price.toMoneyTuple(), 'userName': s.userName, 'kind': s.type, 'toInventory': s in otherVehsShells or s.isPremium, 'action': action }) customizationOnVehicle = [] settings = self.getDialogSettings() isSlidingComponentOpened = settings['isOpened'] self.as_setDataS({ 'accountMoney': items.stats.money.toMoneyTuple(), 'sellVehicleVO': sellVehicleData, 'optionalDevicesOnVehicle': onVehicleOptionalDevices, 'shellsOnVehicle': onVehicleoShells, 'equipmentsOnVehicle': onVehicleEquipments, 'modulesInInventory': inInventoryModules, 'shellsInInventory': inInventoryShells, 'isSlidingComponentOpened': isSlidingComponentOpened, 'battleBoostersOnVehicle': onVehicleBattleBoosters, 'customizationOnVehicle': customizationOnVehicle }) return
def __addListeners(self): self.startGlobalListening() self.app.containerManager.onViewAddedToContainer += self.__onViewAddedToContainer self.wallet.onWalletStatusChanged += self.__onWalletChanged self.gameSession.onPremiumNotify += self.__onPremiumTimeChanged self.igrCtrl.onIgrTypeChanged += self.__onIGRChanged self.lobbyContext.getServerSettings( ).onServerSettingsChange += self.__onServerSettingChanged g_currentVehicle.onChanged += self.__onVehicleChanged g_currentPreviewVehicle.onChanged += self.__onVehicleChanged self.eventsCache.onSyncCompleted += self.__onEventsCacheResync self.eventsCache.onEventsVisited += self.__onEventsVisited self.eventsCache.onProfileVisited += self.__onProfileVisited self.itemsCache.onSyncCompleted += self.__onItemsChanged self.boosters.onBoosterChangeNotify += self.__onUpdateGoodies self.falloutCtrl.onVehiclesChanged += self.__updateFalloutSettings self.falloutCtrl.onSettingsChanged += self.__updateFalloutSettings self.rankedController.onUpdated += self.__updateRanked self.addListener(events.FightButtonEvent.FIGHT_BUTTON_UPDATE, self.__handleFightButtonUpdated, scope=EVENT_BUS_SCOPE.LOBBY) self.addListener(events.CoolDownEvent.PREBATTLE, self.__handleSetPrebattleCoolDown, scope=EVENT_BUS_SCOPE.LOBBY) self.addListener(events.BubbleTooltipEvent.SHOW, self.__showBubbleTooltip, scope=EVENT_BUS_SCOPE.LOBBY) self.addListener(events.CloseWindowEvent.GOLD_FISH_CLOSED, self.__onGoldFishWindowClosed, scope=EVENT_BUS_SCOPE.LOBBY) g_clientUpdateManager.addCurrencyCallback(Currency.CREDITS, self.__setCredits) g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self.__setGold) g_clientUpdateManager.addCurrencyCallback(Currency.CRYSTAL, self.__setCrystal) g_clientUpdateManager.addCallbacks({ 'stats.freeXP': self.__setFreeXP, 'stats.clanInfo': self.__setClanInfo, 'goodies': self.__updateGoodies, 'account.premiumExpiryTime': self.__onPremiumExpireTimeChanged, 'cache.SPA': self.__onSPAUpdated }) self.as_setFightButtonS(i18n.makeString('#menu:headerButtons/battle')) self.as_setWalletStatusS(self.wallet.componentsStatuses) self.as_setPremShopDataS(RES_ICONS.MAPS_ICONS_LOBBY_ICON_PREMSHOP, MENU.HEADERBUTTONS_BTNLABEL_PREMSHOP, TOOLTIPS.HEADER_PREMSHOP, TOOLTIP_TYPES.COMPLEX) self.as_initOnlineCounterS(constants.IS_SHOW_SERVER_STATS) if constants.IS_SHOW_SERVER_STATS: self.serverStats.onStatsReceived += self.__onStatsReceived self.__onStatsReceived() self.updateAccountInfo() self.__updateServerData() if not isTimeToShowGoldFishPromo(): enabledVal = isGoldFishActionActive() tooltip = TOOLTIPS.HEADER_BUTTONS_GOLD_ACTION if enabledVal else TOOLTIPS.HEADER_BUTTONS_GOLD self.as_setGoldFishEnabledS(enabledVal, False, tooltip, TOOLTIP_TYPES.COMPLEX) g_preDefinedHosts.onPingPerformed += self.__onPingPerformed g_preDefinedHosts.requestPing() self.settingsCore.onSettingsChanged += self.__onSettingsChanged self.encyclopedia.onNewRecommendationReceived += self.__onNewEncyclopediaRecommendation self.encyclopedia.onStateChanged += self._updateHangarMenuData