Example #1
0
def getMapboxViewSoundSpace(enterEvent='', exitEvent=''):
    return CommonSoundSpaceSettings(name='mapbox_view',
                                    entranceStates={
                                        Sounds.OVERLAY_HANGAR_GENERAL.value:
                                        Sounds.OVERLAY_HANGAR_GENERAL_ON.value
                                    },
                                    exitStates={
                                        Sounds.OVERLAY_HANGAR_GENERAL.value:
                                        Sounds.OVERLAY_HANGAR_GENERAL_OFF.value
                                    },
                                    persistentSounds=(),
                                    stoppableSounds=(),
                                    priorities=(),
                                    autoStart=True,
                                    enterEvent=enterEvent,
                                    exitEvent=exitEvent)
Example #2
0
class ManualViewBase(LobbySubView):
    __background_alpha__ = 1
    lobbyContext = dependency.descriptor(ILobbyContext)
    manualController = dependency.descriptor(IManualController)
    SOUND_SPACE = 'manual'
    SOUND_STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_MENU_GUIDE = 'STATE_hangar_place_menu_guide'
    BC_HANGAR_MUSIC_GUIDE_ENTER_SOUND_ID = 'bc_hangar_music_guide_enter'
    BC_HANGAR_MUSIC_GUIDE_EXIT_SOUND_ID = 'bc_hangar_music_guide_exit'
    _COMMON_SOUND_SPACE = CommonSoundSpaceSettings(
        name=SOUND_SPACE,
        entranceStates={
            SOUND_STATE_PLACE: STATE_PLACE_MENU_GUIDE,
            StatesGroup.HANGAR_FILTERED: States.HANGAR_FILTERED_OFF
        },
        exitStates={},
        persistentSounds=(),
        stoppableSounds=(),
        priorities=(),
        autoStart=True,
        enterEvent=BC_HANGAR_MUSIC_GUIDE_ENTER_SOUND_ID,
        exitEvent=BC_HANGAR_MUSIC_GUIDE_EXIT_SOUND_ID)

    def __init__(self, ctx=None):
        super(ManualViewBase, self).__init__()
        self._ctx = ctx
        self.lobbyContext.getServerSettings(
        ).onServerSettingsChange += self.__onServerSettingChanged
        self.chaptersUIData = self.manualController.getChaptersUIData()

    def closeView(self):
        raise NotImplementedError

    def _close(self):
        self.lobbyContext.getServerSettings(
        ).onServerSettingsChange -= self.__onServerSettingChanged
        self.destroy()

    def __onServerSettingChanged(self, diff):
        if 'isManualEnabled' in diff:
            if not bool(diff['isManualEnabled']):
                self.closeView()
        if 'isBootcampEnabled' in diff:
            self.closeView()
Example #3
0
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/strongholds/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from shared_utils import CONST_CONTAINER

class SOUNDS(CONST_CONTAINER):
    STRONGHOLD_SOUND_SPACE = 'stronghold'
    STRONGHOLD_ADS_SOUND_SPACE = 'stronghold_ads'
    STATE_HANGAR_PLACE = 'STATE_hangar_place'
    STATE_HANGAR_PLACE_CLANS = 'STATE_hangar_place_clans'
    STATE_HP_CLANS_INSIDE = 'STATE_hp_clans_inside'
    STATE_HP_CLANS_INSIDE_MAIN = 'STATE_hp_clans_inside_main'
    STATE_HP_CLANS_INSIDE_ADS = 'STATE_hp_clans_inside_ads'
    ENTER = 'clans_enter'
    ADS_ENTER = 'ads_enter'
    ADS_EXIT = 'ads_exit'


STRONGHOLD_SOUND_SPACE = CommonSoundSpaceSettings(name=SOUNDS.STRONGHOLD_SOUND_SPACE, entranceStates={SOUNDS.STATE_HANGAR_PLACE: SOUNDS.STATE_HANGAR_PLACE_CLANS}, exitStates={}, persistentSounds=(SOUNDS.ENTER,), stoppableSounds=(), priorities=(), autoStart=True)
STRONGHOLD_ADS_SOUND_SPACE = CommonSoundSpaceSettings(name=SOUNDS.STRONGHOLD_ADS_SOUND_SPACE, entranceStates={SOUNDS.STATE_HP_CLANS_INSIDE: SOUNDS.STATE_HP_CLANS_INSIDE_ADS}, exitStates={SOUNDS.STATE_HP_CLANS_INSIDE: SOUNDS.STATE_HP_CLANS_INSIDE_MAIN}, enterEvent=SOUNDS.ADS_ENTER, exitEvent=SOUNDS.ADS_EXIT, persistentSounds=(), stoppableSounds=(), priorities=(), autoStart=True, parentSpace=SOUNDS.STRONGHOLD_SOUND_SPACE)
Example #4
0
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/techtree/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from shared_utils import CONST_CONTAINER


class Sounds(CONST_CONTAINER):
    COMMON_SOUND_SPACE = 'techtree'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_TECHTREE = 'STATE_hangar_place_research'
    AMBIENT = 'researches_ambience'
    MUSIC = 'researches_music'
    RESET = 'researches_music_reset'
    BLUEPRINT_VIEW_ON_SOUND_ID = 'gui_blueprint_view_switch_on'
    BLUEPRINT_VIEW_OFF_SOUND_ID = 'gui_blueprint_view_switch_off'
    BLUEPRINT_VIEW_PLUS_SOUND_ID = 'gui_blueprint_view_switch_on_plus'
    TOP_OF_THE_TREE_ANIMATION_ON_SOUND_ID = 'researches_top_of_the_tree_start'
    TOP_OF_THE_TREE_ANIMATION_OFF_SOUND_ID = 'researches_top_of_the_tree_stop'
    TOP_OF_THE_TREE_ANIMATION_STOP_ANIMATION = 'researches_top_of_the_tree_stop_animation'


TECHTREE_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.COMMON_SOUND_SPACE,
    entranceStates={Sounds.STATE_PLACE: Sounds.STATE_PLACE_TECHTREE},
    exitStates={},
    persistentSounds=(Sounds.MUSIC, Sounds.AMBIENT),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    exitEvent=Sounds.RESET)
class BCIntroVideoPage(BCIntroPage, IArenaVehiclesController):
    sessionProvider = dependency.descriptor(IBattleSessionProvider)
    _HANGAR_OVERLAY_STATE = 'STATE_video_overlay'
    __SOUND_SETTINGS = CommonSoundSpaceSettings(
        name='hangar_video',
        entranceStates={
            _HANGAR_OVERLAY_STATE: '{}_on'.format(_HANGAR_OVERLAY_STATE)
        },
        exitStates={
            _HANGAR_OVERLAY_STATE: '{}_off'.format(_HANGAR_OVERLAY_STATE)
        },
        persistentSounds=(),
        stoppableSounds=(),
        priorities=(),
        autoStart=True,
        enterEvent='',
        exitEvent='')
    _COMMON_SOUND_SPACE = __SOUND_SETTINGS

    def __init__(self, settings):
        super(BCIntroVideoPage, self).__init__(settings)
        self._movieFile = settings.get('video', '')
        self._backgroundVideo = settings.get('backgroundVideo', '')
        self._backgroundVideoBufferTime = settings.get(
            'bufferTime', _DEFAULT_VIDEO_BUFFERING_TIME)
        self._backgroundMusicStartEvent = settings.get(
            'backgroundMusicStartEvent', '')
        self._backgroundMusicStopEvent = settings.get(
            'backgroundMusicStopEvent', '')
        self._backgroundMusicPauseEvent = settings.get(
            'backgroundMusicPauseEvent', '')
        self._backgroundMusicResumeEvent = settings.get(
            'backgroundMusicResumeEvent', '')
        self._backgroundMusicToLoopEvent = settings.get(
            'backgroundMusicToLoopEvent', '')
        self._goToBattleEvent = g_bootcampEvents.onBootcampGoNext
        self._delaySpaceLoaded = False
        self._started = False

    def stopVideo(self):
        self._onFinish()

    def updateSpaceLoadProgress(self, progress):
        if not self._videoPlayerVisible:
            self.as_updateProgressS(progress)

    def _getVideoFiles(self):
        return [
            '/'.join((SCALEFORM_SWF_PATH_V3, videoName))
            for videoName in (self._movieFile, self._backgroundVideo)
            if videoName
        ]

    def _populate(self):
        videoFiles = self._getVideoFiles()
        if videoFiles:
            ScaleformFileLoader.enableStreaming(videoFiles)
            self._videoPlayerVisible = True
        g_bootcampEvents.onArenaStarted += self._onArenaStarted
        g_bootcampEvents.onBootcampSpaceLoaded += self._onBootcampSpaceLoaded
        self.sessionProvider.addArenaCtrl(self)
        super(BCIntroVideoPage, self)._populate()

    def _dispose(self):
        if self._getVideoFiles():
            ScaleformFileLoader.disableStreaming()
        g_bootcampEvents.onBootcampSpaceLoaded -= self._onBootcampSpaceLoaded
        g_bootcampEvents.onArenaStarted -= self._onArenaStarted
        self.sessionProvider.removeArenaCtrl(self)
        super(BCIntroVideoPage, self)._dispose()

    def _onBootcampSpaceLoaded(self):
        if self._started:
            self._onLoaded()
        else:
            self._delaySpaceLoaded = True

    def _onArenaStarted(self):
        self.destroy()

    @simpleLog(action=BC_LOG_ACTIONS.SKIP_VIDEO)
    def _onFinish(self):
        if self._movieFile and self._backgroundMusicToLoopEvent:
            WWISE.WW_eventGlobal(self._backgroundMusicToLoopEvent)
        g_bootcampEvents.onIntroVideoStop()
        if self._videoPlayerVisible:
            self._showHighlight()

    @loggerEntry
    def _start(self):
        super(BCIntroVideoPage, self)._start()
        self._started = True
        if self._delaySpaceLoaded:
            self._onLoaded()

    def _onLoaded(self):
        self.as_loadedS()
        if not self._videoPlayerVisible:
            self._showHighlight()

    def _showHighlight(self):
        if self._shouldHighlight(INTRO_HIGHLIGHT_TYPE.START_BUTTON):
            self._setHighlighting(
                INTRO_HIGHLIGHT_TYPE.WELCOME_START_BUTTON
                if self._videoPlayerVisible else
                INTRO_HIGHLIGHT_TYPE.START_BUTTON, True)
        if self._isCurrentlyHighlighting(INTRO_HIGHLIGHT_TYPE.ARROWS):
            self._setHighlighting(INTRO_HIGHLIGHT_TYPE.ARROWS, False)

    @simpleLog(action=BC_LOG_ACTIONS.CONTINUE_BUTTON_PRESSED,
               logOnce=True,
               restrictions={'lesson_id': 0},
               validate=False)
    def goToBattle(self):
        super(BCIntroVideoPage, self).goToBattle()
