def __onSettingsChange(self, *_): if self.__battlePassController.isVisible( ) and not self.__battlePassController.isPaused(): self.__updateState() self.__notifications.startNotification() else: showHangar()
def __onSettingsChanged(self, *_): if self.__battlePass.isPaused(): showMissionsBattlePass() elif self.__battlePass.isVisible(): self.__updateState() else: showHangar()
def _processBackClick(self, ctx=None): if self._previewBackCb: self._previewBackCb() elif self._backAlias == VIEW_ALIAS.LOBBY_RESEARCH and g_currentPreviewVehicle.isPresent( ): event_dispatcher.showResearchView( self._vehicleCD, exitEvent=events.LoadViewEvent( SFViewLoadParams(VIEW_ALIAS.LOBBY_TECHTREE), ctx={'nation': g_currentPreviewVehicle.item.nationName})) elif self._backAlias == VIEW_ALIAS.VEHICLE_PREVIEW: entity = ctx.get('entity', None) if ctx else None if entity: compactDescr = entity.typeDescriptor.type.compactDescr if self.__itemsCache.items.inventory.getItemData( compactDescr) is not None: event_dispatcher.showHangar() else: event_dispatcher.showVehiclePreview( compactDescr, previewAlias=self._previousBackAlias) else: event_dispatcher.showHangar() elif self._backAlias == VIEW_ALIAS.LOBBY_STORE: showShop() else: event = g_entitiesFactories.makeLoadEvent( SFViewLoadParams(self._backAlias), {'isBackEvent': True}) self.fireEvent(event, scope=EVENT_BUS_SCOPE.LOBBY) return
def _populate(self): self.addListener(CameraRelatedEvents.VEHICLE_LOADING, self.__onVehicleLoading, EVENT_BUS_SCOPE.DEFAULT) self.setBottomPanel() if g_currentPreviewVehicle.intCD == self._vehicleCD: self.__fullUpdate() if self.__hangarVehicleCD and self.__isHeroTank and self.__vehAppearanceChanged: g_currentPreviewVehicle.resetAppearance() g_currentPreviewVehicle.selectVehicle(self.__hangarVehicleCD, None) g_currentPreviewVehicle.resetAppearance(self.__previewAppearance) g_currentPreviewVehicle.selectVehicle(self._vehicleCD, self.__vehicleStrCD) super(VehiclePreview, self)._populate() g_currentPreviewVehicle.onChanged += self.__onVehicleChanged g_currentPreviewVehicle.onVehicleInventoryChanged += self.__onInventoryChanged self.__comparisonBasket.onChange += self.__onCompareBasketChanged self.__comparisonBasket.onSwitchChange += self.__updateHeaderData self.__hangarSpace.onSpaceCreate += self.__onHangarCreateOrRefresh self.__hangarSpace.setVehicleSelectable(True) if not g_currentPreviewVehicle.isPresent(): event_dispatcher.showHangar() if not self._heroInteractive: self.__heroTanksControl.setInteractive(False) self.addListener(CameraRelatedEvents.CAMERA_ENTITY_UPDATED, self.handleSelectedEntityUpdated) specialData = getHeroTankPreviewParams() if self.__isHeroTank else None if specialData is not None and specialData.enterEvent: SoundGroups.g_instance.playSound2D(specialData.enterEvent) g_eventBus.addListener(OFFER_CHANGED_EVENT, self.__onOfferChanged) _updateCollectorHintParameters() _updatePostProgressionParameters() return
def __processBackClick(self, ctx=None): if self._previewBackCb: self._previewBackCb() elif self._backAlias == VIEW_ALIAS.LOBBY_RESEARCH: event_dispatcher.showResearchView(self._vehicleCD) elif self._backAlias == VIEW_ALIAS.VEHICLE_PREVIEW: entity = ctx.get('entity', None) if ctx else None if entity: descriptor = entity.typeDescriptor event_dispatcher.showVehiclePreview( descriptor.type.compactDescr, previewAlias=self._previousBackAlias) else: event_dispatcher.showHangar() elif self._backAlias == VIEW_ALIAS.LOBBY_STORE: if isIngameShopEnabled(): showWebShop(url=getBuyVehiclesUrl()) else: showOldShop( ctx={ 'tabId': STORE_TYPES.SHOP, 'component': STORE_CONSTANTS.VEHICLE }) else: event = g_entitiesFactories.makeLoadEvent(self._backAlias, {'isBackEvent': True}) self.fireEvent(event, scope=EVENT_BUS_SCOPE.LOBBY) return
def __selectVehicle(self): g_currentPreviewVehicle.selectVehicle(self.__vehicleCD, style=self._style) self.__selectedVehicleEntityId = g_currentPreviewVehicle.vehicleEntityID if not g_currentPreviewVehicle.isPresent() or self._style is None: event_dispatcher.showHangar() self.__heroTanksControl.setInteractive(False) return
def __tryGoToHangar(self): if self._allServers[self._connectionMgr.peripheryID].isAvailable(): self.__continue() return True if not self._getActualServers(): event_dispatcher.showHangar() return True return False
def __onBattlePassSettingsChanged(self, *_): if self.__battlePassController.isPaused(): showMissionsBattlePass() elif not self.__battlePassController.isActive(): showHangar() elif not self.__battlePassController.isChapterExists(self.__chapterID): showMissionsBattlePass( R.views.lobby.battle_pass.ChapterChoiceView())
def __onOffersUpdated(self): offer = self.__offersProvider.getOffer(self._offer.id) if offer is None or not offer.isOfferAvailable: if self.__offersProvider.getAvailableOffers(onlyVisible=True): event_dispatcher.showStorage(defaultSection=STORAGE_CONSTANTS.OFFERS) else: event_dispatcher.showHangar() return
def switchTo(cls, objectName, instantly=False, viewAlias=None, withFade=False, *args, **kwargs): if objectName == AdditionalCameraObject.CELEBRITY: instantly = True withFade = True isCloseEvent = kwargs.get('isCloseEvent', False) if cls._navigationState.isSceneInFade: _logger.warning( "When fade isn't done, switching to obj=%s is locked.", objectName) if isCloseEvent: cls._navigationState.saveExitEventParams(instantly, withFade) return else: cls._navigationState.setCurrentObject(objectName) if withFade: cls._navigationState.setIsSceneInFade(True) result = yield cls._app.fadeManager.startFade() cls._navigationState.setIsSceneInFade(False) if result == FadeState.destroying: return if cls._navigationState.getIsClearing(): cls._navigationState.setIsClearing(False) objectName = None viewAlias = None cls._navigationState.setCurrentObject(None) if cls._navigationState.hasExitEvent(): instantly, withFade = cls._navigationState.getExitEventParams( ) isCloseEvent = True objectName = None viewAlias = None cls._navigationState.setCurrentObject(None) prevObjectName = cls._navigationState.getCurrentObject() if prevObjectName != objectName: _logger.warning( 'Current selected object has been changed during fading. Current=%s, New=%s', prevObjectName, objectName) return anchorName = OBJECT_TO_ANCHOR.get(objectName) cls._customizableObjectsMgr.switchCamera(anchorName, instantly) if objectName and viewAlias is None: showCelebrityView = objectName == AdditionalCameraObject.CELEBRITY viewAlias = ViewAliases.CELEBRITY_VIEW if showCelebrityView else ViewAliases.GLADE_VIEW cls.__switchUI(viewAlias=viewAlias, isObjectSwitched=True, *args, **kwargs) cls.onObjectStateChanged() cls.__playTransitionSound(objectName) if isCloseEvent: event_dispatcher.showHangar() return
def __updateData(self, _=None): self.__updateTradeVehicles() if self.__personalTradeInBuyVehicle is None or self.__personalTradeInSaleVehicle is None or self.__personalTradeInBuyVehicle.intCD not in self.__personalTradeIn.getBuyVehicleCDs( ) or self.__personalTradeInSaleVehicle.intCD not in self.__personalTradeIn.getSaleVehicleCDs( ): event_dispatcher.showHangar() else: self.as_setDataS(self.__getVO()) return
def invalidateBlueprintMode(self, isEnabled): if isEnabled: self.as_setBlueprintsSwitchButtonStateS(enabled=True, selected=self.__blueprintMode, tooltip=TOOLTIPS.TECHTREEPAGE_BLUEPRINTSSWITCHTOOLTIP, visible=True) else: self.__blueprintMode = False self.__disableBlueprintsSwitchButton(isEnabled) self.__stopTopOfTheTreeSounds() shared_events.showHangar() self.redraw()
def showAwardVehicleInHangar(self, vehTypeCompDescr): try: vehicle = g_itemsCache.items.getItemByCD(int(vehTypeCompDescr)) g_currentVehicle.selectVehicle(vehicle.invID) shared_events.showHangar() self.__proxy.destroy() except: LOG_WARNING('Error while getting event window to close it') LOG_CURRENT_EXCEPTION()
def showAwardVehicleInHangar(self, vehTypeCompDescr): try: vehicle = g_itemsCache.items.getItemByCD(int(vehTypeCompDescr)) g_currentVehicle.selectVehicle(vehicle.invID) shared_events.showHangar() self.__proxy.destroy() except: LOG_WARNING('Error while getting event window to slose it') LOG_CURRENT_EXCEPTION()
def __onServerSettingsChange(self, diff): eventConfigKeys = (Configs.BATTLE_ROYALE_CONFIG.value, Configs.EVENT_PROGRESSION_CONFIG.value) isDisabled = any([ diff.get(config, {}).get('isEnabled') is False for config in eventConfigKeys ]) if isDisabled: showHangar()
def __tryShowHangar(self): if not self.__isHangarInvisible or self.__blockedByWindow or self.__isStyleOpened: return _logger.info('show hangar') windows = self.__gui.windowsManager.findWindows(_subViewPredicate) _logger.info(windows) if not windows: showHangar() self.__isHangarInvisible = False self.__updateStageVisibility() self.fini()
def _onOffersUpdated(self): from gui.shared import event_dispatcher offer = self._offersProvider.getOffer(self._offerID) if offer is None or not offer.isOfferAvailable: if self._offersProvider.getAvailableOffers(): event_dispatcher.showStorage( defaultSection=STORAGE_CONSTANTS.OFFERS) else: event_dispatcher.showHangar() self.destroy() return
def __call__(self, *args, **kwargs): if not self.__nyController.isEnabled(): showHangar() return else: giftEventHub = self.__giftsController.getEventHub(GiftEventID.NY_HOLIDAYS) if giftEventHub is None or not giftEventHub.getSettings().isEnabled: NewYearNavigation.switchFromStyle(CustomizationObjects.FIR, viewAlias=ViewAliases.GLADE_VIEW, forceShowMainView=True) return NewYearNavigation.switchFromStyle(self.__objectName, viewAlias=ViewAliases.GIFT_SYSTEM_VIEW, forceShowMainView=True) return
def __onServerSettingChanged(self, diff): if 'ingameShop' in diff: storageEnabled = self.lobbyContext.getServerSettings( ).isIngameStorageEnabled() if isIngameShopEnabled(): if not storageEnabled and not self.__showDummyScreen: showHangar() if storageEnabled and self.__showDummyScreen: self.__showDummyScreen = False self.__initialize() else: showHangar()
def _onOffersUpdated(self): if self._offerItem is None or not self._offerItem.isOfferAvailable: if self._offersProvider.getAvailableOffers(): event_dispatcher.showStorage(defaultSection=STORAGE_CONSTANTS.OFFERS) else: event_dispatcher.showHangar() self.destroyWindow() return else: with self._viewModel.transaction() as model: self._setDynamicInfo(model) self._generateGifts(model) return
def showBrowserWindow(): ctx = {'size': browserSize, 'title': i18n.makeString(MENU.ADVENTCALENDAR_WINDOW_TITLE), 'handlers': browserHandlers, 'browserID': browserID, 'alias': VIEW_ALIAS.ADVENT_CALENDAR, 'showCloseBtn': False, 'showWaiting': True, 'showActionBtn': False} browser = self.browserCtrl.getBrowser(browserID) browser.useSpecialKeys = False if invokedFrom == CalendarInvokeOrigin.HANGAR: showHangar() g_eventBus.handleEvent(events.LoadViewEvent(SFViewLoadParams(VIEW_ALIAS.ADVENT_CALENDAR), ctx=ctx), scope=EVENT_BUS_SCOPE.LOBBY)
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 if g_currentPreviewVehicle.isPresent(): self.as_setStaticDataS(self.__getStaticData()) self.__fullUpdate() else: event_dispatcher.showHangar()
def __onBattlePassSettingsChange(self, *_): if not self.__battlePass.isChapterExists(self.__chapterID): showMissionsBattlePass( R.views.lobby.battle_pass.ChapterChoiceView()) return if self.__battlePass.isPaused(): showMissionsBattlePass() return if not (self.__battlePass.isEnabled() and self.__battlePass.isActive()): showHangar() return self.__updateProgressData() self.__updateBuyButtonState()
def selectMode(self, _): result = False dispatcher = g_prbLoader.getDispatcher() if dispatcher is not None and self.__epicController.isEnabled(): isPrbActive = dispatcher.getFunctionalState().isInPreQueue(QUEUE_TYPE.EPIC) if not isPrbActive: actionName = PREBATTLE_ACTION_NAME.EPIC result = yield dispatcher.doSelectAction(PrbAction(actionName)) else: result = isPrbActive if result: showHangar() yield {'success': result} return
def _populate(self): g_currentPreviewVehicle.selectVehicle(self._vehicleCD, self.__vehicleStrCD) super(VehiclePreview20, self)._populate() g_currentPreviewVehicle.onChanged += self.__onVehicleChanged self.comparisonBasket.onChange += self.__onCompareBasketChanged self.comparisonBasket.onSwitchChange += self.__updateHeaderData self.hangarSpace.onSpaceCreate += self.__onHangarCreateOrRefresh self.hangarSpace.setVehicleSelectable(True) serverSettings = self.lobbyContext.getServerSettings() serverSettings.onServerSettingsChange += self.__onServerSettingsChanged if not g_currentPreviewVehicle.isPresent(): event_dispatcher.showHangar() if self.__itemsPack or self._backAlias == VIEW_ALIAS.LOBBY_STORE: self.heroTanks.setInteractive(False) self.addListener(CameraRelatedEvents.CAMERA_ENTITY_UPDATED, self.handleSelectedEntityUpdated)
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 _populate(self): g_currentPreviewVehicle.selectVehicle(self.__vehicleCD, self.__vehicleStrCD) super(VehiclePreview, self)._populate() g_clientUpdateManager.addMoneyCallback(self._updateBtnState) g_clientUpdateManager.addCallbacks({'stats.freeXP': self._updateBtnState}) g_currentPreviewVehicle.onComponentInstalled += self.__updateStatus g_currentPreviewVehicle.onVehicleUnlocked += self._updateBtnState g_currentPreviewVehicle.onVehicleInventoryChanged += self.__onInventoryChanged g_currentPreviewVehicle.onChanged += self.__onVehicleChanged self.comparisonBasket.onChange += self.__onCompareBasketChanged self.comparisonBasket.onSwitchChange += self.__updateHeaderData self.restores.onRestoreChangeNotify += self.__onRestoreChanged g_hangarSpace.onSpaceCreate += self.__onHangarCreateOrRefresh if g_currentPreviewVehicle.isPresent(): self.__fullUpdate() else: event_dispatcher.showHangar()
def __processBackClick(self, ctx=None): if self._backAlias == VIEW_ALIAS.LOBBY_RESEARCH: event_dispatcher.showResearchView(self._vehicleCD) elif self._backAlias == VIEW_ALIAS.VEHICLE_PREVIEW: entity = ctx.get('entity', None) if ctx else None if entity: descriptor = entity.typeDescriptor event_dispatcher.showVehiclePreview( descriptor.type.compactDescr, previewAlias=self._previousBackAlias) else: event_dispatcher.showHangar() else: event = g_entitiesFactories.makeLoadEvent(self._backAlias, {'isBackEvent': True}) self.fireEvent(event, scope=EVENT_BUS_SCOPE.LOBBY) 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 if g_currentPreviewVehicle.isPresent(): self.as_setStaticDataS(self.__getStaticData()) self.__fullUpdate() else: event_dispatcher.showHangar()
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 self.comparisonBasket.onChange += self.__onCompareBasketChanged self.comparisonBasket.onSwitchChange += self.__updateHeaderData if g_currentPreviewVehicle.isPresent(): self.__updateHeaderData() self.__fullUpdate() else: event_dispatcher.showHangar()
def _populate(self): g_currentPreviewVehicle.selectVehicle(self._vehicleCD, self.__vehicleStrCD) LobbySelectableView._populate(self) g_clientUpdateManager.addMoneyCallback(self._updateBtnState) g_clientUpdateManager.addCallbacks( {'stats.freeXP': self._updateBtnState}) g_currentPreviewVehicle.onComponentInstalled += self.__updateStatus g_currentPreviewVehicle.onVehicleUnlocked += self._updateBtnState g_currentPreviewVehicle.onVehicleInventoryChanged += self.__onInventoryChanged g_currentPreviewVehicle.onChanged += self.__onVehicleChanged self.comparisonBasket.onChange += self.__onCompareBasketChanged self.comparisonBasket.onSwitchChange += self.__updateHeaderData self.restores.onRestoreChangeNotify += self.__onRestoreChanged self.hangarSpace.onSpaceCreate += self.__onHangarCreateOrRefresh self.hangarSpace.setVehicleSelectable(True) if g_currentPreviewVehicle.isPresent(): self.__fullUpdate() else: event_dispatcher.showHangar() self.addListener(CameraRelatedEvents.CAMERA_ENTITY_UPDATED, self.handleSelectedEntityUpdated)
def _populate(self): self.setTopPanel() super(VehicleStylePreview, self)._populate() g_currentPreviewVehicle.selectVehicle(self.__vehicleCD, style=self._style) self.__selectedVehicleEntityId = g_currentPreviewVehicle.vehicleEntityID if not g_currentPreviewVehicle.isPresent() or self._style is None: event_dispatcher.showHangar() self.__hangarSpace.onSpaceCreate += self.__onHangarCreateOrRefresh self.addListener(CameraRelatedEvents.VEHICLE_LOADING, self.__onVehicleLoading, EVENT_BUS_SCOPE.DEFAULT) self.__heroTanksControl.setInteractive(False) self.as_setDataS({ 'closeBtnLabel': backport.text(R.strings.vehicle_preview.header.closeBtn.label()), 'backBtnLabel': backport.text(R.strings.vehicle_preview.header.backBtn.label()), 'backBtnDescrLabel': self.__backBtnDescrLabel, 'showCloseBtn': _SHOW_CLOSE_BTN, 'showBackButton': _SHOW_BACK_BTN }) self.as_setAdditionalInfoS({ 'objectSubtitle': text_styles.main( backport.text(getGroupFullNameResourceID( self._style.groupID))), 'objectTitle': self._style.userName, 'descriptionTitle': backport.text( R.strings.tooltips.vehiclePreview.historicalReference.title()), 'descriptionText': self.__styleDescr }) return
def __update(self): ctrl = self.__battlePass if ctrl.isPaused(): showMissionsBattlePass() self.destroyWindow() return if not (ctrl.isEnabled() and ctrl.isActive()): showHangar() return if len(ctrl.getChapterIDs()) != self.viewModel.packages.getItemsLength( ): self.__packages = generatePackages(battlePass=ctrl) self.__setPackages() isValidState = not self.__packageID or ctrl.isChapterExists( self.__packageID) and ( not ctrl.isExtraChapter(self.__packageID) or ctrl.getChapterRemainingTime(self.__packageID) > 0) allBought = all((ctrl.isBought(chID) for chID in ctrl.getChapterIDs())) if not isValidState or allBought: showMissionsBattlePass( R.views.lobby.battle_pass.ChapterChoiceView()) self.destroyWindow() return self.__updateState()
def handleBodyButton(self): from CurrentVehicle import g_currentVehicle item = g_itemsCache.items.getItemByCD(self.__vehicleDesrs[0]) if hasattr(item, 'invID'): g_currentVehicle.selectVehicle(item.invID) shared_events.showHangar()