Ejemplo n.º 1
0
 def __requestRequiredData(self):
     localCtx = BattleClientCtx.fetch()
     if localCtx.startedAt == 0.0:
         localCtx.setStartedAt(time.time())
     if localCtx.accCompleted < 0:
         player = BigWorld.player()
         if player is None or not hasattr(player, 'requestAccountStats'):
             LOG_DEBUG('Stats method not found', player)
             return
         LOG_REQUEST('Avatar.requestAccountStats')
         player.requestAccountStats(['tutorialsCompleted'], self.__onReceiveAccountStats)
Ejemplo n.º 2
0
 def __requestRequiredData(self):
     localCtx = BattleClientCtx.fetch()
     if localCtx.startedAt == 0.0:
         localCtx.setStartedAt(time.time())
     if localCtx.accCompleted < 0:
         player = BigWorld.player()
         if player is None or not hasattr(player, 'requestAccountStats'):
             LOG_DEBUG('Stats method not found', player)
             return
         LOG_REQUEST('Avatar.requestAccountStats')
         player.requestAccountStats(['tutorialsCompleted'], self.__onReceiveAccountStats)
Ejemplo n.º 3
0
    def __init__(self):
        super(FunctionalBattleChapterInfo, self).__init__()
        chapter = self._tutorial._data
        chapterID = chapter.getID()
        self._progress = []
        self._stepMask = -1
        progress = chapter.getHasIDEntity(chapterID)
        if progress is None:
            LOG_ERROR('Chapter progress not found', chapterID)
        else:
            for conditions in progress:
                func = FunctionalConditions(conditions)
                ok = func.allConditionsOk()
                self._progress.append((func, ok))

        self._gui.setChapterInfo(chapter.getTitle(), chapter.getDescription())
        descriptor = self._tutorial._descriptor
        chapterIdx = descriptor.getChapterIdx(chapterID)
        localCtx = BattleClientCtx.fetch().setChapterIdx(chapterIdx)
        self._gui.setTrainingPeriod(descriptor.getChapterIdx(chapterID), descriptor.getNumberOfChapters())
        self._gui.setTrainingProgress(descriptor.getProgress(localCtx.completed))
Ejemplo n.º 4
0
 def triggerEffect(self):
     exitEntity = self.getTarget()
     if exitEntity is not None:
         self.__nextChapter = exitEntity.getNextChapter()
         if self.__nextChapter is None or not len(self.__nextChapter):
             self.__nextChapter = self._tutorial._descriptor.getNextChapterID(BattleClientCtx.fetch().completed)
         if self.__nextChapter is None:
             LOG_DEBUG('Next chapter not found')
             self._tutorial._funcScene.setExit(exitEntity)
             return
         delay = exitEntity.getNextDelay()
         if self._tutorial._currentChapter != self.__nextChapter:
             self._sound.play(SOUND_EVENT.NEXT_CHAPTER)
             self._sound.goToNextChapter()
             if delay > 0:
                 self.__finishTime = BigWorld.time() + delay
             else:
                 self._gui.clear()
                 self._tutorial.goToNextChapter(self.__nextChapter)
     else:
         LOG_ERROR('Exit not found', self._effect.getTargetID())
Ejemplo n.º 5
0
    def __init__(self):
        super(FunctionalBattleChapterInfo, self).__init__()
        chapter = self._tutorial._data
        chapterID = chapter.getID()
        self._progress = []
        self._stepMask = -1
        progress = chapter.getHasIDEntity(chapterID)
        if progress is None:
            LOG_ERROR('Chapter progress not found', chapterID)
        else:
            for conditions in progress:
                func = FunctionalConditions(conditions)
                ok = func.allConditionsOk()
                self._progress.append((func, ok))

        self._gui.setChapterInfo(chapter.getTitle(), chapter.getDescription())
        descriptor = self._descriptor
        chapterIdx = descriptor.getChapterIdx(chapterID)
        localCtx = BattleClientCtx.fetch().setChapterIdx(chapterIdx)
        self._gui.setTrainingPeriod(descriptor.getChapterIdx(chapterID), descriptor.getNumberOfChapters())
        self._gui.setTrainingProgress(descriptor.getProgress(localCtx.completed))
Ejemplo n.º 6
0
 def triggerEffect(self):
     exitEntity = self.getTarget()
     if exitEntity is not None:
         self.__nextChapter = exitEntity.getNextChapter()
         if self.__nextChapter is None or not len(self.__nextChapter):
             self.__nextChapter = self._descriptor.getNextChapterID(BattleClientCtx.fetch().completed)
         if self.__nextChapter is None:
             LOG_DEBUG('Next chapter not found')
             self._tutorial._funcScene.setExit(exitEntity)
             return
         delay = exitEntity.getNextDelay()
         if self._tutorial._currentChapter != self.__nextChapter:
             self._sound.play(SOUND_EVENT.NEXT_CHAPTER)
             self._sound.goToNextChapter()
             if delay > 0:
                 self.__finishTime = BigWorld.time() + delay
             else:
                 self._gui.clear()
                 self._tutorial.goToNextChapter(self.__nextChapter)
     else:
         LOG_ERROR('Exit not found', self._effect.getTargetID())
Ejemplo n.º 7
0
def setCompleted(exclude = None):
    instance = loader.g_loader.tutorial
    if exclude is None:
        exclude = []
    if instance is not None and not instance._tutorialStopped:
        descriptor = doc_loader.loadDescriptorData(TUTORIAL_SETTINGS.BATTLE.descriptorPath)
        if descriptor is not None:
            clientCtx = BattleClientCtx.fetch()
            for idx, chapter in enumerate(descriptor):
                if chapter.hasBonus() and idx not in exclude:
                    clientCtx = clientCtx.addMask(1 << chapter.getBonusID())

            clientCtx.setChapterIdx(descriptor.getNumberOfChapters() - 1)
            arena = getattr(BigWorld.player(), 'arena', None)
            if arena is not None:
                BigWorld.player().leaveArena()
        else:
            LOG_DEBUG('Tutorial descriptor is invalid.')
    else:
        LOG_DEBUG('Tutorial is not running.')
    return
Ejemplo n.º 8
0
 def __onReceiveAccountStats(self, stats):
     BattleClientCtx.fetch().setAccCompleted(stats.get('tutorialsCompleted', 0))
Ejemplo n.º 9
0
 def __onReceiveAccountStats(self, stats):
     BattleClientCtx.fetch().setAccCompleted(
         stats.get('tutorialsCompleted', 0))
Ejemplo n.º 10
0
def getCtx():
    return BattleClientCtx.fetch()