Example #6
0
    MAIN_PAGE_SPACE_NAME = 'battle_royale_main_page'
    MAIN_PAGE_STATE = 'STATE_gamemode_progress_page'
    MAIN_PAGE_STATE_ON = 'STATE_gamemode_progress_page_on'
    MAIN_PAGE_STATE_OFF = 'STATE_gamemode_progress_page_off'
    VEHILCE_INFO_SPACE_NAME = 'battle_royale_vehicle_info'
    VEHILCE_INFO_STATE = 'STATE_hangar_filtered'
    VEHILCE_INFO_STATE_ON = 'STATE_hangar_filtered_on'
    VEHILCE_INFO_STATE_OFF = 'STATE_hangar_filtered_off'


BATTLE_ROYALE_PAGE_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.MAIN_PAGE_SPACE_NAME,
    entranceStates={Sounds.MAIN_PAGE_STATE: Sounds.MAIN_PAGE_STATE_ON},
    exitStates={
        Sounds.MAIN_PAGE_STATE: Sounds.MAIN_PAGE_STATE_OFF,
        Sounds.OVERLAY_HANGAR_GENERAL: Sounds.OVERLAY_HANGAR_GENERAL_OFF
    },
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True)
BATTLE_ROYALE_OVERLAY_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.OVERLAY_SPACE_NAME,
    entranceStates={
        Sounds.OVERLAY_HANGAR_GENERAL: Sounds.OVERLAY_HANGAR_GENERAL_ON
    },
    exitStates={
        Sounds.OVERLAY_HANGAR_GENERAL: Sounds.OVERLAY_HANGAR_GENERAL_OFF
    },
    persistentSounds=(),
    stoppableSounds=(),
