class MapboxRewardChoiceView(ViewImpl): __slots__ = ('__tooltips', '__selectableCrewbook') _COMMON_SOUND_SPACE = getMapboxViewSoundSpace() __mapboxCtrl = dependency.descriptor(IMapboxController) def __init__(self, layoutID, selectableCrewbook, *args, **kwargs): settings = ViewSettings(layoutID) settings.model = MapBoxRewardChoiceViewModel() settings.args = args settings.kwargs = kwargs self.__tooltips = [] self.__selectableCrewbook = selectableCrewbook super(MapboxRewardChoiceView, self).__init__(settings) @property def viewModel(self): return super(MapboxRewardChoiceView, self).getViewModel() def createToolTip(self, event): tooltip = getMapboxRewardTooltip(event, self.__tooltips, self.getParentWindow()) return tooltip or super(MapboxRewardChoiceView, self).createToolTip(event) def _onLoading(self, *args, **kwargs): super(MapboxRewardChoiceView, self)._onLoading(*args, **kwargs) crewbookOptions = self.__selectableCrewbook.options packer = getMapboxBonusPacker() with self.viewModel.transaction() as model: rewardsList = model.rewards rewardsList.clearItems() packMapboxRewardModelAndTooltip(rewardsList, [crewbookOptions], packer, 0, self.__tooltips) rewardsList.invalidate() model.setRewardType( backport.text( R.strings.mapbox.selectableCrewbook.dyn( self.__selectableCrewbook.name)())) def _finalize(self): self.viewModel.onCloseClick -= self.__onCloseClick self.viewModel.onTakeClick -= self.__onTakeClick super(MapboxRewardChoiceView, self)._finalize() def _initialize(self, *args, **kwargs): super(MapboxRewardChoiceView, self)._initialize(*args, **kwargs) self.viewModel.onTakeClick += self.__onTakeClick self.viewModel.onCloseClick += self.__onCloseClick def __onCloseClick(self): self.destroyWindow() def __onTakeClick(self, args): itemID = args.get('itemID') self.__mapboxCtrl.selectCrewbookNation(itemID)
class MapBoxAwardsView(ViewImpl): __slots__ = ('__numBattles', '__tooltips', '__reward') _COMMON_SOUND_SPACE = getMapboxViewSoundSpace() def __init__(self, numBattles, reward, *args, **kwargs): settings = ViewSettings( layoutID=R.views.lobby.mapbox.MapBoxAwardsView(), model=MapBoxAwardsViewModel()) settings.args = args settings.kwargs = kwargs super(MapBoxAwardsView, self).__init__(settings) self.__numBattles = numBattles self.__reward = reward self.__tooltips = [] @property def viewModel(self): return super(MapBoxAwardsView, self).getViewModel() def createToolTip(self, event): tooltip = getMapboxRewardTooltip(event, self.__tooltips, self.getParentWindow()) return tooltip or super(MapBoxAwardsView, self).createToolTip(event) def _initialize(self, *args, **kwargs): super(MapBoxAwardsView, self)._initialize(*args, **kwargs) self.viewModel.onPick += self.__onPick def _finalize(self): self.viewModel.onPick -= self.__onPick super(MapBoxAwardsView, self)._finalize() def _onLoading(self, *args, **kwargs): super(MapBoxAwardsView, self)._onLoading(*args, **kwargs) packer = getMapboxBonusPacker() with self.viewModel.transaction() as model: model.setBattlesNumber(self.__numBattles) rewardsList = model.rewards packMapboxRewardModelAndTooltip(rewardsList, self.__reward, packer, self.__numBattles, self.__tooltips) rewardsList.invalidate() playSound(MapBoxSounds.REWARD_SCREEN.value) def __onPick(self, args): rewardModel = self.viewModel.rewards.getItem(int(args['index'])) selectableCrewbook = first([ item for item in self.__reward if item.getName() == 'selectableCrewbook' ]) reward = first([ item for item in selectableCrewbook.getItems() if item.name == rewardModel.getName() ]) showMapboxRewardChoice(reward)
class MapBoxIntro(ViewImpl): __slots__ = ('__closeCallback',) _COMMON_SOUND_SPACE = getMapboxViewSoundSpace() __mapboxCtrl = dependency.descriptor(IMapboxController) __lobbyContext = dependency.descriptor(ILobbyContext) def __init__(self, layoutID, closeCallback): settings = ViewSettings(layoutID) settings.flags = ViewFlags.LOBBY_TOP_SUB_VIEW settings.model = MapBoxIntroModel() self.__closeCallback = closeCallback super(MapBoxIntro, self).__init__(settings) @property def viewModel(self): return super(MapBoxIntro, self).getViewModel() def _initialize(self): super(MapBoxIntro, self)._initialize() self.__lobbyContext.getServerSettings().onServerSettingsChange += self.__updateViewModel self.__mapboxCtrl.onPrimeTimeStatusUpdated += self.__onPrimeTimeChanged self.viewModel.onClose += self.__onClose def _finalize(self): self.viewModel.onClose -= self.__onClose self.__lobbyContext.getServerSettings().onServerSettingsChange -= self.__updateViewModel self.__mapboxCtrl.onPrimeTimeStatusUpdated -= self.__onPrimeTimeChanged super(MapBoxIntro, self)._finalize() def _onLoading(self, *args, **kwargs): self.__updateViewModel() def __onPrimeTimeChanged(self, *_): self.__updateViewModel() @server_settings.serverSettingsChangeListener(Configs.MAPBOX_CONFIG.value) def __onServerSettingsChanged(self, diff): if not self.__mapboxCtrl.getModeSettings().isEnabled: self.destroyWindow() return self.__updateViewModel() def __updateViewModel(self): nextSeason = self.__mapboxCtrl.getNextSeason() actualSeason = self.__mapboxCtrl.getCurrentSeason() or nextSeason if actualSeason is None: return else: with self.getViewModel().transaction() as model: model.setIsActive(self.__mapboxCtrl.isActive()) if not self.__mapboxCtrl.isActive() and nextSeason is not None: model.setDate(time_utils.makeLocalServerTime(nextSeason.getStartDate())) model.setSeasonNumber(actualSeason.getNumber()) return def __onClose(self): self.destroyWindow() if not SelectorBattleTypesUtils.isKnownBattleType(SELECTOR_BATTLE_TYPES.MAPBOX): SelectorBattleTypesUtils.setBattleTypeAsKnown(SELECTOR_BATTLE_TYPES.MAPBOX) if self.__closeCallback is not None: self.__closeCallback() elif not self.__mapboxCtrl.isActive(): showModeSelectorWindow(False) else: showMissionsMapboxProgression() return
class MapBoxInfoOverlay(WebView): _COMMON_SOUND_SPACE = getMapboxViewSoundSpace()