Exemple #1
0
 def tryingToRun(self, runCtx):
     settings = TUTORIAL_SETTINGS.getSettings(runCtx.settings)
     if not settings.enabled:
         return
     else:
         runCtx.cache = TutorialCache.TutorialCache(BigWorld.player().name,
                                                    settings.space)
         reqs = TUTORIAL_SETTINGS.factory(settings.reqs,
                                          init=(weakref.proxy(self),
                                                runCtx))
         if reqs.isEnabled():
             if self.__tutorial is None or self.__tutorial._settings.id != settings.id:
                 self.__tutorial = Tutorial(settings)
                 if self.__tutorial._descriptor is None:
                     LOG_ERROR(
                         'Tutorial descriptor is not valid. Tutorial is not available.'
                     )
                     return
                 if self.__dispatcher is not None:
                     self.__dispatcher.stop()
                     self.__dispatcher = None
                 self.__dispatcher = TUTORIAL_SETTINGS.factory(
                     settings.dispatcher)
             self.__dispatcher.start(runCtx)
             self.__tutorial.setDispatcher(weakref.proxy(self.__dispatcher))
             reqs.process()
         return
Exemple #2
0
 def run(self, ctx):
     self._cache = ctx.cache
     if self._cache is None:
         LOG_ERROR('Cache is not init.')
         return
     else:
         self._bonuses = self._ctrlFactory.createBonuses(ctx.bonusCompleted)
         self._sound = self._ctrlFactory.createSoundPlayer()
         if not self._tutorialStopped:
             LOG_ERROR('Tutorial is already running.')
             return
         self._gui = TUTORIAL_SETTINGS.factory(self._settings.gui)
         self._gui.onGUILoaded += self.__onGUILoaded
         if not self._gui.init():
             self._gui.onGUILoaded -= self.__onGUILoaded
             LOG_ERROR('GUI can not init. Tutorial is stopping.')
             return
         LOG_DEBUG('Start training', ctx)
         self._tutorialStopped = False
         proxy = weakref.proxy(self)
         setTutorialProxy(proxy)
         if self.__resolveInitialChapter(ctx):
             self._gui.setPlayerXPLevel(self._cache.getPlayerXPLevel())
             self._gui.setTrainingRunMode()
             self._gui.loadConfig(self._descriptor.getGuiFilePath())
             self._gui.onMouseClicked += self.__onMouseClicked
             self._gui.onPageChanging += self.__onPageChanging
             self.__tryRunFirstState(INITIAL_FLAG.CHAPTER_RESOLVED)
         return
Exemple #3
0
 def run(self, ctx):
     self._cache = ctx.cache
     if self._cache is None:
         LOG_ERROR('Cache is not init.')
         return
     else:
         self._bonuses = self._ctrlFactory.createBonuses(ctx.bonusCompleted)
         self._sound = self._ctrlFactory.createSoundPlayer()
         if not self._tutorialStopped:
             LOG_ERROR('Tutorial is already running.')
             return
         self._gui = TUTORIAL_SETTINGS.factory(self._settings.gui)
         self._gui.onGUILoaded += self.__onGUILoaded
         if not self._gui.init():
             self._gui.onGUILoaded -= self.__onGUILoaded
             LOG_ERROR('GUI can not init. Tutorial is stopping.')
             return
         LOG_DEBUG('Start training', ctx)
         self._tutorialStopped = False
         proxy = weakref.proxy(self)
         setTutorialProxy(proxy)
         if self.__resolveInitialChapter():
             self._gui.setPlayerXPLevel(self._cache.getPlayerXPLevel())
             self._gui.setTrainingRunMode()
             self._gui.loadConfig(self._descriptor.getGuiFilePath())
             self._gui.onMouseClicked += self.__onMouseClicked
             self._gui.onPageChanging += self.__onPageChanging
             self.__tryRunFirstState(INITIAL_FLAG.CHAPTER_RESOLVED)
         return
Exemple #4
0
 def tryingToRun(self, runCtx):
     settings = TUTORIAL_SETTINGS.getSettings(runCtx.settings)
     if not settings.enabled:
         return
     runCtx.cache = TutorialCache.TutorialCache(BigWorld.player().name, settings.space)
     reqs = TUTORIAL_SETTINGS.factory(settings.reqs, init=(weakref.proxy(self), runCtx))
     if reqs.isEnabled():
         if self.__tutorial is None or self.__tutorial._settings.id != settings.id:
             self.__tutorial = Tutorial(settings)
             if self.__tutorial._descriptor is None:
                 LOG_ERROR('Tutorial descriptor is not valid. Tutorial is not available.')
                 return
             if self.__dispatcher is not None:
                 self.__dispatcher.stop()
                 self.__dispatcher = None
             self.__dispatcher = TUTORIAL_SETTINGS.factory(settings.dispatcher)
         self.__dispatcher.start(runCtx)
         self.__tutorial.setDispatcher(weakref.proxy(self.__dispatcher))
         reqs.process()