class Hangar(LobbySelectableView, HangarMeta, IGlobalListener):
    _SOUND_STATE_PLACE = 'STATE_hangar_place'
    _SOUND_STATE_PLACE_GARAGE = 'STATE_hangar_place_garage'
    __background_alpha__ = 0.0
    __SOUND_SETTINGS = CommonSoundSpaceSettings(
        name='hangar',
        entranceStates={
            _SOUND_STATE_PLACE: _SOUND_STATE_PLACE_GARAGE,
            StatesGroup.HANGAR_FILTERED: States.HANGAR_FILTERED_OFF
        },
        exitStates={},
        persistentSounds=(),
        stoppableSounds=(),
        priorities=(),
        autoStart=True,
        enterEvent='',
        exitEvent='')
    rankedController = dependency.descriptor(IRankedBattlesController)
    epicController = dependency.descriptor(IEpicBattleMetaGameController)
    battlePassController = dependency.descriptor(IBattlePassController)
    battleRoyaleController = dependency.descriptor(IBattleRoyaleController)
    bootcampController = dependency.descriptor(IBootcampController)
    itemsCache = dependency.descriptor(IItemsCache)
    igrCtrl = dependency.descriptor(IIGRController)
    lobbyContext = dependency.descriptor(ILobbyContext)
    statsCollector = dependency.descriptor(IStatisticsCollector)
    gui = dependency.descriptor(IGuiLoader)
    _settingsCore = dependency.descriptor(ISettingsCore)
    hangarSpace = dependency.descriptor(IHangarSpace)
    _promoController = dependency.descriptor(IPromoController)
    _connectionMgr = dependency.descriptor(IConnectionManager)
    _offersBannerController = dependency.descriptor(IOffersBannerController)
    __mapboxCtrl = dependency.descriptor(IMapboxController)
    __marathonCtrl = dependency.descriptor(IMarathonEventsController)
    __funRandomController = dependency.descriptor(IFunRandomController)
    _COMMON_SOUND_SPACE = __SOUND_SETTINGS

    def __init__(self, _=None):
        LobbySelectableView.__init__(self, 0)
        self.__currentCarouselAlias = None
        self.__isSpaceReadyForC11n = False
        self.__isVehicleReadyForC11n = False
        self.__isVehicleCameraReadyForC11n = False
        self.__isUnitJoiningInProgress = False
        self.__urlMacros = URLMacros()
        self.__teaser = None
        self.__timer = None
        self.__wotPlusInfo = BigWorld.player().renewableSubscription
        self.__updateDogTagsState()
        self.__updateWotPlusState()
        return

    def onEscape(self):
        dialogsContainer = self.app.containerManager.getContainer(
            WindowLayer.TOP_WINDOW)
        if not dialogsContainer.getView(
                criteria={POP_UP_CRITERIA.VIEW_ALIAS: VIEW_ALIAS.LOBBY_MENU}):
            self.fireEvent(events.LoadViewEvent(
                SFViewLoadParams(VIEW_ALIAS.LOBBY_MENU)),
                           scope=EVENT_BUS_SCOPE.LOBBY)

    def onCloseBtnClick(self):
        self.battleRoyaleController.selectRandomBattle()

    def hideTeaser(self):
        self.__teaser.stop(byUser=True)
        self.__teaser = None
        return

    def onTeaserClick(self):
        self._promoController.showLastTeaserPromo()

    def showHelpLayout(self):
        windows = self.gui.windowsManager.findWindows(
            predicateHelpLayoutAllowedWindow)
        if not windows:
            self.gui.windowsManager.onWindowStatusChanged += self.__onWindowLoaded
            self.fireEvent(LobbySimpleEvent(LobbySimpleEvent.SHOW_HELPLAYOUT),
                           scope=EVENT_BUS_SCOPE.LOBBY)
            self.as_showHelpLayoutS()

    def closeHelpLayout(self):
        self.gui.windowsManager.onWindowStatusChanged -= self.__onWindowLoaded
        nextTick(
            partial(self.fireEvent,
                    LobbySimpleEvent(LobbySimpleEvent.CLOSE_HELPLAYOUT),
                    EVENT_BUS_SCOPE.LOBBY))
        self.as_closeHelpLayoutS()

    def _populate(self):
        LobbySelectableView._populate(self)
        self.__isSpaceReadyForC11n = self.hangarSpace.spaceInited
        self.__isVehicleReadyForC11n = self.hangarSpace.isModelLoaded
        self.__checkVehicleCameraState()
        g_currentVehicle.onChanged += self.__onCurrentVehicleChanged
        self.hangarSpace.onVehicleChangeStarted += self.__onVehicleLoading
        self.hangarSpace.onVehicleChanged += self.__onVehicleLoaded
        self.hangarSpace.onSpaceRefresh += self.__onSpaceRefresh
        self.hangarSpace.onSpaceCreate += self.__onSpaceCreate
        self.igrCtrl.onIgrTypeChanged += self.__onIgrTypeChanged
        self.itemsCache.onSyncCompleted += self.onCacheResync
        self.rankedController.onUpdated += self.onRankedUpdate
        self.rankedController.onGameModeStatusTick += self.__updateAlertMessage
        self.__mapboxCtrl.onPrimeTimeStatusUpdated += self.__updateAlertMessage
        self.__funRandomController.onGameModeStatusUpdated += self.__updateAlertMessage
        self.battleRoyaleController.onUpdated += self.__updateBattleRoyaleComponents
        self.epicController.onUpdated += self.__onEpicBattleUpdated
        self.epicController.onPrimeTimeStatusUpdated += self.__onEpicBattleUpdated
        self.epicController.onGameModeStatusTick += self.__updateAlertMessage
        self._promoController.onNewTeaserReceived += self.__onTeaserReceived
        self.hangarSpace.setVehicleSelectable(True)
        g_prbCtrlEvents.onVehicleClientStateChanged += self.__onVehicleClientStateChanged
        g_playerEvents.onPrebattleInvitationAccepted += self.__onPrebattleInvitationAccepted
        unitMgr = prb_getters.getClientUnitMgr()
        if unitMgr:
            unitMgr.onUnitJoined += self.__onUnitJoined
        g_clientUpdateManager.addCallbacks(
            {'inventory': self.__updateAlertMessage})
        self.lobbyContext.getServerSettings(
        ).onServerSettingsChange += self.__onServerSettingChanged
        self._settingsCore.onSettingsChanged += self.__onSettingsChanged
        self.__wotPlusInfo.onRenewableSubscriptionDataChanged += self.__onWotPlusDataChanged
        self.battlePassController.onSeasonStateChanged += self.__switchCarousels
        self.startGlobalListening()
        self.__updateAll()
        self.addListener(LobbySimpleEvent.WAITING_SHOWN, self.__onWaitingShown,
                         EVENT_BUS_SCOPE.LOBBY)
        self.addListener(events.FightButtonEvent.FIGHT_BUTTON_UPDATE,
                         self.__handleFightButtonUpdated,
                         scope=EVENT_BUS_SCOPE.LOBBY)
        self.addListener(CameraRelatedEvents.CAMERA_ENTITY_UPDATED,
                         self.__handleSelectedEntityUpdated)
        self.statsCollector.noteHangarLoadingState(
            HANGAR_LOADING_STATE.HANGAR_UI_READY, showSummaryNow=True)
        lobbyContext = dependency.instance(ILobbyContext)
        isCrewBooksEnabled = lobbyContext.getServerSettings(
        ).isCrewBooksEnabled()
        getTutorialGlobalStorage().setValue(GLOBAL_FLAG.CREW_BOOKS_ENABLED,
                                            isCrewBooksEnabled)
        self.__timer = CallbackDelayer()
        self.as_setNotificationEnabledS(
            crewBooksViewedCache().haveNewCrewBooks())
        self._offersBannerController.showBanners()
        self.fireEvent(events.HangarCustomizationEvent(
            events.HangarCustomizationEvent.RESET_VEHICLE_MODEL_TRANSFORM),
                       scope=EVENT_BUS_SCOPE.LOBBY)
        if g_currentVehicle.isPresent():
            g_currentVehicle.refreshModel()
        if self.bootcampController.isInBootcamp():
            self.as_setDQWidgetLayoutS(
                DAILY_QUESTS_WIDGET_CONSTANTS.WIDGET_LAYOUT_SINGLE)

    def _dispose(self):
        self.removeListener(LobbySimpleEvent.WAITING_SHOWN,
                            self.__onWaitingShown, EVENT_BUS_SCOPE.LOBBY)
        self.removeListener(events.FightButtonEvent.FIGHT_BUTTON_UPDATE,
                            self.__handleFightButtonUpdated,
                            scope=EVENT_BUS_SCOPE.LOBBY)
        self.removeListener(CameraRelatedEvents.CAMERA_ENTITY_UPDATED,
                            self.__handleSelectedEntityUpdated)
        self.itemsCache.onSyncCompleted -= self.onCacheResync
        g_currentVehicle.onChanged -= self.__onCurrentVehicleChanged
        self.hangarSpace.onVehicleChangeStarted -= self.__onVehicleLoading
        self.hangarSpace.onVehicleChanged -= self.__onVehicleLoaded
        self.hangarSpace.onSpaceRefresh -= self.__onSpaceRefresh
        self.hangarSpace.onSpaceCreate -= self.__onSpaceCreate
        self.igrCtrl.onIgrTypeChanged -= self.__onIgrTypeChanged
        self.rankedController.onUpdated -= self.onRankedUpdate
        self.rankedController.onGameModeStatusTick -= self.__updateAlertMessage
        self.__mapboxCtrl.onPrimeTimeStatusUpdated -= self.__updateAlertMessage
        self.__funRandomController.onGameModeStatusUpdated -= self.__updateAlertMessage
        self.battleRoyaleController.onUpdated -= self.__updateBattleRoyaleComponents
        self.epicController.onUpdated -= self.__onEpicBattleUpdated
        self.epicController.onPrimeTimeStatusUpdated -= self.__onEpicBattleUpdated
        self.epicController.onGameModeStatusTick -= self.__updateAlertMessage
        self._promoController.onNewTeaserReceived -= self.__onTeaserReceived
        if self.__teaser is not None:
            self.__teaser.stop()
            self.__teaser = None
        self.hangarSpace.setVehicleSelectable(False)
        g_prbCtrlEvents.onVehicleClientStateChanged -= self.__onVehicleClientStateChanged
        unitMgr = prb_getters.getClientUnitMgr()
        if unitMgr:
            unitMgr.onUnitJoined -= self.__onUnitJoined
        g_playerEvents.onPrebattleInvitationAccepted -= self.__onPrebattleInvitationAccepted
        g_clientUpdateManager.removeObjectCallbacks(self)
        self._settingsCore.onSettingsChanged -= self.__onSettingsChanged
        self.lobbyContext.getServerSettings(
        ).onServerSettingsChange -= self.__onServerSettingChanged
        self.__wotPlusInfo.onRenewableSubscriptionDataChanged -= self.__onWotPlusDataChanged
        self.battlePassController.onSeasonStateChanged -= self.__switchCarousels
        self.__timer.clearCallbacks()
        self.__timer = None
        self.closeHelpLayout()
        self.stopGlobalListening()
        self._offersBannerController.hideBanners()
        LobbySelectableView._dispose(self)
        return

    def _updateCnSubscriptionMode(self):
        toggleGFPanel = self.lobbyContext.getServerSettings(
        ).isRenewableSubEnabled()
        self.as_toggleCnSubscriptionS(toggleGFPanel)

    def _updateBattleRoyaleMode(self):
        self.as_toggleBattleRoyaleS(
            g_currentVehicle.isOnlyForBattleRoyaleBattles())

    def __updateDogTagsState(self):
        isDogTagsEnabled = self.lobbyContext.getServerSettings(
        ).isDogTagEnabled()
        getTutorialGlobalStorage().setValue(GLOBAL_FLAG.DOGTAGS_ENABLED,
                                            isDogTagsEnabled)

    def __updateWotPlusState(self):
        isWotPlusGoldEnabled = self.lobbyContext.getServerSettings(
        ).isRenewableSubGoldReserveEnabled()
        hasWotPlusActive = BigWorld.player().renewableSubscription.isEnabled()
        getTutorialGlobalStorage().setValue(
            GLOBAL_FLAG.WOTPLUS_ENABLED, hasWotPlusActive
            and isWotPlusGoldEnabled)
        self._updateCnSubscriptionMode()

    def __onWindowLoaded(self, uniqueID, newStatus):
        window = self.gui.windowsManager.getWindow(uniqueID)
        if window in _HELP_LAYOUT_RESTRICTED_LAYERS and newStatus in (
                WindowStatus.LOADING, WindowStatus.LOADED):
            self.closeHelpLayout()

    def __switchCarousels(self, force=False):
        prevCarouselAlias = self.__currentCarouselAlias
        linkage = HANGAR_ALIASES.TANK_CAROUSEL_UI
        newCarouselAlias = HANGAR_ALIASES.TANK_CAROUSEL
        if self.prbDispatcher is not None:
            if self.prbDispatcher.getFunctionalState().isInPreQueue(
                    QUEUE_TYPE.RANKED):
                newCarouselAlias = HANGAR_ALIASES.RANKED_TANK_CAROUSEL
            elif self.prbDispatcher.getFunctionalState().isInPreQueue(
                    QUEUE_TYPE.EPIC) or self.prbDispatcher.getFunctionalState(
                    ).isInUnit(PREBATTLE_TYPE.EPIC):
                newCarouselAlias = HANGAR_ALIASES.EPICBATTLE_TANK_CAROUSEL
            elif self.battleRoyaleController.isBattleRoyaleMode():
                linkage = HANGAR_ALIASES.BR_TANK_CAROUSEL_UI
                newCarouselAlias = HANGAR_ALIASES.ROYALE_TANK_CAROUSEL
            elif self.__mapboxCtrl.isMapboxMode():
                newCarouselAlias = HANGAR_ALIASES.MAPBOX_TANK_CAROUSEL
            elif self.__funRandomController.isFunRandomPrbActive():
                newCarouselAlias = HANGAR_ALIASES.FUN_RANDOM_TANK_CAROUSEL
            elif self.battlePassController.isVisible(
            ) and self.battlePassController.isValidBattleType(
                    self.prbDispatcher.getEntity()):
                newCarouselAlias = HANGAR_ALIASES.BATTLEPASS_TANK_CAROUSEL
        if prevCarouselAlias != newCarouselAlias or force:
            self.as_setCarouselS(linkage, newCarouselAlias)
            self.__currentCarouselAlias = newCarouselAlias
        return

    def __updateAmmoPanel(self):
        if self.ammoPanel:
            self.ammoPanel.update()

    def __updateParams(self):
        if self.paramsPanel:
            self.paramsPanel.update()

    def __updateVehicleInResearchPanel(self):
        if self.researchPanel is not None:
            self.researchPanel.onCurrentVehicleChanged()
        return

    def __updateNavigationInResearchPanel(self):
        if self.prbDispatcher is not None and self.researchPanel is not None:
            self.researchPanel.setNavigationEnabled(
                not self.prbDispatcher.getFunctionalState(
                ).isNavigationDisabled())
        return

    def __updateHeaderComponent(self):
        if self.headerComponent is not None:
            self.headerComponent.update()
        return

    def __updateRankedHeaderComponent(self):
        if self.headerComponent is not None:
            self.headerComponent.updateRankedHeader()
        return

    def __updateBattleRoyaleHeaderComponent(self):
        if self.headerComponent is not None:
            self.headerComponent.updateBattleRoyaleHeader()
        return

    def __updateHeaderEpicWidget(self):
        if self.epicWidget is not None:
            self.epicWidget.update()
        return

    def __updateCrew(self):
        if self.crewPanel is not None:
            self.crewPanel.updateTankmen()
        return

    def __updateAlertMessage(self, *_):
        if self.prbDispatcher is not None:
            if self.rankedController.isRankedPrbActive():
                self.__updateAlertBlock(*self.rankedController.getAlertBlock())
                return
            if self.__funRandomController.isFunRandomPrbActive():
                self.__updateAlertBlock(
                    *self.__funRandomController.getAlertBlock())
                return
            if self.__mapboxCtrl.isMapboxPrbActive():
                self.__updateMapboxAlertMsg()
                return
            if self.epicController.isEpicPrbActive():
                self.__updateEpicBattleAlertMsg()
                return
        self.as_setAlertMessageBlockVisibleS(False)
        return

    def __updateEpicBattleAlertMsg(self):
        visible = not self.epicController.isInPrimeTime(
        ) and self.epicController.isEnabled()
        data = epic_helpers.getAlertStatusVO()
        self.__updateAlertBlock(showEpicBattlesPrimeTimeWindow, data, visible)

    def __updateMapboxAlertMsg(self):
        status, _, _ = self.__mapboxCtrl.getPrimeTimeStatus()
        isBlockedStatus = status in (PrimeTimeStatus.NOT_AVAILABLE,
                                     PrimeTimeStatus.NOT_SET,
                                     PrimeTimeStatus.FROZEN)
        data = mapbox_helpers.getPrimeTimeStatusVO()
        self.__updateAlertBlock(shared_events.showMapboxPrimeTimeWindow, data,
                                isBlockedStatus)

    def __updateAlertBlock(self, callback, data, visible):
        self.as_setAlertMessageBlockVisibleS(visible)
        if visible and self.alertMessage is not None:
            self.alertMessage.update(data.asDict(),
                                     onBtnClickCallback=callback)
        return

    def __onWaitingShown(self, _):
        self.closeHelpLayout()

    def __handleFightButtonUpdated(self, _):
        self.__updateNavigationInResearchPanel()

    def __handleSelectedEntityUpdated(self, event):
        ctx = event.ctx
        if ctx['state'] != CameraMovementStates.FROM_OBJECT:
            entity = BigWorld.entities.get(ctx['entityId'], None)
            if isinstance(entity, HeroTank):
                descriptor = entity.typeDescriptor
                if descriptor:
                    marathons = self.__marathonCtrl.getMarathons()
                    vehicleCD = descriptor.type.compactDescr
                    activeMarathon = next((marathon for marathon in marathons
                                           if marathon.vehicleID == vehicleCD),
                                          None)
                    if activeMarathon:
                        title = backport.text(
                            R.strings.marathon.vehiclePreview.buyingPanel.
                            title())
                        shared_events.showMarathonVehiclePreview(
                            vehicleCD, activeMarathon.remainingPackedRewards,
                            title, activeMarathon.prefix, True)
                    elif isResourceWellRewardVehicle(vehicleCD=vehicleCD):
                        shared_events.showResourceWellHeroPreview(vehicleCD)
                    else:
                        shared_events.showHeroTankPreview(vehicleCD)
        self.__checkVehicleCameraState()
        self.__updateState()
        return

    def __onTeaserReceived(self, teaserData, showCallback, closeCallback):
        if self.__teaser is None:
            self.__teaser = TeaserViewer(self, showCallback, closeCallback)
        self.__teaser.show(teaserData, self._promoController.getPromoCount())
        return

    def _highlight3DEntityAndShowTT(self, entity):
        itemId = entity.selectionId
        if itemId:
            self.as_show3DSceneTooltipS(TOOLTIPS_CONSTANTS.ENVIRONMENT,
                                        [itemId])

    def _fade3DEntityAndHideTT(self, entity):
        self.as_hide3DSceneTooltipS()

    def _onRegisterFlashComponent(self, viewPy, alias):
        super(Hangar, self)._onRegisterFlashComponent(viewPy, alias)
        if alias == HANGAR_ALIASES.AMMUNITION_PANEL_INJECT:
            event = viewPy.getOnPanelSectionSelected()
            event += self.__onOptDeviceClick
            event = viewPy.getOnEscKeyDown()
            event += self.onEscape

    def _onUnregisterFlashComponent(self, viewPy, alias):
        super(Hangar, self)._onUnregisterFlashComponent(viewPy, alias)
        if alias == HANGAR_ALIASES.AMMUNITION_PANEL_INJECT and viewPy.getInjectView(
        ):
            event = viewPy.getOnPanelSectionSelected()
            event -= self.__onOptDeviceClick
            event = viewPy.getOnEscKeyDown()
            event -= self.onEscape

    @property
    def ammoPanel(self):
        return self.getComponent(HANGAR_ALIASES.AMMUNITION_PANEL)

    @property
    def paramsPanel(self):
        return self.getComponent(HANGAR_ALIASES.VEHICLE_PARAMETERS)

    @property
    def crewPanel(self):
        return self.getComponent(HANGAR_ALIASES.CREW)

    @property
    def researchPanel(self):
        return self.getComponent(HANGAR_ALIASES.RESEARCH_PANEL)

    @property
    def headerComponent(self):
        return self.getComponent(HANGAR_ALIASES.HEADER)

    @property
    def alertMessage(self):
        return self.getComponent(HANGAR_ALIASES.ALERT_MESSAGE_BLOCK)

    @property
    def epicWidget(self):
        return self.getComponent(HANGAR_ALIASES.EPIC_WIDGET)

    def onCacheResync(self, reason, diff):
        if diff is not None and GUI_ITEM_TYPE.CREW_BOOKS in diff:
            self.as_setNotificationEnabledS(
                crewBooksViewedCache().haveNewCrewBooks())
        if reason == CACHE_SYNC_REASON.SHOP_RESYNC:
            self.__updateAll()
            return
        else:
            if diff is not None and GUI_ITEM_TYPE.VEHICLE in diff and g_currentVehicle.isPresent(
            ):
                if g_currentVehicle.item.invID in diff[GUI_ITEM_TYPE.VEHICLE]:
                    self.__updateAmmoPanel()
            return

    def onPlayerStateChanged(self, entity, roster, accountInfo):
        if accountInfo.isCurrentPlayer():
            self.__updateState()
            self.__updateAmmoPanel()

    def onUnitPlayerStateChanged(self, pInfo):
        if pInfo.isCurrentPlayer():
            self.__onEntityChanged()

    def onUnitPlayersListChanged(self):
        self.__updateHeaderComponent()
        self.__updateHeaderEpicWidget()

    def onPrbEntitySwitched(self):
        self.__onEntityChanged()

    def onEnqueued(self, queueType, *args):
        self.__onEntityChanged()

    def onDequeued(self, queueType, *args):
        self.__onEntityChanged()

    def onRankedUpdate(self):
        self.__updateHeaderComponent()
        self.__updateRankedHeaderComponent()

    def __updateBattleRoyaleComponents(self):
        self.__updateHeaderComponent()
        self.__updateBattleRoyaleHeaderComponent()

    def __onEpicBattleUpdated(self, *_):
        self.__updateHeaderComponent()
        self.__updateHeaderEpicWidget()
        self.__updateAmmoPanel()
        self.__updateAlertMessage()

    def __updateAll(self):
        Waiting.show('updateVehicle')
        self.__switchCarousels()
        self.__updateState()
        self.__updateAmmoPanel()
        self.__updateParams()
        self.__updateVehicleInResearchPanel()
        self.__updateNavigationInResearchPanel()
        self.__updateHeaderComponent()
        self.__updateRankedHeaderComponent()
        self.__updateHeaderEpicWidget()
        self.__updateCrew()
        self.__updateAlertMessage()
        self.__updateBattleRoyaleComponents()
        self._updateCnSubscriptionMode()
        self._updateBattleRoyaleMode()
        Waiting.hide('updateVehicle')

    def __onCurrentVehicleChanged(self):
        Waiting.show('updateVehicle')
        self.__updateState()
        self.__updateAmmoPanel()
        self.__updateParams()
        self.__updateVehicleInResearchPanel()
        self.__updateHeaderComponent()
        self.__updateHeaderEpicWidget()
        self.__updateCrew()
        self.as_setNotificationEnabledS(
            crewBooksViewedCache().haveNewCrewBooks())
        self._updateCnSubscriptionMode()
        self._updateBattleRoyaleMode()
        Waiting.hide('updateVehicle')

    def __onSpaceRefresh(self):
        self.__isSpaceReadyForC11n = False
        self.__updateState()

    def __onSpaceCreate(self):
        self.__isSpaceReadyForC11n = True
        self.__updateState()

    def __onVehicleLoading(self):
        self.__isVehicleReadyForC11n = False
        self.__updateState()

    def __onVehicleLoaded(self):
        self.__isVehicleReadyForC11n = True
        self.__checkVehicleCameraState()
        self.__updateState()

    def __onIgrTypeChanged(self, *args):
        self.__updateVehicleInResearchPanel()
        self.__updateHeaderComponent()
        self.__updateHeaderEpicWidget()
        self.__updateParams()

    def __updateState(self):
        state = g_currentVehicle.getViewState()
        self.as_setCrewEnabledS(state.isCrewOpsEnabled())
        isBattleRoyaleMode = self.battleRoyaleController.isBattleRoyaleMode()
        isC11nEnabled = self.lobbyContext.getServerSettings(
        ).isCustomizationEnabled() and state.isCustomizationEnabled(
        ) and not state.isOnlyForEventBattles(
        ) and self.__isSpaceReadyForC11n and self.__isVehicleReadyForC11n and self.__isVehicleCameraReadyForC11n and not isBattleRoyaleMode
        if isC11nEnabled:
            customizationTooltip = makeTooltip(
                _ms(backport.text(R.strings.tooltips.hangar.tuning.header())),
                _ms(backport.text(R.strings.tooltips.hangar.tuning.body())))
        else:
            customizationTooltip = makeTooltip(
                _ms(
                    backport.text(
                        R.strings.tooltips.hangar.tuning.disabled.header())),
                _ms(
                    backport.text(
                        R.strings.tooltips.hangar.tuning.disabled.body())))
        changeNationVisibility = g_currentVehicle.isPresent(
        ) and g_currentVehicle.item.hasNationGroup
        isNationChangeAvailable = g_currentVehicle.isPresent(
        ) and g_currentVehicle.item.isNationChangeAvailable
        if changeNationVisibility:
            if isNationChangeAvailable:
                changeNationTooltipHeader = R.strings.tooltips.hangar.nationChange.header(
                )
                changeNationTooltipBody = R.strings.tooltips.hangar.nationChange.body(
                )
            else:
                changeNationTooltipHeader = R.strings.tooltips.hangar.nationChange.disabled.header(
                )
                if g_currentVehicle.item.isBroken:
                    changeNationTooltipBody = R.strings.tooltips.hangar.nationChange.disabled.body.destroyed(
                    )
                elif g_currentVehicle.item.isInBattle:
                    changeNationTooltipBody = R.strings.tooltips.hangar.nationChange.disabled.body.inBattle(
                    )
                elif g_currentVehicle.item.isInUnit:
                    changeNationTooltipBody = R.strings.tooltips.hangar.nationChange.disabled.body.inSquad(
                    )
                else:
                    changeNationTooltipBody = ''
            if changeNationTooltipBody == '':
                changeNationTooltip = makeTooltip(
                    _ms(backport.text(changeNationTooltipHeader)), '')
            else:
                changeNationTooltip = makeTooltip(
                    _ms(backport.text(changeNationTooltipHeader)),
                    _ms(backport.text(changeNationTooltipBody)))
        else:
            changeNationTooltip = ''
        changeNationIsNew = not AccountSettings.getSettings(
            NATION_CHANGE_VIEWED)
        isMaintenanceEnabled = state.isMaintenanceEnabled()
        isEquipmentEnabled = g_currentVehicle.isPresent(
        ) and not g_currentVehicle.isEquipmentLocked()
        if isMaintenanceEnabled and isEquipmentEnabled:
            maintenanceTooltip = TOOLTIPS.HANGAR_MAINTENANCE
        else:
            maintenanceTooltip = TOOLTIPS.HANGAR_MAINTENANCE_DISABLED
        self.as_setupAmmunitionPanelS({
            'maintenanceEnabled': isMaintenanceEnabled,
            'maintenanceTooltip': maintenanceTooltip,
            'customizationEnabled': isC11nEnabled,
            'customizationTooltip': customizationTooltip,
            'changeNationVisible': changeNationVisibility,
            'changeNationEnable': isNationChangeAvailable,
            'changeNationTooltip': changeNationTooltip,
            'changeNationIsNew': changeNationIsNew
        })
        self.as_setControlsVisibleS(state.isUIShown())

    def __onEntityChanged(self):
        self.__updateState()
        self.__updateAmmoPanel()
        self.__updateAlertMessage()
        self.__updateNavigationInResearchPanel()
        self.__updateHeaderComponent()
        self.__updateRankedHeaderComponent()
        self.__updateHeaderEpicWidget()
        self.__switchCarousels()
        self.__updateBattleRoyaleComponents()

    def __isSpecialMode(self):
        return self.prbDispatcher is not None and self.prbDispatcher.getFunctionalState(
        ).isInUnit() or self.prbDispatcher.getFunctionalState().isInPreQueue(
            QUEUE_TYPE.RANKED) or self.prbDispatcher.getFunctionalState(
            ).isInPreQueue(QUEUE_TYPE.EPIC)

    def __onVehicleClientStateChanged(self, _):
        self.__updateAmmoPanel()

    def __onServerSettingChanged(self, diff):
        if 'isRegularQuestEnabled' in diff:
            self.__updateHeaderComponent()
            self.__updateHeaderEpicWidget()
        if 'isCustomizationEnabled' in diff or 'isNationChangeEnabled' in diff:
            self.__updateState()
        if BATTLE_PASS_CONFIG_NAME in diff:
            self.__switchCarousels()
        if Configs.BATTLE_ROYALE_CONFIG.value in diff:
            self.__updateBattleRoyaleComponents()
            self.__updateState()
            self.__switchCarousels(force=True)
        if Configs.EPIC_CONFIG.value in diff:
            self.__updateHeaderEpicWidget()
            self.__updateState()
            self.__switchCarousels(force=True)
        if DOG_TAGS_CONFIG in diff:
            self.__updateDogTagsState()
        if RENEWABLE_SUBSCRIPTION_CONFIG in diff:
            self.__updateWotPlusState()

    def __onSettingsChanged(self, diff):
        if SETTINGS_SECTIONS.UI_STORAGE in diff:
            if self.ammoPanel:
                self.ammoPanel.update()

    def __onWotPlusDataChanged(self, diff):
        if 'isEnabled' in diff:
            self.__updateWotPlusState()

    def __checkVehicleCameraState(self):
        vehicleEntity = self.hangarSpace.getVehicleEntity()
        if vehicleEntity is None:
            return
        else:
            self.__isVehicleCameraReadyForC11n = vehicleEntity.state == CameraMovementStates.ON_OBJECT
            return

    def __onOptDeviceClick(self, **kwargs):
        if self.hangarSpace.spaceLoading():
            _logger.warning(
                'Optional Device click was not handled (kwargs=%s). HangarSpace is currently  loading.',
                kwargs)
        elif not self.__isUnitJoiningInProgress:
            self.as_showSwitchToAmmunitionS()
            showAmmunitionSetupView(**kwargs)

    def __onUnitJoined(self, _, __):
        self.__isUnitJoiningInProgress = False
        self.__timer.stopCallback(self.__onResetUnitJoiningProgress)

    def __onPrebattleInvitationAccepted(self, _, __):
        self.__isUnitJoiningInProgress = True
        self.__timer.delayCallback(15, self.__onResetUnitJoiningProgress)

    def __onResetUnitJoiningProgress(self):
        self.__isUnitJoiningInProgress = False
    PROGRESSION_STATE_3_DIVISION = 'STATE_rank_level_02'
    PROGRESSION_STATE_2_DIVISION = 'STATE_rank_level_03'
    PROGRESSION_STATE_1_DIVISION = 'STATE_rank_level_04'
    PROGRESSION_STATE_LEAGUES = 'STATE_rank_level_05'
    PROGRESSION_STATE_SHOP = 'STATE_rank_level_05'


RANKED_MAIN_PAGE_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.MAIN_PAGE_SPACE_NAME,
    entranceStates={
        Sounds.HANGAR_PLACE_STATE: Sounds.HANGAR_PLACE_GARAGE,
        Sounds.MAIN_PAGE_STATE: Sounds.MAIN_PAGE_STATE_ON,
        Sounds.MAIN_PAGE_AMBIENT_STATE: Sounds.MAIN_PAGE_AMBIENT_STATE_1
    },
    exitStates={
        Sounds.MAIN_PAGE_STATE: Sounds.MAIN_PAGE_STATE_OFF,
        Sounds.SUBVIEW_HANGAR_GENERAL: Sounds.SUBVIEW_HANGAR_GENERAL_OFF
    },
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent=Sounds.MAIN_PAGE_AMBIENT_ON_EVENT,
    exitEvent=Sounds.MAIN_PAGE_AMBIENT_OFF_EVENT)
RANKED_OVERLAY_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.OVERLAY_SPACE_NAME,
    entranceStates={
        Sounds.OVERLAY_HANGAR_GENERAL: Sounds.OVERLAY_HANGAR_GENERAL_ON,
        Sounds.OVERLAY_HANGAR_FILTERED: Sounds.OVERLAY_HANGAR_FILTERED_ON
    },
    exitStates={
class SOUNDS(CONST_CONTAINER):
    COMMON_SOUND_SPACE = 'shop'
    VEHICLE_PREVIEW_SOUND_SPACE = 'shopVehiclePreview'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_SHOP = 'STATE_hangar_place_shop'
    STATE_PLACE_VEHICLE_PREVIEW = 'STATE_hangar_place_shop_preview'
    ENTER = 'shop_enter'
    EXIT = 'shop_exit'


SHOP_SOUND_SPACE = CommonSoundSpaceSettings(
    name=SOUNDS.COMMON_SOUND_SPACE,
    entranceStates={SOUNDS.STATE_PLACE: SOUNDS.STATE_PLACE_SHOP},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent=SOUNDS.ENTER,
    exitEvent=SOUNDS.EXIT)
SHOP_PREVIEW_SOUND_SPACE = CommonSoundSpaceSettings(
    name=SOUNDS.VEHICLE_PREVIEW_SOUND_SPACE,
    entranceStates={SOUNDS.STATE_PLACE: SOUNDS.STATE_PLACE_VEHICLE_PREVIEW},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent='',
    exitEvent='',
    parentSpace=SOUNDS.COMMON_SOUND_SPACE)
Example #10
0
class TokenRecruitWindow(QuestRecruitWindowMeta):
    eventsCache = dependency.descriptor(IEventsCache)
    itemsCache = dependency.descriptor(IItemsCache)
    __SOUND_SETTINGS = CommonSoundSpaceSettings(
        name='hangar',
        entranceStates={
            SOUNDS.STATE_PLACE: SOUNDS.STATE_PLACE_GARAGE,
            StatesGroup.HANGAR_FILTERED: States.HANGAR_FILTERED_OFF
        },
        exitStates={},
        persistentSounds=(),
        stoppableSounds=(),
        priorities=(),
        autoStart=True,
        enterEvent=SOUNDS.WOMAN_AWARD_WINDOW,
        exitEvent='')
    _COMMON_SOUND_SPACE = __SOUND_SETTINGS

    def __init__(self, ctx=None):
        super(TokenRecruitWindow, self).__init__()
        self.__currentSelectedNationID = None
        self.__tokenName = ctx['tokenName']
        self.__tokenData = ctx['tokenData']
        return

    def onWindowClose(self):
        self.destroy()

    @decorators.process('updating')
    def onApply(self, data):
        yield self.__recruitTankman(int(data.nation), int(data.vehicle),
                                    data.tankmanRole, self.__tokenName,
                                    self.__tokenData)
        self.onWindowClose()

    def _onRegisterFlashComponent(self, viewPy, alias):
        super(TokenRecruitWindow,
              self)._onRegisterFlashComponent(viewPy, alias)
        if alias == VIEW_ALIAS.RECRUIT_PARAMS:
            viewPy.setPredefinedTankman(
                packPredefinedTmanParams(
                    roles=self.__tokenData.getRoles(),
                    nationsParam=self.__tokenData.getNations()))
            viewPy.onDataChange += self.__paramsChangeHandler
            viewPy.init()

    def _onUnregisterFlashComponent(self, viewPy, alias):
        super(TokenRecruitWindow,
              self)._onUnregisterFlashComponent(viewPy, alias)
        if alias == VIEW_ALIAS.RECRUIT_PARAMS:
            viewPy.onDataChange -= self.__paramsChangeHandler

    def __paramsChangeHandler(self, selectedNationID, selectedVehClass,
                              selectedVehicle, selectedTmanRole):
        selectedNationID = int(selectedNationID)
        nationName = nations.NAMES[selectedNationID]
        if self.__currentSelectedNationID != selectedNationID:
            faceIcon = self.__tokenData.getBigIcon()
            bgImage = self.__getBgImage(self.__tokenData.getSourceID())
            self.as_setInitDataS({
                'windowTitle':
                backport.text(R.strings.dialogs.recruitWindow.title()),
                'applyButtonLabel':
                backport.text(R.strings.dialogs.recruitWindow.submit()),
                'cancelButtonLabel':
                backport.text(R.strings.dialogs.recruitWindow.cancel()),
                'name':
                self.__tokenData.getFullUserNameByNation(selectedNationID),
                'nation':
                nationName,
                'rank':
                Tankman.getRankUserName(selectedNationID,
                                        self.__tokenData.getRankID()),
                'backAnimationData':
                None if bgImage else self.__getBackAnimationData(faceIcon),
                'bgImage':
                bgImage,
                'tankmanIcon':
                faceIcon
            })
        self.__currentSelectedNationID = selectedNationID
        return

    @staticmethod
    def __getBackAnimationData(faceIcon):
        return {
            'image':
            faceIcon,
            'animationPath':
            AWARDWINDOW_CONSTANTS.EXPLOSION_BACK_ANIMATION_PATH,
            'animationLinkage':
            AWARDWINDOW_CONSTANTS.EXPLOSION_BACK_ANIMATION_LINKAGE
        }

    @staticmethod
    def __getBgImage(eventName):
        bgID = None
        if eventName is not None:
            bgID = R.images.gui.maps.icons.tankmen.windows.dyn(
                attr='{}_recruitWindowBg'.format(eventName))
        return backport.image(
            bgID()) if bgID is not None and bgID.exists() else ''

    @async
    @process
    def __recruitTankman(self, nationID, vehTypeID, role, tokenName, tokenData,
                         callback):
        recruiter = TankmanTokenRecruit(nationID=int(nationID),
                                        vehTypeID=int(vehTypeID),
                                        role=role,
                                        tokenName=tokenName,
                                        tokenData=tokenData)
        _, msg, msgType, _, _, _ = yield recruiter.request()
        if msg:
            SystemMessages.pushMessage(msg, type=msgType)
        callback(None)
        return
Example #11
0
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/storage/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from shared_utils import CONST_CONTAINER


class SOUNDS(CONST_CONTAINER):
    COMMON_SOUND_SPACE = 'warehouse'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_STORAGE = 'STATE_hangar_place_warehouse'
    ENTER = 'warehouse_enter'
    EXIT = 'warehouse_exit'


STORAGE_SOUND_SPACE = CommonSoundSpaceSettings(
    name=SOUNDS.COMMON_SOUND_SPACE,
    entranceStates={SOUNDS.STATE_PLACE: SOUNDS.STATE_PLACE_STORAGE},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent=SOUNDS.ENTER,
    exitEvent=SOUNDS.EXIT)
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/hangar/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from gui.sounds.filters import States, StatesGroup
FIELD_POST_SOUND_SETTINGS = CommonSoundSpaceSettings(name='field_post', entranceStates={'STATE_hangar_place': 'STATE_hangar_place_garage',
 StatesGroup.HANGAR_FILTERED: States.HANGAR_FILTERED_ON}, exitStates={}, persistentSounds=(), stoppableSounds=(), priorities=(), autoStart=True, enterEvent='', exitEvent='')
BROWSER_VIEW_SOUND_SPACES = {FIELD_POST_SOUND_SETTINGS.name: FIELD_POST_SOUND_SETTINGS}
Example #13
0
    REGION_CLICK = 'tabb'
    FREE_AWARD_LIST_SPENT = 'pm_reward_list_spend'
    AWARD_WINDOW = 'pm_standard_greeting'
    AWARD_LIST_AWARD_WINDOW = 'pm_special_greeting'
    WOMAN_AWARD_WINDOW = 'pm_special_greeting_woman'
    TANK_AWARD_WINDOW = 'pm_special_greeting_tank'
    RTCP_OVERLAY = 'RTPC_ext_greeting_overlay'
    ONE_AWARD_LIST_RECEIVED = 'pm_greeting_order_form'
    ONE_AWARD_LIST_RECEIVED_CONFIRM = 'pm_greeting_order_form_confirm'
    FOUR_AWARD_LISTS_RECEIVED = 'pm_conversion_order_form'
    RTCP_MISSION_BRANCH = {PM_BRANCH.REGULAR: 'RTPC_ext_mission_zoom_green',
     PM_BRANCH.PERSONAL_MISSION_2: 'RTPC_ext_mission_zoom_blue'}
    BRANCH_DEFAULT = 0
    BRANCH_SELECTED = 100
    MIN_MISSIONS_ZOOM = 0
    MAX_MISSIONS_ZOOM = 100


_SOUNDS_PRIORITIES = (SOUNDS.AWARD_WINDOW, SOUNDS.WOMAN_AWARD_WINDOW, SOUNDS.TANK_AWARD_WINDOW)
PERSONAL_MISSIONS_SOUND_SPACE = CommonSoundSpaceSettings(name=SOUNDS.COMMON_SOUND_SPACE, entranceStates={SOUNDS.STATE_PLACE: SOUNDS.STATE_PLACE_MISSIONS}, exitStates={}, persistentSounds=(SOUNDS.MUSIC, SOUNDS.AMBIENT), stoppableSounds=(), priorities=_SOUNDS_PRIORITIES, autoStart=True, enterEvent='', exitEvent='')
PERSONAL_MISSIONS_SILENT_SOUND_SPACE = CommonSoundSpaceSettings(SOUNDS.COMMON_SOUND_SPACE, {}, {}, (), (), _SOUNDS_PRIORITIES, False, '', '')

class PM_TUTOR_FIELDS(CONST_CONTAINER):
    GREETING_SCREEN_SHOWN = 'pm_greeting_screen_shown'
    FIRST_ENTRY_AWARDS_SHOWN = 'pm_first_entry_awards_shown'
    INITIAL_FAL_COUNT = 'pm_initial_free_award_lists_count'
    ONE_FAL_SHOWN = 'pm_first_free_award_list_shown'
    MULTIPLE_FAL_SHOWN = 'pm_four_free_award_lists_shown'
    PM2_ONE_FAL_SHOWN = 'pm2_first_free_award_list_shown'
    PM2_MULTIPLE_FAL_SHOWN = 'pm2_four_free_award_lists_shown'
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/impl/lobby/mode_selector/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from shared_utils import CONST_CONTAINER

class ModeSelectorSound(CONST_CONTAINER):
    COMMON_SOUND_SPACE = 'mode_selector'
    STATE_PLACE = 'STATE_mode_selector'
    STATE_MODE_SELECTOR_ON = 'STATE_mode_selector_on'
    STATE_MODE_SELECTOR_OFF = 'STATE_mode_selector_off'
    ENTER_EVENT = 'ev_mode_selector_enter'
    EXIT_EVENT = 'ev_mode_selector_exit'


MODE_SELECTOR_SOUND_SPACE = CommonSoundSpaceSettings(name=ModeSelectorSound.COMMON_SOUND_SPACE, entranceStates={ModeSelectorSound.STATE_PLACE: ModeSelectorSound.STATE_MODE_SELECTOR_ON}, exitStates={ModeSelectorSound.STATE_PLACE: ModeSelectorSound.STATE_MODE_SELECTOR_OFF}, persistentSounds=(), stoppableSounds=(), priorities=(), autoStart=True, enterEvent=ModeSelectorSound.ENTER_EVENT, exitEvent=ModeSelectorSound.EXIT_EVENT)
Example #15
0
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/missions/regular/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from shared_utils import CONST_CONTAINER

class SOUNDS(CONST_CONTAINER):
    COMMON_SOUND_SPACE = 'tasks'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_TASKS = 'STATE_hangar_place_tasks'
    ENTER = 'tasks_enter'
    EXIT = 'tasks_exit'


TASKS_SOUND_SPACE = CommonSoundSpaceSettings(name=SOUNDS.COMMON_SOUND_SPACE, entranceStates={SOUNDS.STATE_PLACE: SOUNDS.STATE_PLACE_TASKS}, exitStates={}, persistentSounds=(SOUNDS.ENTER,), stoppableSounds=(), priorities=(), autoStart=True)
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/trainings/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from shared_utils import CONST_CONTAINER


class Sounds(CONST_CONTAINER):
    COMMON_SOUND_SPACE = 'trainings'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_GARAGE = 'STATE_hangar_place_garage'


TRAININGS_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.COMMON_SOUND_SPACE,
    entranceStates={Sounds.STATE_PLACE: Sounds.STATE_PLACE_GARAGE},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True)