Exemple #5
0
 def refuse(self):
     title = self._data.getTitle()
     description = self._data.getDescription(afterBattle=self._cache.isAfterBattle())
     self._cache.setRefused(True).write()
     level = self._cache.getPlayerXPLevel()
     self.stop(reason=TUTORIAL_STOP_REASON.PLAYER_ACTION)
     dispatcher = TUTORIAL_SETTINGS.getClass(self._settings.gui).getDispatcher()
     if dispatcher is not None:
         dispatcher.setPlayerXPLevel(level)
         dispatcher.setTrainingRestartMode()
         dispatcher.setChapterInfo(title, description)
Exemple #6
0
 def refuse(self):
     title = self._data.getTitle()
     description = self._data.getDescription(
         afterBattle=self._cache.isAfterBattle())
     self._cache.setRefused(True).write()
     level = self._cache.getPlayerXPLevel()
     self.stop()
     dispatcher = TUTORIAL_SETTINGS.getClass(
         self._settings.gui).getDispatcher()
     if dispatcher is not None:
         dispatcher.setPlayerXPLevel(level)
         dispatcher.setTrainingRestartMode()
         dispatcher.setChapterInfo(title, description)
     return
Exemple #7
0
 def pause(self, ctx):
     self._cache = ctx.cache
     if self._cache is None:
         LOG_ERROR('Cache is not init.')
         return
     self._bonuses = self._ctrlFactory.createBonuses(ctx.bonusCompleted)
     if self.__resolveInitialChapter():
         chapter = self._descriptor.getChapter(self._currentChapter)
         dispatcher = TUTORIAL_SETTINGS.getClass(self._settings.gui).getDispatcher()
         if dispatcher is not None:
             dispatcher.setPlayerXPLevel(self._cache.getPlayerXPLevel())
             dispatcher.setTrainingRestartMode()
             dispatcher.setChapterInfo(chapter.getTitle(), chapter.getDescription(afterBattle=self._cache.isAfterBattle()))
     self._cache = None
Exemple #8
0
 def pause(self, ctx):
     self._cache = ctx.cache
     if self._cache is None:
         LOG_ERROR('Cache is not init.')
         return
     else:
         self._bonuses = self._ctrlFactory.createBonuses(ctx.bonusCompleted)
         if self.__resolveInitialChapter(ctx):
             chapter = self._descriptor.getChapter(self._currentChapter)
             dispatcher = TUTORIAL_SETTINGS.getClass(
                 self._settings.gui).getDispatcher()
             if dispatcher is not None:
                 dispatcher.setPlayerXPLevel(self._cache.getPlayerXPLevel())
                 dispatcher.setTrainingRestartMode()
                 dispatcher.setChapterInfo(
                     chapter.getTitle(),
                     chapter.getDescription(
                         afterBattle=self._cache.isAfterBattle()))
         self._cache = None
         return
Exemple #9
0
 def __init__(self, settings):
     super(Tutorial, self).__init__()
     self._cache = None
     self.__callbackID = None
     self._currentChapter = None
     self._currentState = None
     self._settings = settings
     self._ctrlFactory = TUTORIAL_SETTINGS.factory(settings.ctrl)
     self._descriptor = doc_loader.loadDescriptorData(settings.descriptorPath, settings.exParsers)
     self._data = None
     self._tutorialStopped = True
     self._nextChapter = False
     self._nextScene = None
     self._funcScene = None
     self._funcInfo = None
     self._flags = None
     self._vars = None
     self._effectsQueue = []
     self._gui = None
     self._bonuses = None
     self._sound = None
     self._initialized = 0
Exemple #10
0
 def __init__(self, settings):
     super(Tutorial, self).__init__()
     self._cache = None
     self.__callbackID = None
     self._currentChapter = None
     self._currentState = None
     self._settings = settings
     self._ctrlFactory = TUTORIAL_SETTINGS.factory(settings.ctrl)
     self._descriptor = doc_loader.loadDescriptorData(
         settings.descriptorPath, settings.exParsers)
     self._data = None
     self._tutorialStopped = True
     self._nextChapter = False
     self._nextScene = None
     self._funcScene = None
     self._funcInfo = None
     self._flags = None
     self._vars = None
     self._effectsQueue = []
     self._gui = None
     self._bonuses = None
     self._sound = None
     self._initialized = 0
     return
Exemple #11
0
 def setDispatcher(self, dispatcher):
     TUTORIAL_SETTINGS.getClass(
         self._settings.gui).setDispatcher(dispatcher)
Exemple #12
0
 def setDispatcher(self, dispatcher):
     TUTORIAL_SETTINGS.getClass(self._settings.gui).setDispatcher(dispatcher)