class BCVideoPage(BCOutroVideoPageMeta):
    _DEFAULT_MASTER_VOLUME = 1.0
    _ACCESSIBILITY_MINTIME = 0.1
    _HANGAR_OVERLAY_STATE = 'STATE_video_overlay'
    __SOUND_SETTINGS = CommonSoundSpaceSettings(
        name='hangar_video',
        entranceStates={
            _HANGAR_OVERLAY_STATE: '{}_on'.format(_HANGAR_OVERLAY_STATE)
        },
        exitStates={
            _HANGAR_OVERLAY_STATE: '{}_off'.format(_HANGAR_OVERLAY_STATE)
        },
        persistentSounds=(),
        stoppableSounds=(),
        priorities=(),
        autoStart=True,
        enterEvent='',
        exitEvent='')
    _COMMON_SOUND_SPACE = __SOUND_SETTINGS

    def __init__(self, settings):
        super(BCVideoPage, self).__init__(settings)
        self._message = {}
        self._keypoints = []
        self.__accessible = True
        self.__soundDelayer = None
        self.__pauseDelayerID = None
        return

    def stopVideo(self):
        if not self.__showVideo():
            self._onFinish()

    def handleError(self, data):
        self.stopVideo()

    def videoFinished(self, skipped=False):
        self.stopVideo()

    def _populate(self):
        super(BCVideoPage, self)._populate()
        movies = [
            '/'.join((SCALEFORM_SWF_PATH_V3, m['video-path']))
            for m in self.content['messages']
        ]
        ScaleformFileLoader.enableStreaming(movies)
        self.stopVideo()
        self.__accessible = Windowing.isWindowAccessible()
        Windowing.addWindowAccessibilitynHandler(self._onAccessibilityChanged)

    def _dispose(self):
        Windowing.removeWindowAccessibilityHandler(
            self._onAccessibilityChanged)
        ScaleformFileLoader.disableStreaming()
        super(BCVideoPage, self)._dispose()

    def _onAccessibilityChanged(self, isAccessible):
        if self.__accessible == isAccessible:
            return
        else:
            self.__accessible = isAccessible
            if isAccessible:
                if self.__pauseDelayerID is not None:
                    BigWorld.cancelCallback(self.__pauseDelayerID)
                    self.__pauseDelayerID = None
                    return
                self.__onResume()
            else:
                self.__pauseDelayerID = BigWorld.callback(
                    self._ACCESSIBILITY_MINTIME, self.__onPause)
            return

    def __showVideo(self):
        if self.content['messages']:
            self._message = self.content['messages'].pop(0)
            movie = self._message['video-path']
            self.soundManager.playInstantSound(self._message['event-start'])
            self.as_playVideoS({
                'source':
                movie,
                'fitToScreen':
                self._message['video-fit-to-screen'] == 'true',
                'volume':
                self._DEFAULT_MASTER_VOLUME *
                SoundGroups.g_instance.getMasterVolume()
            })
            if self.content['voiceovers']:
                self._keypoints = [
                    (float(point['keypoint'])
                     if 'keypoint' in point and point['keypoint'] else 0.0)
                    for point in self.content['voiceovers']
                    if point['voiceover']
                ]
                self.__addKeyPoint(0.0)
            return True
        return False

    @subtitleDecorator
    def playNotification(self, delay):
        self.__soundDelayer = None
        self.__addKeyPoint(delay)
        return

    def __addKeyPoint(self, delay):
        if self._keypoints:
            delayTime = self._keypoints.pop(0)
            self.__soundDelayer = _CallbackDelayer(delayTime + delay,
                                                   self.playNotification)
            self.__soundDelayer.startCallback()

    def __onPause(self):
        self.soundManager.playInstantSound(self._message['event-pause'])
        self.as_pausePlaybackS()
        self.__pauseDelayerID = None
        if self.__soundDelayer is not None:
            self.__soundDelayer.stopCallback()
        return

    def __onResume(self):
        self.soundManager.playInstantSound(self._message['event-resume'])
        self.as_resumePlaybackS()
        if self.__soundDelayer is not None:
            self.__soundDelayer.startCallback()
        return

    def _onFinish(self):
        self.soundManager.playInstantSound(self._message['event-stop'])
        if self.__pauseDelayerID is not None:
            BigWorld.cancelCallback(self.__pauseDelayerID)
            self.__pauseDelayerID = None
        if self.__soundDelayer is not None:
            self.__soundDelayer.cancelCallback()
            self.__soundDelayer = None
        self._onDestroy()
        return

    def _onDestroy(self):
        self.destroy()
Example #18
0
import WWISE
from constants import DEFAULT_LANGUAGE
from gui.impl.gen import R
from gui.impl.lobby.video.video_sound_manager import IVideoSoundManager, SoundManagerStates
from helpers import getClientLanguage
from math_utils import clamp
from shared_utils import CONST_CONTAINER
from sound_gui_manager import CommonSoundSpaceSettings

class SOUNDS(CONST_CONTAINER):
    ACTIVATE_CHAPTER_STATE = 'STATE_overlay_hangar_general'
    ACTIVATE_CHAPTER_STATE_ON = 'STATE_overlay_hangar_general_on'
    ACTIVATE_CHAPTER_STATE_OFF = 'STATE_overlay_hangar_general_off'


ACTIVATE_CHAPTER_SOUND_SPACE = CommonSoundSpaceSettings(name=SOUNDS.ACTIVATE_CHAPTER_STATE, entranceStates={SOUNDS.ACTIVATE_CHAPTER_STATE: SOUNDS.ACTIVATE_CHAPTER_STATE_ON}, exitStates={SOUNDS.ACTIVATE_CHAPTER_STATE: SOUNDS.ACTIVATE_CHAPTER_STATE_OFF}, persistentSounds=(), stoppableSounds=(), priorities=(), autoStart=True, enterEvent='', exitEvent='')

class BattlePassSounds(CONST_CONTAINER):
    _OVERLAY = 'bp_overlay'
    CONFIRM_BUY = 'bp_overlay_pay'
    REWARD_SCREEN = 'bp_reward_screen'
    TANK_POINTS_CAP = 'bp_tank_point_done'
    VIDEO_STYLE_430_2 = 'bp_s08_video_430_level_02_start'
    VIDEO_STYLE_430_3 = 'bp_s08_video_430_level_03_start'
    VIDEO_STYLE_430_4 = 'bp_s08_video_430_level_04_start'
    VIDEO_STYLE_E100_2 = 'bp_s08_video_e100_level_02_start'
    VIDEO_STYLE_E100_3 = 'bp_s08_video_e100_level_03_start'
    VIDEO_STYLE_E100_4 = 'bp_s08_video_e100_level_04_start'
    VIDEO_STYLE_STB_2 = 'bp_s08_video_stb_level_02_start'
    VIDEO_STYLE_STB_3 = 'bp_s08_video_stb_level_03_start'
    VIDEO_STYLE_STB_4 = 'bp_s08_video_stb_level_04_start'
Example #19
0
        LootBoxVideos.STYLE: 'gui_lootbox_video_3dstyle_{}',
        LootBoxVideos.OPEN_BOX: 'gui_lootbox_video_open_lootbox_{}',
        LootBoxVideos.START: 'gui_lootbox_video_lootbox_start'
    }
    VIDEO_DONE = 'gui_lootbox_video_stop'
    VIDEO_PAUSE = 'gui_lootbox_video_pause'
    VIDEO_RESUME = 'gui_lootbox_video_resume'


class _LootBoxVideoStates(CONST_CONTAINER):
    GROUP = 'STATE_video_overlay'
    START = 'STATE_video_overlay_on'
    DONE = 'STATE_video_overlay_off'


LOOTBOXES_SOUND_SPACE = CommonSoundSpaceSettings(
    name=LootBoxSoundStates.COMMON_SOUND_SPACE,
    entranceStates={
        LootBoxSoundStates.STATE_PLACE:
        LootBoxSoundStates.STATE_PLACE_LOOTBOXES
    },
    exitStates={
        LootBoxSoundStates.STATE_PLACE: LootBoxSoundStates.STATE_PLACE_GARAGE
    },
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent=LootBoxViewEvents.ENTRY_VIEW_ENTER,
    exitEvent=LootBoxViewEvents.ENTRY_VIEW_EXIT)
Example #20
0
    RESEARCH_SOUND_SPACE = 'research_preview'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_RESEARCH_PREVIEW = 'STATE_hangar_place_researches_preview'
    PREVIEW_SOUND_SPACE = 'research_preview'
    SUBVIEW_HANGAR_GENERAL = 'STATE_subview_hangar_general'
    SUBVIEW_HANGAR_GENERAL_ON = 'STATE_subview_hangar_general_on'
    SUBVIEW_HANGAR_GENERAL_OFF = 'STATE_subview_hangar_general_off'
    HANGAR_PLACE_STATE = 'STATE_hangar_place'
    HANGAR_PLACE_GARAGE = 'STATE_hangar_place_garage'


RESEARCH_PREVIEW_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.RESEARCH_SOUND_SPACE,
    entranceStates={Sounds.STATE_PLACE: Sounds.STATE_PLACE_RESEARCH_PREVIEW},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent='',
    exitEvent='')
STYLE_PREVIEW_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.PREVIEW_SOUND_SPACE,
    entranceStates={
        Sounds.SUBVIEW_HANGAR_GENERAL: Sounds.SUBVIEW_HANGAR_GENERAL_ON,
        Sounds.HANGAR_PLACE_STATE: Sounds.HANGAR_PLACE_GARAGE
    },
    exitStates={
        Sounds.SUBVIEW_HANGAR_GENERAL: Sounds.SUBVIEW_HANGAR_GENERAL_OFF
    },
    persistentSounds=(),
    stoppableSounds=(),
import WWISE
from sound_gui_manager import CommonSoundSpaceSettings


def playSound(eventName):
    WWISE.WW_eventGlobal(eventName)


class Sounds(CONST_CONTAINER):
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_PP = 'STATE_hangar_place_post_progression'
    COMMON_SOUND_SPACE = 'post_progression_space'
    ENTER = 'ev_pp_enter'
    ENTER_ELITE_VIEW = 'ev_pp_elite_status_acquired'
    MODIFICATION_DESTROY = 'ev_pp_modification_destroy'
    MODIFICATION_MOUNT = 'ev_pp_modification_mount'
    SETUP_SWITCH = 'ev_pp_setup_switch'
    GAMEPLAY_SETUP_SWITCH = 'ev_pp_gameplay_setup_switch'


PP_VIEW_SOUND_SPACE = CommonSoundSpaceSettings(
    name=Sounds.COMMON_SOUND_SPACE,
    entranceStates={Sounds.STATE_PLACE: Sounds.STATE_PLACE_PP},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent=Sounds.ENTER,
    exitEvent='')
Example #22
0
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/barracks/sound_constants.py
from sound_gui_manager import CommonSoundSpaceSettings
from shared_utils import CONST_CONTAINER


class SOUNDS(CONST_CONTAINER):
    COMMON_SOUND_SPACE = 'barracks'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_BARRACKS = 'STATE_hangar_place_barracks'


BARRACKS_SOUND_SPACE = CommonSoundSpaceSettings(
    name=SOUNDS.COMMON_SOUND_SPACE,
    entranceStates={SOUNDS.STATE_PLACE: SOUNDS.STATE_PLACE_BARRACKS},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent='',
    exitEvent='')
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/wot_plus/sound_constants.py
from shared_utils import CONST_CONTAINER
from sound_gui_manager import CommonSoundSpaceSettings

class SOUNDS(CONST_CONTAINER):
    INFO_PAGE_NAME = 'wot_plus_info_page'
    VEHICLE_RENTAL_PAGE_NAME = 'vehicle_rental_page'
    OVERLAY_HANGAR_GENERAL = 'STATE_overlay_hangar_general'
    OVERLAY_HANGAR_GENERAL_ON = 'STATE_overlay_hangar_general_on'
    OVERLAY_HANGAR_GENERAL_OFF = 'STATE_overlay_hangar_general_off'


WOT_PLUS_INFO_SOUND_SPACE = CommonSoundSpaceSettings(name=SOUNDS.INFO_PAGE_NAME, entranceStates={SOUNDS.OVERLAY_HANGAR_GENERAL: SOUNDS.OVERLAY_HANGAR_GENERAL_ON}, exitStates={SOUNDS.OVERLAY_HANGAR_GENERAL: SOUNDS.OVERLAY_HANGAR_GENERAL_OFF}, persistentSounds=(), stoppableSounds=(), priorities=(), autoStart=True, enterEvent='', exitEvent='')
VEHICLE_RENTAL_SOUND_SPACE = CommonSoundSpaceSettings(name=SOUNDS.VEHICLE_RENTAL_PAGE_NAME, entranceStates={SOUNDS.OVERLAY_HANGAR_GENERAL: SOUNDS.OVERLAY_HANGAR_GENERAL_ON}, exitStates={SOUNDS.OVERLAY_HANGAR_GENERAL: SOUNDS.OVERLAY_HANGAR_GENERAL_OFF}, persistentSounds=(), stoppableSounds=(), priorities=(), autoStart=True, enterEvent='', exitEvent='')
# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/resource_well/sounds.py
from shared_utils import CONST_CONTAINER
from sound_gui_manager import CommonSoundSpaceSettings


class SOUNDS(CONST_CONTAINER):
    SPACE = 'resource_well_space'
    COMMON_ENTER = 'resources_well_enter'
    COMMON_EXIT = 'resources_well_exit'
    PREVIEW_SPACE = 'resource_well_preview_space'
    PREVIEW_ENTER = 'resources_well_preview_enter'
    PREVIEW_EXIT = 'resources_well_preview_exit'
    STATE_PLACE = 'STATE_hangar_place'
    STATE_PLACE_GARAGE = 'STATE_hangar_place_garage'


RESOURCE_WELL_SOUND_SPACE = CommonSoundSpaceSettings(
    name=SOUNDS.SPACE,
    entranceStates={},
    exitStates={},
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent=SOUNDS.COMMON_ENTER,
    exitEvent=SOUNDS.COMMON_EXIT)
Example #25
0
    HANGAR_STATE = 'STATE_hangar_place_garage'
    ENTER_EVENT = 'mt_mode_enter'
    EXIT_EVENT = 'mt_mode_exit'
    MAP_CHOICE_ENTER = 'mt_map_choice_enter'
    MAP_CHOICE_EXIT = 'mt_map_choice_exit'
    COMPLETE_ITEM = 'mt_anim_scenario_complete'

    @staticmethod
    def onSelectedMap(isSelected):
        if isSelected:
            WWISE.WW_eventGlobal(MapsTrainingSound.MAP_CHOICE_EXIT)
        else:
            WWISE.WW_eventGlobal(MapsTrainingSound.MAP_CHOICE_ENTER)


MAPS_TRAINING_SOUND_SPACE = CommonSoundSpaceSettings(
    name=MapsTrainingSound.COMMON_SOUND_SPACE,
    entranceStates={
        MapsTrainingSound.GAMEMODE_GROUP: MapsTrainingSound.GAMEMODE_STATE,
        MapsTrainingSound.HANGAR_GROUP: MapsTrainingSound.HANGAR_STATE
    },
    exitStates={
        MapsTrainingSound.GAMEMODE_GROUP: MapsTrainingSound.GAMEMODE_DEFAULT
    },
    persistentSounds=(),
    stoppableSounds=(),
    priorities=(),
    autoStart=True,
    enterEvent=MapsTrainingSound.ENTER_EVENT,
    exitEvent=MapsTrainingSound.EXIT_EVENT)